Allow Cua Driver to target macOS Ventura#1498
Conversation
Lower the declared driver platform floor to macOS 13 and remove the macOS 14 Observation dependency from the cursor overlay so Intel Ventura Macs can test the same x86_64 release path fixed by the recent packaging work. Constraint: MacBookPro14,3 only receives Ventura 13.7.8 through Software Update, while Cua Driver 0.1.9 currently declares macOS 14.0 and links libswiftObservation. Rejected: Document-only unsupported-Mac clarification | it would preserve the dyld crash path instead of testing a narrow Ventura compatibility patch. Confidence: medium Scope-risk: moderate Directive: Verify on upstream macos-15 Swift 6 CI and on a physical Intel Ventura Mac before claiming full host-automation support. Tested: git diff --check; bash -n libs/cua-driver/scripts/install.sh; plutil -lint libs/cua-driver/App/CuaDriver/Info.plist Not-tested: swift build locally, blocked by Command Line Tools xcrun PlatformPath error and no full Xcode install on this host; runtime Cua Driver tool calls on Ventura.
|
@iqdoctor is attempting to deploy a commit to the Cua Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis PR downgrades the minimum macOS requirement from Sonoma (14) to Ventura (13) by removing the Swift Observation framework dependency from the cursor rendering code, updating build configuration and installation checks, and revising documentation to reflect the new minimum. ChangesmacOS Ventura (13) Support
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. 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. Comment |
Remove direct SCScreenshotManager references so the driver can compile against the macOS 13 SDK, and keep the cursor overlay reads on the main actor after removing Observation. Constraint: MacBookPro14,3 is capped at macOS 13.7.8 with CLT 14.3 / SDK 13.3, where SCScreenshotManager and libswiftObservation are unavailable. Rejected: require Sonoma or Xcode 16 for local validation | this would not test the reported Intel Ventura host. Confidence: medium Scope-risk: moderate Directive: Reintroduce SCScreenshotManager only behind a build path that still compiles with the macOS 13 SDK or through a runtime/dynamic shim. Tested: Swift 6.1.3 build on x86_64 macOS 13.7.8 with -swift-version 5 and linker wrapper; built .build/CuaDriver.app; verified --version, minos 13.0, no libswiftObservation, correct bundle attribution, list_tools, list_apps, get_screen_size, get_window_state capture_mode=ax. Not-tested: swift test cannot run under CommandLineTools-only Ventura because XCTest is unavailable; Screen Recording pixel capture remains blocked by local TCC grant for the ad-hoc .build app. Co-authored-by: Oh My Codex <oh-my-codex@users.noreply.github.com>
|
Local Ventura validation update from the reported Intel host: Environment:
What blocked local testing before this follow-up commit:
Validation that now passes locally on macOS 13.7.8:
Remaining local limitation:
|
Allow daemon and MCP startup to proceed with only Accessibility when capture_mode is ax, and launch the installed app executable directly when a shell symlink needs CuaDriver.app bundle attribution. Constraint: The local Ventura host has Accessibility granted but Screen Recording unavailable for the ad-hoc patched app; AX mode does not need pixel capture. Rejected: keep requiring Screen Recording at daemon startup | this blocks AX-only operation even though get_window_state works without screenshots. Confidence: medium Scope-risk: moderate Directive: Keep Screen Recording mandatory for som/vision modes, but do not gate AX-only sessions on pixel-capture permission. Tested: Swift 6.1.3 build on x86_64 macOS 13.7.8 with -swift-version 5 and linker wrapper; installed /Applications/CuaDriver.app; ran cua-driver serve from shell; verified daemon status and get_window_state against Finder in capture_mode=ax. Not-tested: Full pixel screenshot flow because Screen Recording remains ungranted for the ad-hoc local bundle; swift test remains blocked by missing XCTest under CommandLineTools-only Ventura. Co-authored-by: Oh My Codex <oh-my-codex@users.noreply.github.com>
|
Follow-up after installing the patched build on the Ventura host:
This required commit Remaining local limitation: pixel screenshot tools still require a Screen Recording grant for the ad-hoc local app bundle. AX-mode automation is working on macOS 13.7.8. |
Summary
This attempts to make Cua Driver build and launch on macOS 13 Ventura, including Intel Macs such as
MacBookPro14,3whose latest Software Update offering is Ventura 13.7.8.Changes:
.macOS(.v14)to.macOS(.v13)CuaDriver.appLSMinimumSystemVersionfrom14.0to13.0Observationframework usage from the agent cursor overlayTimelineView, which already samples renderer state every frameWhy
cua-driver-v0.1.9fixed the Intel/x86_64 release artifact issue from #1493 / #1494. On an IntelMacBookPro14,3running macOS13.7.8, the installedv0.1.9binary is now correctly universal, but it fails before permission checks:Local machine context:
softwareupdate --list-full-installerson that machine only lists Ventura 13.7.8 and older installers, not Sonoma or later.Related context
v0.1.9Validation
Ran locally on the Ventura Intel host:
All passed.
I could not run a local Swift build on this host because it only has Command Line Tools / Swift 5.8.1, and
swift buildfails before package resolution with:Please treat upstream macOS-15 Swift 6 CI as the compile gate. If CI produces a testable x86_64 artifact, I can validate
--versionand basic runtime behavior on the physical Intel Ventura machine.Summary by CodeRabbit
Improvements
New Features
Documentation