From 808f6e49845cccd69620db87ba8fe5a269d51e5a Mon Sep 17 00:00:00 2001 From: Matt Alldian Date: Fri, 24 Jul 2026 19:13:33 -0400 Subject: [PATCH] fix(desktop): inherit app TCC identity in sidecar entitlements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sidecars ship as loose executables in `Contents/MacOS/` and are signed with their own code-signing identifiers rather than the app's: buzz-desktop Identifier=xyz.block.buzz.app buzz-acp Identifier=buzz-acp buzz-agent Identifier=buzz-agent buzz-dev-mcp Identifier=buzz-dev-mcp buzz Identifier=buzz git-credential-nostr Identifier=git-credential-nostr When a sidecar spawns a subprocess that triggers a TCC-gated access, the consent prompt is raised under the sidecar's identity. The user's "Allow" is recorded against `xyz.block.buzz.app`, so the next request — arriving under a different identity — prompts again. `tccd` logs `DB Action:None` on every request: no decision is ever persisted. The result is an unkillable consent loop, and Buzz never appears in System Settings > Privacy & Security > Files and Folders, so there is no way to grant the permission manually. Add `com.apple.security.inherit` so child processes adopt the app's sandbox/TCC identity and a single grant covers the sidecars. Refs #2783 --- desktop/src-tauri/Entitlements.plist | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/desktop/src-tauri/Entitlements.plist b/desktop/src-tauri/Entitlements.plist index 294ba52362..27a594af75 100644 --- a/desktop/src-tauri/Entitlements.plist +++ b/desktop/src-tauri/Entitlements.plist @@ -9,5 +9,22 @@ com.apple.security.cs.disable-library-validation + + com.apple.security.inherit +