composer: the environment picker is This Mac and Cloud, one line each (carries #28999)

TE
5d ago
+627-485

Carries #28999 (Leo's commits, authorship kept) onto current feat-cmux-next, which it conflicted with, and fixes its own lint red.

Leo (2026-10-31): "bro this text is so fing stupid why the f IS THERE SO MUCH STUFF JUST A LITTLE CLOUD ICON OR FING THE SELECTION YOU KNOW WHATEVER WORKS JUST NOT THE FING EXISTING GAHHH"

What changed (from #28999):

  • The composer's environment picker is two one-line rows, This Mac and Cloud, as Codex's menu; the control shows just the icon and the current choice.
  • Design spec design/composer-menus.md and .github/design-surfaces.json updated with it.

Added here:

  • Merged feat-cmux-next. The one conflict was webviews/test/new-tab-warm-first-frame.test.ts: base's #29803 took New Worktree out of the location bar, so the warm first frame now starts atlas This Mac :: (both changes kept).
  • webviews/test/computer-picker-onboarding.test.ts formatted as vp fmt wants (the PR's own fast-gates red at c90b2af).

Risk: low; one web component (EnvironmentPicker) plus its tests. No Swift, no Chief paths.

Agent session: agent session

🤖 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

Redesigns the composer's environment picker to be two one-line rows — This Mac and Cloud — followed by the other machines under a hairline, as Codex's "Where should this chat run?" menu. Carries Leo's #28999 onto feat-cmux-next, keeping the two-row design against the branch's always-on picker and Cloud-as-destination changes.

Bug Fixes

  • Removes section headers, second lines, and setup rows; a search field appears only with eight or more machines. Sign in for Cloud stays after the Cloud row when signed out.
  • Moves the setup actions (New Cloud Machine…, Open Cloud…, SSH…, Add Machine…, Connect Phone…, Create/Edit environment) to the control's right-click menu; they stay in the palette, File menu, Settings, and Cloud page.
  • The control shows the current choice as its icon and short name; a started chat keeps its machine and its one move, one line each.
  • New Tab first-frame tests now read this Mac as "This Mac", and the gallery's chip face variant uses a small-radius rect.