Skip to content

Commit fbd5825

Browse files
committed
feat(web): group, filter and sort the sidebar inbox
The sidebar inbox is one flat list. With several environments, projects and providers in play there is no way to see "just this machine" or "just Codex" without scoping to a single project at a time, and every card repeats the project name whether or not that is the useful bit. Adds a compact bar under the project selector with three menus: - Group by: environment, project or provider, plus an optional second axis nested inside the first. "Nothing" keeps today's flat list and stays the default. - Provider filter: narrows every shelf, not just the inbox, so the filter never lies about what "only Claude" means. - Sort: last activity or date created. The existing project grouping mode (repository / folder / project) is surfaced here too, instead of living only in Settings. Each trigger reads out its current choice, so the bar doubles as the readout of how the list is arranged. Grouped rows say each thing once: a card drops whatever a section header above it already states, so the same row is three lines in the flat list and one line under a project header. Collapsed sections carry an attention rollup — approvals, input requests, failures, unread completions and running work — using the same status rules the rows themselves follow, so a header can never claim something its rows would not show. Unread finished threads get a dot next to their title. The grouping itself is pure and unit-tested: sections come out in first-appearance order and threads keep their incoming order, so sorting and grouping stay orthogonal. Collapse state persists per section key and resets when the axes change, so stale keys cannot pre-collapse unrelated sections. Pinned keeps its manual order and the snoozed and settled shelves stay whole. Written by Claude Opus 5 in Claude Code.
1 parent be7d35a commit fbd5825

6 files changed

Lines changed: 1741 additions & 204 deletions

File tree

0 commit comments

Comments
 (0)