Sidebar groups: collapsed count, line under the header, on-color ink, one left edge (cx-w4q7j)

Merged
TE
22d ago
+1149-791

These fixes to the shipped Chrome-style group look come from the sidebar groups Thunderdome verdict (cg-design-judge, 2026-10-14, "Fixes to the shipped Chrome look"). All four judges agreed on them. Bead: cx-w4q7j.

What changes

  • A collapsed group says how many workspaces it holds. The member count follows the name in the header's ink. An open group shows its members instead, so it has no count. This replaces the old "No member count" header rule.
  • The members' line starts under the header bar. It used to start at the header's middle, so it ran under the bar and left a dark seam at the bar's rounded lower-left corner. It now starts just below the bar and ends rounded, like its bottom end.
  • Header text reads on every group color. Every glyph on the header (name, count, icon, pin, chevron, + and more) takes white or near-black, whichever has more contrast with the group's color. Before, the theme's text color came first, and on the dark green header in Apple System Colors dark it read grey on a muddy fill. Only sidebar group headers change. Other chips (ThemeTokens.chip with the default .theme inks) keep their ink.
  • The header name starts on the ungrouped rows' column. A group with an icon puts the icon on the ungrouped rows' icon column and the name on their text column. A group without one puts the name where ungrouped rows start. Headers and ungrouped rows now share one left edge, and members stay indented under the line. The verdict allowed either the member text column or the ungrouped column. I chose the ungrouped column because the member text column moves with whether members show an icon.

The light-theme palette point (Latte and Apple light get the same pastels) belongs to #20645, the theme group colors, so this PR leaves it out.

Tests

SidebarGroupChromeLookTests (new) checks each fix through the real SidebarView:

  • a collapsed header shows its member count, and an open one shows none;

  • the members' line starts under the header bar with round ends;

  • the header ink is white or near-black, whichever reads better on the bar, at 4.5:1 or more;

  • the header name starts on the ungrouped rows' column.

  • Red: the test commit comes first. A copy on the current base is op-next-icons/group-chrome-look-red.

  • Green: the fix.

  • Fleet results: to be added.

  • Release compile: green on the fix before the base merge.

  • Local checks: crash ratchet and system-blue pass. Concurrency and god-file report only base files this PR does not touch.

Captures

Fleet DEV builds of base (e5aa9a9) and this head (e6dd18c), one window, sidebar crops at 3x. The later review-fix commit 4a44c48d only changes narrow sidebars, so these stills still show this look. The sidebar holds an ungrouped notes (selected), Backend (blue, collapsed, 2 workspaces) and Frontend (green, open, 2 workspaces). No row is hovered.

What to look for, left (base) to right (this PR):

  • Collapsed Backend shows its count, 2, after the name.
  • Frontend's green line starts below the header bar, with a gap and a round end, instead of running under the bar's lower-left corner.
  • The header names start on the ungrouped rows' leading column, under the notes icon.
  • The header text takes white or near-black, whichever reads better on each bar.

Apple System Colors Light

Sidebar groups before and after, Apple System Colors Light

Apple System Colors (dark)

Sidebar groups before and after, Apple System Colors dark

Catppuccin Latte

Sidebar groups before and after, Catppuccin Latte

Changelog

Changed: Sidebar group headers show a collapsed group's workspace count, start their color line under the header, keep high-contrast text on every group color, and line their names up with ungrouped rows.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Applies the sidebar groups Thunderdome verdict fixes to the shipped Chrome-style group headers: a collapsed group shows its workspace count, the members' line starts just below the header bar with rounded ends, header glyphs take white or near-black on-color ink at 4.5:1, and the header name aligns with the ungrouped rows' column. The collapsed count drops when a narrow sidebar leaves no room for it beside the trailing controls; SidebarGroupChromeLookTests covers each fix through the real SidebarView, and the palette test now expects on-color inks.

Also in this PR

  • Channels view: when link resolution fails (Cloud conversations), the page opens a known conversation's message link itself, paging to the message and opening its thread.
  • Linux pooled acpmux agent hosts no longer spin at 100% CPU reading their own record (inotify entry mask instead of notify's).
  • The cmux-tui build identity moved into a leaf crate so an edit no longer recompiles cmux-remote; the identity value is unchanged.
  • Nightly CI initializes the ghostty-next submodule before the bundle notice check, so accepted builds no longer get skipped.
  • The frame-strip report became an NSWindow extension to satisfy the package conventions lint.
  • Home channels run cards are now an inline disclosure with steps on an indented rail.
  • The Chrome tab strip tween is reverted pending an app-ffi release fix.

Showcase

showcase
showcase
showcase

Open the live gallery