design: notifications from every server one app is signed into
The good news survives checking. An APNs auth key belongs to the developer account, not a machine, and a device token belongs to the app, not a server — so N installs holding the same .p8 all push to one phone with no coordination, and the app posting its token per server is something the multi-server manager does anyway. One field is missing: the payload carries no origin. That breaks the deep link (a session id is meaningful only on the server that issued it), and threading, and — least obviously and most expensively — `mv`. That is a content hash of THAT server's catalogue, and the client's rule is `mv !== version → resync`. One stored catalogue and five servers means every push from B invalidates what was synced from A, forever. It would present as a battery and data problem rather than a bug. Where the identifier comes from is deliberately left to the sign-on design: the multi-server manager already needs a key per server, and notifications should adopt it rather than invent a second identity that drifts the first time a host is renamed. Records what stays per server on purpose — devices, per-chat mute preferences, the catalogue itself — because the app is what joins them, which is the same shape as the sign-on work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,15 @@ below that proposed deleting it have been removed rather than left to mislead th
|
||||
What did NOT reverse: `execution` permissions (terminal, chat, tasks, files, desktop, browser) run as
|
||||
the owner's OS user and can never be granted. Indirection there really is accidental complexity.
|
||||
|
||||
## Notifications
|
||||
|
||||
- [ ] **A push payload does not say which server sent it**, which is fine for one and breaks three things
|
||||
for several — the deep link resolves a session id against the wrong server, threading can collapse
|
||||
two servers' chats into one banner, and `mv` (a per-server catalogue hash) makes the app resync
|
||||
forever, always against whichever server pushed last. Blocks the multi-server sign-on work.
|
||||
**Settle the server identifier with that design rather than inventing one here.**
|
||||
See `docs/multi-server-push.md`.
|
||||
|
||||
## Affordances
|
||||
|
||||
- [ ] **No way to see which affordances are reaching your agents, or to turn one off.** They are global:
|
||||
|
||||
Reference in New Issue
Block a user