- Fail on encode errors instead of silently writing empty .msgpack files
- Fail test on missing/empty fixture dir instead of silent skip
- Add all missing action variants (MoveSouth, MoveEast, MoveWest,
Unpause, ToggleStanceDown, WalkAway) to GDScript fixture generator
- Add GDScript fixture staleness check to make pre-pr
- Validate repo root detection before writing outside client/
- Add file.flush() before close in headless mode
- Document fixture failure recovery in DEVOPS.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
make fixtures-clienttarget: GDScript encoder generates 20.msgpackfixtures, Rust decoder verifies them in one step (#475)Details
client/tests/gen_client_fixtures.gd— standalone SceneTree script, loads Messagepack encoder directly (bypasses class_name registry issues with-sscripts)server/tests/serialization.rs—gdscript_generated_fixtures_deserializetest with value assertions on key fixtures (boundary ticks, action variants)docs/DEVOPS.md— documented cross-encoder fixtures workflowserver/tests/fixtures/gdscript/(same pattern as Rust→GDScript fixtures)Test plan
make fixtures-clientgenerates 20 fixtures and Rust verification passescargo test --test serialization— all 34 tests pass (including new test)Review: ci -> main (type: code)
Hoshe (Code Quality): REQUEST_CHANGES
Cross-encoder fixture infrastructure is well-structured. Boundary tick analysis is exactly the defensive work needed.
count == 0silently skips — empty fixture dir = false passmake pre-prdoes not callfixtures-client— GDScript fixtures can go stalefile.flush()beforeclose()in headless modeTyre (Architecture): APPROVE
Correctly closes D-030 Layer 1 cross-encoder loop. Encoding asymmetry tests are architecturally the most valuable piece.
Verdict: CHANGES REQUESTED
Re-Review: ci -> main (type: code) — Post-Fix
Hoshe (Code Quality): APPROVE
All 7 original items verified as FIXED — including both criticals. Pipeline now fails loudly on encode errors and empty fixture dirs.
quit(1)assert!pre-prmissing fixture check (warning)file.flush()(suggestion)Tyre (Architecture): APPROVE
All 4 original items verified as FIXED. Notes
SetTickRatefixture is missing but pre-existing, not a regression.Verdict: APPROVED
Pull request closed