Skip to content

Fresh-sweep player-felt residuals (3582dc2) — triaged: real vs already-fixed vs false-positive #903

@100yenadmin

Description

@100yenadmin

Triage of the 3582dc2 5-persona sweep's player-felt complaints, after delivering #900/#901/#902 and de-risking the audit long-tails. The raw complaint list contained many already-fixed / false-positive items — recording the triage so they aren't re-investigated.

Fixed this pass

Already fixed upstream (audit sub-findings were stale)

False-positives (verified in code — do NOT re-chase)

  • "Escape silently commits long rest" (adversarial) — the RestPrepareModal HAS the correct Escape→onClose dismiss handler (screen-character.jsx:661-666, WCAG 2.1.2). Not reproduced in code.
  • "Abilities tab is a dead button" (adversarial) — "abilities" is the active default tab (screen-character.jsx:33); clicking the already-active tab is correctly a no-op (setTab + render are wired at 120/261).

Genuinely open (need deliberate work)

  1. Duplicate opening beat (adversarial, major) — opening DM narration appears twice. The dedup (fix(openworlds): 'building your universe' overlay can wedge full-screen 12 min on a DM cold-open error (no escape; dismiss() unwired) #405/[reliability] Duplicate opening narration — port play_codex_dm.sh record_dm_reply (engine_logged) into play.sh #720/fix(viewer): bound chronicle a11y footprint + suppress inter-beat transition meta-text (#752) #890: seq + normalized-text key + engine_logged stamp) is heavily engineered; a remaining gap needs the actual transcript (the two copies' exact text + seq + engine_logged flags) to determine viewer-dedup-gap vs DM-craft reworded-reply (SKILL.md warns a reworded reply defeats the text-dedup). Evidence: qa/ui_playtest_runs/vm2-adversarial/ @3582dc2.
  2. Battle Log renders raw Markdown + leaks internal "narration" event labels (adversarial, minor) — viewer render sanitization (strip md + suppress internal event-kind labels in the player-facing log).
  3. F02-7 multiclass Pact Magic ([engine-audit][P2-cluster] Character progression integrity #794, CONFIRMED) — server.py:423 still gates pact slots to len(class_levels)==1; a multiclass Warlock loses Pact Magic. Niche (multiclass), real.

Bigger deferred features (need engine field / GUI / wrapper)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions