4.7 KiB
Engine worker checkpoint
Updated: 2026-09-09
Followup checkpoint (openai/gpt-5.6-terra)
-
Source worktree:
/home/alex/sots-engineat7741d42fc5e4e761e6449bdaf0e4a61d00036a23; RE state root:/home/alex/sots-reat3bfde5a70d874a723e797a695bbd847fd82c0aa7. -
Preserved command-replay leaf writes during
RunStrategicTurn's final record fold, then added anapp_command_replayregression that verifies an applied replay write changes the board and is included exactly once beyond all phase records. -
Changed configured empty save directories from skips to failures in the modified app turn, app turn-record, design census, Mars save, and Mars domain corpus consumers. Unset dependencies retain their existing skip behavior; unreadable and parse-error saves remain failures without skip wording.
-
Observation:
git diff --checkpassed before focused build/test execution. Existing unrelated rollout changes are present in the engine worktree and were left untouched. -
mars_stream_test_savenow stops after reporting parser errors, before accessing typed-shape assumptions.mars_stream_domainsreports parse/read errors and omits those saves from its domain archive. This turned the malformed-save signal termination into ordinary nonzero test failures; it is a test-boundary fix within the assigned contract, not an architecture change. -
Results: fresh
/tmp/opencode/sots-engine-followuphost build succeeded. WithSOTS_SAVES_DIR=/home/alex/sots-re/verify/results/saves,ctest --test-dir /tmp/opencode/sots-engine-followup --output-on-failure -R '^(app_command_replay|app_turn|app_turn_record|mars_stream_save|mars_stream_domains)$'passed 5/5 twice, after the final test-boundary change. -
Negative evidence: each modified corpus executable returned nonzero for the configured empty directory
/tmp/opencode/sots-empty-corpus: app turn, app turn-record, Mars save, Mars domains, and design census (the census was givenSOTS_DATA_DIR=/tmp/opencode). Each of the four applicable consumers returned a normal nonzero failure for configured malformed/tmp/opencode/sots-invalid-corpus/malformed.sav; no skip wording or signal termination. -
Skip evidence:
env -u SOTS_SAVES_DIR -u SOTS_DATA_DIR ctest --test-dir /tmp/opencode/sots-engine-followup --output-on-failure -R '^(app_turn|app_turn_record|mars_stream_save|mars_stream_domains|game_design_census)$'reported all five as CTest skipped. Only unset dependencies take that path. -
git diff --checkpassed after the final edits. No broad gate was run. Existing unrelated rollout changes in both worktrees remain untouched. -
Completion: followup contract implemented and focused evidence recorded. Next action: stop; lead may consume this checkpoint for the coordinated source-stable gate.
-
Implemented nonserialized
MT19937::words_drawn()accounting. It resets onseed()and successfulload_state()and is not included in save serialization. -
CountingRandomnow measures bounded-integer rejection consumption from that monotone count, so a rejection loop may cross any number of twists. -
Removed S13 wrapper aggregation of P01..P12 counters; appended player records are the only contributors to final turn totals.
-
Added MT boundary/rejection and reset/load tests, plus an app corpus test that validates reported RNG words against the independently persisted generator post-state.
-
Corpus absence now returns 77 for app/census tests; unreadable or parse-error saves fail and nonzero executed saves remain required. CTest skip properties were added to dependency tests.
-
Verification: fresh build at
/tmp/opencode/sots-engine-accountingconfigured and built successfully.SOTS_SAVES_DIR=/home/alex/sots-re/verify/results/saves ctest --output-on-failurepassed 52 of 59 tests; the remaining 7 were reported by CTest as skipped. -
Skip inventory verified with verbose CTest:
game_config_replaylacksSOTS_M1_TRACEandSOTS_DATA_DIR;game_data_realdata,game_design_realdata, andmars_text_realdatalack data inputs;game_design_censuslacksSOTS_DATA_DIR;game_sim_smoke_real_savelacksSOTS_SAVES_JSON;mars_vfs_realdatalacksSOTS_GOB_DIR. No configured corpus failure was skipped:app_turn,app_turn_record,mars_stream_save, andmars_stream_domainsexecuted against the required saves directory and passed. -
Focused rerun passed
mars_rng_unit,app_turn, andapp_turn_record;game_design_censuswas CTest-skipped for its missing data-root dependency.git diff --checkis clean. -
Limitation: full asset-dependent acceptance remains unavailable locally because the listed asset and trace paths are unset. The configure cache does not consume
-DSOTS_SAVES_DIR; the required path was supplied to CTest through its runtime environment.