Skip to content

feat(web): one-line sidebar rows in the New design - #25605

Closed
shalinbtw wants to merge 2 commits into
pingdotgg:mainfrom
shalinbtw:feat/sidebar-one-line-rows
Closed

shalinbtw wants to merge 2 commits into
pingdotgg:mainfrom
shalinbtw:feat/sidebar-one-line-rows

Conversation

@shalinbtw

Copy link
Copy Markdown

The sidebar shows a lot more per thread than ChatGPT or Claude do. Each active, pinned or working row is a three-line card: project name and status, title, then branch, PR, diff and provider. You can only fit about half as many threads on screen, and it's hard to scan for the thing you actually care about (which thread needs me?).

This is a proposal, opened without a prior Ideas discussion, so happy for it to be closed or reworked if you'd rather go another way.

What changed

With the New design on (the default), card rows render as one line, matching the shelf rows:

  • Left: the status icon (Working, Waiting, Approval, Input, Request, Limited, Failed, Done) in its colour, or the project favicon when there's no status
  • Middle: the title, plus the existing draft, pin and terminal indicators
  • Right: elapsed time while working or waiting, Woke, or time since the last message. On hover this swaps to Discard draft / Snooze / Settle (Settle is icon-only here to leave room for the title)

Project, machine, branch, model, handoffs, terminals, errors and PRs are still in the hover card. The +/− diff count is the one thing no longer shown in the sidebar. Unsent draft rows get the same one-line layout. The classic design is unchanged, and I removed the redesign: classes from the classic card path since it now only renders with the New design off.

The drag projection also assumed 82px cards when an empty Active or Pins target had nothing to measure, so dragging a settled thread into an empty section reserved an oversized slot. It now uses the slim height when cards are compact (compactCards), with a regression test in Sidebar.drag.test.ts.

Before / after

Same 13 threads, every row state. Statuses and titles were forced locally for the capture through a throwaway patch that isn't in this PR.

Before vs after

Hover keeps the controls and the details card:

After, hovering a row

Verification

  • vp run check:changed: format, lint, knip and typecheck pass
  • vp test run apps/web/src/components/Sidebar.drag.test.ts: 43 pass, including the new compact-card test (fails on main's 82px fallback, expects 36)
  • Manually checked in vp run dev on a migrated copy of real data, dark mode, at 1280px: one-line rows, hover controls, hover card, draft row, Woke dismiss button
  • Not checked: the browser test suites locally (no Playwright headless Chromium on this machine, CI runs them), light mode, the narrowest sidebar width with Woke + draft + pin + hover all on one row (that combination also clips on main's card header line), and mobile, which has its own navigation and isn't touched here

Subagent threads still have no sidebar row and still highlight their parent, since that logic in Sidebar.logic.ts is unchanged.

🤖 Generated with Claude Code (Claude Opus 5.5)

shalinbtw and others added 2 commits October 26, 2026 19:02
Active, pinned and working rows drop to a single line: status icon (or
project favicon), title, and elapsed time. Project, branch, PR, diff and
model stay in the hover card. The classic design keeps the three-line card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Empty Active and Pins targets fell back to the 82px card height while
dragging. One-line rows also drop the Settle label to keep the title visible.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Oct 26, 2026
@t3-code-bot

t3-code-bot Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

closing at @StiensWout's request under Establish the problem and scope first.

Reworks the default New-design sidebar into one-line rows, removes diff counts from the sidebar, and changes hover action presentation without prior Ideas approval. This intentionally changes the shipped presentation and information hierarchy rather than configuring it.

Agree on the compact sidebar direction and scope with maintainers in Ideas and link the approval; draft status does not postpone the requirement.

thanks for trying to help improve t3 code. if you think this closure was a mistake, please open a fresh pr addressing the requirement above, and link back to this one.

@t3-code-bot t3-code-bot Bot closed this Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant