Repository navigation
feat(web): sidebar settings to group threads by project and choose card density - #1
Open
Willem-Jaap wants to merge 1 commit into
Open
Willem-Jaap wants to merge 1 commit into
Willem-Jaap wants to merge 1 commit into
Conversation
…rd density Two settings in General → Sidebar: - Group threads by project: active threads list under collapsible project headers (icon, name, count, settings and new-thread actions). Pinned stays on top; Working, Snoozed and Settled shelves are unchanged. Grouped rows keep project order, so dropping into the active list is disabled there. Under a header, Full cards put the title on the first line instead of repeating the project name. - Thread card style: Full (current cards), Compact (title and status on one line, meta line only when there is one) or Row (one 32px line for every section, leading with status or branch under a project header). Compact and Row step titles and project headers down to a new 13px text-xs-plus token and thread icons to 14px.
Willem-Jaap
force-pushed
the
willem-jaap/sidebar-thread-layout
branch
from
October 27, 2026 08:35
73eaac7 to
39afb60
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
With many active threads across several projects, the sidebar's single activity-sorted inbox interleaves projects, and each active thread takes a ~78px three-line card, so about ten fit on a laptop screen. The legacy sidebar groups by project but drops the Working, Snoozed and Settled shelves and settling/snoozing.
Change
Two settings in General → Sidebar, next to Project order. Both default to today's behaviour.
sidebarGroupThreadsByProject, default off): active threads render under collapsible project headers (icon, name, active count; on hover a chevron, project settings and new thread). Collapse state reusesprojectExpandedById. Headers are drawn at render time around the active rows and don't join the drag model; dropping into the active list is disabled while grouped because rows follow project order. Pin and settle by drag still work. Project order follows the existing "Project order" setting and the project filter.sidebarThreadCardStyle:full|compact|row, defaultfull): addscompact(title and status on one line, meta line only when present) androw(one 32px line in every section; under a project header it leads with status or branch) variants toSidebarThreadRow. Compact and Row use a new 13pxtext-xs-plustheme token for titles and project headers, and 14px icons.Scope and approval
Prototype on my fork. Not yet discussed upstream: grouping is a product-behaviour change that needs an Ideas discussion first, and upstream this would likely split into two PRs (card style, then grouping).
Verification
vpr check:changedafter rebasing onto the redesign (refactor(web): the new design is the only design, with no toggle pingdotgg/t3code#25778) and the settings regroup (refactor(web): settings group by concern, with General split into focused pages pingdotgg/t3code#25651): format, lint, knip, typecheck (32 packages) and 159 tests pass.latestRunDiffreturns null upstream, so +/− never render).Screenshots
Sidebar at 1280×860, dark mode, on the redesigned UI (rebased on
bc8d02ffd). Demo instance with copied local data.Settings → General → Sidebar: