Skip to content

DL-193

The Compass UI’s live agent roster is a reactive JOIN, not a GetRoster-as-roster replace: durable identity + tree come from the already-live SubscribeComms accounts (the single identity source — RosterEntry lacks homeChannelId/kind the UI requires), while ephemeral presence + activity come from a new CommsState.presence map seeded by one GetRoster(scope: OWNER) per snapshot boundary and tailed by the AgentPresenceChanged event the stream driver currently drops; STUB_AGENTS is demoted from live render source to the offline-store seed behind the store’s reactive agents accessor (the STUB_ISSUES seam pattern), never rendered on a live connection

Status: Active (Matt, 2026-08-16)

Record: ../../ui/compass-live-roster/design.md#resolved-decisions