eba706b906509d3c78b14ee98dc6b975527cfb68
The previous regression tests in test_entities.gd only constructed their own LogPlayer and never touched the seed logs the real call sites build — reverting main_window_shell.gd:124 to the broken 3-arg call still left the whole suite green. Not a real regression guard. Now assert against node._log.player in the shell test and against the two dev-harness scenes' seed logs (narrate_harness, npc_harness — both cheaply testable via instantiate + add_child_autofree, no scaffolding needed). Proved the new shell assertion fails when the call site is reverted to the 3-arg shape (226/227, one failure), then passes restored (227/227). Removed a redundant ctor test from test_entities.gd; kept the one that exercises the exact broken-shape call. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QYa9u7Kdxv5gX4AnwWexy8
coc-rpg
AI-driven single-player, party-based fantasy RPG. Godot 4 client, FastAPI proxy, AI as Dungeon Master.
Read CLAUDE.md first — project charter and working agreement. It is the source of truth. If code disagrees with it, the charter wins until the charter is changed.
The one rule
Code owns state. AI owns text. (charter §2)
Repo layout
/client Godot 4.7 game client (GDScript) — ALL game state, ALL game rules
/docs Client-specific docs (scenes, input, combat wiring)
/api FastAPI proxy — auth, metering, prompt routing, logging (charter §4)
/docs API-specific docs (endpoints, model routing, deploy)
/prompts Role prompts — source code, versioned, reviewed (charter §5, §16)
/content Authored game data — quests, NPC knowledge lists, fallback text
/quests Story skeletons and quest definitions
/npcs Per-NPC knowledge lists (charter §6 — "the whole design")
/fallback Authored degraded-DM text for every AI surface (charter §13)
/docs Cross-cutting docs — roadmap, ADRs, planning affecting both sides
/adr Architecture Decision Records
The three processes (charter §4)
client (GDScript) ──HTTP──▶ api (FastAPI) ──▶ Replicate / Ollama
The client holds no API key, ever. It knows one base URL and a set of role endpoints. It sends game state, receives text.
Description
Languages
Text
100%