docs/adr/0123-the-room-inherits-the-games-experience.md

ADR 0123: The room inherits the game's experience

Status: accepted (2026-08-18). Amends ADR 0074, which keeps the realtime room session as the sole author of audible speech.

Current status (2026-08-19)

The room inherits only Clankie's own local or hosted game experience through @clankie/play-voice. ADR 0129 supersedes the possessor wording below; external harnesses receive neither experience nor room input.

Context

A live 58-turn FireRed run exposed a gap between one audible character and two model contexts. The game mind saw every frame, decoded every effect, and kept its own thoughts and objective. The realtime room persona received one event: walk beside Oak .... It did not receive the preceding dialog saying Oak was absent, the failed interactions, or the game mind's changing interpretation of the NPCs. When it spoke, it could only rephrase a stale conclusion from a part of itself whose experience it did not share.

Sending the framebuffer to the voice model makes it perceive the game a second time. That duplicates work and still leaves it reconstructing somebody else's thoughts. Sending every turn as a request for speech turns play into nonstop narration. The missing piece is continuity, not another pair of eyes.

Decision

Every settled game turn updates the realtime persona's first-person game-side experience. Speech remains selective.

The update is a bounded snapshot of the game mind's current thought, observed effect, objective, and next intent. It is seeded into the live conversation as the persona's own experience, never as third-person commentary and never as a sentence to repeat. The game frame stays with the mind that acts.

respond: false seeds ordinary turns without creating a model response. speakWanted changes that flag to true and mints the existing delivery id; the room floor and narration interval still decide whether audio is actually played. Thus knowing is continuous while talking remains voluntary and sparse.

Consequences

  • The voice model does not look at the screen. It remembers the same interpreted experience the acting mind just had, including outcomes that contradict an earlier guess.
  • The game mind can still be wrong. It may tentatively identify a visually distinctive character from the frame, but graphicsId remains sprite appearance rather than a character name, and dialog or a prior verified interaction remains authoritative.
  • A verified interaction carries the observed object signature and resulting dialog, not a harness-authored character label. Repeated direct evidence can correct a wrong note without turning sprite appearance into identity.
  • Continuous updates do not create suppression receipts because no response was requested. A speechDeliveryId remains evidence of a real speech attempt, not merely a context update.
  • The possessor seam still carries no authored sentence, audience choice, framebuffer, raw audio, or Discord credential.