cmux NEXT composer: one model button, Fast mode in its menu, no Reasoning dropdown

Merged
TE
17d ago
+1269-2066

The composer's model, effort and speed controls become one button, "Opus 5.5 Medium", which opens one menu. The menu has the harness rail and the models, then Effort ›, More models › and Account ›, and a Fast mode checkbox at the end. There is no separate Reasoning/Effort dropdown and no ⚡ bolt, and the button never shows a raw model id or the word "Reasoning".

  • Button text: the name comes from the picker catalog, then the session's own name, then a name derived from the id. Effort comes from the listed level, then the level's own name, then the chat's starting level; otherwise the button shows only the model.
  • One menu: the chip always opens the compact menu, so the modelMenu "full" mode is removed. The full picker is reached through More models › (and openPicker("Model")).
  • Fast mode: it is a checkbox row in the menu. FastToggle and its CSS are deleted.
  • Surfaces: the change covers chat, New Tab and anything that draws DefaultComposerChips. Home/Chief composers have no model control. The Chief editor's Backend settings form keeps its own dropdowns.
  • A started chat still shows no harness rail.

Changelog

  • Changed: The composer's model, effort and Fast mode controls are one button with one menu; the separate Reasoning dropdown and the ⚡ bolt are gone.

Observed / Not run

  • Ran: the vp fmt format check.
  • Not run: bun run check, any tests, or the gallery locally. Agents don't run bun, vite or playwright on this Mac, so CI and the gallery are the first runs.
  • About 40 tests and the gallery plays were rewritten for the one button. One was deleted, effort-slider-keys, because no composer draws the effort slider now. The standalone EffortPicker keeps its own tests.
  • Known follow-ups:
    • The reasoningSlider and reasoningSliderStyle debug settings now affect no composer.
    • The checkbox turns Fast mode on at the first tier only, with no Ultrafast step.
    • Codex shows "Fast mode" in place of "Service Tier".
    • The app's modelMenu Debug choice is dead until the Swift side drops it.

Agent session: cosmic-gray

🤖 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

Collapses the composer's model, effort and speed controls into one model button ("Opus 5.5 Medium") that opens a single menu. Removes the separate Reasoning/Effort dropdown, the speed bolt, and the full-picker chip mode; the full picker is reached through More models ›. Stays on top of #22667's inline-box and refocus changes after merging feat-cmux-next back in.

Details

  • Button text names the model from the catalog, then the session's own name, then a name derived from the id; effort comes from the level itself, then the chat's starting level, and never falls back to "Reasoning".
  • Every composer draws the compact menu; the modelMenu Debug choice is dead and reasoningSlider no longer affects any composer. Fast mode is a checkbox row of the menu; FastToggle is deleted.
  • The menu caps at the available height (rail and list scroll, rail tabs keeping their size as the list narrows) and stays inside the chat column's width, so a chip near a docked or narrow pane's edge never opens its menu past the column. Rows carry their own flex line, the plain footer's muted check reads the effort's ink, and the popup judge no longer flags the menu's own positioner under the rounded corner.
  • Covers chat, New Tab and all DefaultComposerChips; Home/Chief composers have no model control.

Notes

  • Ran vp fmt; a follow-up pass fixed the CI reds the first run found (tests reach the full picker by Cmd-Ctrl-M, gallery plays open Effort from the keyboard).
  • effort-slider-keys.test.ts deleted; about 40 tests and gallery plays were reworked for the one button.
  • Known follow-ups: Fast mode is first tier only, and Codex shows "Fast mode" instead of "Service Tier".