Repository navigation
cmux-next: generic New opens the New Tab page; chat titles, New chat focus, tooltips, hover card - #17508
Conversation
…as no repeat row Regression tests for two cmux-next bugs: an unprompted chat titled after its harness profile (claude-sr, claude-sr-1) and a one-tab workspace hover card that repeats the tab's line under the total. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Red: tabs.newTabKind defaults to the New Tab page, and a blank agent chat may run newTab.page (its empty state's New) but no other app action. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Red: a hovered control's tooltip shows after a short delay, at once when moving along the rail, and is shifted inside the window's edge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
acpmux names a session after its harness profile (claude-sr, claude-sr-1). An unprompted chat showed that name; it now reads New chat, and a generated name also covers the profile's family and fork names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the total Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e the window Native title tooltips in the web view waited about a second, drew at the pointer and ran past the pane's edge (More: c...). One in-page tooltip now shows every title. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s a chat Leo: "WHY IS IT EVEN NEW AGENT WHERE IS NEW TAB". tabs.newTabKind now defaults to the New Tab page (Cmd-T, the strip's +), a person's new workspace (Cmd-N, sidebar +, the empty workspace's New) opens on the page instead of a blank chat, and the agent empty state's New opens the page. Only agent-labeled actions (New chat, New Agent Chat) start a chat. New chat in the pane focuses the composer, and on a chat that is still empty it focuses that chat instead of starting another session. The pane installs its tooltips. 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>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
…s its name The UI rules keep widget roles and key handlers in src/ui. Moving a title to the tooltip now gives a control with no other name that title as aria-label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt-polish # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/pane.js # webviews/src/agent-session/acpmux/App.tsx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t New Tab The tree can list a new workspace's first tab before the creation reply registers it as a New Tab page; a pane showing it in between built a plain Agent Chat. The reply now turns that sessionless chat into the page. Tabs showing the page are titled New Tab until they become a chat. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pane's build concatenates its CSS by hand, so desktop.css (imported by desktop.ts) never reached it and every label was selectable. It now opens the stylesheet; fields and .selectable transcript content still select. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#17347 made the New Tab page chat-first. #17508 puts the default and the entry points back on the page; this puts the page itself back to its state before #17347 (R86/N4/N5/R81): - One field, placeholder "Search or type a URL" in every locale. - No project row (project chooser and Import and sync) above the field. - Enter on an empty field opens nothing. - The bar lists tabs, workspaces, sessions, folders, commands and history, not app actions or files. Layout A shows the agent chip again. - plans/cmux-next/new-tab.md states the `page` default again. The agent chat (composer project chooser, `!` conversion, the hero's New and Import buttons and #17508's New -> New Tab page) is a different surface and stays as it is. Typed file:// URLs still open in the file viewer. Bundles rebuilt with build-agent-pane-web.sh; strings.json regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A WKWebView's tracking areas ignore alpha and hit testing, so the spare parked at alpha 0 over the content kept hovering its Recent chat cards and setting the cursor under the chat a card had just opened. It now waits at the content's size but far outside it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot 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. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… filter + dispatch) Runs the 9 ignored tests in cmux-browser-host/tests/chromium.rs against the Playwright Chromium pinned in tests/browser-parity. Never a required check. No schedule: GitHub runs schedules only from main, which lacks the crate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* test(webviews): cover composer project location chrome Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(webviews): polish composer location controls Use the shared inline location treatment for recent project folders, add path descriptions and Browse, and style the portaled computer menu with the pane font and compact checkmark. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * build(webviews): refresh agent pane bundle Regenerate the tracked agent pane resources so the composer picker changes ship in the native pane. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * style(webviews): format composer location picker Apply the repository formatter to the composer location picker and refresh its tracked agent pane bundle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(webviews): keep project picker behavior while polishing chrome Keep existing new-chat project selection behavior while matching the composer location row, showing project paths in the menu, and retaining Browse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(webviews): align location chevrons and preserve root projects * build(webviews): regenerate agent pane bundle after rebase * fix(webviews): preserve project picker text semantics * Regenerate agent pane bundle after merging feat-cmux-next --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/ar.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/bs.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/da.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/de.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/en.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/es.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/fr.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/it.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/ja.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/km.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/ko.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/nb.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/pl.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/pt-BR.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/ru.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/th.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/tr.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/uk.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/vi.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/zh-Hans.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/locales/zh-Hant.js # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/pane.js # schemas/settings/settings-schema.json
# Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Resources/agent-pane/pane.js
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37419038846 at 416b268 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37419044566 at f5cef26 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
points back on the page; this puts the page itself back to its state before - One field, placeholder "Search or type a URL" in every locale. - No project row (project chooser and Import and sync) above the field. - Enter on an empty field opens nothing. - The bar lists tabs, workspaces, sessions, folders, commands and history, not app actions or files. Layout A shows the agent chip again. - plans/cmux-next/new-tab.md states the `page` default again. The agent chat (composer project chooser, `!` conversion, the hero's New and Import buttons and #17508's New -> New Tab page) is a different surface and stays as it is. Typed file:// URLs still open in the file viewer. Bundles rebuilt with build-agent-pane-web.sh; strings.json regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
points back on the page; this puts the page itself back to its state before - One field, placeholder "Search or type a URL" in every locale. - No project row (project chooser and Import and sync) above the field. - Enter on an empty field opens nothing. - The bar lists tabs, workspaces, sessions, folders, commands and history, not app actions or files. Layout A shows the agent chip again. - plans/cmux-next/new-tab.md states the `page` default again. The agent chat (composer project chooser, `!` conversion, the hero's New and Import buttons and #17508's New -> New Tab page) is a different surface and stays as it is. Typed file:// URLs still open in the file viewer. Bundles rebuilt with build-agent-pane-web.sh; strings.json regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-no-godfiles failed on AgentTabs.swift after #17508 (411 lines, 4 top-level types). AgentTabCreated, AgentSessionBindOutcome, NewTabPageIDs and the displayName extension move to their own files, unchanged; access levels and behavior are the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
points back on the page; this puts the page itself back to its state before - One field, placeholder "Search or type a URL" in every locale. - No project row (project chooser and Import and sync) above the field. - Enter on an empty field opens nothing. - The bar lists tabs, workspaces, sessions, folders, commands and history, not app actions or files. Layout A shows the agent chip again. - plans/cmux-next/new-tab.md states the `page` default again. The agent chat (composer project chooser, `!` conversion, the hero's New and Import buttons and #17508's New -> New Tab page) is a different surface and stays as it is. Typed file:// URLs still open in the file viewer. Bundles rebuilt with build-agent-pane-web.sh; strings.json regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
points back on the page; this puts the page itself back to its state before - One field, placeholder "Search or type a URL" in every locale. - No project row (project chooser and Import and sync) above the field. - Enter on an empty field opens nothing. - The bar lists tabs, workspaces, sessions, folders, commands and history, not app actions or files. Layout A shows the agent chip again. - plans/cmux-next/new-tab.md states the `page` default again. The agent chat (composer project chooser, `!` conversion, the hero's New and Import buttons and #17508's New -> New Tab page) is a different surface and stays as it is. Typed file:// URLs still open in the file viewer. Bundles rebuilt with build-agent-pane-web.sh; strings.json regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Leo's 2026-10-05 dogfood batch for the agent pane and its New entry points.
A generic New opens the New Tab page. Every "New" that doesn't say "agent" used to open a blank agent chat. Leo: "WHY IS IT EVEN NEW AGENT WHERE IS NEW TAB". Now each one opens the New Tab page, where you pick an agent, terminal or browser. Only agent-labeled actions start a chat directly.
newTab.sameKind(followstabs.newTabKind)agentdefault)pagedefault)newTab(New Workspace)EmptyWorkspaceView→openFirstPageaction.runpalette.newAgentChat,chat.newnewSurface,openBrowserA
tabs.newTabKindset in cmux.json still wins."agent"keeps the old Cmd-T behavior.New chat gives feedback and stops piling up sessions. acpmux names a session after its harness profile (
claude-sr,claude-sr-1). The pane showed that name for any chat that hadn't been prompted yet, and each New chat click on an empty chat started another one. Chats now take their title from the agent's title, then the first prompt, else "New chat", never the launch command. This covers Search chats and the Home lists; #17504 has since moved the chat list to the window sidebar. New chat focuses the composer. On a chat that's still empty it focuses that chat instead of creating a duplicate.Tooltips. The pane used native
titletooltips. They waited about a second, drew wherever the pointer was, and ran past the pane's edge ("More: c…"). One in-page tooltip (webviews/src/ui/titleTooltips.ts) now shows every title in the pane: after 350 ms, immediately when moving between controls, flipped and shifted so it stays inside the window. An icon-only control keeps its title as itsaria-label.Workspace hover card. A one-tab workspace listed its only tab ("~ 0.0% · 7.8 MB") under the total line that already said the same thing. The per-tab rows now show only when a workspace has more than one tab.
Not in this PR:
Testing
Red before green for each fix: the test commits come first.
bun testonsessionList.test.tsandtooltips.test.tsran locally. On the test commits: 3 fail and 1 error (the tooltips module was missing). With the fixes: 41 pass, 0 fail, includingSessionSidebar,searchChatsandhomeLists.vp check(format, lint, types) is clean on the changed webview files.build-agent-pane-web.sh --checkreports the bundle is current after mergingfeat-cmux-next, andcheck-webviews-react-compiler.mjspasses.NewTabKindTests,NewTabKindSettingsTests,AgentPaneNewTabTests.aChatCanOpenTheNewTabPageAndNothingElse,ResourceAggregatorTests.aLoneTabIsNotRepeatedUnderTheTotal. CI runs them. The MDM and settings-schema exports were edited by hand to the new default, andManagedPreferencesManifestTestsandSettingsSchemaExportTestsin CI check that.5ef4ccd. That run's only failures were the stale settings-schema hash, fixed inc53a181, and a signal-11 crash of the test process in unrelated localization tests.18aed0f(job f437037e) and PRe64412a(job 8b9d4636) both built. The captures below come from those builds on a capture mini, driven by CuaDriver.ResourceAggregatorTests.aLoneTabIsNotRepeatedUnderTheTotalis the only evidence for that fix.Localization: no new strings. The "New chat" fallback reuses
sidebar.newChat, which is already translated in every locale.Changelog
Changed: Cmd-T, the + buttons and New Workspace open the New Tab page, and agent chats are titled from their first prompt instead of the agent's command name
Demo Video
Same steps on both builds, a fresh tagged app with the default settings.
18aed0f)e64412a)Before, clicking New on the agent empty state leaves the same screen, and an extra empty session appears behind it. After, a New Tab page tab opens beside the chat.
🤖 Generated with Claude Code