Skip to content

Add + menu button to tab bar - #44

Closed
austinywang wants to merge 6 commits into
mainfrom
add-tab-bar-plus-button
Closed

austinywang wants to merge 6 commits into
mainfrom
add-tab-bar-plus-button

Conversation

@austinywang

@austinywang austinywang commented Feb 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Improved the "+" menu button in the horizontal tab bar to use a native NSButton + NSMenu instead of SwiftUI Menu, so the icon visually matches the split buttons
  • Menu now appears below the button instead of at the click point
  • Added keyboard shortcut hints to menu items (⌘T for terminal, ⌘⇧L for browser)
  • Uses terminal.fill icon consistently across the app
  • Merged main to resolve bonsplit submodule conflict (multi-workspace drag/drop fixes)

Test plan

  • Click the "+" button in the tab bar — menu should appear below the button
  • Verify "New Terminal ⌘T" and "New Browser ⌘⇧L" menu items work
  • Verify the "+" icon style matches the split buttons
  • Verify ⌘⇧L opens a browser tab
  • Verify ⌘L focuses the browser address bar

🤖 Generated with Claude Code

lawrencecchen and others added 3 commits February 12, 2026 02:46
…ation

- Add /terminal route with full split pane terminal UI
- Per-pane tab bars with drag-drop between groups and onto surfaces
- Workspace sidebar (Cmd+B toggle) matching native app styling
- Spatial navigation (Cmd+Ctrl+HJKL) using Ghostty's algorithm:
  build normalized spatial rectangles, filter by direction, pick
  nearest by Euclidean distance
- Route group restructure: move marketing pages into (main)/ to
  keep footer off /terminal
- Dark mode forced on terminal page, overscroll prevention
- Keyboard shortcuts: Cmd+D/Shift+D split, Ctrl+Shift+T new workspace,
  Cmd+[] switch workspaces, Ctrl+Tab cycle panes, Ctrl+D close
- Playwright e2e tests (67 tests) covering splits, tabs, drag-drop,
  divider resize, focus, and 2x2 grid spatial navigation
- PTY server (pty-server.mjs) for WebSocket terminal connections
- Dual renderer support (xterm.js + ghostty-web)
Adds a "+" button to the tab bar (next to split buttons) that shows a
dropdown menu with "New Terminal" and "New Browser" options. Uses a new
didRequestNewTab delegate method to route creation through the Workspace.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cmux-agent

cmux-agent Bot commented Feb 17, 2026 •

Copy link
Copy Markdown
Contributor
Older cmux preview screenshots (latest comment is below)

Preview Videos and Screenshots

Open Diff Heatmap

⏳ Preview screenshots are being captured...

Workspace and dev browser links will appear here once the preview environment is ready.


Generated by cmux preview system

@vercel

vercel Bot commented Feb 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Feb 17, 2026 10:49pm
cmuxterm-docs Ready Ready Preview, Comment Feb 17, 2026 10:49pm

@cmux-agent

cmux-agent Bot commented Feb 17, 2026 •

Copy link
Copy Markdown
Contributor
Older cmux preview screenshots (latest comment is below)

Preview Videos and Screenshots

Open Diff Heatmap

⏳ Preview screenshots are being captured...

Workspace and dev browser links will appear here once the preview environment is ready.


Generated by cmux preview system

austinywang and others added 2 commits February 17, 2026 14:47
Resolve bonsplit submodule conflict by merging both branches'
changes (+ menu button + multi-workspace drag/drop fixes).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cmux-agent

cmux-agent Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Preview Videos and Screenshots

Open Diff Heatmap

⏳ Preview screenshots are being captured...

Workspace and dev browser links will appear here once the preview environment is ready.


Generated by cmux preview system

rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
e63ec95 fix(build): drop the app import from the remote tmux CLI test (manaflow-ai#18945)
edfc09c Merge pull request manaflow-ai#18950 from manaflow-ai/codex/revert-coderouter-handoff
608722c Revert "Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff"
5cca480 Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff
c867c77 fix: preserve CodeRouter peer context through async loop
7bb42ac Merge origin/main into CodeRouter handoff
16ae2a6 feat: open CodeRouter guide as a pane
5f98c98 feat: open CodeRouter guide as a pane
c7dd9ea feat: add CodeRouter help guide
1f026c7 CodeRouter handoff: meet current CI and package conventions
e231560 Merge remote-tracking branch 'origin/main' into native-handoff-merge
0f273d5 Merge main into the CodeRouter native handoff
f60f20e Merge main and preserve CodeRouter and Cloud diagnostic strings
b193fb8 Merge current main and preserve CodeRouter handoff transport
cf6a2a4 Merge main into CodeRouter native handoff
39f48e8 Move CodeRouter launch contract into shared package
e6f9d38 Fix CodeRouter release and naked alias contracts
b0ce78a Harden CodeRouter dogfood and OAuth callbacks
94e0a6d Make CodeRouter probe timeout test deterministic
d06b73d Fix CodeRouter Linux clippy gate
db4a2ec Fix CodeRouter workflow runner policy
7edbfcd Merge remote-tracking branch 'origin/main' into task/coderouter-native-handoff
4131be6 Publish CodeRouter source and release workflows
a9f05c7 Add 'coderouter/' from commit '6f63614e36ddf91b457eb3c25d8430a7875c750d'
6f63614 Fix interactive login terminal lifecycle
09b1462 Add secure native CodeRouter handoff
130ff4e Add secure CodeRouter handoff v2
cebaf60 Fix CodeRouter release test coverage
757897c Harden handoff descriptor and origin trust
c98aac3 Set coordinated handoff exchange timeout
6a7b9ba Harden handoff expiry and credential isolation
da6f3b2 Require EOF for handoff frames
46d7273 Tighten handoff child environment
311d27a Disable redirects during handoff exchange
f4dde33 Reject closed-pipe handoff trailing bytes
672f5b0 Add hosted CodeRouter handoff client
e3b205d Harden CodeRouter handoff authorization boundaries
2bb80ab Add native CodeRouter handoff from cmux
6da3e94 Add credential-free capabilities contract (manaflow-ai#50)
4910fde Use coderouter in CLI help and errors (manaflow-ai#49)
169be31 Add privacy-safe CodeRouter CLI analytics (manaflow-ai#48)
64da26c Add durable CodeRouter organization switching (manaflow-ai#46)
3dae4f0 Align public package provenance metadata (manaflow-ai#44)
2799924 Fix stable clippy and cut 0.2.1 (manaflow-ai#42)
d0e1915 Prepare verified public CLI distribution (manaflow-ai#41)
e15c881 Record live annual Pro and Team validation (manaflow-ai#39)
efe2d10 Snapshot CLI fault guidance matrix (manaflow-ai#34)
e9a1bc0 Harden coderouter retries and diagnostics (manaflow-ai#32)
fd00e47 Support self-hosted servers and TUI cancellation (manaflow-ai#24)
ea6b259 Use Codex-compatible Pi serialization safely (manaflow-ai#22)
7d0aa73 Force cr opencode through routed models (manaflow-ai#21)
c4748bc Fix Pi model discovery and cache wording (manaflow-ai#20)
f75d9e7 Complete coderouter private beta CLI and runbooks (manaflow-ai#19)
ada2d5a Use the coderouter tagline consistently (manaflow-ai#14)
931a79b Use route tokens for fast lowercase coderouter status (manaflow-ai#13)
a589857 Show progress throughout remote operations (manaflow-ai#12)
0c60e61 Show delayed status spinner and Spark usage (manaflow-ai#11)
47d0755 Render CodeRouter status like Subrouter (manaflow-ai#10)
ad75b92 Use the official Codex OAuth callback ports (manaflow-ai#9)
197345c Match Codex OAuth percent encoding exactly (manaflow-ai#8)
bc1c8e8 Match the official Codex OAuth request (manaflow-ai#7)
e782840 Add an interactive enter-code login flow (manaflow-ai#6)
19a479a Keep timing diagnostics out of CodeRouter output (manaflow-ai#5)
9e73f49 Use Ratatui and route directly through Vercel (manaflow-ai#4)
e386396 Isolate CodeRouter auth and agent state (manaflow-ai#3)
828751b Make bare CodeRouter show quota usage (manaflow-ai#2)
70c631c Focus CodeRouter on hosted Codex subscriptions (manaflow-ai#1)

This branch was successfully deployed

2 active deployments
Preview – cmuxterm-docs — 9d672d93 Deployed Feb 17, 2026 by vercel[bot]
Preview – cmux — 9d672d93 Deployed Feb 17, 2026 by vercel[bot]
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