jpmschweitzer and Claude Opus 4.6
036e9dc5c6
fix(tests): update NPC profile count assertions (20→23) for Sprint 14 content
...
Three NPC profiles added by copy team content expansion. Updates
content_loading test expectations to match actual content directory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 19:00:14 +01:00
jpmschweitzer and Claude Opus 4.6
09eb6d7582
refactor(simulation): address PR #32 review — 14 items from Hoshe + Tyre
...
Hoshe (code quality):
- Remove dead RoomMember component from reset.rs
- Remove execute_reset (dual API trap); plan_reset is sole production path
- .unwrap() → .expect() on reset_plate in setup_gauntlet boot path
- Add 10s read timeout to TCP runtime test (prevents hangs)
- Register player in EntityRegistry in runtime boot test
- Document room_at z-range and corridor overlap assumptions
- Derive entity count from EXPECTED_ENTITY_COUNT constant (was hardcoded 24)
- Add reset plate (49-51) verification to stable_id_ranges_match_spec
- Add debounce exact boundary test (tick 9 rejected, tick 10 accepted)
Tyre (architecture):
- Gate test_world rooms/constants/setup behind "gauntlet" feature (default-on);
reset module stays always-compiled (production dependency via input system)
- Document setup_gauntlet scheduler bypass for future tracking
- Extract runtime TCP test to content_runtime.rs (separate failure modes)
507 tests passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 09:45:17 +01:00
jpmschweitzer and Claude Opus 4.6
e66352e0ea
feat(simulation): sprint 9 gauntlet — test infrastructure and first 3 rooms
...
Add Gauntlet test world with 3 rooms (Inventory Warehouse, Occlusion
Corridor, Pause Chamber) + Central Hub, room constants module, room
reset trigger mechanism, Layer 3 subprocess integration test, golden
file comparison engine and test suite, and content runtime validation.
Tickets: #482 , #484 , #485 , #487 , #488 , #489 , #490
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 02:25:57 +01:00
jpmschweitzer and Claude Opus 4.6
91d6b1b1cb
feat(simulation): add YAML content loader with hot-reload ( #326 )
...
LinePool system parses dialogue.yaml and monologue.yaml into indexed
BTreeMap structures. Supports 4-layer query filtering (access >
situation > trust > topic+mood) per D-028. Hot-reload via timestamp
polling every 20 ticks (dev-only). Graceful failure preserves
previous content on reload error.
30+ tests covering enum parsing, index building, query filtering,
monologue fallback, and content watching.
Ref: D-028, D-032, D-035, D-041
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 00:41:29 +01:00
jpmschweitzer and Claude Opus 4.6
267d415173
feat(simulation): implement content loader Phase 2 ( #408 )
...
Extend content loader to read and instantiate real YAML content into
ECS entities. 2-phase spawn pipeline: Phase 1 creates entities with
core components (Want, Tolerance, Contentment, Personality, Tells,
Skills), Phase 2 resolves cross-references (Relationships, Secrets,
Information via KnowledgeGraph, DailyRoutine).
Loads enums, entity attributes, pools, templates, triangles, and NPC
profiles. Handles stub files gracefully. 7 integration tests against
real content files plus edge case tests for invalid data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 01:19:29 +01:00