fix(macos): attach to a running app instead of launching a duplicate on open

Merged
TH
3h ago
+1006-0

Summary

Part of #3406. macOS open checks LaunchServices registration when an app-shaped process is already running, preserving the selected instance and arguments. The 2500 ms probe remains best-effort; unconfirmed registration retains normal open behavior and may duplicate. Process-table reads use the same provider executor as the other tools.

Validation

Head: ee2a12ef551548e133bb78c5ef72104240c4db3e.

  • Direct exact-head gate run-YjbGPz passed with exit 0, exactCommit: true and matching clean fingerprints. Fresh isolated r9 review found no findings, reproduced 973 tests, and killed restored process-error, plist-pairing and budget-guard mutations.
  • Current-head live A/B passed: both opens dispatched during an asserted unlisted window near 300 ms. Base produced two copies; head retained one original with its arguments. Snapshot and deep-link delivery reached the same instance (comment 6220965202).
  • Current iOS smoke failed during public-CLI prepare ios-runner: daemon startup exceeded 15000 ms, the child was gracefully retired, and no owner metadata appeared. Native runner compilation passed; no smoke scenario or XCTest assertion ran. Daemon log empty; cause unestablished; owner investigating startup and transitive imports. No CI retry taken.

CI: 17 successes, one failure, one skip and one neutral; macOS Smoke passed. The same preflight signature hit cac1247ac (#3345) and 9c7d2602c in the same window while 9203a7a40 reported success at 17:50:12Z — evidence pinned in comment 6221775611; cause unestablished, not classified as infra. The 42228dfb6 masked-field assertion is separate and historical; this preflight failure does not establish whether it passes here — at b85783148 the suite ran 117/0 with it passing.