Source event
- new DM
- private/event channel message
- thread reply
Channel / DM composer
A new message can produce feed rows, unread counters, desktop alerts, and push alerts depending on audience and channel mode.
Channel, story, work, and space visibility are checked before fanout.
The person who caused the event is removed from recipient lists.
Explicit mentions, participants, and broad recipients collapse into one route per user.
Push is biased toward useful moments while active clients get socket updates.
HFC and muted paths suppress noisy channel push alerts.
Push deliveries record queued, accepted, failed, received, and opened states.
Feed notification persisted and broadcast to notifications:{user_public_id}.
FCM/APNs payload with badge data, delivery id, and deep link.
Active clients can surface priority events without leaving the current screen.
Desktop clients turn realtime events into OS-level local notifications.
Unread counts refresh channel state, DM cards, and app icon badges.
Account lifecycle and inactivity messages go through the email adapter.