Skip to content

feat(macos): add native Alacritty panes - #13

Open
ASVLCII wants to merge 11 commits into
mxrsv:mainfrom
ASVLCII:feat/native-alacritty-panes-macos
Open

ASVLCII wants to merge 11 commits into
mxrsv:mainfrom
ASVLCII:feat/native-alacritty-panes-macos

Conversation

@ASVLCII

@ASVLCII ASVLCII commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Adds native Alacritty panes on macOS with Shift-click split support, shell fallback when Alacritty is unavailable, synchronized focus/geometry, settings integration, and reliable overlay hiding while workspace/settings/modal surfaces are open.

The shared pane-presentation state machine rejects stale visibility/focus/action requests. macOS uses Accessibility visibility controls with an off-screen fail-safe so covered native windows cannot bleed through the WebView.

ASVLCII added 11 commits August 9, 2026 00:03
intent(windows): run Alacritty as a first-class in-app pane with SpaceVibe appearance, focus, actions, and layout persistence.

decision(windows): Shift-click splits create native Alacritty panes while ordinary splits remain xterm shells.

constraint(windows): isolate generated configs and terminate owned processes on every close path.
intent(windows): keep embedded Alacritty aligned while the app moves, resizes, or changes display scale.

decision(windows): invalidate cached native bounds from Tauri window events and release every listener with its pane.
intent(ci): exercise the Windows-only Alacritty path even when Windows unit modules are compiled on Linux.
intent(native-terminal): close lifecycle, focus monitoring, and runtime files safely

decision(close): confirm uninspectable native processes instead of assuming idle

constraint(cross-platform): preserve native CWDs without sending native IDs to PTY IPC
decision(alacritty): fail closed when native panes cannot provide bracketed paste

test(windows): serialize plugin fixture paths as valid JSON
decision(config): scope generated Alacritty files to a process launch nonce

test(accessibility): exercise asynchronous native pane failures
intent(macos): offer the same Shift-split Alacritty workflow, appearance, focus, actions, and cleanup as Windows.

decision(macos): use the supported Accessibility API to coordinate one borderless Alacritty window per pane because AppKit cannot reparent a window owned by another process.

constraint(macos): request Accessibility permission on demand and fall back to the normal shell when Alacritty or permission is unavailable.
intent(native-terminal): stop focus monitors on every cleanup path

decision(shortcuts): verify AX focus before posting global keyboard events
decision(config): prevent concurrent SpaceVibe instances from sharing pane configs
decision(native): make native occlusion authoritative with monotonic epochs

constraint(windows): keep portable runtime files beside the installed executable when writable
@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

@ASVLCII is attempting to deploy a commit to the mxrsv-dev Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ASVLCII, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

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

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d023ce9-f5ce-4d29-ae15-ed7d2b4d5619

📥 Commits

Reviewing files that changed from the base of the PR and between e62fe61 and 6816aa5.

📒 Files selected for processing (39)
  • src-tauri/Cargo.toml
  • src-tauri/src/agents.rs
  • src-tauri/src/lib.rs
  • src-tauri/src/native_terminal.rs
  • src-tauri/src/native_terminal_macos.rs
  • src-tauri/src/platform/macos.rs
  • src-tauri/src/platform/windows/agent_discovery.rs
  • src-tauri/src/platform/windows/mod.rs
  • src-tauri/src/prompt_assets.rs
  • src/lib/agent-catalog.ts
  • src/lib/layout-validation.test.ts
  • src/lib/layout-validation.ts
  • src/lib/split-tree.test.ts
  • src/lib/split-tree.ts
  • src/settings/settings-schema.test.ts
  • src/settings/settings-schema.ts
  • src/styles.css
  • src/terminal/close-coordinator.test.ts
  • src/terminal/close-coordinator.ts
  • src/terminal/native-appearance.ts
  • src/terminal/native-pane-client.ts
  • src/terminal/native-pane.test.ts
  • src/terminal/native-pane.ts
  • src/terminal/pane-background.ts
  • src/terminal/pane-lifecycle.ts
  • src/terminal/pane.ts
  • src/terminal/tab-manager.test.ts
  • src/terminal/tab-manager.ts
  • src/terminal/tab-materialize.test.ts
  • src/terminal/tab-materialize.ts
  • src/terminal/terminal-manager.test.ts
  • src/terminal/terminal-manager.ts
  • src/ui/app.tsx
  • src/ui/chrome-actions.tsx
  • src/ui/controls/terminal-background-row.tsx
  • src/ui/settings/sections/terminal-section.tsx
  • src/ui/settings/settings-screen.test.tsx
  • src/ui/tab-bar.test.tsx
  • src/ui/tab-bar.tsx

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.

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