A phone-friendly map of how inbox data enters the dashboard, becomes local
state, renders into the five-zone UI, and flows back through optimistic commands.
UI and runtime API sync Local store User writes
1. Runtime is the boundary
InboxScreen mounts a DashboardInboxRuntime for the active organization
and account. Components read runtime state through selectors.
2. Core is the authority
Inbox Core owns conversations, messages, counters, metadata, drafts,
command state, and subscriptions. React state only holds UI filters.
3. Sync is ordered
RxDB hydrates first. Bootstrap and sync-event replay catch up from a
durable cursor. WebSocket events keep the screen live after that.
4. Writes are optimistic
Sends, read marks, assignments, and tags stage local changes, enter the
command outbox, flush to the API, then reconcile through sync events.
Source map: apps/dashboard/src/components/inbox, apps/dashboard/src/inbox-core,
and packages/inbox-core.