Skip to content

[reliability][P0] Active PC silently switches between beats — the zero_critical blocker #735

Description

@100yenadmin

Source: v1.0.4-rc1 RRI @fa97b34, found by 4/5 personas — the dominant zero_critical gate blocker. Evidence: /Volumes/LEXAR/Codex/worldos-qa-results-fa97b34/runs/vm2-{newbie,adversarial,narrative}/bugs.ndjson.

The focused/active player character silently changes between DM beats with no UI handoff or explanation — the wrong character's story plays after each action:

  • newbie: Liara Portyr → Rolan, then alternates Liara/Rolan on every beat.
  • adversarial: Florrick → Rolan between beats, no player input.
  • narrative: Rolan → Liara Portyr mid-beat, no handoff.

Almost certainly an active-character / session-focus resolution bug (same class as the #717/#719 campaign-resolution fixes). Investigate active-PC/party-focus resolution across viewer/server.py (_pick_campaign / active-character) + the engine session/party focus + play_party.sh. Add an assert_behavioral guard ("active_pc_stable_across_beats"). Related: the Parley focus-switch (#734). Sprint 1 — highest leverage (single root behind the gate).

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