Skip to main content
Version: Current

Context: rooms & sessions

What the platform holds for the station. There is no key to write: this page says what exists today.

The room​

A room is a person's space with the station. It has a short code (u35mub), the same on every door: the tenant's site, Claude, ChatGPT. It holds the selection, the open journey, what the person said about themselves (remember), and the records of what was submitted, which any door reads back.

A room starts anonymous. The code opens the room: whoever holds it sees the selection and the records, and can submit. See Current limits.

When a person signs in inside a room, the room becomes theirs (see Auth). Its code becomes an address, no longer a key: everything the room holds opens only to them, signed in.

The session​

A session is a visit. A room has several: reopening the room during the same visit does not create a session; opening it from another door does.

The conversation thread​

  • What the agent sees: its history, stored server-side per room, in the agent.room_threads table and the agent's threads.
  • What the person sees: the room's thread, stored server-side (room_messages). The agent writes it at the end of each turn. It keeps what is displayed: the person's messages, the agent's answers, the rendered frames. It never keeps the instructions given to the model, nor the tools' arguments, nor their raw results. A failed turn leaves nothing.
  • On opening, the widget and the PWA ask the server for the thread. The browser no longer writes the thread and no longer keeps it.
  • A room that has an owner gives its thread only to them, signed in. Otherwise the person sees "This conversation belongs to an account. Sign in to see it.", with the sign-in steps. Once signed in, the conversation shows. Signed in as another account, they see "This space belongs to someone else." While the conversation is locked, that message stands alone: no invitation or suggestions, and nothing can be typed. Signing in takes one's own address: the room's is never offered to someone who is not its owner. The selection, what was remembered (remember) and the history follow the same rule: others see only that the room is locked, and that they can sign in. The assistant can neither read nor change them either, in the widget as in Claude or ChatGPT.

This thread is not the model's memory. Claude and ChatGPT keep their own conversation.

What the browser keeps​

wherewhat
localStoragethe room code (forgotten after 30 days), the sign-in key (convoy_holder), a visitor identifier for audience measurement, the narration's sentences
sessionStoragethe session identifier, the displayed selection, a pending turn

A new tab resumes the last room and the sign-in: nobody signs in again per tab. A session stays one visit in one tab.

In the target, only room_id and session_id remain, in sessionStorage (Context).

How long​

On the server side, nothing expires on its own. The browser forgets the room code after 30 days.

The messages browsers sent before the server wrote the thread stay in the database. They are never read back. They are not erased yet.

An operations script, sweep-room-data.sh, is run by hand. By default it only reports; with --purge, it erases the data of deleted stations (rooms, events, logs, routes) and the agent's threads that have no room, beyond 30 days. The target's default durations (24 h for an empty room, 90 days of inactivity) are not applied yet.