Surfaced by the #324 AI playtester (run play2, newbie persona, baldurs-gate) — the first run to get past the entrance (fixed by #328/#329) and into a sustained play loop, which exposed deeper bugs the entrance-block previously masked.
What happened
While the DM was resolving an in-story turn, a DM-side housekeeping directive rendered inside the player-facing story scroll panel. The box was titled "GM Advisory 1 — What the campaign owes the story" and read verbatim:
npc introduced — silent NPC 'Danis' has been introduced but hasn't spoken — give them a line or record their first memory with remember.
This is an internal instruction to the DM (it even names the engine tool remember), not story content. A real first-timer saw it during normal play.
Why it matters (P1 — immersion / data-presentation leak)
- Internal engine/DM directives must never reach the player surface. This is the AI-DM equivalent of leaking a system prompt into the chat.
- It breaks immersion hard: a new player does not yet know who "Danis" is, and "record their first memory with
remember" is meaningless engine jargon to them.
- The persona self-rated this minor, but a DM-instruction/tool-name leak into player view is a presentation-integrity bug, not a cosmetic one — hence filing as
severity:major.
Expected
DM/engine housekeeping advisories ("NPC introduced but hasn't spoken", "record a memory with remember", etc.) are DM-side only and are filtered out of any player-facing surface (the story scroll / /chat projection the table renders).
Actual
A "GM Advisory" box appeared in the right-hand story panel during narration, fully readable by the player, exposing an internal directive plus the remember tool name.
Evidence
- Run:
qa/ui_playtest_runs/play2/ — bugs.ndjson (player-reported), screenshot player/screenshots/step-032-bug.png.
- The leak almost certainly originates in how the DM's turn output (which can include these advisory lines) is appended to the chat/
/chat projection that viewer/openworlds/screen-table.jsx renders — the player view should strip GM-advisory blocks. (Engine remains the sole writer; this is a viewer-projection/DM-output-segmentation filter, not a wire change.)
Repro
qa/ui_playtest.sh play2 baldurs-gate newbie 30 3.00 (or any live qa/run_duo.sh / qa/play_human.sh session).
- Play a few turns where the DM introduces a new, initially-silent NPC.
- Watch the story panel for a "GM Advisory — What the campaign owes the story" box.
Part of #324 / #242 (Phase 5 UI finish). New vs the closed entrance bugs #326/#327 and all open playtest issues #306–#320.
Surfaced by the #324 AI playtester (run
play2, newbie persona, baldurs-gate) — the first run to get past the entrance (fixed by #328/#329) and into a sustained play loop, which exposed deeper bugs the entrance-block previously masked.What happened
While the DM was resolving an in-story turn, a DM-side housekeeping directive rendered inside the player-facing story scroll panel. The box was titled "GM Advisory 1 — What the campaign owes the story" and read verbatim:
This is an internal instruction to the DM (it even names the engine tool
remember), not story content. A real first-timer saw it during normal play.Why it matters (P1 — immersion / data-presentation leak)
remember" is meaningless engine jargon to them.severity:major.Expected
DM/engine housekeeping advisories ("NPC introduced but hasn't spoken", "record a memory with
remember", etc.) are DM-side only and are filtered out of any player-facing surface (the story scroll //chatprojection the table renders).Actual
A "GM Advisory" box appeared in the right-hand story panel during narration, fully readable by the player, exposing an internal directive plus the
remembertool name.Evidence
qa/ui_playtest_runs/play2/—bugs.ndjson(player-reported), screenshotplayer/screenshots/step-032-bug.png./chatprojection thatviewer/openworlds/screen-table.jsxrenders — the player view should strip GM-advisory blocks. (Engine remains the sole writer; this is a viewer-projection/DM-output-segmentation filter, not a wire change.)Repro
qa/ui_playtest.sh play2 baldurs-gate newbie 30 3.00(or any liveqa/run_duo.sh/qa/play_human.shsession).Part of #324 / #242 (Phase 5 UI finish). New vs the closed entrance bugs #326/#327 and all open playtest issues #306–#320.