[cx-ecv6xp] Make pane types and commands discoverable

Merged
TE
10d ago
+490-17

The pane creation affordance now explains and exposes what cmux can open. Pressing the pane + opens the existing native pane-type menu immediately with its catalog icons and shortcuts, while Terminal and Browser actions stay visible beside the tab bar, including when a chat is selected. The same menu ends with the localized “All commands…” action so a new user can browse every command without knowing its shortcut.

Gallery variants render the baseline plus, the chevron menu affordance, and the persistent Terminal/Browser controls using safe pane content. The gallery test writes the comparison contact sheet when CMUX_TEST_REQUIRE_GUI=1.

Relevant notes:

  • (v) and it should tell you what type of panes you can open up (browser, terminal, chat).
    Show the buttons
    Not obvious how to open a browser and terminal
    Autocomplete…
    Raycast, what to know exactly what u can do to do, all of the options you can do on cmux.. a need to see what you have to offer
    A lot of cool shit that no one knows about
    Cmux browser, no one knows about the shit
    App contains different panes
    Type of pane

Design reference matched: cmux-design-references/apps/claude/live/NOTES.md (global command palette, Cmd+K, and browser/terminal pane affordances) and apps/codex/live/NOTES.md (quiet layered navigation and centered controls). Menus open without an entry animation and retain the existing glass/theme treatment.

Changelog

Changed: pane creation controls and the pane menu now make available pane types and the command palette discoverable.

Validation at c987e6ff5fe5cbb2955e4563e0d5ede13a97fe4b: focused static prepush checks pass. Native PaneDiscoverabilityTests, PaneDiscoverabilityGalleryTests, and PaneToolbarBottomTests all passed in job ddbe38806cdea35c590a620a (artifact sha256:89e5a08a3578005e868f88539eefdafa72ea5e6bed4463f13c7abe1883e9abcc); the final-head app build and capture passed (job e6295e1f7b46d49150b4e298).

The browser-band toolbar now uses the same half-pane width cap as frame layout, with compression resistance below the window sizing priority so controls cannot widen the window. Creation buttons fold into the pane menu when space is insufficient; pinned controls that cannot fit return to the existing overflow menu. Regression coverage exercises 200/600/200-point widths in both a browser split and a window at Comfortable density, including unchanged pane width, retained tab space, nonoverlapping controls, and overflow action reachability. The previous run exposed the window growth before the compression fix. The missing try and nested #require compile errors are fixed.

The gallery fixture establishes launch readiness and pointer state before capture, and asserts visible strips and drawable plus glyphs. All three variants below render native controls. Persistent Browser/Terminal controls are selected because they remain discoverable at rest.

Pane creation variants

Review (codex gpt-6-astra xhigh, review-26132b): SHIP at c987e6ff5fe5cbb2955e4563e0d5ede13a97fe4b

Before (base 2910d2585b2b30a96f98f2faa0b09b15c1afa76c), captured from the built app with safe example content:

LightDark
Before lightBefore dark

After (head c987e6ff5fe5cbb2955e4563e0d5ede13a97fe4b), using the same scene:

LightDark
After lightAfter dark

Risk: the change affects pane creation clicks and tab-strip control layout; Option-click retains same-kind creation and existing pinned controls remain available.

Base failures: release-note validation and legacy appcast publication fail identically on the base run. The static convention failure names the unchanged CloudVmHost declaration; the pushed-commit gate reports no new violations.

Agent session: agent session