cmux-next sidebar: each row says when its agent needs you, finished or failed (the Priority view's words)
Slice S1 of Leo's sidebar-organization ask (item A, status on each row). Built on #20956 (lane status) and #22907 (manual order only).
What changes
Each workspace row now names the state of its most urgent agent chat on this Mac, using the Priority view's words: Needs you, Done, Failed or Lost. The word sits at the right of the row's name, in the chip's color: attention for needs you, danger for failed or lost, dim for done.
- One classifier. The state comes from
AgentPriorityRanking.statewith the same read marks (AgentPriorityMarks). Marking a chat read in the Priority view clears its row too. - Working and idle add nothing. The row's working mark and elapsed time already say working.
- Manual order is untouched. No row moves.
- Placement. The word takes the name line's trailing slot: it beats an expanded row's age and a one-line status there. The hover card still lists every status entry. Minimal mode draws no word.
- Toggles. Debug toggle
sidebar.rowStatus, on by default.sidebar.laneStatus(the status mark follows the chat's acpmux lane) is now also on by default; coord-deputy approved that change. - Capture fixture. A new Debug toggle,
sidebar.laneFixture(off), gives every row a sample agent state. A capture slot runs no agents, so this is how the capture below shows the states.
Capture
The six rows were created by the capture steps, then sidebar.laneFixture gave them sample states.
Capture steps-84793f686e at 2e2b226f0585 (fleet build, capture mini, text checked for private data)
| Light | Dark |
|---|---|
![]() | ![]() |
Tests
Tests/CmuxNextAppTests/SidebarRowStatusTests.swift (committed first at bf093aa4):
- default chips (needs you, failed, done; none for working or idle)
- the chip takes the name line's slot
- read marks clear it
- the status mark follows the lanes by default
- toggle off
- manual order kept
SidebarLaneStatusTests.withLaneStatus now sets off explicitly, because the default is on.
Observed / Not run
- Ran:
scripts/cmux-next/prepush-gate.py: no new violations.- Fleet
compile-check --app: passed on c00d1213, 1fbe5d6c and 87faea40 (Linux pool). An earlier fleet macOS build showed an actor-isolation warning inSidebarLayoutMetrics; ef0ce1a removed that call. - Independent reviews: BLOCK at 1fbe5d6 (the isolation call) and at ef0ce1a (the test helper), both fixed; SHIP at 2e2b226.
- Not run locally: the suites (no builds on this Mac). They run in this PR's CI. Two red runs never reached them: one on the red test commit and one on a scratch branch, both stopped by base test-target compile reds (fixed by #23386 and #23362) before my suites ran.
- Base red, not mine:
defaults-snapshot(menu-action guard). It fails on base inFileExplorerSectionView.swiftand passes on this branch.
Changelog
- Added: Sidebar rows say when an agent needs you, finished or failed, using the Priority view's words.
Agent session: cosmic-gray
🤖 Generated with Claude Code

