You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Sidebar rows in fixed columns: location, role, provider, model, effort, name, time, work, usage #19
an empty caret slot (w-4), provider icon, model label plus effort (max-w-[6.5rem], hidden below a 16rem container), then the title (flexible, truncates);
then trailing: a count, elapsed time, and a status mark (w-3.5).
It has no location icon.
Subagent rows (SidebarBackgroundWorkRows.tsx ~157–215) use the same order, with the worktree icon in the caret slot.
Widths. Only the caret and status slots are fixed (SidebarColumns.tsx). The trailing group sizes to its content, so time and status don't line up.
The Activity view (the default sidebarMode) is a 3-line card with no model or effort. LegacySidebar.tsx is off by default.
Effort labels come from each provider's catalog label (formatModelSelectionEffort, threadExecution.ts ~171), and there is no short form. Model names already have a short form (shortModelNames).
Proposed
One shared column definition (extend SidebarColumns.tsx), used by top-level rows and subagent rows alike. Fixed ch-based widths for location, role, provider, model, effort, time, work icon and usage. The name takes the remaining space and truncates.
Effort short labels: Low, Med, High, XHigh, Max, plus the provider's extras such as Ultra.
Narrow sidebars: columns drop out in a fixed order. Open decision: which go first, for example usage, effort, then model.
Activity view: decide whether it also gets the column row or keeps its card layout.
Owner example (2026-10-13): expand carets break the hierarchy alignment. In the ePC-SAFT project, rows with an expand caret (›/⌄) and rows without one start their content at different horizontal positions. Worktree icons, provider icons and model names then don't line up across sibling rows and levels, so the parent/child hierarchy is hard to read.
Requirements for this issue:
The caret gets its own fixed-width column, reserved even on rows with no children, so every row at the same depth starts its icons and text at exactly the same x position.
Each nesting level indents by one fixed step, the same for top-level threads, app-owned child threads and native subagents.
Merged to main in fb389ff (4 commits), after one independent Opus review, two fix rounds, a re-verification and a live sandbox check.
Columns (Sidebar rows in fixed columns: location, role, provider, model, effort, name, time, work, usage #19): Projects-view rows, child rows and native subagent rows share one column definition: caret · location · role · provider · model · effort · name · time · work · usage. The caret column is reserved on rows without children. Each level indents by one fixed 12px step. On a narrow sidebar the columns drop in the order usage, effort, model. Activity keeps its cards, and search rows keep their layout. The tree guides, hidden-task counts and classic style (Codex-style sidebar off) are kept.
Sandbox check: measured on a live orchestrator → child → native-subagent tree. Leading columns line up within each depth (+12px per level); count, time and status line up across all depths. Times are compact ("6s", "3m") and don't overlap the status mark. Titles are 12px.
Default 16rem sidebar: model, effort and usage are hidden, and the title keeps about 11 characters. At 20rem: model. At 24rem and wider: model, effort and usage (for example "Haiku 5.5 · Med · … · 145k").
Usage (Show each thread's token usage next to its status icon #17): the number is the latest turn's tokens; the tooltip shows input, cached, output, context fill and thread total. The server keeps a small per-thread summary (fork migration 11), sent to clients at most every 5 s during a turn and immediately on turn start or completion. That's about 190 bytes per thread. A Claude turn that ends without a final result keeps its partial count.
Tests: about 181 focused tests; tsc-rs is clean for server, web, contracts and client-runtime.
Activity
tannerpolley commentedon Oct 13, 2026
Owner example (2026-10-13): expand carets break the hierarchy alignment. In the ePC-SAFT project, rows with an expand caret (›/⌄) and rows without one start their content at different horizontal positions. Worktree icons, provider icons and model names then don't line up across sibling rows and levels, so the parent/child hierarchy is hard to read.
Requirements for this issue:
Related: duplicated grandchild rows in the same screenshot are tracked separately.
tannerpolley commentedon Oct 13, 2026
Owner decisions (2026-10-13):
tannerpolley commentedon Oct 14, 2026
Merged to main in fb389ff (4 commits), after one independent Opus review, two fix rounds, a re-verification and a live sandbox check.
Ships in the next build after v2.12.1.
fix(web): sidebar columns get breathing room and millions read as M