cx-39b5r: New Tab always lands on the New Tab page; drop the template dots
Leo asked (10-12): New Tab should always land on the New Tab page; a terminal opens only when you pick one. The five template dots above the composer go too.
What changed
- Cmd-T, + and the strip's empty area always open the New Tab page. The
tabs.newTabKindsetting ("New Tab Opens": same kind, terminal, browser, agent, auto) is removed, with its per-window memory of the last kind. That setting is what made Cmd-T skip the page and open a terminal. - The five template dots and the "Default: kind" toggle on the classic page are gone, with their host fields, requests and strings.
tabs.newTabTemplatestill picks the style in Settings. - Settings exports, MDM docs and the settings strings are regenerated from the fleet export. e2e scripts no longer pin the removed setting.
A follow-up PR rebuilds the area where the dots were from the agent composer's pieces (input, attachments, harness and model picker), so New Tab and the composer read as one thing.
Tests
NewTabAlwaysPageSettingTests(Swift): Settings offers no New Tab Opens choice. Red on c2614150e499: 243 suites passed, this one failed (descriptor(for: ["tabs", "newTabKind"])returned the setting). Green on 5ac3dbf2924e: 246 suites passed, including this one.- Same test,
anOldNewTabOpensValueIsARetiredKey: the removed key is retired, so an old cmux.json still loads andsettings.setanswers "removed". Red on ae564d5bdceb (isRetiredfalse), green on 5ac3dbf2924e. webviews/test/new-tab-no-dots.test.ts: a host payload withtemplateSwitcheranddefaultKindyields neither. Red on c2614150e499 ("Received: true"), green on the head.- Gallery: the New Tab screen's
no-template-dotsplay state asserts no dots and no Default toggle. - Release compile on 5ac3dbf2924e: green.
- Known red, not this PR:
ActionRunCreatedTests.aCreatedTabThatNeverShowsStillAnswersRanBeforeTheDeadline(from #20107) races its 2 s deadline on fleet minis; it passed once and failed three times across these heads, which do not touch control routing. Filed as cx-6ynqg. bun run check: the only failure is formatting insrc/pages/changelogon base;vp fmt --checkon this PR's files andvp check --no-fmtpass.ui-rules.test.tspasses.
Review
A review subagent ran on the diff. Applied: the dots' motion test (new-tab-list-motion.test.ts) is removed with the dots; tabs.newTabKind is a retired key; the pane-tab-bar e2e presses New Terminal Tab (Ctrl-`) so the user path still runs. Not in this PR: two older paths still open a terminal (Cmd-T in a workspace with no pane yet, and a tab group's New Tab on a group with no tabs), filed as cx-hvc57.
Changelog
- Changed: New Tab always opens the New Tab page; it never opens a terminal on its own, and the template dots are removed.
🤖 Generated with Claude Code