Repository navigation
cmux-next sidebar: rows draw no status words; needs you is one yellow dot, never Done - #23767
Conversation
Leo 2026-10-21: "WHO BROUGHT BACK THE DONE AND THE TIMERS". #23390 drew the Priority view's chip word on every workspace row, Done included, beside the row's blue unread dot. A row now draws only a chip that asks for the user (needs you, failed, lost, Red CI); a finished chat keeps only its quiet unread dot. The Priority view itself keeps its Done chip. Test: SidebarRowNoDoneTests renders a row through the layout's row content with a Done chip and fails if any shown label or the accessibility label says Done. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16040-fd0b-7dd0-9487-1a3a198d9f5c&host=cosmic-gray
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Passes: CI passes on CI passes on Written by |
|
Bead |
|
Found 3 test failures on Blacksmith runners: Failures
|
|
|
|
Review (claude-opus subagent, correctness first): BLOCK at 746e08c What I checked (read-only, from git at base b2f5b94 and this head):
Finding (blocking, wrong behavior): the PR drops
Nits (not blocking):
|
… (review) Review of the previous commit: dropping Done after SidebarLaneStatus.chip picked the most urgent chat let an unread finished chat (tier 1) hide a failed or lost one in the same workspace, and hid a finished chat's Red CI, which ranks only over working and idle. The chip now drops a finished chat before the ranking and turns it into Red CI while its checks fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16040-fd0b-7dd0-9487-1a3a198d9f5c&host=cosmic-gray
|
Review (claude-opus subagent, correctness first): SHIP at 7bf4d23 I re-reviewed the whole PR (b2f5b94..7bf4d23, 6 files) by reading it in git, with no builds.
No new findings. One nit still stands: the row shows its age or one-line status where Done used to be. Timestamps are off by default, so no timer shows by default. |
… words Leo 2026-10-21, on a row with a blue dot beside yellow "Needs you": "why ISN'T THIS JUST A YELLOW DOT!?". By default a row's badge folded every wait into Ready, the blue dot (Lawrence 2026-10-18), and #23390 added the chip's word beside it. Now a wait of any kind (question, permission, auth) is the icon set's one yellow attention dot, in place of the blue dot, never beside it; an error or something unread stays the blue dot. The row draws no status words (needs you, failed, lost, Red CI, Done); the chip stays in the row's accessibility label only. Tests: SidebarStatusSimpleTests (waits are the yellow dot, also with unread items; needsYouIsTheYellowDot), SidebarRowNoDoneTests.aRowShowsNoStatusWords. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16040-fd0b-7dd0-9487-1a3a198d9f5c&host=cosmic-gray
|
|
|
Review (claude-opus subagent, correctness first): SHIP at d580586 Read the whole PR (b2f5b94..d580586) with the focus on the top commit. Nothing was built or run; this comes from reading the code at that sha.
Follow-up, not a blocker: needs you can still be lost. Nits, also handled by follow-ups:
|
|
Review (codex gpt-6.1-sol): BLOCK at d580586 Blocking finding:
Non-blocking finding:
Checked: all 10 changed files and three commits against merge base b2f5b94; traced lane ranking, activity merging, badge rendering, completion/unread state, accessibility and test coverage. Static review only; no app build or Swift test suites run. Re-read the live PR head immediately before posting; it is unchanged. |
…ys the yellow dot A workspace with a chat asking for the user and a failed or lost chat (or its own failed status) merged to error, which the simple badge draws as the blue Ready dot. With no "Needs you" word on the row any more, the question vanished (codex review of #23767). SidebarLaneStatus.merge now puts a waiting lane first, as the Priority view does. The rowStatus tunable and the accessibility comment now say the chip only reaches the label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (claude-opus subagent, correctness first): SHIP at 2c1275c Scope: the new commit 2c1275c in full, plus a re-scan of the whole PR diff against merge base b2f5b94. Read-only, built from source reading (no build run). The fix (SidebarLaneStatus.merge)
Compiles (by reading)
The test fails at d580586 and passes at 2c1275c
Existing tests
Behaviour notes (non-blocking)
Rest of the PR diff (re-scanned)
|
Conflicts: - SidebarLayout.swift: the loose rows keep the tree walk (treeRows) and take base's row limit (#23671): foldingDone gets limits:, and every negative entry (Done, Show N more) draws through appendFold. - WorkspaceRowContent.swift: treeFold/rollUp beside base's chip, which is now only for the accessibility label (#23767). - WorkspaceRowView.swift: base's subviews without elapsedLabel (#23812), plus treeFoldButton and rollUp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-88e4-7fc2-b58e-9a55abdaced8&host=cosmic-gray
|
Shipped in:
|
…ead the app as it is; transcript steps back to the tip's - HomeSidebarHeaderTests: the list compose is hidden by the header's layout, so the check runs after the first paint. - SidebarStatusGroupingTests: a row carries its lane state and chip only with sidebar.laneStatus and sidebar.rowStatus on (8f4e8f0), and a finished chat names no state (#23767), so it rests under Idle; the test turns both on for its rows. - AgentPaneTranscriptStepTests: back to the tip's version. Waiting for the events showed they never arrive (60 s, step c5307be82218d8c1fd44ad59): not a timing gap, left open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ead the app as it is; transcript steps back to the tip's - HomeSidebarHeaderTests: the list compose is hidden by the header's layout, so the check runs after the first paint. - SidebarStatusGroupingTests: a row carries its lane state and chip only with sidebar.laneStatus and sidebar.rowStatus on (8f4e8f0), and a finished chat names no state (#23767), so it rests under Idle; the test turns both on for its rows. - AgentPaneTranscriptStepTests: back to the tip's version. Waiting for the events showed they never arrive (60 s, step c5307be82218d8c1fd44ad59): not a timing gap, left open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…status default and the bar overflow (base reds) (#28563) * cmux NEXT tests: Group by Status reads the lanes with lane and row status on, by title theSectionsComeFromThePriorityClassifier (#20905) put every row under Idle: the row feed reads acpmux lanes only with sidebar.rowStatus and sidebar.laneStatus on, both off by default since 8f4e8f0 (Lawrence 2026-10-21). The test turns them on for its run, reads each row by its title (the fixture's workspaces have handle ids), and leaves out listed tab rows (sidebar.showWorkspaceTabs, on by default since f32ee25). A finished chat's row carries no Done chip (#23767: a row never says Done), so it sits under Idle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-63b9964940c20354b639 * cmux NEXT tests: the zoom toolbar harness gives the pane bar room for its buttons aZoomedPaneShowsALitZoomButton (:145) found Zoom in the bar's "…" menu: since #26132 a bar too narrow for a button hides it and "…" offers it, and the harness's bar had no frame (zero width), so every button overflowed. The harness now gives the bar a pane's 240 x TabStripView.preferredHeight frame, so the test checks what it meant: zoomed, the lit zoom button shows and "…" does not offer zoom a second time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-63b9964940c20354b639 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, on nightly 3a63d6d: "WHO BROUGHT BACK THE DONE AND THE TIMERS". Workspace rows showed a blue dot plus "Done" again.
Who brought it back: #23390 ("each row says when its agent needs you, finished or failed") drew the Priority view's chip word on every workspace row as the name line's trailing text, and that includes Done. (The "10m" timer and the blinking dot came from #22826. Those have their own PRs.)
Change: a row now draws only a chip that asks for the user: needs you, failed, lost, Red CI (
WorkspaceRowContent.rowChip). When a chat has finished, its row shows only the quiet unread dot it already had. The Priority view keeps its own Done chip. The Debug togglesidebar.rowStatusand its help text no longer mention done.Needs you is one yellow dot (Leo: "why ISN'T THIS JUST A YELLOW DOT!?"): by default a row's badge used to fold every wait into Ready, the blue dot (Lawrence 2026-10-18), and #23390 put the "Needs you" word beside it. Now any wait (question, permission, auth) shows as the icon set's one yellow attention dot, in place of the blue dot, never next to it. An error or something unread is still the blue dot. Rows show no status words at all: no needs you, failed, lost, Red CI or Done. The chip is kept only in the row's accessibility label. Tests:
SidebarStatusSimpleTests(now includesneedsYouIsTheYellowDot) andSidebarRowNoDoneTests.aRowShowsNoStatusWords.Ranking (review fix):
SidebarLaneStatus.chipnow drops a finished chat before it picks the most urgent one. Before, an unread finished chat could hide a failed chat in the same workspace. A finished chat whose checks fail still shows Red CI.Test:
SidebarRowNoDoneTestsbuilds a row from the layout's row content (where the chip is read) with a Done chip. It fails if any label on the row, or the row's accessibility label, says Done. It also checks that needs you still shows.SidebarRowStatusTests.aFinishedChatHidesNothingcovers the ranking.Capture
steps-006c458297at746e08c9bc89(fleet build, capture mini, text checked for private data). The lane fixture shows two finished rows, "Add dark mode icons" and "Polish the hover cards". At the base they say Done; here they don't. Failed and Needs you still show.Leo-ask: ask-c8936f0e52
Leo-ask: ask-02775c2ac1
Agent session: cosmic-gray
🤖 Generated with Claude Code