cmux NEXT sidebar: machine mark in the trailing column, status-mark size, one neutral colour

TE
5d ago
+102-18

Leo, 2026-11-01, on a screenshot of the cmux NEXT sidebar where Cloud workspaces show a tiny tinted cloud glyph before the name:

"WHY ARE THE CLOUD ICONS LIKE THIS ON THE LEFT WHO DID THIS"
"I HATE HOW SMALL THEY ARE, I HATE THAT THEY'RE ON THE LEFT, I HATE THAT THEY'RE ON THE BOTTOM"

Introduced by #22763 (0038f3eecf19: the row mark at textX + labelInset, tinted with MachineColor).

What changed

The workspace row's machine mark (machineMark) moves out of the text column into the trailing status column, per design/grid.md §5.4 (trail) and design/sidebar.md (the single sidebar grid, no local row geometry):

  • Place: in the trail column's ordering, right to left: column mark, status, muted bell, machine mark, usage-warning triangle. A row with no status, badge or warning gives the column itself to the machine mark (layoutColumnMark, after the triangle), centered on trailingColumnCenterX as the spinner and the triangle are. The title now starts on the row's text column again and runs to the mark.
  • Size: a status mark's box (statusGlyphFrame, SidebarStyle.statusGlyphSize, the spinner's and triangle's), and the image is drawn at that size.
  • Centre: the row's centre line (cy, through statusGlyphFrame), pixel-snapped.
  • Colour: one neutral colour for every machine, Palette.textTertiary (the muted bell's). No per-row MachineColor tint; SidebarMachineMark.color goes since nothing else read it. Machine colours elsewhere (tabs, chip, palette, hover cards) are untouched.
  • Hover: the mark gives way to the close/more/pin controls the way the other trailing marks do (the column mark through placeCloseSpot, otherwise the existing cover loop).

The mark is shared by every machine kind, so ssh and local (sidebar.showLocalMachine) machine marks move and lose their tint along with Cloud's. Nothing else is removed: the machine's name in the row label, the show/hide rules (more than one machine listed; this Mac's rows only with sidebar.showLocalMachine) and every other trailing mark stay as they were.

Tests

SidebarMachineMarkTests (CmuxNextAppTests) gains three row-view tests:

  • the mark sits right of the title, in a statusGlyphSize box (not smaller than the row's marks), with midY on the row's middle and midX on the trailing column (within 0.5 pt), for a Cloud and an ssh row; this Mac's row stays unmarked;
  • two machines' marks get the same tint, which is not the machine's MachineColor;
  • on hover, the mark never draws under a visible close/more control.

No existing test pinned the old left placement or the tint.

Risk: small, one component (the workspace row's trailing layout). Marked rows give their title back the room the leading mark took.

Agent session: agent session

🤖 Generated with Claude Code