Problem
All project buttons live in one flat list. Power users organize work in clusters (departments, clients, ICM clusters) and can easily accumulate 50–150 project folders; a flat sidebar cannot hold that.
Intended fix
An optional group field on a project (projects.json, default empty — fully backwards compatible):
- Projects with the same
group render under one collapsible header (name + count). Named groups start collapsed; the expanded set persists in the UI settings. Ungrouped projects render first, ungrouped, exactly as today.
- While a filter query is active (see the search-input proposal) all matches show regardless of collapse state.
- Editor: a group text input per row with a datalist of existing group names.
- Rust: one
#[serde(default)] group: String on the Project struct — pure passthrough.
A fresh install or an existing projects.json without group fields looks and behaves exactly as before.
Problem
All project buttons live in one flat list. Power users organize work in clusters (departments, clients, ICM clusters) and can easily accumulate 50–150 project folders; a flat sidebar cannot hold that.
Intended fix
An optional
groupfield on a project (projects.json, default empty — fully backwards compatible):grouprender under one collapsible header (name + count). Named groups start collapsed; the expanded set persists in the UI settings. Ungrouped projects render first, ungrouped, exactly as today.#[serde(default)] group: Stringon theProjectstruct — pure passthrough.A fresh install or an existing projects.json without
groupfields looks and behaves exactly as before.