Sidebar v2 — five concepts

A rethink of the T3 Code thread sidebar: recency-first, project demoted to metadata, every thread a multi-line chunk with room for real context, and active work never hidden behind “show more”. All mock data below is pulled from your actual local threads (state.sqlite) so the concepts read true.

What the data can already tell us

From OrchestrationThreadShell, sessions, turns, activities, and checkpoints — split by what the sidebar shows today vs. what it silently drops on the floor.

Shown today (barely)

Available but hidden

Pending Approval — blocked on you, highest priority Awaiting Input — agent asked a question Plan Ready — plan waiting for review Working — running, show what + for how long Done · unseen — finished since you last looked Failed — session error, invisible today  Idle — seen, settled, quiet

1Status Rail

The straightforward evolution: one recency-sorted list of three-line cards. A colored edge rail makes state scannable as a vertical strip; the middle line always answers “what is it doing?”.

+
Normalize open PR titles
Needs approval— wants to run gh pr edit 3831
t3code fix-pr-titles waiting 2m
Sidebar v2 UX Redesign
Working— building HTML mockups · 14m
t3code sidebar-v2-concepts fable-5 now
Fix image upload stalls
Question— “Which bucket should staging use?”
file-host main waiting 18m
Review default experience plan
Plan ready— 6 steps · touches composer + worktrees
t3code plan-ux-review 9m
Disable pairing codes by default
Done+214 −38 · 12 files · unseen
t3code disable-pairing-codes 12m
iOS Simulator Remote Setup
Failed— Simulator lookup timed out (120s)
t3code main gpt-5.6-sol 34m
Default new worktrees from origin main
Idle — +47 −12 · 5 files
t3code main-from-origin 41m
Fix performance bottlenecks
Idle — shipped#3825 merged
t3code performance-fixes 1d
CLI File Hosting Options
Idle — repo pushed, 6 commits
file-host main 2d

How it works

Trade-offs

2Inbox

Treat threads like email: favicon avatar, bold-when-unread title, and a two-line snippet of the latest assistant message. You triage the sidebar the way you triage mail.

+
T3
Normalize open PR titles2m
Approval needed: rename 4 open PRs to conventional-commit style — wants to run gh pr edit 3831…
Needs approval fix-pr-titles
T3
Sidebar v2 UX Redesignnow
There's a local SQLite state database — I can look at the real threads to ground the mockups in actual data.
Working · 14m sidebar-v2-concepts
FH
Fix image upload stalls18m
Which bucket should staging use? I found both file-host-staging and file-host-dev configured…
Question for you
T3
Review default experience plan9m
Plan is ready: 6 steps covering the composer toolbar defaults and the worktree fetch handlers.
Plan ready plan-ux-review
T3
Disable pairing codes by default12m
Done — pairing codes are now off by default behind a server setting. Plan and diff are up.
Done +214 −38
T3
iOS Simulator Remote Setup34m
The direct Simulator lookup still timed out after 120 seconds. Session ended with an error.
Failed gpt-5.6-sol
T3
Fix performance bottlenecks1d
Done — reduced CPU usage during long streams. github.com/pingdotgg/t3code/pull/3825
#3825 merged
FH
CLI File Hosting Options2d
Pushed. The private repo is live at github.com/t3dotgg/file-slop with all 6 commits on main.

How it works

Trade-offs

3Attention Tiers

Sort by who is blocked, not just recency. Threads waiting on you get pinned to a “Needs you” tier with inline actions; running work shimmers below it; everything else is a quiet recency list.

+
Needs you 3
Normalize open PR titles 2m
Approve: gh pr edit 3831 --title "fix(mobile): …"
Fix image upload stalls 18m
Asked: “Which bucket should staging use?”
Review default experience plan 9m
Plan ready: 6 steps · composer + worktrees
Running 1
Sidebar v2 UX Redesign 14m
Building HTML mockups — Write /tmp/t3code-sidebar…
t3code sidebar-v2-concepts fable-5
Recent
Disable pairing codes by default +214 −38 12m
iOS Simulator Remote Setup 34m
Default new worktrees from origin main 41m
Fix performance bottlenecks #3825 1d
CLI File Hosting Options 2d
Stress test long thread rendering 2d

How it works

Trade-offs

4Adaptive Density

One pure recency list, but rows change size with state: live threads render as rich cards with a spinner, current tool, and elapsed timer; settled threads collapse to slim one-liners. No sections, no tiers — the list breathes.

+
Normalize open PR titles ⏳ 2m
Wants to run gh pr edit 3831
t3code fix-pr-titles needs approval
Sidebar v2 UX Redesign 14m 22s
Write sidebar-v2-concepts.html
t3code sidebar-v2-concepts fable-5 now
Fix image upload stalls ⏳ 18m
“Which bucket should staging use?”
file-host your turn
Review default experience plan 9m
Plan ready — 6 steps
t3code plan-ux-review
settled
Disable pairing codes by default +214 −38 12m
iOS Simulator Remote Setup 34m
Default new worktrees from origin main 41m
Find current working directory 2d
Fix performance bottlenecks #3825 1d
Stress test long thread rendering #3822 2d
CLI File Hosting Options 2d
iOS Simulator Remote Setup 2d

How it works

Trade-offs

5Ops Grid

The power-user take: a dense two-line monospace ledger, like a fleet dashboard. Fixed columns — status word, branch, PR, diff, model — so your eyes learn positions, not layouts. Highest information per pixel.

+
Normalize open PR titles 2m
APPROVE gh pr edit 3831
Sidebar v2 UX Redesign now
RUN 14m ⌥ sidebar-v2-concepts fable-5
? Fix image upload stalls 18m
INPUT “which bucket for staging?”
Review default experience plan 9m
PLAN ⌥ plan-ux-review 6 steps
Disable pairing codes by default 12m
DONE +214 −38 ·12f ⌥ disable-pairing-codes
iOS Simulator Remote Setup 34m
ERR simulator lookup timeout 120s
· Default new worktrees from origin main 41m
+47 −12 ⌥ main-from-origin
· Fix performance bottlenecks 1d
#3825 merged ⌥ performance-fixes
· Find current working directory 2d
▮ term main gpt-5.6-sol
· Stress test long thread rendering 2d
#3822 open :5173 gpt-5.6-sol
· CLI File Hosting Options 2d
file-host main

How it works

Trade-offs

Shared decisions across all five

Locked in

Open questions