Skip to content

CmuxNext: a one-line status keeps a sidebar row one line - #20637

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
op-next-icons/status-visible
Oct 14, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
op-next-icons/status-visible

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

cg-design-judge's sidebar Thunderdome (Tact #115, 108 blind bouts on the cmux NEXT sidebar) reported two status bugs (items 1 and 4). Bead cx-npdew.

Item 4: a one-line status doubled the row (24 to 40 pt). By default a row draws reported status under the name, so one "Building" made the row two lines and the list's pitch jumped with state.

  • A row that would otherwise be one line keeps its height when its status is one line: one reported entry (cmux status set) or the hooks' status line.
  • The text moves to the dim slot on the right of the name's line, where the time sits in the badge styles. It truncates at 40% of the row; the name keeps the rest.
  • The hover card still lists every entry, and VoiceOver reads the text.
  • A richer block (several entries, a log line, a progress label) still draws under the name, as classic's status block does (cmux-next: draw workspace status, progress and log in sidebar rows #16431). So does a row where the user turned on another second-line element (folder, branch).

Item 1: status was invisible. On the current base this is already fixed, so this PR adds only guard tests:

Found while capturing, not fixed here: cmux status set run the moment a new tab's shell starts can fail with no terminal matches "term_...", because the tab's terminal is not registered yet.

In the app

Fleet DEV builds of base (64944d6a7586) and this head, same seed, dark theme:

status one-line before/after

Tests

SidebarStatusVisibleTests (new), at the mapping-to-row boundary (daemon store, SidebarMapping, layout, row view):

  • A one-line status, as an entry or as the hooks' line, keeps the row at 24 pt, with the text on the name's line right of the name.
  • A long status truncates at 40% of the row.
  • Guards: a status set --state busy row draws the busy glyph; a failure and a question draw theirs.

Changed fixtures:

  • SidebarMinimalModeTests reports two entries, so its "status draws under the name" case is still a block.
  • SidebarStatusGlyphCenterTests turns the folder element on, so its two-line row still has a second line.

Fleet receipts:

  • Red, test commit c58e0b1f4266 (light step eb97026c4827a440d64946ef): SidebarStatusVisibleTests fails on behavior. The rows are 36 and 40 pt, the subtitle and block draw, and nothing is on the name's line. The two guard tests pass on base, as expected.
  • Green, fix 3b99e2c34c4b (light step bb1d4c2e1d60f62e661aad25): SidebarStatusVisibleTests, SidebarStatusBlockTests, SidebarMinimalModeTests, SidebarStatusGlyphCenterTests and 291 other suites pass. The reds come from base:
    • AgentChatFromHomeTests and SettingsSchemaExportTests fail the same way on the red run.
    • The step's same-tree guard fired because the worker lacked this head's cmux-tui tree.
  • Release compile on 3b99e2c34c4b (isolated step 44e6d562aa26bc63d612b4cf): BUILD SUCCEEDED.

Review notes (Opus, no blocking findings):

  • With a corner or stack badge style, a row's one-line status takes the place of the dim last-change time, so that row shows its status instead of its age. On hover both fade under the more and close buttons, as the time did before.
  • SidebarStatusVisibleTests' doc comment says this change sends a status's state to the badge; base already did that (CmuxNext: sidebar rows badge their logo's corner instead of a count #20492). The two glyph tests guard that existing behavior.

Changelog

  • Fixed: In cmux NEXT, a one-line workspace status now sits on the right of the workspace's name in the sidebar instead of making the row taller.

Showcase

showcase

Open the live gallery

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ae1027eb-608e-4be5-961c-918e97478d7a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Not verified: macOS jobs did not run: compile and app tests were skipped on 3b99e2c34c; ci-status is green without them.

CI passes on 3b99e2c34c (run 38576460021 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

cg-design-judge's sidebar Thunderdome (Tact #115): status set --state busy
drew no glyph, and a one-line status doubled the row (24 to 40 pt).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo force-pushed the op-next-icons/status-visible branch from b2258f0 to 74ef747 Compare October 14, 2026 13:34
A one-line status on an otherwise one-line row (one reported entry, or
the hooks' status line) now sits dim on the right of the name's line,
truncated at 40% of the row, instead of a second line that grew the row
from 24 to 40 pt. A richer block (several entries, a log line or a
progress label) still draws under the name, as do rows with another
second-line element. The hover card lists every entry; VoiceOver reads
the text.

A status's state already reaches the row's badge on this base: busy
draws the grey spinner (the default row shows progress), and failed and
waiting draw their colored glyphs (#20492). The tests guard those.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo force-pushed the op-next-icons/status-visible branch from 74ef747 to 3b99e2c Compare October 14, 2026 13:58
teamleaderleo added a commit that referenced this pull request Oct 14, 2026
@teamleaderleo teamleaderleo changed the title CmuxNext: a reported status shows its glyph and keeps a one-line row's height CmuxNext: a one-line status keeps a sidebar row one line Oct 14, 2026
@teamleaderleo
teamleaderleo merged commit dcae5e9 into feat-cmux-next Oct 14, 2026
132 of 144 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-icons/status-visible branch October 14, 2026 15:09
@github-actions

Copy link
Copy Markdown
Contributor

cmux-next tour of 3b99e2c34c4b3f87302ba4369783e78f4b91acfa (run)

The tour job failed before the tour ran (build or setup); the run log has the output.

The tour produced no media.

Tours are data in scripts/cmux-next/media/tours: add a step or a tour file to show your feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant