fix(desktop): share one development permission identity #123
- IA
Checkout-specific bundle IDs created indistinguishable Ace-dev entries in macOS Privacy & Security and required separate grants. Direct executable launches also attributed desktop permission requests to the invoking coding app, so enabling Ace-dev could still leave inspection denied. This fixes both causes of the blocker tracked in #97 and #8.
All dev builds now use `dev.ace.desktop.dev` and the configured Apple Development signer; missing or ad-hoc signing fails before building. The dev runner opens the exact bundle through LaunchServices and tracks that instance for shutdown. A separate signed checkout profile preserves each checkout's existing channel data, settings, Keychain service, ports, native-client authorization, and isolated WebKit storage. Canary and stable identities remain unchanged.
Validated with two real signed checkout builds: identical app/launcher/GUI signing requirements, one enabled Ace-dev entry in both app-control and screen-recording settings, and successful native Accessibility plus screenshot inspection using the same grant. Rebuilding and running the final launcher reused it without another prompt. A client from the other checkout was rejected. Normal Quit and SIGTERM to the dev runner removed its app and host; another checkout and Canary stayed running during the SIGTERM check. Full type checks, lint/format checks, signed build verification, ad-hoc refusal, and independent source reviews passed.
Old checkout-specific grants require one-time removal and approval of the shared identity; that migration was completed on the dogfooding Mac. Old bundles were quarantined, with all channel data preserved. Existing WebKit UI preferences are not copied into the new isolated partition. Source dev should run alongside Canary; an installed Ace-dev managed helper cannot coexist with source dev copies sharing its identity. The docs describe both constraints.
### Built in Ace
Nate explicitly allowed direct tools for #8 and made this permission blocker the sole priority. Codex shell/file tools and review agents implemented and checked the fix; the GitHub CLI manages this PR. Computer use verified the real Ace apps and macOS settings, and the signed Ace native bridge exercised inspection. This direct workflow was authorized to resolve the development identity/permission gap in #97; the failing Ace dev permission path was the blocker under investigation. No installed Ace-dev copy or new agent approval layer was added.
iamnbutlerreferenced this in Finish development-run isolation: helper conflict diagnostics, loopback test hosts, and reload #97last month on GitHub
iamnbutlerready-for-reviewlast month on GitHub
iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub
iamnbutlermerged e6e5c369991alast month on GitHub
iamnbutlerreferenced this in chore(desktop): release canary 0.0.14 #130last month on GitHub
iamnbutlerreferenced this in fix(desktop): verify focus before pressing editable fields #120last month on GitHub