Sidebar: group the inbox by environment, project or provider — with rows that stop repeating themselves #7836
BarretoDiego
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Update — the prototype now covers the full sidebar workflow
The first version of this proposal only grouped the inbox. After using it as my daily sidebar, I kept following the same rule: the structure that tells you where work lives should also be the place where you act on it.
The current prototype now covers grouping, ordering, section actions, project removal, per-project settled history, and navigable environment/project scopes. It is still one working branch, but the commits are layered so maintainers can take only the pieces that fit the product direction.
Screenshots — current prototype
Full sidebar with environment → project grouping, compact thread rows, per-project history, and scope-owned actions.
Project scope keeps active, snoozed, and settled work together and exposes the same project actions as the sidebar.
What is in the current version
Why this is one model instead of several sidebar features
Grouping alone exposed two dead ends: empty projects vanished, and a visible project header could not start work. Adding actions without ordering made active sections jump around. Adding ordering without per-project history let the global Settled shelf grow without context. The pieces reinforce one small mental model:
The implementation keeps that model client-side where possible. Grouping, sorting, attention rollups, and row compaction are pure derivations over thread shells already in memory. There is no sidebar polling, continuous animation, or new websocket traffic for layout.
Branch and commit layers
Working branch:
feat/sidebar-plan-limitsThe sidebar work can be reviewed or cherry-picked in layers:
fbd582567— group, filter, and sort the inboxd88d9e899— start a thread from a project section1eb9b4d0a— open the project picker in a chosen environment3b59e63f7+342acabfd— make headers own their actions and settle the compact-row UX2828bb2b8— remove a project from its section781dc6ff3— custom section ordering21583f9e0— navigable environment/project scopesThe branch tip also contains the provider plan-limit meter. I am opening that as a separate Discussion because its server/provider contracts deserve an independent product decision.
Surfaces and compatibility
docs/user/thread-sidebar.md; vocabulary additions are in the internal glossary.What I deliberately kept out
The original problem
The v2 sidebar becomes hard to scan once one user has multiple environments, projects, and providers. A single project filter is too narrow, while one flat list repeats metadata and makes the user reconstruct scope row by row.
The prototype keeps today’s thread semantics and makes scope visible, actionable, and stable. Is this the sidebar direction maintainers want? If yes, the commit stack above is intentionally shaped so it can land in smaller PRs rather than as one large change.
All reactions