In the delivery pipeline, when a recipient device has NO active socket, send a Web Push to that device's subscriptions. The payload contains NO message content — only { type, conversationId, messageId }. On open, client syncs and decrypts locally. Never put ciphertext or sender content in the push.
Acceptance criteria:
- Push fires only when the device is offline
- Payload carries no content/ciphertext
- On open, client syncs + decrypts
In the delivery pipeline, when a recipient device has NO active socket, send a Web Push to that device's subscriptions. The payload contains NO message content — only
{ type, conversationId, messageId }. On open, client syncs and decrypts locally. Never put ciphertext or sender content in the push.Acceptance criteria: