cmux NEXT: a pane's top-right is one hover "…" in place of its buttons

Merged
TE
24d ago
+190-521

Summary

Leo, 10-12: the pane's top-right buttons go away. Hovering the corner shows one "…", whose menu opens a browser, terminal, agent chat and so on.

  • The row of buttons (Split Right, Split Down, Open Diff Viewer, Open File, …) is gone. A pane's tab bar now ends in a single "…".
  • "…" fades in while the pointer is over the pane's top-right corner: the button and 96 pt to its left over the tab bar. It uses the shared HoverReveal that the strip's "+" uses, and stays up while its menu is open.
  • A zoomed pane keeps "…" shown and accent-lit, which replaces the old lit zoom button.
  • The menu holds the strip "+"'s rows for this pane (new terminal, browser, agent chat, …), a separator, then Split Right, Split Down, the tab's own actions and Toggle Pane Zoom. It opens on press (press-drag-release, from #20111).
  • A chat's pane still has no "…", because its header has its own tools.
  • The Hide/Show button menus go away along with the buttons. tabs.hiddenButtons no longer applies: hiding a button used to move it into "…", and every action is in "…" now. A follow-up PR removes the setting and its generated docs.

Visible change: panes show no buttons at the top right until you hover the corner, then one "…".

Verification

Tests: PaneToolbarTests. All runs are fleet run-swift-testing-suites.sh --arg Packages/macOS/CmuxNext (Xcode 26.6).

  • Red, 6812e4940ddb: these are the tests as first committed, with two seams (an init that takes newTabMenu, and reveal) that keep the old behavior. All 5 tests failed on assertions. For example: bar.controls → ["More", "Split Right", "Split Down", "Open Diff Viewer", "Open File"], bar.more → ["Toggle Pane Zoom"], and reveal.isRevealed → false for a zoomed pane.
  • Green, 759ec11d14a4: all suites passed.
  • After the review fixes: the tests changed (the hidden-setting test was removed and hidden: dropped from the calls), so the red is re-recorded on a scratch commit (the final tests on the old code) and green on the head. Both receipts are in a comment.
  • Capture: in the comment below (quiet, hover, menu open).

Pane corner hover …

Changelog

Changed: A pane's top-right shows one "…" on hover, instead of a row of buttons. Its menu opens a new terminal, browser or agent chat in the pane, splits it, and runs the tab's actions.

🤖 Generated with Claude Code


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


Summary by cubic

Replaces the pane's top-right row of buttons with a single "…" that fades in as the pointer crosses the pane's top-right corner.

  • The "…" appears while the pointer is over the corner — itself and 96 pt to its left over the tab bar — and while its menu is open; it uses the same HoverReveal as the strip's "+".
  • Its menu, opened on press, holds the strip "+"'s rows for the pane (new terminal, browser, agent chat), then Split Right, Split Down, the tab's own actions, and Toggle Pane Zoom.
  • A zoomed pane keeps "…" shown and accent-lit, replacing the old lit zoom button.
  • Chat panes still have no "…", because their header has its own tools.
  • The Hide/Show button menus are gone with the buttons, and tabs.hiddenButtons no longer applies; a follow-up removes the setting and its generated docs.
  • The corner reveals "…" on any enter/exit it owns, including synthetic ones like debug.pointer_hover that carry no tracking area.