Skip to content

Fix split-space admission after sidebar pane changes - #15422

Merged
teamleaderleo merged 6 commits into
manaflow-ai:mainfrom
teamleaderleo:fix/pr15392-split-space-preflight
Sep 28, 2026
Merged

teamleaderleo merged 6 commits into
manaflow-ai:mainfrom
teamleaderleo:fix/pr15392-split-space-preflight

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #15392 that makes split admission use the actual prospective geometry and keeps pane construction side-effect free until admission succeeds.

  • compute ratio-aware split-space verdicts with the real tree geometry
  • preflight terminal, browser, simulator, Cloud, and sidebar splits before constructing their panels
  • preserve the external-browser fallback when embedded browser creation is disabled
  • remove the unreachable mixed-orientation fallback path

Evidence

  • Added focused SplitSpaceTests and package-level SplitSpaceVerdictTests for prospective geometry, ratios, clamping, and rejection boundaries.
  • git diff --check passes against current main.
  • Independently reviewed at 705ed386baf8; no actionable findings.
  • Structured review found no correctness or policy findings.
  • No cmux app or native test build was run on Air Blue; hosted CI is the build/test authority.

Changelog

none

— Mochi


Summary by cubic

Fixes split-space admission to use the real prospective geometry, so verdicts reflect the actual divider ratio and equalize behavior a split will produce. All split types now preflight for space before constructing panels, and pane construction stays side-effect free until admission succeeds.

  • Split verdicts accept a divider position, clamp it to Bonsplit's 0.1...0.9 range, and simulate the exact equalized divider positions instead of averaging slots.
  • Terminal, browser, simulator, Cloud, custom sidebar, and right-sidebar tool splits preflight before creating panels, terminals, or browser navigations; denied splits construct nothing.
  • Room borrowing moved from split helpers into the Bonsplit delegate, now checking both the original and new pane extents.
  • External-browser fallback still fires when embedded browser creation is disabled; session restore and remote-layout projection bypass admission explicitly, and the unreachable mixed-orientation fallback path is removed.

Written for commit 1764ca3. Summary will update on new commits.

Review in cubic

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 59 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: fd1e5bc5-38a5-4de0-8e30-fe9f7cbb6b28

📥 Commits

Reviewing files that changed from the base of the PR and between d2877b2 and 1764ca3.

📒 Files selected for processing (15)
  • Packages/macOS/CmuxPanes/Sources/CmuxPanes/Geometry/ExternalTreeNode+SplitSpace.swift
  • Packages/macOS/CmuxPanes/Tests/CmuxPanesTests/SplitSpaceVerdictTests.swift
  • Sources/Surfaces/Workspace+CloudLayoutProjection.swift
  • Sources/Surfaces/Workspace+CloudManualMirror.swift
  • Sources/TabManager.swift
  • Sources/TerminalController+ControlPaneContext.swift
  • Sources/TerminalController+ControlSidebarContext3.swift
  • Sources/TerminalController+ControlSurfaceContext2.swift
  • Sources/Workspace+ClosedPanelLayoutRestore.swift
  • Sources/Workspace+CustomSidebarPane.swift
  • Sources/Workspace+RightSidebarToolDrop.swift
  • Sources/Workspace+SimulatorPane.swift
  • Sources/Workspace+SplitSpace.swift
  • Sources/Workspace.swift
  • cmuxTests/SplitSpaceTests.swift

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.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 28, 2026 17:12
@teamleaderleo
teamleaderleo merged commit 90e6862 into manaflow-ai:main Sep 28, 2026
68 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 1764ca3221: every check was green at merge (20 verified; 19 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 28, 2026
04c8747 ci: scope contributor web complexity to web changes (manaflow-ai#15424)
1b3fbff ci: accept dynamic app-host shard names (manaflow-ai#15426)
16f0f97 Fix Cloud graph freezing on daemons that send no cursor (manaflow-ai#15283)
eb2331c Add a dragAt step to the dogfood tour format (manaflow-ai#15315)
90e6862 Fix split-space admission after sidebar pane changes (manaflow-ai#15422)
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.

1 participant