Skip to content

PR4: plain tab plus with separate workspace chooser - #26558

Merged
teamleaderleo merged 17 commits into
feat-cmux-nextfrom
rail-topright-plus-plain
Oct 29, 2026
Merged

teamleaderleo merged 17 commits into
feat-cmux-nextfrom
rail-topright-plus-plain

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

PR4: plain tab plus and separate new-workspace chooser

Leo (2026-10-28): “what's this? i mean put a chevron optional in the new workspace thing that specifies, i think? WHY WAS THIS NEW TAB BUTTON CHANGED TO BE A DROPDOWN????????????????”

This corrects the control ownership:

  • Pane and screen tab-strip + controls are plain one-click actions again. A press creates the next tab/screen; hold and right-click retain the existing type menu path.
  • The screen-bar + no longer draws a chevron or a press-open menu.
  • The sidebar New Workspace + remains a one-click workspace action. A separate compact chevron beside it opens the existing “new workspace with…” options. Both controls use the row height and the new-tab glyph has no rounded plate.

Base 7023445 already removed native new-terminal/new-browser creation buttons from every PaneToolbar; this PR keeps that base behavior.

Observed / Not run

  • git diff --check, prepush static checks, and the full Objective-C selector check passed (1007 superclass calls, 207 runtime keys, zero failures).

  • Package compile passed at current head 304921f1facfe67d68e512d9b5b81e8ef27a3464 (job 7374b3945cec1223ec454f64, 156 seconds).

  • Swift regression coverage exercises plain pane/screen plus controls, heavier held-plus ink, matching initial sidebar visibility, and keyboard/VoiceOver chooser activation. Fleet step 977ba7ad3aee69e721385f47 started, but the bounded observer timed out without a verdict; no red/green runtime claim yet.
    No capture: the after image is still missing. The current-head capture build exited before its control socket answered (above), and the follow-up fix (5b5cdb8: the + and its chevron stay revealed and lit while their menu is open) changes a state that only exists while an NSMenu is tracking, which the capture fixture cannot hold open. PaneTabBarControlsTests.theSidebarPlusAndChevronStayRevealedWhileTheirMenuIsOpen covers it instead.

  • The nightly-before capture below succeeded. Current-head build fdb9648f17f68c680b7a398e completed, but its app exited before the control socket answered, so no after image exists yet. Earlier base/head attempts failed at startup too. No private reference images are attached.

Risk: the change is limited to creation controls and their activation paths. Workspace rows and stored layout are untouched. No new timer or observer.

Reference matched: Leo’s private 2026-10-28 newtab-plus and project-picker captures (not attached).

Before: Leo's nightly f83ddd6b204221b1b019e67734cf129e8e431aee. The fixture uses the existing tabs.plusButton=always setting and sidebar hover to reveal all creation controls; it creates two screens and two tabs on the second screen.

Before — light Before — dark
before light before dark

Agent session: agent session

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review a094d32: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr26558 -f ref=rail-topright-plus-plain -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 400cb08; does not block

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 28, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-burt68 created for this PR by the cmux coordinator.

@blacksmith-sh

This comment has been minimized.

@cursor

cursor Bot commented Oct 28, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): SHIP at 304921f

No blocking findings.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at 5b5cdb8

BLOCK

  1. [P2] SidebarView.swift:312: The new chevron is positioned without respecting titlebarLeadingReserve. On a narrow left sidebar, it overlaps the Back/Forward toolbar, which sits above the sidebar and intercepts clicks. Adding the chevron also pushes the Priority button into that area. Check available width and collapse or reposition controls before they enter the reserved region.

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
…role

An off-window SidebarIconButton reports AXUnknown on the CI minis, so
theSidebarWorkspacePlusIsPlainAndItsNeighborOwnsTheChooser failed at its first
expectation. It now checks that an AX press runs the + action directly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab1f035a409b977caceb
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at 0d65861

BLOCK

  1. Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/SidebarView.swift:123 hardcodes the user-facing VoiceOver label "New Workspace Options". Route it through String(localized:) and add translations for every locale in Resources/Localizable.xcstrings (the existing Strings.workspaceMenu pattern provides the appropriate approach).

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
…leading reserve

Review of 5b5cdb8 and 0d65861 found two gaps in the new workspace chevron:
- its VoiceOver label was a hard-coded English string; it is now
  sidebar.newWorkspace.options, translated for every locale the sidebar's
  New Workspace string carries;
- on a narrow sidebar the chevron (and the Priority button it pushed left)
  could enter the titlebar's leading reserve, under the toolbar band that
  takes the clicks there. The chevron is the optional extra (the +'s
  right-click menu holds the same chooser), so it hides first and the row
  lays out as it did before the chevron existed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab1f035a409b977caceb
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): SHIP at 9870e73

SHIP

No blocking findings. Static review and localization validation passed; macOS UI tests could not run because Swift/Xcode are unavailable.

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
…ilered sidebar commits

check-objc-selectors --probe --write on macOS 27.0.1 records the two super
calls SidebarIconButton makes (crash-class rules: probe needed). The sidebar
owner note logs 5b5cdb8 and 9870e73, which reached the branch without
a Sidebar-Look: trailer (no change to the list's look).

Sidebar-Look: no visual change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab1f035a409b977caceb
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, review-router): SHIP at a094d32

Scope: the follow-up delta 9870e73..a094d32 (selector probe table and sidebar owner note entries); the earlier SHIP covered 9870e73.

  • Follow-up changes only documentation and selector-probe data; no product behavior changes.
  • Both NSButton selectors are inherited from NSView; entries match the reported macOS 27.0.1 probe results.
  • Owner-log descriptions accurately reflect both supplied commits; “list’s look” distinguishes unchanged list styling from titlebar control changes.
  • No tests or gate logic are weakened; the additions supply missing evidence.
  • No bug or flake introduced by this delta.

Agent session: agent session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, review-router): SHIP at a094d32

Scope: the full PR diff, merge base 400cb08 to head a094d32 (the earlier SHIP at this head covered only the 9870e73..a094d32 delta).

  • No blocking findings in the full diff.
  • Optional nit: PaneTabBarControlsTests.swift:148 calls the menu callbacks directly, so it would miss an AppKit dispatch regression; a real context-menu open/close test would cover that.
  • Static review only; macOS tests ran separately on the fleet (below).

Focused fleet runs (scripts/ci/package-test-lane.sh), head a094d32 vs base 400cb08:

  • PaneTabBarControlsTests: passed at head (aws-m4pro-6) and at base (aws-m4pro-1).
  • TabDoubleClickZoomTests, SidebarRowHoverFollowTests, ContextMenuStandardTests, SidebarStatusGroupingTests, NativeTooltipGuardTests fail with the same tests and the same errors at head (cmux13s-Mac-mini) and at base (aws-m4pro-1), so they are base reds. No crash at either.

@teamleaderleo
teamleaderleo merged commit db5340a into feat-cmux-next Oct 29, 2026
179 of 184 checks passed
@teamleaderleo
teamleaderleo deleted the rail-topright-plus-plain branch October 29, 2026 19:59
@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40944977110 at db5340a failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 2ef4438. This pull request is one of 4 merged since: #27381, #27067, #27515, #26558.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — a094d32b Deployed Oct 29, 2026 by teamleaderleo via cmux-tui tree preflight #77255
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant