cmux next: on macOS 26, allowing screen recording asks for capture so computer use can start

Closed
LU
11d ago
+90-4

On macOS 26 the computer use helper's capture check (CGPreflightScreenCaptureAccess) stays false even after the person turns "cmux Computer Use" on in Screen & System Audio Recording, until the helper itself asks once for screen capture (the macOS prompt that also covers "bypass the system private window picker"; the Codex app shows the same prompt during its setup). cmux's Allow buttons only opened System Settings, and the helper runs with its own prompts off, so on macOS 26 computer use could never become ready. Seen on 2026-10-27 on macOS 26.6: the toggle was on, the helper said Screen Recording off.

  • Allow asks the helper first (ComputerUseSetup.open): when the legacy helper runs, Allow sends request_system_permission {name} over its socket with the host token. The helper's engine already serves this host-only request and raises the one macOS prompt, attributed to the helper. Then System Settings opens as before. Off or no helper: only System Settings, as before.
  • Wire: CuaSocketClient.send(_:name:) and AgentActivityWire.requestLine can set the daemon request's name.
  • Every Allow path goes through open: the onboarding step, the Settings card and the agent permission card's Continue.

Stacked on #25837.

Changelog

  • Fixed: on macOS 26, allowing Screen Recording for computer use now asks for capture, so computer use can start.

Tests

  • Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/ComputerUseSetupTests.swift allowAsksTheRunningHelperToRequestTheGrant: with the helper running and Screen Recording off, Allow sends the request for that grant and opens System Settings; with Computer Use off it only opens System Settings.

Observed / Not run

  • Ran locally (Xcode 26.6): swift test --package-path Packages/macOS/CmuxNext --filter 'ComputerUseSetupTests|ComputerUseEndpointTests|ComputerUseActivitySourceTests': 14 passed.
  • Seen live before the fix: grant toggled on, computer_use.status still screen_recording: false after a fresh helper start.
  • Not yet run: the live prompt after the fix (a tagged build with it is building).

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.