Repository navigation
Sidebar: group the inbox by environment, project or provider — with rows that stop repeating themselves #7836
Replies: 7 comments 2 replies
|
I support this direction. I work across multiple projects, and having to click New and then choose a project each time is inconvenient. Keeping projects visible, even without active threads, and adding a New thread action to each project header would make this much easier to use. |
|
Note Drafted by Claude Opus 5.5 in Claude Code (via T3 Code); reviewed and posted by @jieyuexing. +1 for environment → project as the default. A multi-machine data point: I run threads on three environments every day: a Mac, a Windows work machine, and WSL on that Windows machine. The current sidebar puts all of them in one inbox, and these are the places where it gets hard to follow:
If the full proposal is too large to take at once, an environment scope or filter next to the project scope would already cover most of this. |
|
A smaller cut of the same idea, in case a first step is easier to take than the full prototype. In my fork "By project" is one value of a thread-order setting (next to Manual and By status). It does only two things:
No collapsing, no per-project actions, no environment level, no change to Settled or Snoozed. The headings are plain elements between the rows, not part of the sortable list, because the order is automatic in that mode. That kept the change to about 50 lines in Two things that showed up with about ten projects open (one day of use so far):
#17795 asks for nearly the same heading (icon, name, count), with collapsing on top. Branch (web only, mobile not covered): https://github.com/AdEx-Partners-DE/t3code/tree/feat/sidebar-inbox-order-and-project-colors Posted by Claude (AI) on behalf of @AdEx-Partners-DE; not reviewed by a human. |
|
Note Drafted by Claude Opus 5.5 in Claude Code (via T3 Code); reviewed and posted by @jog068. Another data point for project grouping, plus one piece I haven't seen in this thread yet: a Needs you shelf on top. My problem. I work across 5 to 8 projects. The flat inbox mixes them all, and each active thread is a three-line card, so about six fit on screen. I lose track of which project a thread belongs to and what is waiting on me. What I built (opt-in, local branch). A Sidebar layout setting with Inbox and Projects. Inbox stays the default. Projects shows:
Why the shelf. Grouping by project gives a stable map, but a status inside a collapsed project gets buried. The shelf keeps the inbox's "what needs me" answer without reshuffling the tree whenever a status changes. Scope. Web and desktop only; mobile is unchanged. It reuses the existing lifecycle partition, project grouping and collapse state, so settle, snooze, pin, search and keyboard shortcuts keep working. Drag-reorder is off in this layout for now. I'm happy to open a PR if a maintainer is open to this direction, or to fold the Needs-you idea into whichever grouping design you prefer. |
|
+1 for grouping by environment. I want to see every project at once, organized by environment, not filtered down to one. I run two environments from one desktop and phone: a Personal server and a work server (Glass House) on the same Mac. Right now their projects mix together in one list. What I want is a section per environment with its projects under it. Each section should collapse, and the order of the sections should be adjustable. A workaround today is Manual project sort, dragging each environment's projects next to each other. There is still no header to show where one environment ends and the next starts, and every new project has to be dragged into place by hand. Environment → project grouping from your prototype is exactly this. |
|
Note Drafted by Claude Opus 5.5 in Claude Code (via T3 Code); reviewed and posted by @ScottN-PV. +1 for project grouping with compact rows. Here is a mockup of the layout I'd use every day: What it changes from today's sidebar:
I run 8 to 10 active threads across 3 projects. Today's card rows fit only about half of them on screen, so I scroll to find out which project a thread belongs to. With this layout the whole set fits in one view. Related: #17319 (compact rows for every section) and #17795 (collapsible project boxes). |
|
Note Drafted by Claude Opus 5.5 in Claude Code (via T3 Code); reviewed and posted by @matdac6. +1 for grouping the inbox by project. One request on the scope: please make "hide projects with no active threads" an option, or the default for the grouped inbox. I have ~30 projects registered but work on 2–3 at a time. The flat inbox mixes those 3 together, and the legacy per-project tree is worse for me because it lists all 30. The view I want is the current inbox, unchanged, with each project's active threads under one collapsible header showing the project name and thread count. Projects with zero live threads shouldn't appear at all. @AdEx-Partners-DE's smaller cut above (a heading over each project's active block) is basically exactly this. |

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