jpmschweitzer and Claude Fable 5
257d979aed
refactor(simulation): split the input.rs and dialogue.rs dispatchers (T-1062)
...
input.rs 2,739 → 858 lines: per-domain action handlers moved to their
owning modules (inventory, movement, stance, examine, follow, interaction,
save_io, settings, bridge::debug, economy, vision_cone, bookmark,
test_world reset + new teleport.rs); input.rs keeps the queue, the thin
dispatch table, and pause/cooldown glue. All 9 type_complexity allows
dissolved via one PlayerInputQuery alias.
dialogue.rs → dialogue/ directory module: selection (631), response
(1,473), confrontation (714), mod.rs (226, shared session components +
re-exports — public paths preserved). Documented seam deviation:
process_walk_away lives with confrontation (D-064/D-063 share the same
world-response shape).
Mechanical, zero behavior change: determinism + golden_suite byte-identical
(independently re-verified); 1,504 lib tests unchanged — 23 input tests
moved with their subjects, 53 dialogue tests redistributed, zero deleted.
System scheduling registrations untouched (input_plugin.rs 0-line diff).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 17:07:36 +02:00
jpmschweitzer and Claude Sonnet 4.6
54754e4080
feat(simulation): add Sprint 11 gauntlet rooms — Sprint Gauntlet, Eavesdrop Alcove, Confrontation Stage ( #504 )
...
Adds three new test rooms to the gauntlet layout at coordinates that tile
correctly with the existing Sprint 11 world. All rooms follow the canonical
entity-registration pattern (StableId 55-62 assigned in spawn order).
- sprint_gauntlet.rs: 32×22 room (StableId 55-57) — Npc_pacing, Npc_guard,
Readable sign. Validates sprint suppression (D-055) at close range.
- eavesdrop_alcove.rs: 24×16 room (StableId 58-60) — two NPC speakers,
corner Readable marker. Validates eavesdrop positioning (D-071).
- confrontation_stage.rs: 32×24 room (StableId 61-62) — Npc_target and
peripheral passer-by NPC. Validates confrontation verb range (D-070).
Updated test_world: mod.rs registers all new rooms, constants.rs adds GAUNTLET
region constant and room spawn points, reset.rs clears all gauntlet rooms.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-19 11:05:41 +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