Demo seed: played sessions load again (#978) #979

Merged
claude-bot merged 1 commit from fix/demo-seed-canonical-names into main 2026-09-30 19:45:15 +00:00
Collaborator

Fixes #978.

Problem. The demo seed set each played session's canonical_names to the characters present. That field holds the name generator's picks ({category, prompt, selected_name, …}), so SessionResponse refused every seeded played session with a 500, and the page said "This session could not be loaded".

Change.

  • demo/engine.py writes canonical_names=[].
  • New test_every_seeded_session_loads_for_the_gm_and_a_player builds every seeded session's response as its GM and as a player.

Checks

  • The new test fails without the fix (the same ValidationError as on dev) and passes with it. tests/test_demo_seed.py: 7 passed.
  • Ruff 0.4.4 check and format are clean.
  • Changelog: changelog.d/978-demo-seed-sessions-load.fixed.md.

Dev's existing rows were fixed in place, with the owner's approval: 42 string-only lists set to []. All 91 dev sessions now build their response as GM and as player.

🤖 Generated with Claude Code

Fixes #978. **Problem.** The demo seed set each played session's `canonical_names` to the characters present. That field holds the name generator's picks (`{category, prompt, selected_name, …}`), so `SessionResponse` refused every seeded played session with a 500, and the page said "This session could not be loaded". **Change.** - `demo/engine.py` writes `canonical_names=[]`. - New `test_every_seeded_session_loads_for_the_gm_and_a_player` builds every seeded session's response as its GM and as a player. **Checks** - The new test fails without the fix (the same `ValidationError` as on dev) and passes with it. `tests/test_demo_seed.py`: 7 passed. - Ruff 0.4.4 check and format are clean. - Changelog: `changelog.d/978-demo-seed-sessions-load.fixed.md`. Dev's existing rows were fixed in place, with the owner's approval: 42 string-only lists set to `[]`. All 91 dev sessions now build their response as GM and as player. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Demo seed: played sessions load again (#978)
All checks were successful
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 4m2s
CI / Backend lint (ruff) (pull_request) Successful in 1m5s
CI / Feedback site tests (pull_request) Successful in 1m45s
CI / Bot/backend version sync (pull_request) Successful in 1m0s
CI / Does this change touch the recording path? (pull_request) Successful in 35s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Docker image build (pull_request) Successful in 37s
CI / Bot tests and audit (pull_request) Successful in 4m10s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 20m8s
CI / End-to-end journeys (phone) (pull_request) Successful in 20m18s
CI / End-to-end journeys (desktop) (pull_request) Successful in 23m37s
CI / Frontend (shard 2/2) (pull_request) Successful in 6m29s
CI / Frontend (shard 1/2) (pull_request) Successful in 8m14s
CI / Backend migration, tests, and audit (pull_request) Successful in 17m12s
72a7b10168
The seed set each played session's canonical_names to the characters
present, but that field holds the name generator's picks, so the session
response refused every one of them ("This session could not be loaded").
The seed now writes an empty list, and a test builds every seeded
session's response as its GM and as a player.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.