Everything you can change about a room after it exists: who sits in it, whether it continues as a copy, and what state it is in. None of these existed as a page before 2026-08-22; the rules below are read from the code and the memories, and this page will be the place they are designed from now on.
| change | rule |
|---|---|
| Add a persona | any member may seat a persona they can discover (the seating door, v399); a panel caps at the cast limit; seating into a dormant room wakes it. |
| Remove a persona | retire, not delete — the seat leaves the cast; its words stay in the history; a re-seat later is a rejoin, with a roster note and no second profile. |
| Add a person | invite (a friend), a shared chat link, or a moment-join; every door requires each seated slug be discoverable by the joiner — see Who can reach whom. |
| Fork | a full fork inherits its parent's history and running total — which is why the cost panel reads the ledger by room, not the room's own tally (it was showing the same money in two chats). |
| Archive · trash · delete | three stores: room_members.status is the user-facing truth; state.json and db.rooms.status are the room's own view. A chat you delete is gone for you, not for the others. |
| Switch model | a room may change panel model mid-chat; the per-model cost split follows. |
All of it lives behind the title: Chat info — the cast rows with add and retire, the member list with invite, Fork, and the archive / trash actions; the long-press menu on a chat row carries archive and trash too. The style is the info page's, in the Style Guide.
recent.md, wherever the profile loads the news loads with it — is appended into the dialog, never merged into the prefix, so the prefix stays byte-identical and the cache holds.What that guarantees, and what the check is: a joiner speaks in its own voice from its first turn (the profile is in the model's window) and the room's cache-read share does not drop when it joins (the prefix was not touched). A persona that leaves and returns is a rejoin — the roster note only; the profile is already in the dialog. The smoketest counts that every provider call a room makes passes the one tally seam, so a fork's or a model switch's spend can never go unbooked.