Skip to content

play-loop: Enter-submitted Do doesn't arm the narrating spinner — player perceives no DM (move-sink/pending-state) #648

Description

@100yenadmin

Found: 2026-06-05 sweep-3b (build f093901), adversarial persona — [MAJOR], dropped sat 9→4.

Symptom (adversarial, verbatim): "After submitting the Do action ('Stand down. That child is with me.') via Enter, the text appeared in the chronicle log but the DM never responded for 3+ minutes. No spinner, no narration, no error — the UI sat idle with all action buttons still enabled. The DM only began narrating after the player manually clicked the 'Continue' button."

Root-cause hypothesis (needs repro): both the Enter-submit Do (screen-table.jsx composer → postMove, line ~754; Enter at line ~1100) and the Continue quick-action go through the SAME postMove. But after an Enter-submit the viewer's pending/narrating state does not arm (no spinner, can_act stays true) — so the player gets zero feedback while play_party.sh is actually composing the beat (~150s). They perceive "no DM", click Continue, which re-arms pending + surfaces the reply. This is the recurring viewer-state-machine class (armPending post-await race at line 450-451; the is_live_view/can_act lockout family, cf #35/#36).

Why it matters: intermittent (adversarial sat was 9 the prior sweep — it didn't fire then), so it's a key driver of G3 single-run variance. Blocks a clean multi-run mean.

Acceptance: an Enter-submitted Do reliably arms the narrating spinner (or an equivalent "DM is composing" affordance) immediately, and the DM beat fires without a manual Continue. Add a deterministic guard (the move-sink → pending-arm contract) so it can't regress silently.

Repro lane: VM 5-persona sweep, adversarial persona; or a focused Playwright harness run that Enter-submits a Do and asserts the spinner arms + a DM beat lands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions