Skip to content

Notifications & Inbox

There is no notification server. Because every change in the workspace syncs to your device anyway, notifications are derived locally: a notifier runs one evaluation per applied change and decides whether it deserves your attention. Your read state is itself a private, user-owned node (InboxState), so the inbox follows you across devices without anyone else seeing what you’ve read.

Rules run in priority order — the highest matching reason wins:

mention > dm > assigned > reply > comment > room-mention > keyword

Three details keep this trustworthy:

  • Edge semantics — assignment notifies on the transition into being assigned. A re-sync or replay of the same change never re-notifies.
  • Own-change suppression — your own edits never notify you.
  • Tombstone suppression — deleted content doesn’t resurrect a notification.

Read state is the Zulip-style hybrid:

  • a per-channel watermark (“read up to here”) advances as you view a channel, clearing activity in bulk;
  • explicit mention acks track each mention individually, so a mention can’t be accidentally swept away by scrolling past it.

On top of that, inbox items can be triaged: done, saved, or snoozed.

Badging is two-tier so the urgent never drowns in the ambient:

  • a number counts things aimed at you — mentions and DMs
  • a dot means there’s other activity — replies, comments, room chatter

Channels can be muted, and a mention overrides the mute (you can silence a busy channel without becoming unreachable). Do-not-disturb windows suppress alerting overnight; items still accumulate in the inbox.

The Notifications tray (bottom panel) is the triage surface: reason-chip filters (mentions / DMs / assigned / replies…), done/snooze actions, and deep links that jump straight to the message, task, or comment in its own tab. The status-bar bell carries the two-tier badge.

Because derivation is local, anything that syncs can notify. Push delivery to closed apps (Web Push, Electron, mobile) rides the hub and is in progress — see the roadmap.