Skip to content

Prevent repeated Computer Use helper launch dialogs - #14028

Merged
azooz2003-bit merged 2 commits into
mainfrom
feat-quiet-computer-use-launch
Sep 23, 2026
Merged

azooz2003-bit merged 2 commits into
mainfrom
feat-quiet-computer-use-launch

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Background Computer Use helper launch failures can repeatedly display Finder alerts in shipped stable v0.64.25 and nightly 3589434697901. Computer Use defaults to enabled, and both releases retain the affected launch and health-recovery path. The reported local incident showed launchd denying execution with errno 13 roughly every four seconds; the exact permission or security check responsible for that denial has not been established.

Reject missing, non-regular, or non-executable helpers before launch, and set NSWorkspace.OpenConfiguration.promptsUserIfNeeded = false so other launch errors return through the completion handler without requiring dismissal. This changes background error handling while preserving helper permissions and macOS security checks.

Validation:

  • CI passed, including macOS compile admission and all 15 CmuxComputerUse tests in four suites. Tests cover both helper profiles, rejected executables, and recovery after executable permissions are repaired. The tests do not open applications.
  • Audited freshly downloaded official stable v0.64.25 and nightly 3589434697901 disk images. Both helpers have mode 0755; the outer app and standalone helper pass strict signature verification; the copied helper passes stapled-ticket validation and Gatekeeper assessment as Notarized Developer ID. These checks passed without launching either app. Customer incidence remains unknown.
  • git diff --check passed.

Tagged verification remains blocked: remote backend provisioning refused at its disk floor. The explicit offline build e760fa4c5c1197b98b3e2106 then failed before compilation because the fleet recipe passes mutually exclusive CMUX_DEV_BACKEND_MODE=local and CMUX_DEV_BACKEND_URL. Recorded as controller feedback fe7ae0229e736f04c0501574. No tagged app or GUI failure-path reproduction is available. The source fix has not shipped.

Affected users can stop helper retries by disabling Settings > Computer Use > Enable Computer Use. The remote Computer Use UX flag only controls onboarding/status UI and does not stop the runtime.

@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 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 24ba3769-bbe8-4858-b6b4-19a471ca3ebf

📥 Commits

Reviewing files that changed from the base of the PR and between ccdbf30 and 66c03f3.

📒 Files selected for processing (3)
  • Packages/macOS/CmuxComputerUse/Sources/CmuxComputerUse/ComputerUseHelperLaunchConfiguration.swift
  • Packages/macOS/CmuxComputerUse/Sources/CmuxComputerUse/ComputerUseRuntimeService.swift
  • Packages/macOS/CmuxComputerUse/Tests/CmuxComputerUseTests/ComputerUseHelperLaunchConfigurationTests.swift

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The helper launch configuration now validates the helper executable and sets its launch options, arguments, and environment. The runtime service uses this configuration and returns false if it cannot be created. Tests cover launch settings and invalid executable paths.

Changes

Helper launch

Layer / File(s) Summary
Build and use helper configuration
Packages/macOS/CmuxComputerUse/Sources/CmuxComputerUse/ComputerUseHelperLaunchConfiguration.swift, Packages/macOS/CmuxComputerUse/Sources/CmuxComputerUse/ComputerUseRuntimeService.swift, Packages/macOS/CmuxComputerUse/Tests/CmuxComputerUseTests/ComputerUseHelperLaunchConfigurationTests.swift
The configuration method checks that the helper is a regular executable file. It sets non-activating, new-instance launch options, suppresses prompts, and supplies the configured arguments and environment. The runtime service returns false if configuration creation fails. Tests check launch settings and invalid paths.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: teamleaderleo

Merge Risk: ⚪ Minimal · up to 66c03

The change prevents invalid helpers from triggering repeated launch dialogs. No actionable regression remains identified before merge.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The pull request changes only macOS Computer Use helper validation and launch configuration, plus related tests. The diff does not modify Cloud terminal creation, persistent cmux-tui transport, …
Cmux Swift Actor Isolation ✅ Passed No actor-isolation failure is introduced. The changed value type remains the existing Equatable, Sendable struct; its new AppKit operation is explicitly @MainActor rather than implicitly isolated.…
Cmux Swift Blocking Runtime ✅ Passed PASS. The production diff only adds synchronous helper-file validation and an NSWorkspace.OpenConfiguration factory, then uses the existing asynchronous openApplication completion continuation. It…
Cmux Browser Automation Off-Main ✅ Passed The pull request changes only macOS Computer Use helper launch configuration, runtime launch handling, and related tests. The authoritative diff contains no browser socket commands, WebKit/AppKit brow…
Cmux Expensive Synchronous Load ✅ Passed The production diff adds only a main-actor helper validation that checks one bundle executable with attributesOfItem and isExecutableFile, then builds an NSWorkspace.OpenConfiguration. It adds n…
Cmux Cache Substitution Correctness ✅ Passed The diff does not replace an authoritative read with a cache. It adds a direct FileManager check for the helper executable and centralizes NSWorkspace launch configuration. The changed path is helper …
Cmux No Hacky Sleeps ✅ Passed PASS: The review-scoped diff changes only three Swift files. It contains no TypeScript, JavaScript, shell, or build/runtime script changes. The custom check applies only to production non-Swift runtim…
Cmux Algorithmic Complexity ✅ Passed The changed production code performs fixed-path file checks and assigns launch configuration fields. It adds no scalable-collection scan, nested scan, repeated sort/filter, in-memory join, or slower b…
Cmux Swift Concurrency ✅ Passed The diff does not introduce a prohibited legacy async pattern. The existing NSWorkspace.openApplication completion callback remains an AppKit boundary, which the rules allow, and the `withCheckedCon…
Cmux Swift @Concurrent ✅ Passed The diff adds no @concurrent or nonisolated async declaration. workspaceConfiguration is synchronous and explicitly @MainActor; its two lightweight executable metadata checks support the UI-bo…
Cmux Swift Package Boundaries ✅ Passed The diff does not violate the package-boundary rule. All production changes are inside the existing Packages/macOS/CmuxComputerUse SwiftPM target, not the app target root. The new `workspaceConfigur…
Cmux Swiftpm Lockfiles ✅ Passed The PR changes only CmuxComputerUse source and test files. It does not change a Package.swift dependency list, any .gitignore, workflow, Xcode project package reference, or Package.resolved file. Ther…
Cmux Swift Logging ✅ Passed The pull request adds no production logging statements. The only logging-related added line is a comment about a Finder error dialog. The existing NSLog and Logger statements in `ComputerUseRuntim…
Cmux User-Facing Error Privacy ✅ Passed The production diff adds no user-facing error, alert text, command output, API body, or recovery copy. It validates the helper path, sets promptsUserIfNeeded = false to suppress Finder launch dialog…
Cmux Full Internationalization ✅ Passed The production diff changes helper validation and NSWorkspace launch configuration only. It adds no user-facing Swift text, web text, metadata, or localization/catalog entries. The added Finder dialog…
Cmux Swiftui State Layout ✅ Passed The pull request changes only AppKit/Foundation launch configuration, runtime-service logic, and tests. The diff introduces no SwiftUI views, ObservableObject/@published state, GeometryReader, lazy/li…
Cmux Architecture Rethink ✅ Passed PASS. The diff is a small local correctness fix. workspaceConfiguration is the single owner for helper launch settings and enforces the regular, executable helper invariant before NSWorkspace laun…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The PR changes helper launch configuration and runtime behavior only. It does not add or materially change an NSWindow, NSPanel, NSWindowController, SwiftUI Window, or WindowGroup. The new NSWorkspace…
Cmux Source Artifacts ✅ Passed The diff changes only two hand-written Swift source files and one hand-written Swift test file under Packages/macOS/CmuxComputerUse. No changed path is a scratch directory, cache, build output, depe…
Cmux No Test Or Debug Seam In Production Source ✅ Passed No prohibited test or debug seam was added. The production method workspaceConfiguration(helperURL:fileManager:) in `Packages/macOS/CmuxComputerUse/Sources/CmuxComputerUse/ComputerUseHelperLaunchCon…
Title check ✅ Passed The title clearly and concisely describes the primary change: preventing repeated Computer Use helper launch dialogs.
Description check ✅ Passed The description clearly explains the problem, implementation, testing, validation limits, and user workaround. It omits the template's Demo Video, Review Trigger, and Checklist sections, but the core …
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@azooz2003-bit
azooz2003-bit merged commit 148666c into main Sep 23, 2026
63 of 64 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 23, 2026
1963a38 fix: attribute task model catalog results (manaflow-ai#13876)
148666c Prevent repeated Computer Use helper launch dialogs (manaflow-ai#14028)
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