Skip to content

cx-39b5r: New Tab always lands on the New Tab page; drop the template dots - #20127

Merged
teamleaderleo merged 11 commits into
feat-cmux-nextfrom
feat-cmux-next-newtab-page-first
Oct 13, 2026
Merged

teamleaderleo merged 11 commits into
feat-cmux-nextfrom
feat-cmux-next-newtab-page-first

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

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.newTabKind setting ("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.newTabTemplate still 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 c261415: 243 suites passed, this one failed (descriptor(for: ["tabs", "newTabKind"]) returned the setting). Green on 5ac3dbf: 246 suites passed, including this one.
  • Same test, anOldNewTabOpensValueIsARetiredKey: the removed key is retired, so an old cmux.json still loads and settings.set answers "removed". Red on ae564d5 (isRetired false), green on 5ac3dbf.
  • webviews/test/new-tab-no-dots.test.ts: a host payload with templateSwitcher and defaultKind yields neither. Red on c261415 ("Received: true"), green on the head.
  • Gallery: the New Tab screen's no-template-dots play state asserts no dots and no Default toggle.
  • Release compile on 5ac3dbf: green.
  • Known red, not this PR: ActionRunCreatedTests.aCreatedTabThatNeverShowsStillAnswersRanBeforeTheDeadline (from Control: action.run lists created objects that show a publish late (cx-9ce.30) #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 in src/pages/changelog on base; vp fmt --check on this PR's files and vp check --no-fmt pass. ui-rules.test.ts passes.

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

teamleaderleo and others added 6 commits October 12, 2026 20:02
…ult toggle

Leo 2026-10-12: New Tab must never open a terminal by itself. Settings
offers no New Tab Opens row, and the page takes no template dots or
default-kind toggle from the host.

Red: bun test test/new-tab-no-dots.test.ts fails on base (templateSwitcher
received true).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Leo 2026-10-12: New Tab should always land on the New Tab page; opening a
terminal is an explicit pick, never automatic. tabs.newTabKind (Same Kind,
Terminal, Auto...) let Cmd-T on a terminal open a terminal; it is removed,
with its Auto memory and the page's default-kind toggle. A person's Cmd-T
and the strip's + always open the page; scripts keep the same-kind tab, and
New <Kind> Tab, New Terminal Tab and the page's choices stay explicit picks.

The template dots go too (fewer icons; the bottom area is rebuilt from the
composer next): the newTab.templateSwitcher tunable, the per-window
template memory and newTab.setTemplate. tabs.newTabTemplate stays in
Settings; its Terminal value draws the default screen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lery samples New Tab Position

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 13, 2026 03:11 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ab848316-8ee5-4a76-864a-23e69e21d002

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Unclear: web / react-apps-check failed: no known signature; failed step: Test webviews.

CI failed on 5ac3dbf292 (run 38342112364 attempt 1): 1 unknown.
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped.

Job Verdict Why
web / react-apps-check unknown no known signature; failed step: Test webviews

Not re-run automatically: web / react-apps-check is not a machine failure.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards failed on 5ac3dbf292 (https://github.com/manaflow-ai/cmux/actions/runs/38342112364). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally. This comment is updated in place on each push.

teamleaderleo and others added 2 commits October 12, 2026 20:17
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…esses New Terminal Tab

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 13, 2026 03:17 — with GitHub Actions Inactive
- regenerated plans/cmux-next/action-surfaces.json
- regenerated plans/cmux-next/actions.md
- vp fmt webviews/src/pages/changelog/JournalPage.tsx
- vp fmt webviews/src/pages/changelog/model.ts
- vp fmt webviews/src/pages/changelog/realNightlyFixtures.ts

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38340994296
@cursor

cursor Bot commented Oct 13, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

teamleaderleo and others added 2 commits October 12, 2026 20:30
AddHarnessHandler and the new AgentHandlers+Pane drop their New Tab kind records (the memory is gone).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 13, 2026 03:31 — with GitHub Actions Inactive
@blacksmith-sh

blacksmith-sh Bot commented Oct 13, 2026

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
test/agent-pane-no-capsules.test.ts/agent-pane-no-capsules.test View Logs
test/agent-pane-no-capsules.test.ts/agent-pane-no-capsules.test View Logs
test/model-chip-fresh-chat.test.tsx/model-chip-fresh-chat.test.tsx View Logs
test/model-chip-fresh-chat.test.tsx/model-chip-fresh-chat.test.tsx View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Hosted reds on 5ac3dbf, both on base: model-chip-fresh-chat.test.tsx ("a resumed or remote chat's chip does not guess a model") fails the same way on base 38e84db run locally; agent-pane-no-capsules.test.ts flags .acpmux-chip-skeleton-bar from 5f17347 (cx-ncc.58), which this PR does not touch. Gallery render shards were still pending at merge.

@teamleaderleo
teamleaderleo merged commit 6b7ab55 into feat-cmux-next Oct 13, 2026
123 of 125 checks passed
@teamleaderleo
teamleaderleo deleted the feat-cmux-next-newtab-page-first branch October 13, 2026 03:46
@github-actions

Copy link
Copy Markdown
Contributor

Gallery

Review in feed

800 states changed: agent-pane.transcript/long-code, agent-pane.artifact-panel/markdown, pages.settings/curated-art, agent-pane.subagents/open-many, pages.settings/general-group-2, ... · 16 new states · 32 removed states · 51 broken states · 94 play checks failed

Diff page and renders (the run's gallery-pr artifact)

State Before · after
agent-pane.transcript/long-code (Apple System Colors, webkit)
agent-pane.artifact-panel/markdown (Apple System Colors, webkit)
pages.settings/curated-art (Apple System Colors Light, chromium)
agent-pane.subagents/open-many (Apple System Colors, webkit)
pages.settings/general-group-2 (Apple System Colors Light, webkit)
pages.settings/general-group-2 (Apple System Colors, webkit)

794 more on the diff page.

Live preview (follows this branch; start it with scripts/gallery-live.sh up <branch> from an hq checkout):

  • agent-pane.transcript/long-code: /wt/feat-cmux-next-newtab-page-first/?entry=agent-pane.transcript#/agent-pane.transcript/long-code
  • agent-pane.artifact-panel/markdown: /wt/feat-cmux-next-newtab-page-first/?entry=agent-pane.artifact-panel#/agent-pane.artifact-panel/markdown
  • pages.settings/curated-art: /wt/feat-cmux-next-newtab-page-first/?entry=pages.settings#/pages.settings/curated-art
  • agent-pane.subagents/open-many: /wt/feat-cmux-next-newtab-page-first/?entry=agent-pane.subagents#/agent-pane.subagents/open-many
  • pages.settings/general-group-2: /wt/feat-cmux-next-newtab-page-first/?entry=pages.settings#/pages.settings/general-group-2
  • pages.settings/general-group-4: /wt/feat-cmux-next-newtab-page-first/?entry=pages.settings#/pages.settings/general-group-4
  • 180 more on the diff page

Play checks failed (0 px anchor movement, 0 layout shift, no frame over 33 ms unless the entry gives a reason):

  • agent-pane.artifact-panel/markdown (Apple System Colors, webkit): play: no element for button "Open preview"
  • agent-pane.artifact-panel/versions (Apple System Colors Light, webkit): play: no element for button "Open preview"
  • agent-pane.artifact-panel/versions (Apple System Colors, chromium): play: no element for button "Open preview"
  • agent-pane.dictation/hide (Apple System Colors Light, chromium): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.dictation/hide (Apple System Colors, chromium): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.dictation/hide (Apple System Colors Light, chromium): play: no element for menuitem "Hide Dictation Button"
  • 499 more on the diff page

507 nondeterministic states differed from a second render of the same head (a clock or fixture leak) and are not counted as changes.

5710 unchanged · base 3d90866 · head 5ac3dbf

teamleaderleo added a commit that referenced this pull request Oct 13, 2026
Fleet export-settings-artifacts.sh at 0635e3f, then strings:settings. Also drops base's stale
tabs.newTabKind rows (retired in Swift by #20127).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 13, 2026
…abs.newTabKind)

#20117 merged base with settings exports generated before #20127 retired
tabs.newTabKind, so the schema, MDM docs and settings strings listed it again
and gen-strings failed on its deleted catalog keys. Regenerated on the fleet
(export-settings-artifacts.sh, step cf9bc9137ebbd06489fe0146) and gen-strings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 13, 2026
…abs.newTabKind) (#20151)

#20117 merged base with settings exports generated before #20127 retired
tabs.newTabKind, so the schema, MDM docs and settings strings listed it again
and gen-strings failed on its deleted catalog keys. Regenerated on the fleet
(export-settings-artifacts.sh, step cf9bc9137ebbd06489fe0146) and gen-strings.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 13, 2026
…on (#20144)

* test(settings): tabs.hiddenButtons is a retired key; an old list loads without a diagnostic

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* settings: retire tabs.hiddenButtons; the pane's "…" lists every action

Nothing has read it since the hover "…" replaced the pane's buttons (#20119). An old file
loads without a diagnostic and settings.set says it was removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(pane toolbar): the New Tab page's "…" leaves the splits out (#20128)

#20128 dropped Split Right/Down from a New Tab page pane's "…" and left this expectation red on base.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* settings: regenerate the exports without tabs.hiddenButtons

Fleet export-settings-artifacts.sh at 324afbe, then strings:settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* settings: regenerate the exports on the merged head

Fleet export-settings-artifacts.sh at 0635e3f, then strings:settings. Also drops base's stale
tabs.newTabKind rows (retired in Swift by #20127).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(pane toolbar): follow base again; #20143 kept the splits in the New Tab page's "…"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 13, 2026
… (cx-cdcff)

6b7ab55 (#20127) removed the New Tab page's default-kind toggle and its
props; 3946abe (#19041) landed after it with the props and a play that
clicks .acpmux-newtab-default. 3bfa441 (#20159) fixed the typecheck by
dropping the props but kept that play, which clicks an element that no longer
exists. The play becomes a no-default-toggle check, matching #20127's intent.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
cmux-tui-merge-tree — 5ac3dbf2 Deployed Oct 13, 2026 by teamleaderleo via publish the merge tree #288
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant