Skip to content

Move active surface between existing panes - #8751

Closed
kyl33r wants to merge 1 commit into
manaflow-ai:mainfrom
kyl33r:feat/move-surface-between-panes
Closed

kyl33r wants to merge 1 commit into
manaflow-ai:mainfrom
kyl33r:feat/move-surface-between-panes

Conversation

@kyl33r

@kyl33r kyl33r commented Jul 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add configurable commands for moving the active surface to the previous/next existing pane or to the pane on the left, right, above, or below.
  • Route keyboard shortcuts, Command Palette actions, and View-menu commands through TabManager into the existing Workspace.moveSurface ownership-transfer path.
  • Preserve the surface instance and focus, insert after the destination pane's selected surface, wrap previous/next traversal, and let Bonsplit collapse an emptied source pane.
  • Reuse the same directional helper for existing tab-context-menu moves and clarify the old in-pane actions as “Reorder Surface Left/Right”.

All six new shortcut actions intentionally start unbound because the proposed Control-Command-arrow chords already belong to pane-focus actions. The actions remain discoverable and configurable in Settings and the Command Palette.

Scope

This is the focused existing-pane interaction slice from the movement proposal. It does not create panes or consolidate cross-workspace/window transfer.

Verification

  • ./scripts/test-unit.sh -skipPackageUpdates test -only-testing:cmuxTests/MoveSurfaceBetweenPanesTests — 10 tests in 1 suite passed
  • ./scripts/reload.sh --tag move-pane --launch — tagged Debug build succeeded and launched
  • CMUX_TAG=move-pane scripts/cmux-debug-cli.sh list-workspaces — tagged socket responded
  • swift build --package-path Packages/macOS/CmuxSettings
  • scripts/lint-pbxproj-test-wiring.sh
  • scripts/check-pbxproj.sh
  • JSON validation for Resources/Localizable.xcstrings
  • git diff --check
  • swiftc -parse over changed Swift sources and the focused test file
  • Complete live manual verification of terminal/browser state, pane wrapping, directional boundaries, focus, insertion order, and source-pane collapse

Test coverage added

  • terminal and browser object identity/focus preservation
  • insertion after the destination selected surface
  • empty-source-pane collapse
  • left/right/up/down movement and previous/next wrapping
  • no-op behavior for missing destinations, Canvas layout, and remote-tmux mirrors
  • settings/default/Command Palette metadata alignment
  • physical-arrow shortcut routing through the production event handler

Closes #8752

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6360337a-4a92-432a-a610-259cff5ec0e6

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@kyl33r kyl33r closed this Jul 24, 2026
@kyl33r
kyl33r deleted the feat/move-surface-between-panes branch July 24, 2026 08:39
@kyl33r

kyl33r commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #8845 after renaming the head branch to feat/8752-move-surface-between-panes as requested.

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.

Move the active surface between panes and create missing directional splits

1 participant