Another plugin could import the disabled folders store, registering a
replacement list view even though the folders UI was absent. This hid
the standard chat and task lists while their data remained intact.
Register view and sorting callbacks when each list extension mounts and
remove them on unmount, preserving other plugins' callbacks. Reuse the
existing component lifecycle hooks without adding work per chat or snapshot.
Add regression coverage for indirect imports, filter cleanup, remounting,
and preservation of other plugins' sorting. Document the lifecycle contract.
Validation: frontend checks and 13 focused pytest tests passed. Live WebUI
checks covered disable/re-enable, folder/flat switching, nested selection,
and component unmount cleanup at localhost:32081.
The sidebar saved View and Sort by, but kept Project, Status, and Last activity
only in memory. Reloading reset those three controls to their defaults.
Store the filters in the existing Sidebar Folders configuration and reuse its
save/load API. Preserve the empty No project value, apply safe defaults to
missing or malformed settings, and keep the menu open when changing filters.
Changing view or sort retains the selected filters.
Update defaults, documentation, and frontend regression coverage for saving,
reloading, fallback values, and menu behavior.
Validation: frontend checks and seven focused Python tests passed. Live native
dropdown checks confirmed named-project and No-project selections survive
reloads, including after changing view and sort. Original runtime settings
were restored afterward.
Use All, Working, and Idle consistently for chats and scheduled tasks. Idle includes inactive or paused chats and disabled tasks; a family with an active worker stays under Working instead of also appearing under Idle.
Shorten Recent activity to Last active so the sort label fits its field. Updated filter regressions pass. Desktop and mobile menus were checked at 100% zoom, and the normal cached page also serves the new options.
Open the existing global projects list from the No project folder's
three-dot menu, using the same icon as the in-chat project selector.
Close the folder menu before opening the modal and document the shortcut.
Validation: Node frontend checks passed. Live checks on normal and safe
pages verified that the modal opens, the folder menu closes, and the
action appears only for No project.
Group sidebar chats and scheduler tasks into collapsible project folders,
with a flat-view option and creation-time sorting by default. Keep view,
sort, project, status, and activity controls in the sidebar menu.
Preserve nested parallel workers, integrate Pin to Top, and support new
chats in explicit projects, manual reordering, and whole-family project
moves. Keep pinned folders together and reject project changes for running
chats or scheduled tasks. Persist ordering and view preferences through
plugin-owned APIs and the existing settings contract.
Include documentation, backend and frontend regression coverage, and a
generated 256x256 WebP thumbnail under 20 KB.
Validation: 69 focused pytest checks and the Node frontend suite passed.
Live browser checks covered folder/flat views, Bots 1.2.1 compatibility,
workers, pins, sorting, and drag/drop, including 30 pinned-folder boundary
cases. The thumbnail is 17,930 bytes and serves correctly in the live UI.