notify is core, not grantable
it was an `app` permission and nothing granted it, so every Member's app got a 403 the moment it tried to register its own push token — silently, at launch, with no notification ever arriving and nothing saying why. four member accounts on alpha, none of them able to receive anything. invisible for days because the owner bypasses the check. the grant was not what was missing. these are the caller's OWN devices, and the send route takes its target from the authenticated header rather than the body (resolve-user.ts), so an account can only ever reach its own phone. "you may not subscribe to your own notifications" is not a coherent thing to configure. 6 core, 3 app now. docs:check holds the count and the generated platform skill was regenerated with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
@@ -198,7 +198,19 @@ const CORE_REGISTRY: Permission[] = [
|
||||
key: 'notify',
|
||||
label: 'Notifications',
|
||||
description: 'Push notifications to your devices',
|
||||
kind: 'app',
|
||||
/*
|
||||
CORE, not `app`, since 2026-08-24.
|
||||
|
||||
It was grantable and nothing granted it, so every Member's app got a 403 the moment it tried to
|
||||
register its push token — silently, at launch, with no notification ever arriving and nothing
|
||||
anywhere saying why. Invisible for days because the owner bypasses the check.
|
||||
|
||||
Making it grantable was the mistake rather than the missing grant. These are the caller's OWN
|
||||
devices, and the send route resolves its target from the authenticated header rather than the body
|
||||
(`sidecar/notify/resolve-user.ts`), so an account can only ever reach its own phone. There is no
|
||||
version of "you may not subscribe to your own notifications" that is a coherent thing to configure.
|
||||
*/
|
||||
kind: 'core',
|
||||
api: ['/notify'],
|
||||
// Device registration is the caller's own — a phone subscribing to its own push channel.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user