Notification clear & draft sync
Two more cross-device conveniences built on the same own-device sync channel as read receipts. Both relay only to the user's own other devices, never to anyone else, and both are driven entirely by your app, the relay never decides anything.
Notification clear
When the user reads or dismisses a conversation on one device, call clearNotification(conversationId). The user's other devices receive it and can drop the matching notification badge, so a notification the user already dealt with doesn't keep nagging them on the tablet. Always available, no opt-in: it is plain multi-device hygiene with no privacy surface.
client.clearNotification(conversationId);
client.onNotificationCleared(e => {
// clear the badge for e.conversationId
});Draft sync
Let a user start typing on their phone and finish on their laptop. Call syncDraft(conversationId, text) as the composer changes; the user's other devices receive the draft and can pre-fill their composer. Drafts are pure fan-out, the relay never stores them, so if a device is offline it simply does not get that draft.
client.syncDraft(conversationId, composerText);
client.onDraftSync(e => {
// pre-fill the composer with e.draftText
});Draft sync is opt-in. Unlike notification clear, draft sync is off by default and the app owner enables it under App Settings. Draft text crosses the relay in cleartext (it is fanned out, never persisted), so the choice is deliberately the customer's, not the platform's.
Compatibility
Requires SDK 0.12.0+ on JavaScript, Android, and iOS. Both ride the same wire type as read receipts, so there is no protocol version change.