-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Labels
Description
Summary
Goose Desktop silently fails when running commands that access Calendar or Reminders (e.g., icalBuddy calendars). The command returns exit code 0 but with empty output. The same command works fine from the CLI.
Root Cause
The TCC (Transparency, Consent, and Control) logs reveal the issue:
tccd: Prompting policy for hardened runtime; service: kTCCServiceCalendar requires entitlement com.apple.security.personal-information.calendars but it is missing for responsible={com.electron.goose}, accessing={icalBuddy}
tccd: Refusing authorization request for service kTCCServiceReminders...without NSRemindersUsageDescription key
The Goose Desktop app is missing:
- Calendar and Reminders entitlements in
ui/desktop/entitlements.plist - Usage description keys in the Info.plist (via
forge.config.ts)
Why CLI Works
When running from Terminal, icalBuddy inherits the terminal app's calendar permissions. When running from Goose Desktop, the Electron app is the "responsible" process and lacks the required entitlements.
Proposed Fix
1. Add to ui/desktop/entitlements.plist:
<key>com.apple.security.personal-information.calendars</key>
<true/>
<key>com.apple.security.personal-information.reminders</key>
<true/>2. Add to ui/desktop/forge.config.ts in the extendInfo section:
NSCalendarsUsageDescription: "Goose needs calendar access to help manage your schedule",
NSRemindersUsageDescription: "Goose needs reminders access to help manage your tasks",Reproduction Steps
- Install
icalBuddy(brew install ical-buddy) - Run
/opt/homebrew/bin/icalBuddy calendarsin Goose Desktop - Observe empty output with exit code 0
- Run the same command in Terminal - works correctly
Environment
- Goose Desktop v1.23.2
- macOS (tested on multiple machines)
Related
This follows the same pattern as the microphone fix in #4571 (commit 32fb6e8).
Reactions are currently unavailable