sots-re/findings/control-flow
alex df9431be64 AR: the raid target pick FIRES - TradeManager+0x0c is the per-system containing-sector table
Decides lane AG's section 3.3 final paragraph, which lane AD correctly reported
it could not separate on sector 832.

STATIC: FUN_00841700 is the writer AG's section 7 lists as not found. It resizes
the +0x0c vector to the length of the systems vector -- the container trfr indexes
-- and fills it with containingSector[system.Idx] = sector. It runs from the
deserialiser, so a loaded save has it populated. G_B1a cannot reject a valid trfr.

LIVE: four raiders parked (2 CR on sector 832, 2 DE on sector 816), probes=8.
Slot13RngCalleeA entered 4x/turn at 4 words every turn; on turn 42 the pick fired
at 0x0088b613, calls=1 words=1, and the tail cost 5 words against 4 elsewhere.
The same run carries its own control: B entered on 832 twice at 0 words.

B costs ONE word, not two: FUN_00820af0's third short-circuit is a flag word
InitTable sets only for Human and Zuul, so AG's committed 3-words-on-success is 2.

Two hooks=off processes gave byte-identical autosaves, and so did a probes=8
process -- an oracle pair and a whole-save byte-neutrality proof for the
instrument, both firsts on this lineage.

Also first firings of 0x008939ee (rule 20's case study) and 0x00820c1b.
2026-09-09 00:36:32 -04:00
..
alliance-mask-and-modcount.md lane A2: the alliance mask read from the bytes, and every ModCount writer 2026-09-08 12:44:30 -04:00
combat-done-tail.md Z: the unnamed counter at S+0x8 is ModCount, and my players flag was my own error 2026-09-08 10:04:21 -04:00
combat-resolver.md lane J: the combat resolver, read from the instruction stream 2026-09-08 09:37:02 -04:00
combat-retreat-pipeline.md B5: the combat resolver's sub-dispatcher is RETREAT, and it is the largest 2026-09-08 12:00:14 -04:00
gate-indexed-rng-audit.md lane AG: the gate-indexed RNG audit -- 31 unread-gate rows, 6 new draw sites, the SVSO generator named 2026-09-08 22:25:52 -04:00
hive-creation-rng.md L1: CDiff crosses at frame 50, and the AI client seed is fresh in every process 2026-09-08 18:23:19 -04:00
indirect-edges.md lane V2: vtable inversion — resolve indirect call edges image-wide 2026-09-08 12:05:05 -04:00
inlined-draws.md lane I: the complete inlined-draw inventory, and the seven RNG entry points 2026-09-08 10:03:33 -04:00
raid-gate-multiplicity.md AD: the trade-raid roll is per fleet - 2 raiders = 2 entries, 2 words; B returns without drawing; no oracle pair (AI-only variation) 2026-09-08 23:00:23 -04:00
raid-target-pick-verdict.md AR: the raid target pick FIRES - TradeManager+0x0c is the per-system containing-sector table 2026-09-09 00:36:32 -04:00
standalone-generator-and-turn-record.md lane Y: the standalone's generator against lane Z's calibrated oracle pairs, and the tail's turn record 2026-09-08 11:40:19 -04:00
standalone-scaffold.md lane S2: the standalone scaffold, and the measured distance to the byte-match 2026-09-08 10:35:56 -04:00
tail-probes.md lane H: five live probes, the oracle restored, and a harness perturbation bisected to one hook 2026-09-08 13:53:36 -04:00
tail-rng-ledger.md lane AG merged: gate-indexed audit rows, three gates decoded, tail-rng-ledger 11.1 corrected in place 2026-09-08 22:29:14 -04:00
trade-raid-rng-gate.md AC: guest-state and click-helper notes for VM141 2026-09-08 21:33:25 -04:00
turn-driver.md lane A2: the alliance mask read from the bytes, and every ModCount writer 2026-09-08 12:44:30 -04:00
turn-spine.md tech effects (196-entry TechId table, OnTechResearched), 8 formula gaps answered, std::string settled 2026-09-07 22:05:49 -04:00
w3-containers-status-handlers.md W3: NVO.TShn's writer trapped live, its gate named, and 158/158 on the corpus 2026-09-08 16:41:09 -04:00
watchpoints-modcount-status.md lane W2: the three queue items not reached, with the reason and the cheapest next step for each 2026-09-08 15:25:53 -04:00