sots-re/verify/results/compare
alex 7eabfefff2 lane V: live verification of the event-posting model against an advance prediction
Lane P wrote the expected numbers into sots-engine docs/P-events-wiring.md §4 before
this run existed. Every one held.

First End Turn (ref-turn2 -> Launch -> End Turn, shim.cfg.recapb3 unchanged, build
eventlive-dd38117-20260908T0916Z, main dd38117 with no source change): 3 calls, 3
compared, 0 divergent, tracecmp exit 0 — where lane R's run exited 1 on
side.events.after.v.next_id orig=4 ours=3. Call 0 read turn=3,
events_turn_bucket_exists=true, events_next_id_in=3, events_in_turn_bucket=1,
events_dedup_risk=0, no events_scan_truncated, next_id 3->4 on both sides,
turns/turns_bytes 2/48 unchanged, node[144].progress 2879->5768, flag 1->2, rng
identical — the whole predicted list.

Five End Turns: exit 1 with 2 divergent calls instead of 3, each short by exactly 1
(next_id orig 7 ours 6, orig 12 ours 11) = the deliberately unmodelled
EVENT_TECHS_UNLOCKED. A 0-divergence result there would have been suspicious.

sizeof(Game::ObservedTech) = 44 measured live: observed_techs.bytes grew by exactly
44 on both completion calls (440->484, 484->528), confirming lane X's static pin
behaviourally. Non-researching players measured 880 = 20 x 44 and never moved.

One deviation from lane R, and it is a workload effect, not a defect: rng diverged on
call 9 because the completed tech had research_roll_pending set and the
OnTechResearched callback drew one word ours does not (left 374 vs 375). Lane R's
"RNG matched 15 of 15" was workload luck; the honest statement is that the rng region
matches on every call that does not complete a roll-triggering tech.

Zuul double roll CLOSED. No species-5 save existed, so this lane made one: a custom
game with only Zuul in the Available Species pool, 4 End Turns under the same compare
config. 8 calls, 8 compared, 0 divergent, exit 0; all four researching calls have
species=5 and advance the generator by two, not one (left 540->538, 522->520,
504->502, 485->483), and ours reproduced every post-state bit-for-bit. Save added as
verify/results/saves/zuul-turn5-species5.sav.

End-Turn oracle byte-identical to lane R's on the first turn, so none of this
perturbs the game. clean_room_check OK and host ctest 33/33, run as separate commands.
VM140 restored to the recap build at the main menu and released.
2026-09-08 05:59:22 -04:00
..
.keep.md verify: compare harness (trace format, tracecmp, replay, oracle bridge); board catch-up; sim formula gaps 2026-09-07 17:28:37 -04:00
b2-techfx-compare.json b4 static findings: 22 formula corrections, 3 verified signatures, contract -> 324 entries 2026-09-08 00:57:55 -04:00
b2-techfx-golden.json b4 static findings: 22 formula corrections, 3 verified signatures, contract -> 324 entries 2026-09-08 00:57:55 -04:00
eventlive-b3-t1-5.json lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
eventlive-b3-t1-5.md lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
eventlive-b3-t1.json lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
eventlive-b3-t1.md lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
eventlive-b3-zuul.json lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
eventlive-b3-zuul.md lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
mf-after.json board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-after.md board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-before.json board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-before.md board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
recap-b1-compare.json lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b1-compare.md lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b3-compare-t1-5.json lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b3-compare-t1-5.md lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b3-compare-t1.json lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b3-compare-t1.md lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-golden-trace.json lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-golden-trace.md lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-misc-compare.json lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-misc-compare.md lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00