Composer model menu: the Account switcher is back (Cmux under a Provider heading)
Leo, 2026-10-29: "Why the f*** did you remove the f***ing account switcher?"
What happened
#27151 ("Picker: choose Cmux as a provider, not an agent harness") renamed the composer model menu's Account row to Provider. Its order was "user should pick harness, and change provider to cmux"; nothing asked for the Account row to go. The account choices were still inside, but the row the composer had called Account (CLI login, Work Max, ā¦) no longer said Account, so the switcher read as gone. Leo's later relayed ask (ask-067e9aa217) still wanted "accounts and variants inside" each harness.
Takes back #27151: only its renaming of the composer's Account row to Provider (and the gallery/test selectors that followed it), because Leo asked for the account switcher back; #27151's Cmux-as-provider choice stays, under a Provider heading inside Account.
What changed
- The composer model menu's account row is Account again (
picker.account, already translated in all 21 locales), in the submenu and inline layouts. - Cmux routers (
cmux-router,local-coderouter) stay in that submenu, now under a Provider heading by default, so "change provider to cmux" still reads as a provider choice. Nothing is removed: the same rows, the same route callback, refusal handling and the model-offer Provider row (providers: "row") are unchanged. - Gallery plays and the Playwright layout test look for the Account row again.
Test
webviews/test/model-menu-compact.test.tsx: new test "the composer keeps its Account switcher, with Cmux routers under a Provider heading", and the existing route tests open the Account row again.
- Red, test commit
fb83d868da8with base's menu:bun test test/model-menu-compact.test.tsx33 pass, 8 fail (every Account-row test, including the new one: no row starts with "Account"). - Green, head
0e42761fbb5: 41 pass, 0 fail.src/agent-session/acpmux/QuickModelMenu.test.tsx29 pass.vp fmt --checkandvp lintclean on the changed files.
Risk
Low: a label and default grouping in one web menu. Any selector that looks for /^Provider/ on this row would miss; the repo's gallery plays and tests are updated.
Gallery: agent-pane.model-picker/started-chat-accounts, agent-pane.model-picker/quick-menu-many-profiles, new-tab.quick-model-menu/provider-submenu
Changelog
Fixed: the composer's model menu shows its Account switcher again; Cmux providers sit under a Provider heading inside it.
Agent session: agent session
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Restores the composer model menu's Account switcher, which was unintentionally hidden when #27151 renamed the Account row to Provider.
- The Account row is back in the submenu and inline layouts, using the already-translated
picker.accountlabel. - Cmux routers stay inside the Account submenu under a Provider heading, so choosing Cmux still reads as a provider choice.
- Gallery plays and Playwright layout tests target the Account row again.