Room
A membership-aware session room built over a us.tractat.kuilt.core.Seam.
The key abstraction above us.tractat.kuilt.core.Seam: peers become Members only after completing the admit/identify handshake. Raw connected-but-unidentified peers are invisible to consumers of Room — they do not appear in roster and their frames are dropped from incoming.
All flows are coroutine-scope-bound (the us.tractat.kuilt.core.Loom backing this room's us.tractat.kuilt.core.Seam drives the lifecycle). Call leave to clean up.
Properties
Host-verified principals of currently-linked peers, keyed by the PeerId each was verified against at admission — the roster analogue of the per-member Member.principal.
Stream of MembershipEvents describing roster and liveness changes.
Whether this peer's own end of the fabric carrying this room can carry frames now.
The joiner's reconnect credential, available after the admit handshake completes.
The role this peer plays in the room.
This peer's own identifier (mirrors us.tractat.kuilt.core.Seam.selfId).
Functions
The frames of one admitted member, held from the instant it is admitted — a collector that starts after admission, even after the member's first frames arrived, still receives them, in arrival order.
Leave the room cleanly. Idempotent.
Attempt to resume this room from a ResumeToken after a transport drop.