cmux NEXT sidebar: a workspace row has no second line of its own

Merged
TE
6d ago
+157-37

Leo, 2026-10-30, of a sidebar row titled "claude-sr2-coord" over "local Ā· claude-sr2-coord":

"subagents shouldn't be tab-named the exact same as the parent. and we dont want that subtitle text"

and, asked which subtitle he meant:

"and yes ofc remove the second line a)"

The tab-name half is #28497. This PR is the second line.

What was wrong

A compact or comfortable workspace row's second line (WorkspaceRowContent) always led with:

  • the computer, for another machine in the one-list sidebar ("local" in his screenshot is a machine of that name);
  • its folder there;
  • a Cloud machine's stage;
  • the first line of the workspace description.

This happened whatever sidebar.workspaceRow showed, so "claude-sr2-coord" sat over "local Ā· claude-sr2-coord".

What changes

  • The row's second line now holds only the second-line elements the person turned on (Settings → Sidebar → workspace row: folder, branch, process, status, ports, last activity; none by default). A default row is one line.
  • A one-line status moves up to the name's line, as it already does on local rows.
  • Kept as they were:
    • the computer, in the row's machine mark, its hover card, and its accessibility label (which still names it once);
    • the description, in its hover card;
    • the expanded density's own meta line (computer, stage, pull request).
  • Nothing else changes.

Sidebar rule written into plans/cmux-next/sidebar-owner.md, and the commit carries a Sidebar-Look: trailer (prepush sidebar gate: 0 findings).

Tests

  • SidebarNoSecondLineTests:
    • a remote row with a folder, description and stage draws no second line by default;
    • turned-on elements still draw, without the computer coming back;
    • the expanded row's meta line keeps the computer.
  • Updated where they asserted the old line: WorkspaceNotesTests (the description is in the hover card), SidebarMachineMarkTests (named once, no second line) and SidebarRowLineSpacingTests (its two-line row now turns on the folder element).

Screenshots

Fleet capture: showcase, a one-list sidebar (sidebar.groupByComputer false) with a workspace "api" on Cloud machine "demo-cloud" (debug.cloud_machine_fixture {sidebar:true}). Before is base df3ee368, after is a2409869.

LightDark
Before: "api" over "demo-cloud"before lightbefore dark
After: "api" on one lineafter lightafter dark

The row keeps the "cmux" row's pitch, the Cloud mark stays before "api", and nothing else in the sidebar or the window moves.

Viewed after image: yes
Visual verdict: SHIP: a workspace row is one line; its computer stays in the Cloud mark, and nothing else moves.

Reproduce with cmux-ci capture SHA --state scripts/cmux-next/media/states/sidebar-remote-row-oneline.json (added in this PR).

Compile-check at a2409869 (CmuxNext and app): passed. The commits after it change two doc comments and add that state file, no code.

Risk: a visible default change to every workspace row's second line, the change Leo asked for. Not structural (row geometry and layout are unchanged), so no dogfood hold.

Agent session: agent session

šŸ¤– Generated with Claude Code