Gauntlet test world (server/src/test_world/): 3 rooms (Inventory Warehouse, Occlusion Corridor, Pause Chamber) + Central Hub with hybrid Rust room definitions, WalkabilityMap + ECS entity spawning, and StableId ranges
Room constants module (constants.rs): 8 room constants, room_at() lookup, stable coordinate references for all Gauntlet tests
Room reset trigger (reset.rs): RoomResetTrigger component, RoomSnapshots resource, 10-tick debounce, "Reset" verb wired into input system
Layer 3 subprocess test (server/tests/layer3.rs): real subprocess integration — spawns server binary, connects TCP, exchanges snapshot, asserts protocol version (D-030)
Golden file comparison (tooling/test-client/src/golden.rs): recursive diff_json_values() with sorted keys, field-level diff output, 14 unit tests
Golden file test suite (server/tests/golden_suite.rs): 10-tick deterministic replay against committed golden file, UPDATE_GOLDEN=1 env var for regeneration
Content runtime validation (server/tests/content_loading.rs): boots full plugin stack with production content, ticks 10 times, asserts valid snapshot
Architecturally consistent with D-010, D-030, D-031. StableId reservation pattern is "genuinely elegant." Reset mechanism uses Commands correctly in production path.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
server/src/test_world/): 3 rooms (Inventory Warehouse, Occlusion Corridor, Pause Chamber) + Central Hub with hybrid Rust room definitions, WalkabilityMap + ECS entity spawning, and StableId rangesconstants.rs): 8 room constants,room_at()lookup, stable coordinate references for all Gauntlet testsreset.rs):RoomResetTriggercomponent,RoomSnapshotsresource, 10-tick debounce, "Reset" verb wired into input systemserver/tests/layer3.rs): real subprocess integration — spawns server binary, connects TCP, exchanges snapshot, asserts protocol version (D-030)tooling/test-client/src/golden.rs): recursivediff_json_values()with sorted keys, field-level diff output, 14 unit testsserver/tests/golden_suite.rs): 10-tick deterministic replay against committed golden file,UPDATE_GOLDEN=1env var for regenerationserver/tests/content_loading.rs): boots full plugin stack with production content, ticks 10 times, asserts valid snapshotTickets: #482, #484, #485, #487, #488, #489, #490
449 tests passing, 0 failures.
Test plan
cargo nextest run— all 449 tests passcargo nextest run layer3— subprocess test greencargo nextest run golden_suite— golden file matchescargo nextest run content_loading— runtime validation passes🤖 Generated with Claude Code
Review: server -> main (type: code)
Hoshe (Code Quality): REQUEST_CHANGES
Well-structured test infrastructure with clean room builder patterns. StableId reservation and debounce logic are correct.
RoomMembercomponent defined but never used — dead codeexecute_reset/plan_reset) — production path uses onlyplan_reset; the other creates maintenance trap.unwrap()onreset_platein boot-path code — use.expect()room_atz-range assumption undocumented24hardcoded in assertion — derive from constantsstable_id_ranges_match_specdoesn't verify reset plates at 49-51Tyre (Architecture): APPROVE
Architecturally consistent with D-010, D-030, D-031. StableId reservation pattern is "genuinely elegant." Reset mechanism uses Commands correctly in production path.
test_worldunconditionally compiled into release binary — consider#[cfg(feature = "gauntlet")]setup_gauntletbypasses startup system scheduler — add comment, track for futureroom_atfragile if corridors overlap room bounding boxes — document assumptionVerdict: CHANGES REQUESTED
Re-Review: server -> main (type: code) — Post-Fix
Hoshe (Code Quality): APPROVE
All 9 original items verified as FIXED. No new issues. Code is cleaner — simpler API surface, better test coverage, TCP test can no longer hang.
RoomMemberdead codeexecute_resetremoved.unwrap().expect()with messagesroom_atundocumentedTyre (Architecture): APPROVE
All 5 original items verified as FIXED. Feature-gate approach well-structured.
rooms_do_not_overlaptest is a strong addition.test_worldin release binary#[cfg(feature = "gauntlet")]setup_gauntletbypasses schedulerexecute_resetremovedroom_atcorridor overlapcontent_runtime.rsVerdict: APPROVED
Pull request closed