fix(desktop): pin the complete macOS usage-description set + add reminders entitlement
Batch follow-ups on top of the salvaged privacy declarations: - tests-js/desktop-mac-usage-descriptions.test.ts: EXPECTED_USAGE_DESCRIPTIONS now pins the FINAL key set (camera + calendar x2 + reminders x2 + screen capture + local network) so the drift-protection assertion locks the whole batch as permanent regression coverage. - entitlements.mac.plist: add com.apple.security.personal-information.reminders alongside the calendars entitlement #65220 added — the reminders usage descriptions need the matching entitlement under hardened runtime (sibling site the original PR missed).
This commit is contained in:
@@ -14,5 +14,7 @@
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.calendars</key>
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.reminders</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -107,6 +107,11 @@ const EXPECTED_USAGE_DESCRIPTIONS: UsageDescriptionRow[] = [
|
||||
requiredSubstring: 'audio',
|
||||
reason: 'Audio capture backs the voice conversation pipeline.'
|
||||
},
|
||||
{
|
||||
key: 'NSCameraUsageDescription',
|
||||
requiredSubstring: 'camera',
|
||||
reason: 'Camera access is requested by plugins/features the user enables.'
|
||||
},
|
||||
{
|
||||
key: 'NSAppleMusicUsageDescription',
|
||||
requiredSubstring: 'Music',
|
||||
@@ -115,6 +120,38 @@ const EXPECTED_USAGE_DESCRIPTIONS: UsageDescriptionRow[] = [
|
||||
'surface a misleading Apple Music permission prompt ' +
|
||||
'(kTCCServiceMediaLibrary) when the renderer initializes audio for ' +
|
||||
'completion chimes, TTS, or voice.'
|
||||
},
|
||||
{
|
||||
key: 'NSCalendarsUsageDescription',
|
||||
requiredSubstring: 'Calendar',
|
||||
reason: 'Calendar access backs meeting and scheduling support (#64571).'
|
||||
},
|
||||
{
|
||||
key: 'NSCalendarsFullAccessUsageDescription',
|
||||
requiredSubstring: 'Calendar',
|
||||
reason: 'macOS 14+ full-access variant of the calendar declaration.'
|
||||
},
|
||||
{
|
||||
key: 'NSRemindersUsageDescription',
|
||||
requiredSubstring: 'Reminders',
|
||||
reason: 'Reminders access backs personal-assistant scheduling (#64571).'
|
||||
},
|
||||
{
|
||||
key: 'NSRemindersFullAccessUsageDescription',
|
||||
requiredSubstring: 'Reminders',
|
||||
reason: 'macOS 14+ full-access variant of the reminders declaration.'
|
||||
},
|
||||
{
|
||||
key: 'NSScreenCaptureUsageDescription',
|
||||
requiredSubstring: 'screen',
|
||||
reason: 'macOS 15+ periodic screen-recording re-prompts show this copy.'
|
||||
},
|
||||
{
|
||||
key: 'NSLocalNetworkUsageDescription',
|
||||
requiredSubstring: 'local network',
|
||||
reason:
|
||||
'macOS 15+ Local Network Privacy silently denies undeclared apps ' +
|
||||
'(#81563); declaration is required for the prompt to appear at all.'
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user