Skip to content

[playtest][P1] DM-internal "GM Advisory" note leaks into the player-facing story panel #335

Description

@100yenadmin

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

  1. qa/ui_playtest.sh play2 baldurs-gate newbie 30 3.00 (or any live qa/run_duo.sh / qa/play_human.sh session).
  2. Play a few turns where the DM introduces a new, initially-silent NPC.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingseverity:majorVisible degradation a Pathfinder/BG3 player calls out in 60sui-auditFrom the 2026-05-29 UI/UX audit (docs/ui-audit/)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions