Skip to content

cmux-next: New Tab tabs draw the new-tab icon, not the agent chat bubble - #17914

Closed
azooz2003-bit wants to merge 3 commits into
feat-cmux-nextfrom
azooz-migration/17630-op-next-icons-8
Closed

azooz2003-bit wants to merge 3 commits into
feat-cmux-nextfrom
azooz-migration/17630-op-next-icons-8

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Fixes item 15 of the cmux-next sweep (cmuxterm-hq#1421): Agent tabs and New Tab tabs shared the generic chat bubble. Both ride a conversation record, and TabItemMapping gave every conversation tab agent.chat.

The pane already knows which tabs are still on the New Tab page (AgentTabs.pageTabs), since it titles them "New Tab". It now passes that to the mapping, and those tabs draw the registry's tab.new.

Tab Was Now
New Tab page agent.chat tab.new
Agent chat with a known harness harness mark harness mark (unchanged)
Agent chat without a harness mark agent.chat agent.chat (unchanged)

Converted call sites:

  • TabItemMapping.item(_:fallbackTitle:isNewTabPage:): new isNewTabPage flag, default false.
  • PaneController.snapshot(): computes isNewTabPage once and uses it for both the title and the icon.

When a New Tab page becomes a chat, its title and icon change in the same snapshot.

Not changed:

  • Workspace-row kind icons. They are pending Leo's call.
  • The sidebar's tab list. It doesn't know which tabs are New Tab pages (it also titles them from the record), so it keeps agent.chat for them. Follow-up: give SidebarTabKind a new-tab case once the sidebar gets that state.

Testing

Red commit d6ea400 adds ConversationTabItemTests.aNewTabPageTabDrawsTheNewTabIcon; the fix follows. The same conversation record maps to tab.new as a New Tab page and to agent.chat as a chat.

Changelog

Fixed: New Tab tabs show a new-tab icon instead of the agent chat bubble

Demo Video

Fleet builds of base (ff267c4) and the fix, on a capture mini (1x display), opening a workspace's first New Tab.

New Tab tab at 6x, before (top) and after (bottom):

tab zoom

Before After
before after

Checklist

  • Behavior changes have added or updated tests, or Testing says why not
  • UI change with no new or changed user-facing strings; localization not affected

🤖 Generated with Claude Code


Migrated from #17630 after correcting the PR author identity. The original head commit 4527a78 is preserved.


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


Summary by cubic

Fixes New Tab tabs in cmux-next drawing the agent chat bubble; they now draw the new-tab icon.

  • Both tab types ride a conversation record, so TabItemMapping gave every conversation tab agent.chat.
  • PaneController.snapshot() now computes whether a tab is still on the New Tab page and passes it to TabItemMapping.item(_:fallbackTitle:isNewTabPage:).
  • Adds a test covering the same record mapping to tab.new as a New Tab page and agent.chat as a chat.

Written for commit 4527a78. Summary will update on new commits.

Review in cubic Turn on auto-fix

teamleaderleo and others added 3 commits October 6, 2026 12:14
…ubble

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A tab still on the New Tab page and an Agent chat tab both rode a
conversation record and drew the agent chat bubble. The pane knows which
tabs are New Tab pages; it now tells the mapping, which draws tab.new.

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

coderabbitai Bot commented Oct 6, 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: acf1879e-b2a2-471f-aeeb-d010e7780e04

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
  • Autopilot · 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 6, 2026

Copy link
Copy Markdown
Contributor

Not verified: macOS jobs did not run: compile and app tests were skipped on 4527a78193; ci-status is green without them.

CI passes on 4527a78193 (run 37526545405 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

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.

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.

2 participants