docs(systems): document three-way ack classification + no_recipient (#18)
federation.md — new undeliverable bucket subsection with three-way classification table, Path A/B semantics, and wire backward-compat note. voice.md — no_recipient row in failure-surface table. websocket.md — DmCallUndeliverableReason union updated to include no_recipient. dm-system.md — cross-reference to voice.md for no_recipient reason.
This commit is contained in:
@@ -284,6 +284,7 @@ If a `member_add` federation event arrives for a soft-deleted channel (non-null
|
||||
**Request:** `{ content?: string, attachments?: string[], replyToId?: string }`
|
||||
|
||||
**Cross-instance access:** Federated users (those with `homeInstance` set) can send messages on any DM channel where they are a member, regardless of which instance serves the request. The `requireLocalUser` gate that previously blocked federated users from DM write endpoints has been removed. DM calls work across federated instances. The caller's instance hosts the LiveKit room; remote clients connect directly. Call signaling is relayed to all active federation peers via synchronous HTTP POST (not the outbox worker). Relay failures at any call state transition emit `dm_call_undeliverable { phase, terminal, failures }` to the originator — see `docs/systems/voice.md` for the full call state machine and failure surface.
|
||||
- Federated call-start to a remote instance with no reachable recipient surfaces as `dm_call_undeliverable` with reason `no_recipient` — see `voice.md` for the full failure-surface table.
|
||||
|
||||
**Validation:**
|
||||
- Caller must be a member (`isDmMember`)
|
||||
|
||||
Reference in New Issue
Block a user