From 5a3f986f38a910fc95c70a324786e11f73ad7eab Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 8 Sep 2026 06:57:37 -0400 Subject: [PATCH] lane U: the unlock cascade, implemented and live-verified Reads: TechTree::PrereqsMet 0x0057d8e0 (AND of ORs; zero groups TRUE, an empty group FALSE), the prerequisite layout at TechDef+0x88/+0x98, the tail collector 0x00587cc3, and the head of OnTechResearched (RecordObservedTech unconditional; the research-event roll gated on ResT == def && ResearchRollPending). Live: 35 compared calls over three workloads, 0 divergences, tracecmp exit 0, End-Turn oracle hashes unchanged. The EVENT_TECHS_UNLOCKED residual lane P predicted and lane V measured is closed by running the cascade, not by posting on completion. 12 new addresses in ghidra/addresses.d/lane-u.json (header 615 -> 627). --- campaign/board.md | 16 +- findings/subsystems/setresearched-cascade.md | 24 + findings/subsystems/unlock-cascade.md | 226 ++++++ ghidra/addresses.d/lane-u.json | 100 +++ ghidra/generated/sots_addresses.h | 26 +- verify/results/compare/unlock-b3-t1-5.json | 795 +++++++++++++++++++ verify/results/compare/unlock-b3-t1-5.md | 26 + verify/results/compare/unlock-b3-t1.json | 787 ++++++++++++++++++ verify/results/compare/unlock-b3-t1.md | 25 + verify/results/compare/unlock-b3-zuul.json | 754 ++++++++++++++++++ verify/results/compare/unlock-b3-zuul.md | 26 + verify/results/shim/unlock-shim.log | 94 +++ verify/traces/unlock-b3-t1-5.jsonl.gz | Bin 0 -> 215225 bytes verify/traces/unlock-b3-t1.jsonl.gz | Bin 0 -> 47611 bytes verify/traces/unlock-b3-zuul.jsonl.gz | Bin 0 -> 236606 bytes 15 files changed, 2892 insertions(+), 7 deletions(-) create mode 100644 findings/subsystems/unlock-cascade.md create mode 100644 ghidra/addresses.d/lane-u.json create mode 100644 verify/results/compare/unlock-b3-t1-5.json create mode 100644 verify/results/compare/unlock-b3-t1-5.md create mode 100644 verify/results/compare/unlock-b3-t1.json create mode 100644 verify/results/compare/unlock-b3-t1.md create mode 100644 verify/results/compare/unlock-b3-zuul.json create mode 100644 verify/results/compare/unlock-b3-zuul.md create mode 100644 verify/results/shim/unlock-shim.log create mode 100644 verify/traces/unlock-b3-t1-5.jsonl.gz create mode 100644 verify/traces/unlock-b3-t1.jsonl.gz create mode 100644 verify/traces/unlock-b3-zuul.jsonl.gz diff --git a/campaign/board.md b/campaign/board.md index ec58edc..8a8a273 100644 --- a/campaign/board.md +++ b/campaign/board.md @@ -59,8 +59,8 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | P2-B3 ProcessResearch (behavioral, RNG) | phase2 | mapped | high | 85% | 2026-09-08 | LIVE, PARTIAL PASS: 15 calls compared, 13 zero-divergence; RNG post-state matched 14/15 incl. every roll (validates MT19937 + draw mapping + odds together). 2 divergences are the declared SetResearched boundary. ORACLE FAILS by exactly one item across 40,300: an unposted EVENT_RESEARCH_OVERBUDGET - compare was blind because the event list was never a declared region. fpu_cw=0x127f => 53-bit double, x87 question SETTLED. No Zuul in the save: double roll still disassembly-only . RECAPTURED WITH GUARDS 2026-09-08 (lane R): the oracle gap is now a COMPARE DIVERGENCE - `side.events.after.v.next_id orig=4 ours=3` on call 0, its only divergent field, with node[144] progress 2879->5768 and flag 1->2 both reproduced and the single RNG draw identical. 15 calls over 5 turns: 3 diverged, **RNG 15/15** (better than the original 14/15 - no tech-effect draw in this session). Guards on the two completion calls map SetResearched: ConMod[0..2]/OutMod/PopMod, ResTNm, TechTree+0x20 order counter, and the undeclared otch vector | . **LANE V 2026-09-08 (build `eventlive-dd38117-20260908T0916Z`): the events divergence is CLOSED on the reference turn** - 3 calls, 3 compared, **0 diverged, exit 0**. Over 5 turns 15 calls / **2** diverged (was 3), both short by exactly 1 `next_id` = the unmodelled `EVENT_TECHS_UNLOCKED`. **CORRECTION to lane R's 'RNG 15/15': that was WORKLOAD LUCK, not a property.** On lane V's call 9 the completed tech had `research_roll_pending` set, so the original drew one word `ours` did not (`left` 374 vs 375, `next_index` 250 vs 249) - the `OnTechResearched` callback draw, a DECLARED out-of-scope boundary (P-events-wiring §3 says so in as many words). Honest statement: the `rng` region reproduces bit-for-bit on every call that does not complete a roll-triggering tech, and is short by exactly one draw on every call that does. Also live: `sizeof(ObservedTech)` = **44**, measured twice (`observed_techs.bytes` 440->484 and 484->528). Zuul double roll now CLOSED on a species-5 save lane V made - see its own row | RNG signatures (Ghidra) | meta | verified | high | 100% | 2026-09-08 | Seed/Twist/NextFloat/NextInt verified; draw = y/(2^32-1); NextInt [0,n] inclusive; lazy twist; left@+0x9c4. RUNTIME CONFIRMED: fpu_cw=0x127f (53-bit double, round-nearest) - our next_float model is right, float_from_pc24 is an unused contingency | | engine: game/effects | engine | verified | high | 100% | 2026-09-08 | merged: TechId enum (196 slots @10000+i), 44 ids with typed strategic effects, species flag bits, ApplyTechEffect; 254 checks | -| VM140 exclusivity (lab rule) | meta | verified | high | 100% | 2026-09-08 | one agent at a time. Holder: **U-unlock** (V-eventlive released 2026-09-08 05:52 local; F-fpucw before it, M-movefleet before that). QUEUE: empty. VM left at the MAIN MENU, `hooks=trace`, build `recap-7584bad-20260908T0615Z` restored from `C:\SOTS\shimdist-recap` (that dist also carries `shim.cfg.recap{trace,b3,b1,misc}`). Lane M also left `C:\SOTS\shimdist-mf` + `C:\SOTS\ui\mf{deploy,release}.ps1` in place - harmless, and a working template for the next lane. Windows Update DISABLED/paused on the VM. Non-holders build /srv/re-lab/build/sots-engine-, stage dist-, deploy C:\SOTS\shimdist-. GOTCHA (lane R): after `schtasks /Run /TN SOTS` the main menu can take >60 s - SCREENSHOT AND VERIFY before clicking, or the click path lands in Credits. GOTCHA (lane M): drive the load dialog ONE rui.ps1 CALL PER CLICK with a screenshot between - a single chained cmd.txt loses sync and silently ends up somewhere else. And the Load Game dialog does NOT pre-select Single Player on a fresh launch: the documented path really is Load Game (512,536) -> Single Player (512,290) -> OK (551,523) -> row -> OK (682,624) -> Launch (511,663). ref-turn2 row is at (400,436) GOTCHA (lane F, confirms lane R): the >60 s startup is REAL and cost a whole wasted run — do not sleep-and-click, **verify the main menu from a screenshot** (`verify/fpu-cw/` run scripts poll a screenshot until the Load Game / Exit buttons are bright red; 3 probes ≈ 25 s was typical). TIP (lane F): reset `SavedGames\` to a fixed file set before every run — the Load dialog row positions depend on how many files are listed, so a constant set means the click path never has to be re-derived (with the 4-file set ref-turn2 sits at (400,348), not (400,436)). PowerShell over SSH mangles quoting badly: send snippets base64 as `powershell -EncodedCommand`, or use `-ExecutionPolicy Bypass -File`. Lane F left `C:\SOTS\shimdist-fpu` + `C:\SOTS\ui\f{deploy,grab,fpu}.ps1` + `C:\SOTS\ui\preF\` (the pre-lane-F SavedGames snapshot, restored) in place. VM RESTORED: recap build `recap-7584bad-20260908T0615Z`, `hooks=trace`, SavedGames back to the 7-file pre-F set, main menu verified by screenshot. GOTCHA (lane V, third confirmation): the >60 s startup is REAL - the Kerberos intro was still on screen at t+30 s and the main menu appeared at ~t+70 s. GOTCHA (lane V): `type ` via the click helper did **NOT** register in the game's text fields this session (neither the Create Game name nor the Save Game file name took SendKeys); the workaround is to accept the default name and **rename the `.sav` on disk** - the Load dialog lists files by FILENAME. SAVEDGAMES IS NOW **8 FILES**: the pre-existing 7 plus `zuul-turn5.sav` (a species-5 save, see the Zuul row). Row positions are UNCHANGED for existing lanes because `zuul-turn5` sorts last: **ref-turn2 is still (400,436)**, zuul-turn5 is the new row 8 at (400,465), rows 29 px apart from y=262 - verified by screenshot `verify/results/shim/eventlive/load-dialog-8files.png`. The three autosaves now belong to the Zuul game. Lane V left `C:\SOTS\shimdist-v` + `C:\SOTS\ui\v{deploy,release,click}.ps1`. VM RESTORED: recap build `recap-7584bad-20260908T0615Z`, `hooks=trace`, main menu verified by screenshot. | -| Zuul double-roll (behavioural) | verify | verified | high | 100% | 2026-09-08 | **CLOSED by lane V 2026-09-08.** No species-5 save existed, so lane V MADE one on VM140: a custom game with only Zuul left in the Available Species pool (both players Zuul), 4 End Turns under `shim.cfg.recapb3`. **8 calls, 8 compared, 0 diverged, exit 0.** All four researching calls have `species=5` and the generator advances by TWO, not one: `left` 540->538 / 522->520 / 504->502 / 485->483, `next_index` +2 each, `mt` hash unchanged; `ours` reproduced every post-state bit-for-bit. Save `verify/results/saves/zuul-turn5-species5.sav` (48559ab5b719b332, 59,131 B, turn 5, homeworld Gallandro) and on the VM as `C:\SOTS\SavedGames\zuul-turn5.sav`. NOT yet exercised by it: a Zuul tech COMPLETION (node 144 was at ~4,700 of 5,000 after 5 turns - one more End Turn gets there), so `SetResearched` and the Zuul boarding-pod grant are still untouched. Report `findings/subsystems/eventlive-verification.md` §5 | +| VM140 exclusivity (lab rule) | meta | verified | high | 100% | 2026-09-08 | one agent at a time. Holder: **FREE** (U-unlock released 2026-09-08 06:55 local; V-eventlive before it; F-fpucw before it, M-movefleet before that). QUEUE: empty. VM left at the MAIN MENU, `hooks=trace`, build `recap-7584bad-20260908T0615Z` restored from `C:\SOTS\shimdist-recap` (that dist also carries `shim.cfg.recap{trace,b3,b1,misc}`). Lane M also left `C:\SOTS\shimdist-mf` + `C:\SOTS\ui\mf{deploy,release}.ps1` in place - harmless, and a working template for the next lane. Windows Update DISABLED/paused on the VM. Non-holders build /srv/re-lab/build/sots-engine-, stage dist-, deploy C:\SOTS\shimdist-. GOTCHA (lane R): after `schtasks /Run /TN SOTS` the main menu can take >60 s - SCREENSHOT AND VERIFY before clicking, or the click path lands in Credits. GOTCHA (lane M): drive the load dialog ONE rui.ps1 CALL PER CLICK with a screenshot between - a single chained cmd.txt loses sync and silently ends up somewhere else. And the Load Game dialog does NOT pre-select Single Player on a fresh launch: the documented path really is Load Game (512,536) -> Single Player (512,290) -> OK (551,523) -> row -> OK (682,624) -> Launch (511,663). ref-turn2 row is at (400,436) GOTCHA (lane F, confirms lane R): the >60 s startup is REAL and cost a whole wasted run — do not sleep-and-click, **verify the main menu from a screenshot** (`verify/fpu-cw/` run scripts poll a screenshot until the Load Game / Exit buttons are bright red; 3 probes ≈ 25 s was typical). TIP (lane F): reset `SavedGames\` to a fixed file set before every run — the Load dialog row positions depend on how many files are listed, so a constant set means the click path never has to be re-derived (with the 4-file set ref-turn2 sits at (400,348), not (400,436)). PowerShell over SSH mangles quoting badly: send snippets base64 as `powershell -EncodedCommand`, or use `-ExecutionPolicy Bypass -File`. Lane F left `C:\SOTS\shimdist-fpu` + `C:\SOTS\ui\f{deploy,grab,fpu}.ps1` + `C:\SOTS\ui\preF\` (the pre-lane-F SavedGames snapshot, restored) in place. VM RESTORED: recap build `recap-7584bad-20260908T0615Z`, `hooks=trace`, SavedGames back to the 7-file pre-F set, main menu verified by screenshot. GOTCHA (lane V, third confirmation): the >60 s startup is REAL - the Kerberos intro was still on screen at t+30 s and the main menu appeared at ~t+70 s. GOTCHA (lane V): `type ` via the click helper did **NOT** register in the game's text fields this session (neither the Create Game name nor the Save Game file name took SendKeys); the workaround is to accept the default name and **rename the `.sav` on disk** - the Load dialog lists files by FILENAME. SAVEDGAMES IS NOW **8 FILES**: the pre-existing 7 plus `zuul-turn5.sav` (a species-5 save, see the Zuul row). Row positions are UNCHANGED for existing lanes because `zuul-turn5` sorts last: **ref-turn2 is still (400,436)**, zuul-turn5 is the new row 8 at (400,465), rows 29 px apart from y=262 - verified by screenshot `verify/results/shim/eventlive/load-dialog-8files.png`. The three autosaves now belong to the Zuul game. Lane V left `C:\SOTS\shimdist-v` + `C:\SOTS\ui\v{deploy,release,click}.ps1`. VM RESTORED: recap build `recap-7584bad-20260908T0615Z`, `hooks=trace`, main menu verified by screenshot. LANE U (2026-09-08): left `C:\SOTS\shimdist-u` + `C:\SOTS\ui\u{deploy,release}.ps1` in place. SavedGames is STILL 8 FILES (the three autosaves now belong to the Zuul game at turn 15) - **ref-turn2 is still (400,436)**, zuul-turn5 still (400,465). A QEMU-level screenshot (feed `screendump /tmp/vm140.ppm` to `qm monitor 140` on spicy, then scp the .ppm) is more reliable than the click helper's `shot` action and does not need the game window. FOURTH confirmation of the >60 s startup: the Kerberos intro was still on screen at t+45 s, the main menu at ~t+85 s. VM RESTORED: recap build `recap-7584bad-20260908T0615Z`, `hooks=trace`, main menu verified by screenshot. | +| Zuul double-roll (behavioural) | verify | verified | high | 100% | 2026-09-08 | **CLOSED by lane V 2026-09-08.** No species-5 save existed, so lane V MADE one on VM140: a custom game with only Zuul left in the Available Species pool (both players Zuul), 4 End Turns under `shim.cfg.recapb3`. **8 calls, 8 compared, 0 diverged, exit 0.** All four researching calls have `species=5` and the generator advances by TWO, not one: `left` 540->538 / 522->520 / 504->502 / 485->483, `next_index` +2 each, `mt` hash unchanged; `ours` reproduced every post-state bit-for-bit. Save `verify/results/saves/zuul-turn5-species5.sav` (48559ab5b719b332, 59,131 B, turn 5, homeworld Gallandro) and on the VM as `C:\SOTS\SavedGames\zuul-turn5.sav`. NOT yet exercised by it: a Zuul tech COMPLETION (node 144 was at ~4,700 of 5,000 after 5 turns - one more End Turn gets there), so `SetResearched` and the Zuul boarding-pod grant are still untouched. Report `findings/subsystems/eventlive-verification.md` §5 **EXTENDED by lane U 2026-09-08: the double roll and the COMPLETION PATH together.** `zuul-turn5` + 10 more End Turns (turn 5 -> 15) under the same config: **20 calls, 20 compared, 0 diverged, exit 0**, with TWO Zuul completions. Call 2 (turn 7, alloc {144,1376}) advances the generator by two (`left` 449->447, `next_index` 175->177) AND runs the unlock cascade in the same call - node 144 -> state 4 / order 21 / turn_researched 7, nodes 132 and 136 -> state 2 with cost_rp 10000 / 16000 and turn_available 7, `next_id` 10->12, `observed_techs` 396->440. Note the ZUUL tree unlocks only 132 and 136 from tech 144 where the HUMAN tree also unlocks 142, so this is an independent instance of the cascade, not a repeat. Trace `verify/traces/unlock-b3-zuul.jsonl.gz` | | budget tail coverage (expenses/aid/debt) | verify | backlog | — | 0% | 2026-09-08 | 8 ComputeBudget slots were always 0 in ref-turn2 (no sliders, no aid, no debt, no handicap). Need a save with expense sliders, a debtor and a research-aid treaty to exercise ExpenseTotal + the aid/bonus tail . CONFIRMED AND WORSE 2026-09-08 (lane R, 4284 calls): **13 of 22 slots are 0 on every call** - tradeIncome, shipCarriedPop, secondaryManager, bonusIncome, systemIncomeNeg, debtInterest, construction, expenses, researchMoneyGiven, savingsGiven, tra, researchPointsGiven, trp | | hook GetDifficultyMods | meta | backlog | — | 0% | 2026-09-08 | B1 derived the two difficulty rows from trace values (AI maintenance divisor 3, research x1.5) instead of snapshotting them; hook it properly so they stop being constants | | section-loader compare crash | verify | backlog | — | 0% | 2026-09-08 | SectionDictionary compare crashes the engine while the identical weapon path succeeds -> fault is in re-running LoadSection, not the manifest reader. Next boundary: hook LoadSection itself. docs/M2.md has 3 ranked leads | @@ -69,7 +69,7 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | RollResearchEvent draw (behavioural) | verify | verified | high | 100% | 2026-09-08 | **CLOSED by lane R.** On turn 6 (`IND_TRKSTL`, tech 10094) `research_roll_pending` was true going in; the original drew exactly one word (rng `left` 375->374, `next_index` 249->250) and cleared the flag, and `ours` reproduced both bit-for-bit on the scratch generator. 0 divergences on that call. Needs 5 End Turns from ref-turn2 to reach - the reference turn has no completion at all | . RE-OBSERVED by lane V from the CALLER side 2026-09-08: on the B3 hook's own call 9 the same draw shows as an `rng` divergence (`left` 374 vs 375) plus guard spans `player+0x3b4` (`ResErrRoll`) and `player+0x196` (byte 2 of design mask B at `+0x194`). Still NO save that starts with `research_roll_pending` true - the flag has only ever been seen set and cleared inside one turn | golden-trace recapture (post-guards) | verify | verified | high | 100% | 2026-09-08 | DONE on the live game, build `recap-7584bad-20260908T0615Z` (NO source change needed - the audit's machinery did all of it). **B3 ProcessResearch: the defect is VISIBLE** - `side.events.after.v.next_id orig=4 ours=3`, one divergent call of 3 on the reference turn and its ONLY divergent field; bit-for-bit the `EvNxID 4->3` that previously needed a 609 KB save diff. Over 5 turns 15 calls / 3 diverged, **RNG matched 15/15**, and the two completion calls miss TWO event ids each. **B1 ComputeBudget: verdict held** - 4284 compared, 0 diverged, exit 0, `budget_object` guard caught 0 undeclared writes (Budget+0x64 never changed value). **MoveFleet: 8 of 45 diverge by 1 ULP of position** (new; see its own row). First guarded captures for OnTechResearched (2 calls), ServerSystem::ProcessTurn (140 calls) and MoveFleet (45). Guards mapped SetResearched live (ConMod[0..2], OutMod, PopMod, ResTNm, TechTree+0x20 order counter) and found an UNDECLARED `vector otch` append at player+0x274. Oracle held on every run's first End Turn. Report `findings/subsystems/golden-trace-recapture.md`; engine `docs/R-recapture.md`; traces `verify/traces/recap-*`, reports `verify/results/compare/recap-*`. sots-engine branch `wip/recapture` e50d5e5 (merged with main 82ef52f; ctest 32/32, clean-room OK) | | MoveFleet position rounding (1 ULP) | verify | verified | high | 100% | 2026-09-08 | **CLOSED by lane M.** Mechanism read off the instruction stream, not fitted: the engine's `Mars_Vec3_Normalize` (0x00422520, 123 callers) narrows to float32 FOUR times - `sumsq = f32(x*x+y*y+z*z)` (products/adds stay in 53-bit regs, only the SUM is stored), `len = f32(sqrt(sumsq))`, `inv = f32(1.0/len)` a RECIPROCAL that is MULTIPLIED through rather than three divides, and `dir.c = f32(delta.c*inv)`; and MoveFleet stores each `dest.c - pos.c` BACK TO A FLOAT32 SLOT before calling it, and takes the leg distance from that same call's return value. `ours` did all of it in double. The position tail (`f32(pos + f32(dir*move))`) was already right, which is exactly why the error was a constant ABSOLUTE ~1.2e-7. Confirmed OFFLINE first (an arrival copies the destination verbatim, so calls 115/155 hand you fleet 34's and fleet 50's exact float32 destinations = 8 fully determined legs; the 5-narrowing model reproduces the ORIGINAL bit-for-bit on all 8, the old double model reproduces `ours` on the 3 divergent ones), then LIVE: control run 8/45 diverged exit 1, fixed run **0/45 diverged exit 0**, with identical args, identical pos.before and identical ORIGINAL pos.after on all 45 calls. Report `findings/subsystems/movefleet-position-rounding.md`, engine `docs/M-movefleet.md`, branch `wip/movefleet` 2aa8cba | -| undeclared ObservedTech append | verify | mapped | high | 60% | 2026-09-08 | NEW (lane R). A tech completion grows `vector otch` at ServerPlayer+0x274 (all three vector words move = a realloc). Seen as an undeclared write by BOTH the ProcessResearch `player` guard and the OnTechResearched `player` guard. It is serialized ServerPlayer state and it is in NO coverage note anywhere - a third list append in the same neighbourhood as the event list. B3's replace oracle never saw it because turn 1 of ref-turn2 has no completion | **APPEND SITE NOW NAMED (lane X): `RecordObservedTech` 0x007ba1a0, called from OnTechResearched; stride 0x2c.** Still needs a declared region + a model in ours. . PARTLY ADDRESSED (lane P + lane V 2026-09-08): it IS now a declared **Result** region (`observed_techs`, ServerPlayer+0x274), so it has left the guards' undeclared list and appears in the diff instead - lane V measured the span growing by exactly 44 on both completion calls (440->484, 484->528) and `ours` short by that 44 each time. STILL OPEN: `ours` does not append, so the region diverges on every completion. The element and the append site are fully pinned (lane X/S: sizeof 0x2c, RecordObservedTech 0x007ba1a0, DE-DUPLICATES BY TECH NAME), so what is left is modelling it - and that belongs with whoever takes SetResearched +| undeclared ObservedTech append | verify | verified | high | 90% | 2026-09-08 | NEW (lane R). A tech completion grows `vector otch` at ServerPlayer+0x274 (all three vector words move = a realloc). Seen as an undeclared write by BOTH the ProcessResearch `player` guard and the OnTechResearched `player` guard. It is serialized ServerPlayer state and it is in NO coverage note anywhere - a third list append in the same neighbourhood as the event list. B3's replace oracle never saw it because turn 1 of ref-turn2 has no completion **MODELLED AND LIVE-VERIFIED by lane U 2026-09-08.** `ours` now models the append DECISION - it scans the owner's otch element NAMES pre-call (the original appends during the call, so a scan taken afterwards would find the tech present and "agree" with a count it never computed) and reproduces `RecordObservedTech`'s de-duplication by name, then moves the SCRATCH header's byte span by one 0x2c element per append. `observed_techs.bytes` now matches on every call in all three runs (440->484, 484->528 on the five-turn; 396->440, 440->484 on the Zuul). STILL NOT MODELLED: the element's own fields (turn_first/turn_last/detected/name/with) - no region can see them | **APPEND SITE NOW NAMED (lane X): `RecordObservedTech` 0x007ba1a0, called from OnTechResearched; stride 0x2c.** Still needs a declared region + a model in ours. . PARTLY ADDRESSED (lane P + lane V 2026-09-08): it IS now a declared **Result** region (`observed_techs`, ServerPlayer+0x274), so it has left the guards' undeclared list and appears in the diff instead - lane V measured the span growing by exactly 44 on both completion calls (440->484, 484->528) and `ours` short by that 44 each time. STILL OPEN: `ours` does not append, so the region diverges on every completion. The element and the append site are fully pinned (lane X/S: sizeof 0x2c, RecordObservedTech 0x007ba1a0, DE-DUPLICATES BY TECH NAME), so what is left is modelling it - and that belongs with whoever takes SetResearched | unnamed offsets from guard hits | verify | backlog | — | 0% | 2026-09-08 | NEW (lane R). Three spans the guards report every run and no addresses.json entry names: **ServerSystem+0xd8 (1 B)** and **ServerSystem+0x238 (4 B)** - written by the AI home system on every colony turn, alongside the fleet-vector growth; **StarFleet+0xdc (1 B)** - written on every moving MoveFleet call, just past Speed (FPsp2 @0xd8). Cheap wins for the contract | | waypoint types 2-5 have no coverage | verify | backlog | — | 0% | 2026-09-08 | NEW (lane M, promoted from a coverage line to its own row because it is now the biggest gap in `MoveFleet`). Types 2 (node line), 3 (node route), 4 (gate teleport) and 5 (probabilistic jump) have NEVER fired in any capture, and the node-line step is WRONG BY CONSTRUCTION - `sim::NodeLineStep` and `sim::BuildStutterSegments` are written and host-tested but are NOT wired into the hook, which steps every waypoint type as `speed x dt`. **`ref-turn2` structurally cannot exercise them**: lane M held the VM and tried. The only mover in that save is the AI, which travels straight runs; the player that would travel a node line has `DE 00 CR 00 DN 00` at its home system (screenshot `verify/results/shim/mf-human-home-no-ships.png`), so Move/Manage Fleets are greyed out on every turn. Needs a ship built over several turns, or - much cheaper - a PURPOSE-BUILT SAVE with a fleet already in orbit next to a node line. Same save would unblock the gate-traffic and probabilistic-jump rows. Also owed on that path: `sim::Distance` is still plain double, and `Mars_Vec3_Length` (0x004224b0) says every vector length in the engine is float32-narrowed twice, so the stutter geometry is probably 1 ULP out the same way the position update was - deliberately left alone by lane M because there is no behavioural evidence to correct it against | | ref-turn2 has no tech completion | meta | verified | high | 100% | 2026-09-08 | TRAP for anyone writing a workload (lane R). The documented one-End-Turn recipe produces **zero** `OnTechResearched` calls - an empty log that still passes. It takes 5 End Turns (to turn 7) to reach a completion. Also: only the FIRST End Turn is reproducible - it hashed to the oracle on all four runs and its research calls reproduce docs/B3.md exactly, but from turn 4 the AI picks a different research target than B3 recorded while the point totals stay nearly identical. Treat anything past turn 1 as *a* run, not *the* run | @@ -78,14 +78,14 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | event posting API | subsystem | mapped | high | 90% | 2026-09-08 | RECOVERED (lane E, `findings/subsystems/events.md`). Container: `EventStorage` embedded at `ServerPlayer+0x29c` (0x1c), `EvNxID` at +0x14 = player+0x2b0 — exactly the guard's byte run. Nested `vector}>`, record 0x74 B, tags `EvEID EvDsc EvMsg EvImg EvLoc EvPos EvAct EvCID`; layout confirmed field-by-field against turn3-state.sav, which CONTAINS the overbudget record. Entry point `int __thiscall EventStorage::PostEvent(this, string BYVAL, string BYVAL, obj*, Vector3*, turn, const char* img, int act)` 0x008862b0 RET 0x4c — **161 call sites in 113 functions, the whole sim's event API**. B3 defect fully explained: 0x00587b97, in the completion-roll-FAILED branch under `!wasDone && nowDone && owner`. 3 note corrections (EvPos is FLT_MAX not inf; the save array is turn-bucketed not flat; TECHS_UNLOCKED has no parent clause). 56 entries in addresses.json; 11 prototypes + 13 labels + 12 comments + 2 structs written back to Ghidra. Engine: `sots-engine` branch `wip/events` a7348be, `src/game/events` + 112 checks, ctest 32/32. NOT YET WIRED INTO A HOOK — see `docs/E-events.md` for the proposed region/Coverage change | | state-checksum replay harness | verify | verified | high | 90% | 2026-09-08 | Lane C: `verify/state-checksum/` (tool, 38 tests, `STATE_CHECKSUM.md`, evidence in `verify/results/state-checksum/`). Whole-state digest tree; **coverage is PROVED by byte-for-byte re-serialisation**, not declared - the answer to empty-region-set green verdicts. Localises: the known load->re-save delta reports as exactly 5 named leaves (`/Sim/players/Player[496 "Singularity"]/Status: 4 -> 0`, `/Summary/Checksum`), and one real End Turn as 108 attributed diffs. All 10 saves STABLE + COVERED. Float policy = exact bits by default, `canonical` for -0.0/NaN only, **tolerance deliberately not a hashing mode** (it lives in `--ulps` on the differ); corpus has 0 NaN/-0.0/subnormals so canonical is a no-op today. Chain record/verify validated on the real turn1-3 saves. REMAINING 10%: the VM-driven replay loop is designed (§5) but UNRUN - needs the VM holder. Open question named in §3.5 with the experiment that settles it (force `fpu_cw` 0x027f/0x127f/0x137f across End Turn, checksum the three autosaves) **§3.5 CLOSED 2026-09-08 by lane F** (see the fpu_cw row): measured, not assumed — 53-bit == 64-bit, so `floats=bits` costs the SSE port nothing; 24-bit and round-up each name one witness. The tool localised both to single leaves out of 35,394, with coverage PROVED on all 8 new saves. | | MoveFleet position ULP divergence | phase2 | verified | high | 100% | 2026-09-08 | **DONE (lane M).** First arithmetic divergence caught by BEHAVIOURAL compare rather than static reading, and it is fixed by matching the original's precision sequence rather than by fitting numbers - see the `MoveFleet position rounding (1 ULP)` row for the mechanism. Live 8 -> 0 on the same 45 calls, control run included so the before/after is this lane's own measurement. **COVERAGE IS UNCHANGED AND STILL THIN**: 15 of 45 calls move and all 15 are the same straight-run waypoint type. Waypoint types 2-5 were ATTEMPTED and could NOT be reached - the only player that would travel a node line has `DE 00 CR 00 DN 00` at its home system on this save, so its Move/Manage Fleets buttons are greyed out every turn and there is literally nothing to send along the node lines the map draws. Reaching them needs a ship BUILT over several turns, or (cheaper) a purpose-built save that starts with a fleet in orbit beside a node line. The node-line step is still wrong by construction: NodeLineStep/BuildStutterSegments exist and are unit-tested but are not wired into the hook | -| ObservedTech append (undeclared) | verify | mapped | high | 60% | 2026-09-08 | Lane R's guards caught a vector append at `player+0x274` during SetResearched. It is SERIALIZED state and appears in NO coverage note anywhere - found only because guards localise rather than just flag a moved hash. Needs a declared region + a model in ours | . PARTLY ADDRESSED (lane P + lane V 2026-09-08): it IS now a declared **Result** region (`observed_techs`, ServerPlayer+0x274), so it has left the guards' undeclared list and appears in the diff instead - lane V measured the span growing by exactly 44 on both completion calls (440->484, 484->528) and `ours` short by that 44 each time. STILL OPEN: `ours` does not append, so the region diverges on every completion. The element and the append site are fully pinned (lane X/S: sizeof 0x2c, RecordObservedTech 0x007ba1a0, DE-DUPLICATES BY TECH NAME), so what is left is modelling it - and that belongs with whoever takes SetResearched +| ObservedTech append (undeclared) | verify | verified | high | 90% | 2026-09-08 | Lane R's guards caught a vector append at `player+0x274` during SetResearched. It is SERIALIZED state and appears in NO coverage note anywhere - found only because guards localise rather than just flag a moved hash. Needs a declared region + a model in ours **MODELLED AND LIVE-VERIFIED by lane U 2026-09-08.** `ours` now models the append DECISION - it scans the owner's otch element NAMES pre-call (the original appends during the call, so a scan taken afterwards would find the tech present and "agree" with a count it never computed) and reproduces `RecordObservedTech`'s de-duplication by name, then moves the SCRATCH header's byte span by one 0x2c element per append. `observed_techs.bytes` now matches on every call in all three runs (440->484, 484->528 on the five-turn; 396->440, 440->484 on the Zuul). STILL NOT MODELLED: the element's own fields (turn_first/turn_last/detected/name/with) - no region can see them | . PARTLY ADDRESSED (lane P + lane V 2026-09-08): it IS now a declared **Result** region (`observed_techs`, ServerPlayer+0x274), so it has left the guards' undeclared list and appears in the diff instead - lane V measured the span growing by exactly 44 on both completion calls (440->484, 484->528) and `ours` short by that 44 each time. STILL OPEN: `ours` does not append, so the region diverges on every completion. The element and the append site are fully pinned (lane X/S: sizeof 0x2c, RecordObservedTech 0x007ba1a0, DE-DUPLICATES BY TECH NAME), so what is left is modelling it - and that belongs with whoever takes SetResearched | fpu_cw sensitivity experiment | verify | verified | high | 100% | 2026-09-08 | **DONE (lane F): 53-bit vs 64-bit x87 makes NO difference — the SSE port has no double-rounding budget to preserve, `STATE_CHECKSUM.md` §3.5 CLOSED.** 7 End Turns from ref-turn2, 6 control words, whole-state checksum on each. stock / 0x027f / 0x127f / **0x137f (64-bit)** all give `978041ac…` identical across all 35,394 leaves. Two settings DO move state, each reproduced on a repeat run: **0x007f (true 24-bit)** -> `/Sim/systems/Sys[112 "Gamma Cephei"]/Pop2/PopG/PopC 540000000->540000002` (+derived Summary/Checksum); **0x1a7f (53-bit, round-UP)** -> `/Sim/fleets/Flt[34 "Beta Fleet"]/Pos/.[0]` and `/Pos/.[2]`, 1 ULP each. So the port must hold intermediates at 53 bits (never compute a chain in `float`) and use round-to-nearest — both SSE defaults, now measured. **THE BRIEFED TRIPLE WAS UNDER-POWERED: 0x027f is 53-bit (differs from 0x127f only in bit 12, infinity control, ignored since the 387) and 0x137f is 64-bit, not a rounding change** — run as written, all three come back identical and would have 'proved' something false. PC=bits 8-9, RC=bits 10-11. Setting PROVEN to hold: read-back at each force + 38 in-pipeline hook samples per run spanning turn phases 4/6/8, all at the forced value (`verify/results/fpu-cw/cw-census.txt`). `Mars::Application::Run` calls `_controlfp(0x50000,0x3070300)` at 0x0089f606 EVERY FRAME = 0x127f, so forcing at EndTurn is wiped before BeginProcessTurn; BeginProcessTurn is the point that works. TRAP: under 24-bit the CRT's own %g rendering degrades, so trace TEXT is not a comparison surface — use `verify/fpu-cw/trace_bitdiff.py`. findings/subsystems/fpu-precision-sensitivity.md | | Summary.Checksum algorithm | objects | blocked | — | 0% | 2026-09-08 | Lane C RULED OUT two candidates so nobody repeats them: NOT a byte sum over the inflated stream, NOT a sum over the int leaves. Each is consistent with the -16 re-save delta but leaves no constant residual across turns | | event posting in ours | phase2 | in-progress | — | 0% | 2026-09-08 | Lane P: make ours actually post events so ProcessResearch's `side.events.after.v.next_id` 4->3 divergence closes. Converts harness-audit row 1 from known-defect to checked, and unbounds B2/B3 whose clean compares currently cover economy fields only | | LAB RULE: no `git add -A` in sots-re while lanes run | meta | verified | high | 100% | 2026-09-08 | MY error, caught by lane M: an integrator `git add -A` in the SHARED `sots-re` clone swept a running lane's in-progress files into commit 9d385a7 mid-run (remainder landed in f5b37c2). Nothing was lost, but authorship and atomicity were. RULE: while any lane is live, the integrator stages sots-re by explicit PATH only (`git add campaign/board.md campaign/DASHBOARD.md`), never `-A`. Lanes own their own subtrees. sots-engine is unaffected - lanes work in per-lane worktrees there, which is exactly why that repo has not had this problem . HAPPENED AGAIN 2026-09-08 (lane V): lane D's commit d7ea0a0 swept lane V's in-flight `ghidra/addresses.json` edit (the ObservedTech LIVE CONFIRMATION prose) into it. No harm this time - the content was correct and is now on main - but it is the same failure mode a third time, and it means a lane can find its own work already committed under another lane's message. Check `git log -- ` before assuming your edit is still unstaged. | | MoveFleet waypoint types 2-5 | verify | backlog | — | 0% | 2026-09-08 | Still ZERO behavioural coverage after lane M. Not for lack of trying: the only mover in ref-turn2 is the AI (straight runs only), and the player that would travel a node line has DE/CR/DN all 00 at its home system, so Move/Manage Fleets are greyed out every turn - there is nothing to send along the node lines the map draws. Needs a ship built over several turns or a purpose-built save. The type-2 node-line step is still WRONG BY CONSTRUCTION (B4). Also: sim::Distance deliberately left in double (only stutter geometry uses it); Mars_Vec3_Length says it is probably 1 ULP out the same way, but there is zero behavioural evidence to correct it against - do not "fix" it blind | | P2-P event posting in ours | phase2 | verified | high | 95% | 2026-09-08 | HOST-VERIFIED, VM RUN QUEUED (lane F holds VM140). next_id reaches 4 in a host reproduction of recap-b3 call 0, fixture rebuilt from raw bytes at the real 0x1c/0x18/0x74 strides and cross-checked against turn3-state.sav with lane C's state_checksum --tree. Count-only (lane E option a): ours never calls the game's PostEvent and REPLACE MODE WRITES NOTHING - a bumped EvNxID with no record behind it would corrupt the very save the oracle hashes. Three design points: the event scan is taken in describe_args BEFORE the original (taken after, ours would dedup against the original's own posts and agree for the wrong reason); dedup risk is MEASURED and reported as events_dedup_risk, not assumed; KeylessEventText resolves keys to "%s" so the shim carries no prose. VERIFIED from the instruction stream: SetResearched 0x00581e10 calls owner vft+0x10 with (flags>>2)&1 and ProcessResearch passes flags=2, so silent=false and the completion event IS posted - previously only inferable from "EvNxID moved by two". ctest 33/33, shim cross-builds on CT111 (lane P could only syntax-check) | . **LIVE-VERIFIED AGAINST AN ADVANCE PREDICTION (lane V 2026-09-08, build `eventlive-dd38117-20260908T0916Z`, main dd38117 unchanged).** Lane P wrote the expected numbers into `docs/P-events-wiring.md` §4 BEFORE the run; every one held. First End Turn: **3 calls, 3 compared, 0 diverged, exit 0** (was 1 diverged) with `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 both sides, `turns`/`turns_bytes` 2/48 unchanged, node[144] 2879->5768 + flag 1->2, rng identical. 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 unmodelled `EVENT_TECHS_UNLOCKED`, exactly as forecast - 0 divergences there would have been suspicious, not good. §4.3 conversion held too: `player+0x274/0x278/0x27c` left the guard's undeclared list (13 spans in 2 calls -> 10) and appear in the diff as `observed_techs.bytes`. End-Turn oracle byte-identical to lane R's. clean_room_check OK, ctest 33/33 (separate commands). Report `findings/subsystems/eventlive-verification.md`; engine `docs/V-eventlive.md`; traces `verify/traces/eventlive-b3-*`, reports `verify/results/compare/eventlive-b3-*` -| EVENT_TECHS_UNLOCKED not posted (predicted residual) | verify | backlog | — | 0% | 2026-09-08 | Lane P FLAGGED RATHER THAN GUESSED. Trigger IS pinned (SetResearched's sweep sets state=2 + stamps turnAvailable sticky at -1; tail loop collects state==2 && turnAvailable==currentTurn) but evaluating it needs the unlock cascade ours deliberately does not run. The driver takes the unlock list as an INPUT and is handed nullptr ("no list") - deliberately distinct from an empty list ("computed, empty"). PREDICTED RESIDUAL: next_id short by exactly 1 on every completion call. Posting it "whenever something completed" would score on this save and be WRONG the first time a completion unlocks nothing - the exact false-pass shape this project keeps catching | +| EVENT_TECHS_UNLOCKED / the unlock cascade | verify | verified | high | 100% | 2026-09-08 | Lane P FLAGGED RATHER THAN GUESSED. Trigger IS pinned (SetResearched's sweep sets state=2 + stamps turnAvailable sticky at -1; tail loop collects state==2 && turnAvailable==currentTurn) but evaluating it needs the unlock cascade ours deliberately does not run. The driver takes the unlock list as an INPUT and is handed nullptr ("no list") - deliberately distinct from an empty list ("computed, empty"). PREDICTED RESIDUAL: next_id short by exactly 1 on every completion call. Posting it "whenever something completed" would score on this save and be WRONG the first time a completion unlocks nothing - the exact false-pass shape this project keeps catching **CLOSED by lane U 2026-09-08 — by running the cascade, not by posting on completion.** `sots-engine src/game/sim/techgraph.{h,cpp}` implements `PrereqsMet` (0x0057d8e0, AND of ORs; zero groups = TRUE, an EMPTY group = FALSE), `SetResearched` (0x00581e10: stamps, child-cost sweep with a SIGNED min against an INT_MAX sentinel, sticky `turnAvailable`, zero-cost recursion) and the tail collector (0x00587cc3). Wired into the B3 hook in COMPARE MODE ONLY, over the scratch node copies. LIVE: **first End Turn 3/3/0 exit 0; five-turn 15/15/0 exit 0; Zuul 20/20/0 exit 0** — all 22 of lane V's divergent fields gone, `next_id` reaching 7 and 12, and the End-Turn oracle hashes UNCHANGED (`bb4fd9ac…` / `978041ac…`). The unlock list is still an INPUT and still `nullptr` when it could not be computed, so lane P's distinction survives. `findings/subsystems/unlock-cascade.md`; engine `docs/U-unlock.md` (§4 = the advance prediction, §5 = the outcome) | | sizeof(ObservedTech) unpinned | objects | verified | high | 100% | 2026-09-08 | **PINNED (lane X).** `sizeof(Game::ObservedTech) = 0x2c (44)` -- three independent proofs: the magic divide `0x2e8ba2e9 sar 3` (= /44, exact) at 0x0087239f, `imul reg,reg,0x2c` at 0x0087243a / 0x007b735b, and the search stride `add edi,0x2c` at 0x007ba257. **Append site = `RecordObservedTech+0xdf` (0x007ba27f): `lea ecx,[player+0x274]; call vector_ObservedTech_push_back 0x007b7320`** -- a de-duplicating append, direct callee of OnTechResearched 0x00891790; the realloc through 0x007b5820 is why all three vector words move. Element FULLY MAPPED (lane S, from ObservedTech::Write 0x00817cf0 / Read 0x00817c40): +0x00 vptr 0x00a2439c (RTTI `.?AVObservedTech@Game@@`), +0x04 uint16 `otnF`, +0x06 uint16 `otnL`, +0x08 **bool** `odet` (1 byte), +0x0c std::string `otch` (**0x1c**, so +0x24 is its _Alval, NOT a field), +0x28 int `owith` -- 0x2c exactly, nothing unaccounted. Same shape as Game::ObservedWeapon (Write 0x00817bc0, tag `owep`). Built the general tool the row asked for: `tools/x86disp.py`, an x86 displacement xref scanner (100% code coverage, 0.17% desync). `findings/subsystems/observedtech-append.md` | . **CONFIRMED LIVE (lane V 2026-09-08)**: on the running game the `observed_techs` Result region grew by **exactly 44 bytes** on each of the two tech-completion calls of the 5-End-Turn run (440->484, 484->528), and both non-researching players' vectors measured 880 = 20 x 44 and never moved. Behavioural confirmation of a purely static pin | lea-displacement xref scanner | meta | verified | high | 100% | 2026-09-08 | `tools/x86disp.py` -- fixes the systemic blind spot that Ghidra does not index ModRM displacements. Full x86-32 length decoder swept from Ghidra's 41,089 function starts: 2,174,504 instructions, 612,166 displacement sites, **100.0% code coverage, 70 desyncs (0.17%), zero unknown opcodes**. Validated against ground truth before use (re-finds `lea eax,[ecx+0x29c]` in GetEventStorage, both OnTechResearched +0x29c sites, and one NEW ProcessTurn site). HONEST LIMITS: it is a **recall** tool, not an oracle -- class-level precision at 0x274 is ~13% by function (99 sites / 45 functions, ~6 real), i.e. a 900x search-space cut that still needs one call-graph check. The naive byte scan it replaces is not wrong so much as **blind**: it misses 80/99 real sites at 0x274 and 13,784/14,611 at disp8 0x14. `cohort` ranking must never be used as a hard filter -- it would have discarded the correct ObservedTech answer. Works off a gitignored local cache in `dumps/`, so it does not hammer CT111 | | lea-displacement xref scanner | meta | verified | high | 100% | 2026-09-08 | `tools/x86disp.py` - full x86-32 length decoder swept from 41,089 Ghidra function starts: 2,174,504 instructions, 612,166 disp sites, 0 unknown opcodes, 100.0% code coverage, 0.17% desyncs. VALIDATED against ground truth before any new claim (rediscovers GetEventStorage's lea ecx+0x29c, EvNxID +0x2b0; positive control: given 50 known ServerPlayer offsets, FUN_0087fac0 scores 50/50 = the serializer, nothing close). BUILD GOTCHA: clipping sweeps at fva+Ghidra sizeInBytes lost 11% of functions to mid-instruction truncation; sweeping to the NEXT function start took coverage 89% -> 100%. HONEST LIMIT: the win is RECALL not precision - naive lea-only scan MISSES 80 of 99 real 0x274 sites; class-level precision ~13% by function. Value = search space 41,411 -> 45 (~900x), then disambiguate by call graph | @@ -107,7 +107,7 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | addresses.json fragment dir (structural fix) | meta | verified | high | 100% | 2026-09-08 | Three cross-lane sweeps today all traced to ONE shared file. `ghidra/addresses.d/.json` fragments are now merged by gen_addresses.py after addresses.json, in sorted order; a DUPLICATE NAME ACROSS FILES IS A HARD ERROR (exit 1), never last-wins, because two lanes disagreeing about an address is precisely what must not be papered over. Self-tested both ways (duplicate exit=1, clean exit=0). Integrator folds fragments back into addresses.json once a lane merges. This replaces the "stage by path" rule with a design that does not depend on remembering it | | P2-P event posting LIVE-VERIFIED | phase2 | verified | high | 95% | 2026-09-08 | ADVANCE PREDICTION HELD FIELD FOR FIELD. Lane P wrote the expected result into docs/P-events-wiring.md 4 BEFORE the run; lane V tested it. First End Turn: 3 calls, 3 compared, 0 divergent, tracecmp exit 0 - turn=3, bucket_exists=true, next_id_in=3, in_turn_bucket=1, dedup_risk=0, no scan_truncated, next_id 3->4 both sides, node[144] and rng as forecast, observed_techs.bytes unchanged on all three. Five-turn: exit 1, 2 divergent calls (was 3), each short by EXACTLY 1 (orig 7/ours 6, orig 12/ours 11) = the deliberately unmodelled EVENT_TECHS_UNLOCKED. player+0x274/0x278/0x27c LEFT the guards' undeclared list (13 spans -> 10) and now show as `observed_techs`. STRENGTHENED BY LUCK RUNNING OUT: this was NOT lane R's run - from turn 4 the AI picked different techs - and the predicted id totals landed anyway. End-Turn oracle matched lane R's hashes byte for byte | | sizeof(ObservedTech)=44 CONFIRMED LIVE | objects | verified | high | 100% | 2026-09-08 | observed_techs.bytes grew by EXACTLY 44 on both completion calls (440->484, 484->528); non-researching players measured 880 = 20 x 44 and never moved. Independent BEHAVIOURAL confirmation of a purely static pin (lane X's three proofs + lane D's magic-divide inversion). Static and dynamic now agree on this struct from four directions | -| CORRECTION: lane R's "RNG matched 15/15" was workload luck | verify | verified | high | 100% | 2026-09-08 | Lane V found rng diverges on call 9 (orig left 374/next_index 250, ours 375/249) = the RollResearchEvent draw in OnTechResearched, a boundary B3 and P-events-wiring 3 both declared out of scope. HONEST STATEMENT: ProcessResearch's rng matches on every call that does NOT complete a roll-triggering tech, and is short by one draw on every call that DOES. Lane R's 15/15 was a property of that workload, not of the model - exactly the kind of claim that survives only until the workload changes. The two "new" guard spans (player+0x196, player+0x3b4) are already-named fields (design-mask B, ResErrRoll) seen from the caller | +| CORRECTION: lane R's "RNG matched 15/15" was workload luck | verify | verified | high | 100% | 2026-09-08 | Lane V found rng diverges on call 9 (orig left 374/next_index 250, ours 375/249) = the RollResearchEvent draw in OnTechResearched, a boundary B3 and P-events-wiring 3 both declared out of scope. HONEST STATEMENT: ProcessResearch's rng matches on every call that does NOT complete a roll-triggering tech, and is short by one draw on every call that DOES. Lane R's 15/15 was a property of that workload, not of the model - exactly the kind of claim that survives only until the workload changes. The two "new" guard spans (player+0x196, player+0x3b4) are already-named fields (design-mask B, ResErrRoll) seen from the caller **EXPLAINED by lane U 2026-09-08, and it is stronger than "workload luck".** The draw is now MODELLED (`ServerPlayer::OnTechResearched` head: `if (ResT == def) { if (ResearchRollPending) RollResearchEvent(); pending=0; ResT=0; }`, one unconditional NextFloat), its two inputs are read PRE-CALL and reported in every record (`research_target`, `roll_pending_in`), and `region:rng` compared clean on all 35 of lane U's calls. BUT `roll_draws` was **0 on every one of them**: `ResearchRollPending` is normally consumed by `ServerPlayer::ProcessTurn` BEFORE ProcessResearch runs, because that call site fires once the progress ratio crosses its threshold - i.e. exactly the turns approaching completion. In lane U's Zuul run `roll_pending_in` is true for turns 8-12 and flips FALSE on turn 13, the turn before the tech completes on turn 14. So lane V's call-9 draw was the RARE case (a tech jumping from below the threshold to complete in one turn). Three sessions, three answers: 0 / 1 / 0. **The branch is inside the compare but has never been seen to fire** - needs a purpose-built save | | Zuul double roll (behavioural) | verify | verified | high | 100% | 2026-09-08 | CLOSED by lane V. No species-5 save existed so it MADE one: custom game, only Zuul in the Available Species pool, 4 End Turns. 8 calls, 8 compared, 0 divergent, exit 0; all four species=5 researching calls advance the generator by TWO (left 540->538, 522->520, 504->502, 485->483) and ours reproduced every post-state bit-for-bit. Was disassembly-only since 2026-09-08 morning. Save: verify/results/saves/zuul-turn5-species5.sav (and zuul-turn5.sav on the VM). Does not yet contain a Zuul COMPLETION - one more End Turn gets there | | VM click helper: `type` does not register | meta | verified | high | 100% | 2026-09-08 | The click helper's `type` action does not reach the game's text fields. WORKAROUND: accept the default name and rename the .sav afterwards. Costs a save-naming step in every workload-building lane | | wire-schema channel (engine) | engine | verified | high | 95% | 2026-09-08 | Lane G REJECTED the brief's premise for good reason. objects/layouts.json is a MEMORY-layout projection and was the wrong input: serializers.py's build() sorts fields by off_abs (89 of 386 classes have offset order != WRITE order) and merges duplicate offsets into alt_tags - which is exactly the JewelsOfTheCrown double-tag trap. Lab.layout() already computed true disk order internally and it was being thrown away. New `tools/streams.py` is a SECOND projection keeping order and repeats and DROPPING EVERY MEMORY FACT (no off/size/sizeof/gaps/strides) - so the original's ABI never enters our runtime types, which was the design constraint. Offsets still have their home as `offset` entries in addresses.json for the shim, which legitimately needs them. gen_stream_schema.py -> include/generated/sots_stream_schema.h (386 classes, 2,042 items). SUBTLETY: the on-disk primitive is NOT layouts.json's `kind` - it comes from the stream vftable slot/helper, and a member held as int16/int8 is written by WriteInt and is FOUR BYTES ON THE WIRE | @@ -115,3 +115,7 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | NAMED coverage 38% -> 97% | engine | verified | high | 100% | 2026-09-08 | All four real saves round-tripped byte-identically BEFORE and AFTER - and lane G refused to call that a coverage claim, because `ar.any` bodies round-trip trivially by copying bytes nobody understands. New CoverageArchive separates items a FIELD NAMES from items a Node merely CARRIES: turn1/2/3 37.9/38.8/39.4% -> 97.1/97.2/97.2%; zuul-turn5 42.5% -> 97.6%. Ratchet at 95%. Newly typed: TechTree (both NumTechs sections), Events (3 nesting levels), ShipRecs, sprjs, civr, comms, spy2, spymgr, aid, Ojvs, AIEnf, FNG, trdmgr, Des section/gun-bank tree. STILL OPAQUE, honestly: CD custom data (744 items - TurnCommands_v5 is a NO-ORDERS snapshot, needs a save with issued orders), SvSctOb (147, eight EncObj variants), DOpts (94, read_elem lacks a std::string branch), spies2 (56, count 0 everywhere), RNG (2, correctly opaque) | | FOUR reader defects invisible to round-trip | verify | verified | high | 100% | 2026-09-08 | Present in BOTH readers, none catchable by a round-trip test. (1) SystemParams field 1 is a STRING, not an int - it is the empty string in every save, four zero bytes, byte-identical to int 0; it round-tripped BY LUCK and a named planet would have desynced both parsers. (2) ObservedTech/ObservedWeapon `odet` is a BOOL not an int (lane D's own golden table already said so); byte-safe only because a 4-char tag makes bool and int items both 12 bytes. (3) SpeciesRatios::nv and (4) ShipRecords::srbd are COUNTS, not fields. Lane G deliberately did NOT patch save_reader.py: every fix is byte-neutral on available saves, and quietly editing the oracle mid-campaign is worse than recording the divergence. THE ENGINE IS NOW THE CORRECTED REFERENCE; the Python oracle carries a logged open item | | RULE: interface stub -> look for the *Impl | objects | verified | high | 100% | 2026-09-08 | `trdmgr` RESOLVED, correcting the earlier "ServerTradeManager has no serializer" finding: the no-op Read/Write is real but THE CALL IS VIRTUAL - ServerTradeManagerImpl has the actual serializer. Same shape resolves IServerSpyManager -> ServerSpyManager. GENERAL RULE: when an interface's serializer is the inherited stub, look for the concrete *Impl. (Game::ShipDesign::Write genuinely still makes no stream call - but ShipDesignDef::Section IS recovered, so most of Des is typeable anyway) | +| B3 hook: the completion path is now inside the compare | phase2 | verified | high | 95% | 2026-09-08 | NEW (lane U 2026-09-08). `Game::TechTree::ProcessResearch` in compare mode now reproduces not only what the function itself writes but the whole `SetResearched` completion path: the turn/order stamps, the child-cost sweep, the availability sweep, the newly-available collector that decides EVENT_TECHS_UNLOCKED, the de-duplicating ObservedTech append and the one RNG word RollResearchEvent draws. **35 compared calls across three workloads, 0 divergences, tracecmp exit 0 on all three.** FOUR pre-call reads make it work and each is a trap that reads back a PLAUSIBLE wrong answer if taken after the original: TechTree+0x20 (order counter, post-incremented -> every `order` off by one), ServerPlayer+0x294 (`ResT`, zeroed by the callback -> the extra RNG draw never modelled), +0x3b4 (pending roll, cleared in the same block), and the otch element names (already appended -> the dedup check 'agrees' with a count it never computed). All four are reported as ARGUMENTS so a run is auditable without trusting `ours`. COMPARE MODE ONLY: in replace mode applying half of OnTechResearched (the append and the roll, but not the ~90 tech-effect field writes) would leave the player in a state no code path produces | +| CLEAN-RESULT DISCIPLINE: how a 0-divergence run was kept honest | meta | verified | high | 100% | 2026-09-08 | NEW (lane U). A clean result was EXPECTED here, which is exactly when a hook that silently models nothing slips through. Three things made that hard to hide and all three fired: (1) the 'did nothing' answer is KNOWN - it is `INT_MAX / 0 / -1`, precisely what lane V's report shows - so there is no null model that passes; (2) the collector ran on all 35 calls, not just the 4 completions, and had to come back EMPTY on the 31 quiet ones - an over-collecting transcription would have pushed `next_id` TOO HIGH and made those calls newly divergent; (3) the shim log prints per-call counters (`completions= unlocked= otch_appends= roll_draws= failures= depth= name_unreadable=`), so a clean compare with zeros on a completion call would have been visible as a clean compare of nothing. Reusable pattern for any lane whose expected outcome is 'no divergence' | +| Prereq semantics come from the CODE, not the tech files | subsystem | verified | high | 100% | 2026-09-08 | NEW (lane U). `TechTree::PrereqsMet` 0x0057d8e0 (whole function): a prerequisite set is an **AND over groups, each group an OR over techs**, held as a flat entry array at `TechDef+0x88` (stride 8, `TechDef*` at +0) plus a vector of `{int start; int count}` groups at `TechDef+0x98/+0x9c` (stride 8). A tech satisfies its group only when its node exists IN THIS TREE and is state 4. TWO EDGE CASES THE DATA FILES DO NOT SUGGEST: **zero groups -> TRUE** (a tech with no `requires` is gated only by its parent edge), and **a group with zero entries -> FALSE, failing the whole test** (the inner loop cannot break, so the outer one exits with that group uncounted) - a 'vacuously true empty OR' reading gets this exactly backwards. Also `TechDef+0xb0`: a byte that excludes a node from the availability sweep entirely; named `TechDef_off_NoAutoAvailable` for what it DOES - the tech-file keyword `unlock_explicitly` matches the behaviour but ParseTech 0x0058b050 shows no reference to 0xb0, so the link is a HYPOTHESIS. `findings/subsystems/unlock-cascade.md` | +| per-lane addresses.d fragment (second use) | meta | verified | high | 100% | 2026-09-08 | Lane U wrote `ghidra/addresses.d/lane-u.json` (12 entries; header 615 -> 627) rather than touching the shared `addresses.json`, and staged every sots-re change by explicit path. No sweep, no lost authorship. Duplicate-name detection did its job: `TechDef_off_Name` had to be checked against the shared file before being added | diff --git a/findings/subsystems/setresearched-cascade.md b/findings/subsystems/setresearched-cascade.md index 1f8b73c..de0a286 100644 --- a/findings/subsystems/setresearched-cascade.md +++ b/findings/subsystems/setresearched-cascade.md @@ -150,3 +150,27 @@ What is **not** known, and was looked for: region reports the vector's byte span, and one completion appends one element, so the delta on a completion call names `sizeof(ObservedTech)` directly. See `sots-engine docs/P-events-wiring.md` §4.4. + +--- + +## 6. Continued by lane U (2026-09-08) — `findings/subsystems/unlock-cascade.md` + +This note stopped at the two functions the sweeps *call*. Lane U read them and implemented the +cascade, closing the `EVENT_TECHS_UNLOCKED` residual this note predicted: + +* **`PrereqsMet` (0x0057d8e0)** is an AND over groups, each group an OR over techs, held at + `TechDef+0x88` (flat entries, stride 8) and `TechDef+0x98/+0x9c` (`{start, count}` groups, + stride 8). Zero groups is TRUE; a group with **zero entries is FALSE and fails the whole test**. +* **`def+0xb0`**, the byte §4 left unresolved, is named `TechDef_off_NoAutoAvailable` for what it + does. Its write site is still not read; the `unlock_explicitly` tech-file keyword is a + hypothesis, not a fact. +* The **tail collector** (0x00587cc3) runs once, after the per-node loop *and* after the decay + sweep, gated on `tree->owner != 0`; the state test is on the self-resolved node, the turn test + on the iterated one. +* **`OnTechResearched`'s head**: `RecordObservedTech` is the FIRST statement and unconditional; + the research-event roll is `if (ResT == def) { if (ResearchRollPending) RollResearchEvent(); + pending = 0; ResT = 0; }`. + +Live result: the cascade running inside `ours` gives **0 divergences on 35 compared calls across +three workloads**, `tracecmp` exit 0, End-Turn oracle hashes unchanged. §5 of the lane U note has +the numbers; `sots-engine docs/U-unlock.md` §4 is the advance prediction and §5 the outcome. diff --git a/findings/subsystems/unlock-cascade.md b/findings/subsystems/unlock-cascade.md new file mode 100644 index 0000000..7834b46 --- /dev/null +++ b/findings/subsystems/unlock-cascade.md @@ -0,0 +1,226 @@ +# The tech unlock cascade — the code, and the live verification (lane U, 2026-09-08) + +Lane P read `TechTree::SetResearched` (0x00581e10) and wrote +`findings/subsystems/setresearched-cascade.md`, which settled the `silent` flag and sketched both +sweeps. It stopped short of the two functions the sweeps *call*, and it deliberately did not post +`EVENT_TECHS_UNLOCKED` — it handed the pass driver a `nullptr` unlock list and predicted a +residual of exactly 1 on `next_id` per completion. Lane V measured that residual live, twice, +exactly. + +This note (a) finishes the instruction-level read — `PrereqsMet`, the prerequisite structure, the +tail collector, and the head of `OnTechResearched` — and (b) records the live verification of the +whole thing running inside `ours`. + +**Result: the residual is gone. 0 divergences on all three workloads, `tracecmp` exit 0, and the +End-Turn oracle hashes unchanged.** Engine side: `sots-engine docs/U-unlock.md`, +`src/game/sim/techgraph.{h,cpp}`. + +--- + +## 1. `TechTree::PrereqsMet` — 0x0057d8e0 + +`bool __thiscall PrereqsMet(TechTree* this, TechPrereqs* p /* = def + 0x88 */)`, 148 bytes, +whole function read. Both `SetResearched` call sites pass `def + 0x88`. + +```c +satisfied = 0; +total = (p->groups._Mylast - p->groups._Myfirst) >> 3; // p+0x14, p+0x10, stride 8 +for (g = p->groups._Myfirst; satisfied < total; g += 2) { + i = g[0]; // start index into the flat entry array + end = g[1] + i; // + count + if (i < end) { + e = (int*)(p->entries + i * 8); // p+0x00, stride 8 + do { + if (e[0] != NULL && + (n = this->nodes[ ((int*)e[0])[0] ]) != NULL && + n->state == 4) break; // this group is satisfied + i++; e += 2; + } while (i < end); + } + if (i == end) break; // group NOT satisfied -> leave it uncounted + satisfied++; +} +return satisfied == total; +``` + +So a prerequisite set is **an AND over groups, each group an OR over techs**, and a tech counts +only when its node exists in *this* tree and is in state 4. + +Two edge cases are the code's, not a simplification, and both are easy to get backwards: + +* **Zero groups → true.** `0 == 0`. A tech with no `requires` line is gated only by its parent + edge. +* **A group with zero entries → false, and the whole test fails.** The inner loop cannot run, so + `i == end` immediately and the outer loop breaks with that group uncounted. A "vacuously true" + reading of an empty OR gets this exactly wrong. + +### The structure at `TechDef + 0x88` + +Two MSVC vectors back to back: + +| offset (from `def`) | what | +|---|---| +| `+0x88` | `vector` — only its `_Myfirst` is read; the groups carry the bounds | +| `+0x98` / `+0x9c` | `vector` `_Myfirst` / `_Mylast` | + +`TechPrereqEntry` is 8 bytes, `TechDef*` at +0x00 (the second word is never read here). +`TechPrereqGroup` is 8 bytes, `{int start; int count}` indexing the entry array. + +## 2. The tail collector — 0x00587cc3, inside `ProcessResearch` + +Runs **once**, after the per-node allocation loop *and* after the decay sweep, and only when +`tree->owner != 0`: + +```c +turn = ModCount; +for (i = 0; i < nodes.size(); i++) { + n = nodes[i]; + if (n && n->def && (p = nodes[ n->def->techId ]) != NULL && + p->state == 2 && n->turnAvailable == turn) collect(n); +} +if (!collected.empty()) PostEvent(EVENT_TECHS_UNLOCKED, ...); +``` + +Note the asymmetry: the **state** test is on the self-resolved node `p`, the **turn** test on the +iterated node `n`. This confirms lane E's read in `events.md` §3.4 and adds the `owner` gate and +the "after the decay sweep" ordering. + +## 3. The head of `ServerPlayer::OnTechResearched` — 0x00891790 + +The two statements before the `!silent` event post, and the only two parts of the callback the B3 +hook's regions can see: + +```c +RecordObservedTech(...); // FIRST statement, UNCONDITIONAL +if (this->ResT /*+0x294*/ == def) { + if (this->ResearchRollPending /*+0x3b4*/) RollResearchEvent(this); // exactly one NextFloat + this->ResearchRollPending = 0; + this->ResT = 0; +} +``` + +* `RecordObservedTech` (0x007ba1a0, lane X) de-duplicates by tech name, so "the vector did not + grow" is a real outcome. Its unconditionality was not previously written down. +* `RollResearchEvent` (0x0088df20) is + `odds = ResearchEventOdds(this, this->ResT); roll = rand01(); if (roll < odds) FUN_00889d60(this);` + — **one draw, unconditional**, and the branch behind it is normally dead (odds are 0 outside the + plague and AI-rebellion families). Clearing `ResT` is what makes a *second* completion in the + same pass draw nothing. + +## 4. `TechDef + 0xb0` — named, not explained + +The byte that makes the availability sweep `continue`. A node carrying it can still be completed +by an explicit `SetResearched`, and sweep 1 still lowers its cost and raises its state — but +nothing ever moves it to state 2, so it never stamps `turnAvailable` and can never raise +`EVENT_TECHS_UNLOCKED`. + +`addresses.d/lane-u.json` names it **`TechDef_off_NoAutoAvailable`** for what it does. The +tech-file keyword `unlock_explicitly` (parsed by `sots-engine src/game/data/techtree.cpp:152`) +matches the behaviour exactly and is the obvious candidate, but `MasterTechTree::ParseTech` +(0x0058b050) shows no reference to 0xb0 in its decompilation, so **the link is a hypothesis, not a +fact**. Nothing depends on it: the byte is read from the live def either way. + +--- + +## 5. Live verification + +Build `unlock-405ba41-20260908T1026Z`, cross-built on CT111, staged `C:\SOTS\shimdist-u`, recipe +`shim.cfg.recapb3` unchanged. The prediction was written into `sots-engine docs/U-unlock.md` §4 +**before** the build was staged; §5 there is the field-by-field comparison. + +| run | calls | compared | diverged | exit | +|---|---|---|---|---| +| first End Turn, `ref-turn2` | 3 | 3 | **0** | 0 | +| five-turn continuation, turn 2 → 7 | 15 | 15 | **0** | 0 | +| Zuul, `zuul-turn5`, turn 5 → 15 | 20 | 20 | **0** | 0 | + +Reports `verify/results/compare/unlock-b3-{t1,t1-5,zuul}.{md,json}`; traces +`verify/traces/unlock-b3-*`; shim log `verify/results/shim/unlock-shim.log`. + +**The End-Turn oracle held.** `(Autosave EndTurn).sav` = `bb4fd9ac89f41e3b…`, `(Autosave).sav` = +`978041acd168b56e…` — the same two hashes lane R and lane V recorded. Checked first, because a +clean compare from a build that moved the game would be worthless. + +### 5.1 What the five-turn run actually did + +All 22 divergent fields lane V recorded are gone. Call 3 reproduced lane V's numbers exactly +(node 144 completes with `order` 22 / `turn_researched` 4; nodes 132/136/142 go 0 → 2 with +`cost_rp` 10000/16000/8000 and `turn_available` 4; `next_id` 5 → 7; `observed_techs` 440 → 484). + +**Call 9 was a different completion from lane V's**, and that is the stronger evidence. From turn 5 +the AI picked a different target — lane R's documented trap #2. Lane V's call 9 completed tech 142 +and unlocked one node; this run completed **tech 9** (`order` 23, `turn_researched` 6) and unlocked +**three**: node 3 at 13000, node 12 at 35000, node 18 at 4000, all `turn_available` 6. Those three +costs appear in no earlier report and were predicted by no one. The model reproduced them with +zero divergences on a case it had never seen — so it cannot be scoring by having memorised lane V's +run. Call 12 then allocates to node 18, the tech the cascade had just unlocked. + +### 5.2 The check against a compare that compares nothing + +A clean result was *expected* here, which is exactly when a hook that silently models nothing +slips through. Three things make that hard to hide, and all three fired: + +1. The expected values are non-trivial and the "did nothing" answer is known: it is + `INT_MAX / 0 / −1`, which is precisely what lane V's report shows. There is no null model that + passes. +2. The collector ran on all 35 calls, not just the four completions. On the 31 quiet calls it had + to come back **empty**; an over-collecting transcription would have pushed `next_id` *too high* + and made those calls newly divergent. It did not. +3. The shim log prints per-call counters. `completions=1 unlocked=3 otch_appends=1` on the + completion calls and all-zero elsewhere — a clean compare with zeros on a completion call would + have been visible as a clean compare of nothing. + +### 5.3 The Zuul completion — double roll and cascade together + +Lane V's `zuul-turn5.sav` was one End Turn short of a completion; this run took ten. +**20 calls, 0 divergences, two Zuul completions.** Call 2 (turn 7, species 5, alloc {144, 1376}): +the generator advances by **two** (`left` 449 → 447, `next_index` 175 → 177 — the species-5 double +roll) *and* the completion cascade runs, in the same call, and `ours` reproduces the post-state bit +for bit. The Zuul tree unlocks only 132 and 136 from tech 144 where the Human tree also unlocks +142, so this is an independent instance of the cascade rather than a repeat. + +### 5.4 The `RollResearchEvent` draw — implemented, inside the compare, NOT exercised + +`roll_draws` was **0 on all 35 compared calls**. The reason is a real finding, visible in the +trace: `ResearchRollPending` is normally consumed by `ServerPlayer::ProcessTurn` *before* +`ProcessResearch` runs, because that call site fires when the progress ratio crosses a threshold — +which is exactly the turns approaching completion. In the Zuul run `roll_pending_in` is `true` on +the funded call for turns 8–12 and flips to **false** on turn 13, the turn before the tech +completes on turn 14. + +So lane V's call-9 extra draw was the *rare* case (a tech that jumped from below the threshold to +complete in one turn), not the normal one — which also explains lane R's "RNG matched 15 of 15". +Three sessions, three answers: 0, 1, 0. + +What is established: the draw is modelled at the right point in the stream, its two inputs are read +**pre-call** and reported in every record (`research_target`, `roll_pending_in`), and `region:rng` +compared clean on all 35 calls, so `ours` is not drawing a word the original does not. What is +**not** established: that the branch has been seen to fire. The boundary is inside the compare; the +compare has not yet had the chance to test it. It needs a save where a funded tech is below the +ProcessTurn threshold and completes in one turn. + +### 5.5 Guards + +Undeclared writes: **9 in 2 calls** (five-turn), **8 in 2 calls** (Zuul). The span list differs +from lane V's by the workload, not the code: `player+0x3b4` is gone because the pending-roll byte +was already 0 when the completing call ran, and `+0x196` (design-option mask B) is replaced by +`+0x130` (`PopMod`) because a different tech completed. Both are `OnTechResearched` tech-effect +writes, both declared unmodelled. `tree_header+0x20` is still undeclared and still expected: +`ours` seeds the order counter pre-call and advances its own copy; it does not model the live word. + +Coverage verdict `partial`, 8 unmodelled notes (was 6). + +--- + +## 6. Still owed + +* A workload that fires the `RollResearchEvent` draw (§5.4). +* `TechTree::GetProgressRatio` (0x0057e950) — the COMPLETE/UNDERBUDGET split remains analogy. It + is count-neutral, so no compare can see it. +* `def+0xb0`'s write site (§4). +* `FUN_00889d60`, the branch behind the research-event roll; the temperance sweep; + `EventStorage::PruneOldTurns`; replace mode on this hook. All untouched. +* The `ObservedTech` element's own fields — `ours` decides the append, it does not build the + element. +* `FUN_00585ef0`, the refresh helper `SetResearched` runs when `flags & 8`. No research-path call + site sets that bit, so it is unmodelled by call-site, not by omission. diff --git a/ghidra/addresses.d/lane-u.json b/ghidra/addresses.d/lane-u.json new file mode 100644 index 0000000..e230f42 --- /dev/null +++ b/ghidra/addresses.d/lane-u.json @@ -0,0 +1,100 @@ +{ + "entries": [ + { + "name": "TechTree_PrereqsMet", + "addr": "0x0057d8e0", + "convention": "thiscall", + "prototype": "bool (TechTree* this, TechPrereqs* prereqs /* = TechDef + 0x88 */) // RET 4. An AND over groups, each group an OR over techs: a group is satisfied by any listed tech whose node exists in this->nodes AND whose state (+0x14) is 4. Zero groups -> TRUE (the function returns satisfied==total with both 0); a group with ZERO entries -> FALSE and the whole test fails, because the inner loop cannot break and the outer one then exits with that group uncounted. Reads only. Called from SetResearched twice: the unforced completion gate on the argument def, and the availability sweep on each node's self-resolved def", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, get-decompilation 0x0057d8e0, whole function 148 B / 36 lines)" + }, + { + "name": "TechDef_off_Prereqs", + "offset": "0x88", + "convention": "field", + "prototype": "TechPrereqs prereqs -- the block TechTree::PrereqsMet is called on. Two MSVC vectors back to back: the flat entry array at +0x00 and the group array at +0x10. SetResearched passes `def + 0x88` at both call sites", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x00581e10 + 0x0057d8e0)" + }, + { + "name": "TechPrereqs_off_Entries", + "offset": "0x0", + "convention": "field", + "prototype": "std::vector at TechPrereqs+0x00; only its _Myfirst is read (`*param_2`), because the groups carry the bounds. Element stride 8, the entry's TechDef* at +0x00; the second word is never read by PrereqsMet", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x0057d8e0: piVar3 = (int*)(*param_2 + iVar5*8), piVar3 += 2 per step)" + }, + { + "name": "TechPrereqs_off_Groups", + "offset": "0x10", + "convention": "field", + "prototype": "std::vector at TechPrereqs+0x10 (_Myfirst +0x10, _Mylast +0x14). Group count = (last - first) >> 3. Each group is {int start; int count} indexing the entry array: the OR-set is entries[start .. start+count)", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x0057d8e0: iVar2 = param_2[5] - param_2[4] >> 3; iVar6 = piVar4[1] + iVar5)" + }, + { + "name": "TechPrereqs_entry_stride", + "offset": "0x8", + "convention": "field", + "prototype": "sizeof(TechPrereqEntry) -- the flat prerequisite entry, {TechDef* def; int unread}", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x0057d8e0)" + }, + { + "name": "TechPrereqs_group_stride", + "offset": "0x8", + "convention": "field", + "prototype": "sizeof(TechPrereqGroup) -- {int start; int count} into the entry array", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x0057d8e0)" + }, + { + "name": "TechDef_off_NoAutoAvailable", + "offset": "0xb0", + "convention": "field", + "prototype": "BYTE. Non-zero excludes the node from SetResearched's availability sweep entirely (`if ((char)def[0x2c] != 0) continue`, i.e. def+0xb0) -- it can still be completed by an explicit SetResearched and its cost/state are still lowered by the parent-edge sweep, but nothing ever moves it to state 2 and it never stamps turnAvailable, so it can never raise EVENT_TECHS_UNLOCKED. THE WRITE SITE WAS NOT READ: the name records what the byte does, not where it comes from. The tech-file keyword `unlock_explicitly` is the obvious candidate and matches the behaviour exactly, but MasterTechTree::ParseTech 0x0058b050 shows no reference to 0xb0 in its decompilation, so the link is a hypothesis and not a fact", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x00581e10 line 67)" + }, + { + "name": "TechDef_off_Name", + "offset": "0x40", + "convention": "field", + "prototype": "std::string name (0x1c bytes, _Mysize at +0x50, _Myres at +0x54: >= 0x10 selects the heap pointer). The substitution for every research event's %s, and the key RecordObservedTech de-duplicates the observed-tech vector on", + "status": "verified", + "source": "findings/subsystems/events.md 3.1 (def+0x40, _Myres at def+0x54, read at 0x00587a1d); re-used by lane U for the observed-tech dedup" + }, + { + "name": "TechTree_SetResearched_flag_Refresh", + "offset": "0x8", + "convention": "constant", + "prototype": "flags bit 3 of SetResearched(def, flags): after the call, and after each recursive call from the availability sweep, run the refresh helper 0x00585ef0. Also enables the `node slot is NULL` re-lookup path at the head of the function (0x00580e30). No research-path call site sets it -- ProcessResearch passes 2 -- so neither behaviour is modelled", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, 0x00581e10 lines 24-26, 74-77)" + }, + { + "name": "TechTree_ProcessResearch_TechsUnlockedCollector", + "addr": "0x00587cc3", + "convention": "site", + "prototype": "site inside TechTree::ProcessResearch: the tail loop that collects the newly available nodes for EVENT_TECHS_UNLOCKED. Runs only when tree->owner != 0, after the per-node loop AND after the decay sweep. Collects every node n with n != NULL, n->def != NULL, p = tree->nodes[n->def->techId] != NULL, p->state (+0x14) == 2, and n->turnAvailable (+0x20) == the owner's ModCount. Posts once if the collected vector is non-empty. NOTE the asymmetry: the state test is on the SELF-RESOLVED node p, the turn test on the iterated node n", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, get-decompilation 0x005876c0 lines 294-309)" + }, + { + "name": "ServerPlayer_OnTechResearched_RecordObservedTech", + "addr": "0x00891790", + "convention": "site", + "prototype": "site at the very head of ServerPlayer::OnTechResearched: RecordObservedTech is the FIRST statement, called unconditionally on every completion -- before the ResT/roll block and before the !silent event post. It de-duplicates by tech name, so the observed-tech vector grows by one 0x2c element per completion of a tech not already observed and by nothing otherwise", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, decompilation of 0x00891790 line 78)" + }, + { + "name": "ServerPlayer_OnTechResearched_ResearchRollBlock", + "addr": "0x00891790", + "convention": "site", + "prototype": "site in ServerPlayer::OnTechResearched, second statement: `if (this->ResT(+0x294) == def) { if (this->ResearchRollPending(+0x3b4)) RollResearchEvent(this); this->ResearchRollPending = 0; this->ResT = 0; }`. RollResearchEvent (0x0088df20) draws EXACTLY ONE NextFloat unconditionally and then enters 0x00889d60 only when roll < ResearchEventOdds -- the odds are 0 for every tech outside the plague and AI-rebellion families, so that branch is normally dead. This is the one extra RNG word a completion consumes, and clearing ResT means a second completion in the same pass consumes none", + "status": "verified", + "source": "findings/subsystems/unlock-cascade.md (lane U 2026-09-08, decompilation of 0x00891790 lines 79-85, 0x0088df20, 0x00889d60)" + } + ] +} diff --git a/ghidra/generated/sots_addresses.h b/ghidra/generated/sots_addresses.h index 5781cad..c9d7628 100644 --- a/ghidra/generated/sots_addresses.h +++ b/ghidra/generated/sots_addresses.h @@ -1,5 +1,5 @@ // GENERATED — do not edit. Facts about Sword of the Stars.exe (GOG 1.8.1). -// Source: sots-re ghidra/addresses.json @ 795aa47, generated 2026-09-08 by tools/gen_addresses.py +// Source: sots-re ghidra/addresses.json @ ae00053, generated 2026-09-08 by tools/gen_addresses.py // Runtime address = (uintptr_t)GetModuleHandle(NULL) + RVA (the exe is ASLR-relocated). #pragma once #include @@ -1237,5 +1237,29 @@ constexpr uint32_t Game_StarSystem_OutputRates_Write = 0x00345190; constexpr uint32_t Game_StarSystem_OutputRates_Read = 0x003472a0; // layout sizeof(Game::StarSystem::OutputRates) -- enumeration meets embedding [verified] constexpr uint32_t sizeof_Game_StarSystem_OutputRates = 0x0000001c; +// thiscall bool (TechTree* this, TechPrereqs* prereqs /* = TechDef + 0x88 */) // RET 4. An AND over groups, each group an OR over techs: a group is satisfied by any listed tech whose node exists in this->nodes AND whose state (+0x14) is 4. Zero groups -> TRUE (the function returns satisfied==total with both 0); a group with ZERO entries -> FALSE and the whole test fails, because the inner loop cannot break and the outer one then exits with that group uncounted. Reads only. Called from SetResearched twice: the unforced completion gate on the argument def, and the availability sweep on each node's self-resolved def [verified] +constexpr uint32_t TechTree_PrereqsMet = 0x0017d8e0; +// field TechPrereqs prereqs -- the block TechTree::PrereqsMet is called on. Two MSVC vectors back to back: the flat entry array at +0x00 and the group array at +0x10. SetResearched passes `def + 0x88` at both call sites [verified] +constexpr uint32_t TechDef_off_Prereqs = 0x00000088; +// field std::vector at TechPrereqs+0x00; only its _Myfirst is read (`*param_2`), because the groups carry the bounds. Element stride 8, the entry's TechDef* at +0x00; the second word is never read by PrereqsMet [verified] +constexpr uint32_t TechPrereqs_off_Entries = 0x00000000; +// field std::vector at TechPrereqs+0x10 (_Myfirst +0x10, _Mylast +0x14). Group count = (last - first) >> 3. Each group is {int start; int count} indexing the entry array: the OR-set is entries[start .. start+count) [verified] +constexpr uint32_t TechPrereqs_off_Groups = 0x00000010; +// field sizeof(TechPrereqEntry) -- the flat prerequisite entry, {TechDef* def; int unread} [verified] +constexpr uint32_t TechPrereqs_entry_stride = 0x00000008; +// field sizeof(TechPrereqGroup) -- {int start; int count} into the entry array [verified] +constexpr uint32_t TechPrereqs_group_stride = 0x00000008; +// field BYTE. Non-zero excludes the node from SetResearched's availability sweep entirely (`if ((char)def[0x2c] != 0) continue`, i.e. def+0xb0) -- it can still be completed by an explicit SetResearched and its cost/state are still lowered by the parent-edge sweep, but nothing ever moves it to state 2 and it never stamps turnAvailable, so it can never raise EVENT_TECHS_UNLOCKED. THE WRITE SITE WAS NOT READ: the name records what the byte does, not where it comes from. The tech-file keyword `unlock_explicitly` is the obvious candidate and matches the behaviour exactly, but MasterTechTree::ParseTech 0x0058b050 shows no reference to 0xb0 in its decompilation, so the link is a hypothesis and not a fact [verified] +constexpr uint32_t TechDef_off_NoAutoAvailable = 0x000000b0; +// field std::string name (0x1c bytes, _Mysize at +0x50, _Myres at +0x54: >= 0x10 selects the heap pointer). The substitution for every research event's %s, and the key RecordObservedTech de-duplicates the observed-tech vector on [verified] +constexpr uint32_t TechDef_off_Name = 0x00000040; +// constant flags bit 3 of SetResearched(def, flags): after the call, and after each recursive call from the availability sweep, run the refresh helper 0x00585ef0. Also enables the `node slot is NULL` re-lookup path at the head of the function (0x00580e30). No research-path call site sets it -- ProcessResearch passes 2 -- so neither behaviour is modelled [verified] +constexpr uint32_t TechTree_SetResearched_flag_Refresh = 0x00000008; +// site site inside TechTree::ProcessResearch: the tail loop that collects the newly available nodes for EVENT_TECHS_UNLOCKED. Runs only when tree->owner != 0, after the per-node loop AND after the decay sweep. Collects every node n with n != NULL, n->def != NULL, p = tree->nodes[n->def->techId] != NULL, p->state (+0x14) == 2, and n->turnAvailable (+0x20) == the owner's ModCount. Posts once if the collected vector is non-empty. NOTE the asymmetry: the state test is on the SELF-RESOLVED node p, the turn test on the iterated node n [verified] +constexpr uint32_t TechTree_ProcessResearch_TechsUnlockedCollector = 0x00187cc3; +// site site at the very head of ServerPlayer::OnTechResearched: RecordObservedTech is the FIRST statement, called unconditionally on every completion -- before the ResT/roll block and before the !silent event post. It de-duplicates by tech name, so the observed-tech vector grows by one 0x2c element per completion of a tech not already observed and by nothing otherwise [verified] +constexpr uint32_t ServerPlayer_OnTechResearched_RecordObservedTech = 0x00491790; +// site site in ServerPlayer::OnTechResearched, second statement: `if (this->ResT(+0x294) == def) { if (this->ResearchRollPending(+0x3b4)) RollResearchEvent(this); this->ResearchRollPending = 0; this->ResT = 0; }`. RollResearchEvent (0x0088df20) draws EXACTLY ONE NextFloat unconditionally and then enters 0x00889d60 only when roll < ResearchEventOdds -- the odds are 0 for every tech outside the plague and AI-rebellion families, so that branch is normally dead. This is the one extra RNG word a completion consumes, and clearing ResT means a second completion in the same pass consumes none [verified] +constexpr uint32_t ServerPlayer_OnTechResearched_ResearchRollBlock = 0x00491790; } // namespace sots::addr diff --git a/verify/results/compare/unlock-b3-t1-5.json b/verify/results/compare/unlock-b3-t1-5.json new file mode 100644 index 0000000..c5f6d2d --- /dev/null +++ b/verify/results/compare/unlock-b3-t1-5.json @@ -0,0 +1,795 @@ +{ + "coverage_contradicted": [], + "coverage_unstated": [], + "format": 1, + "hooks": { + "Game::TechTree::ProcessResearch": { + "calls": 15, + "compared": 15, + "coverage": { + "checked_regions": [ + "events", + "node[0]", + "node[105]", + "node[106]", + "node[107]", + "node[108]", + "node[109]", + "node[10]", + "node[110]", + "node[111]", + "node[112]", + "node[113]", + "node[114]", + "node[115]", + "node[116]", + "node[117]", + "node[118]", + "node[119]", + "node[11]", + "node[120]", + "node[121]", + "node[122]", + "node[123]", + "node[124]", + "node[125]", + "node[126]", + "node[127]", + "node[128]", + "node[129]", + "node[12]", + "node[130]", + "node[131]", + "node[132]", + "node[133]", + "node[134]", + "node[135]", + "node[136]", + "node[137]", + "node[138]", + "node[139]", + "node[13]", + "node[140]", + "node[141]", + "node[142]", + "node[143]", + "node[144]", + "node[145]", + "node[146]", + "node[147]", + "node[148]", + "node[149]", + "node[14]", + "node[151]", + "node[152]", + "node[153]", + "node[154]", + "node[155]", + "node[156]", + "node[157]", + "node[158]", + "node[159]", + "node[15]", + "node[160]", + "node[161]", + "node[162]", + "node[163]", + "node[164]", + "node[165]", + "node[166]", + "node[167]", + "node[168]", + "node[169]", + "node[16]", + "node[170]", + "node[171]", + "node[172]", + "node[173]", + "node[174]", + "node[175]", + "node[177]", + "node[178]", + "node[179]", + "node[17]", + "node[180]", + "node[181]", + "node[182]", + "node[183]", + "node[184]", + "node[185]", + "node[186]", + "node[187]", + "node[188]", + "node[189]", + "node[18]", + "node[190]", + "node[191]", + "node[192]", + "node[193]", + "node[194]", + "node[195]", + "node[196]", + "node[197]", + "node[198]", + "node[199]", + "node[19]", + "node[1]", + "node[200]", + "node[201]", + "node[202]", + "node[203]", + "node[204]", + "node[205]", + "node[206]", + "node[207]", + "node[208]", + "node[209]", + "node[20]", + "node[210]", + "node[211]", + "node[212]", + "node[213]", + "node[214]", + "node[215]", + "node[216]", + "node[217]", + "node[218]", + "node[219]", + "node[21]", + "node[220]", + "node[221]", + "node[222]", + "node[223]", + "node[224]", + "node[225]", + "node[226]", + "node[227]", + "node[228]", + "node[229]", + "node[22]", + "node[230]", + "node[231]", + "node[232]", + "node[233]", + "node[234]", + "node[235]", + "node[236]", + "node[237]", + "node[238]", + "node[239]", + "node[23]", + "node[240]", + "node[241]", + "node[242]", + "node[243]", + "node[244]", + "node[245]", + "node[246]", + "node[247]", + "node[248]", + "node[249]", + "node[24]", + "node[250]", + "node[251]", + "node[252]", + "node[253]", + "node[254]", + "node[255]", + "node[256]", + "node[257]", + "node[258]", + "node[259]", + "node[25]", + "node[260]", + "node[261]", + "node[262]", + "node[263]", + "node[264]", + "node[265]", + "node[266]", + "node[267]", + "node[268]", + "node[269]", + "node[26]", + "node[270]", + "node[271]", + "node[272]", + "node[273]", + "node[274]", + "node[275]", + "node[276]", + "node[277]", + "node[278]", + "node[279]", + "node[27]", + "node[280]", + "node[281]", + "node[282]", + "node[283]", + "node[284]", + "node[285]", + "node[286]", + "node[287]", + "node[288]", + "node[289]", + "node[28]", + "node[290]", + "node[291]", + "node[292]", + "node[29]", + "node[2]", + "node[30]", + "node[31]", + "node[32]", + "node[33]", + "node[34]", + "node[35]", + "node[36]", + "node[37]", + "node[38]", + "node[39]", + "node[3]", + "node[40]", + "node[41]", + "node[42]", + "node[43]", + "node[44]", + "node[45]", + "node[46]", + "node[47]", + "node[48]", + "node[49]", + "node[4]", + "node[50]", + "node[51]", + "node[52]", + "node[53]", + "node[54]", + "node[55]", + "node[56]", + "node[57]", + "node[58]", + "node[5]", + "node[60]", + "node[61]", + "node[62]", + "node[63]", + "node[64]", + "node[65]", + "node[66]", + "node[67]", + "node[68]", + "node[69]", + "node[6]", + "node[70]", + "node[72]", + "node[74]", + "node[77]", + "node[78]", + "node[7]", + "node[80]", + "node[81]", + "node[85]", + "node[86]", + "node[87]", + "node[88]", + "node[89]", + "node[8]", + "node[90]", + "node[91]", + "node[92]", + "node[94]", + "node[98]", + "node[99]", + "node[9]", + "observed_techs", + "overbudget", + "rng" + ], + "guarded_calls": 15, + "guards": [ + "player", + "tree_header" + ], + "spans": { + "compare": [ + "player+0x10c:3", + "player+0x110:3", + "player+0x114:3", + "player+0x124:3", + "player+0x294:4", + "tree_header+0x20:1", + "player+0x130:3" + ] + }, + "state": "partial", + "undeclared_calls": 2, + "undeclared_writes": 9, + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "verdict": "partial", + "why": "" + }, + "diffs": [], + "diverged": 0, + "diverged_call_ids": [], + "errors": 0, + "modes": { + "compare": 15 + } + } + }, + "inputs": [ + "/tmp/claude-1000/-home-alex/ec8e34f8-af37-4ef2-a309-ed6a15293097/scratchpad/u-b3-t1-5.jsonl" + ], + "invalid": [], + "kind": "report", + "meta": [ + { + "build": "unlock-405ba41-20260908T1026Z", + "exe_sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841", + "format": 1, + "hooks": { + "Game::SectionDictionary::SectionDictionary": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "see docs/M2.md; compare mode for this hook is not safe to run", + "risk": "high", + "what": "LoadSection registers each section with the string table and the live TechTree, and may append to the dictionary's own vector", + "why": "M3 scope; ours delegates to the game's LoadSection after the original has already built all 885 definitions, so the second pass registers duplicates -- the leading hypothesis for this hook's compare-mode crash" + }, + { + "mitigation": "", + "risk": "medium", + "what": "post-load validation pass over every definition's @-token against the string table", + "why": "runs after the loop and touches no declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 885 SectionDef objects (0x3d8 bytes each) on the game heap", + "why": "they do not exist at hook entry; compared by index/species/id/token" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an ignored pointer" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the before-snapshot of the object is uninitialised heap", + "why": "the hook is on the constructor, so `before` is meaningless and only `after` carries information" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::ComputeBudget": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "declared input boundary; see budget_inputs.h", + "risk": "high", + "what": "slots 1, 2, 3, 4, 7 and 11 are produced by callees this milestone does not model (per-system output, trade, ship-carried population, a second manager, the build-queue spend)", + "why": "they are copied out of the original's own output and back into the same slots, so they match BY CONSTRUCTION and prove nothing" + }, + { + "mitigation": "guard:budget_object does not reach the ships; unverified", + "risk": "high", + "what": "ServerSystem::ComputeOutput repairs damaged ships in orbit", + "why": "replace mode runs the original a second time on a scratch Budget to harvest the six unmodelled slots, so that repair happens TWICE per turn in replace mode and nothing in the trace would show it" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the difficulty-mods row from StrategyServer::GetDifficultyMods", + "why": "not reachable from a ServerPlayer, so the two relevant entries are fitted constants measured from the B1 trace rather than snapshotted inputs" + }, + { + "mitigation": "", + "risk": "low", + "what": "the research-allocation vector's heap block", + "why": "only the element count is compared; the three words are heap pointers the default policy ignores" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::OnTechResearched": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:player (EventStorage is inline at ServerPlayer+0x29c)", + "risk": "high", + "what": "posts EVENT_RESEARCH_COMPLETE / _UNDERBUDGET / _TEMPERANCE on the owner's EventStorage when !silent", + "why": "the same class of write as B3's defect, and this hook has no replace-mode oracle that could catch it: gotcha 4 in docs/B2.md says a changed save hash on a completion turn is expected and therefore not a finding" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes every owned system's AI flag (CCC_AIVrus / CCC_AISlv), re-evaluates the arcology civilian cap, cures addiction and clears plague across systems AND ships", + "why": "writes through pointers to other objects; compare mode must not touch live state, and no region reaches them" + }, + { + "mitigation": "this is the extra draw B3 observed on a completion", + "risk": "high", + "what": "the pending plague-cure roll (ServerPlayer::RollResearchEvent)", + "why": "it draws exactly one word from the strategic generator unconditionally; running it in compare mode would consume real randomness. The two words it guards are still cleared and the record says whether it would have fired" + }, + { + "mitigation": "", + "risk": "medium", + "what": "TechTree::SetResearched for the Zuul boarding-pod grant", + "why": "it would mutate the live tree, and it recurses" + }, + { + "mitigation": "region:node_bore, declared only when the block already exists", + "risk": "medium", + "what": "allocates or frees the node-bore block at ServerPlayer+0x308", + "why": "ours has no allocator the game's runtime could free, so replace mode calls the game's own updater -- which means replace mode never exercises our node-bore selection at all" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerSystem::ProcessTurn": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:system", + "risk": "high", + "what": "the addiction sweep raises MoraleEvents, which are constructed and appended to the system's capped morale history", + "why": "the same class of write as B3's defect. sim::ProcessColonyTurn does compute the morale events (ColonyTurnResult), but the hook never emits them: DescribeMoraleEvents is dead code, so they are neither compared nor logged" + }, + { + "mitigation": "guard:system covers the system object only, not the other objects", + "risk": "high", + "what": "every callee: the plague pass, imperial and civilian growth, the resource debit, in-orbit refuel, slaves, rebellion and the build queue", + "why": "declared input boundary -- ProcessTurn is a dispatcher and only the words it writes itself are modelled. The callees raise EVENT_SLAVES_DEAD, EVENT_SYSTEM_REBELLION_CONTINUES, the plague events and SEBuildCompleted, create ships and bump per-player ShipRecords counters" + }, + { + "mitigation": "", + "risk": "medium", + "what": "ApplyInfraBonus / ApplyPopBonus read the owner's home-system id, and the build queue writes the owning ServerPlayer", + "why": "writes through a pointer to another object; no region reaches the player" + }, + { + "mitigation": "", + "risk": "low", + "what": "ProcessRebellion is the pass's only RNG consumer and its draw count is data-dependent", + "why": "the generator IS a declared region, so a moved post-state is visible and names the system whose rebellion fired -- it is reported, not modelled" + }, + { + "mitigation": "", + "risk": "medium", + "what": "replace mode is refused for this hook", + "why": "our side models the dispatcher's own writes and none of the callees, so a replace run would silently skip a colony's whole turn. There is therefore no oracle layer behind the compare for this hook" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::MoveFleet": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:fleet sees the fleet's own words; the event and the system do not", + "risk": "high", + "what": "on arrival: dispatches SEFleetArrived and runs one of three arrival handlers by destination kind (enter system / join fleet / stop at point)", + "why": "declared input boundary -- an arriving call is expected to differ in all of it, and none of it is declared, so the compare says nothing about arrivals" + }, + { + "mitigation": "", + "risk": "high", + "what": "on departure: cancels every still-acting ship (with a log line each) and calls ServerSystem::FleetDeparts, which rewrites the system's ownership bits", + "why": "writes through pointers to ships and to the system" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the tanker top-up refuels other ships in the fleet", + "why": "the per-ship range regions would show it, but ours does not model it, so a fleet with a tanker diverges for a known reason" + }, + { + "mitigation": "declared gap: docs/B4.md", + "risk": "medium", + "what": "a node-line waypoint's step comes from the stutter profile", + "why": "NodeLineStep / BuildStutterSegments are written and unit-tested but not wired in; the hook steps every waypoint type as speed x dt, so a node-line leg is knowingly mis-stepped and only its type is recorded" + }, + { + "mitigation": "", + "risk": "medium", + "what": "a missed probabilistic jump scatters the fleet in a random direction", + "why": "the direction is a second draw whose mapping is not modelled; ours leaves the position alone and reports the scatter distance, so the generator region diverges by one word on a miss" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the route revalidation and the waypoint list itself", + "why": "declared input boundary; the waypoint vector is not a region" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::ProcessFleetMovement": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "", + "risk": "high", + "what": "`ours` re-reads the LIVE fleet list after the original has run", + "why": "the gate-traffic total is computed by the original at the very end of the pass, so a pre-call snapshot would diverge for the wrong reason. It breaks the compare invariant that ours never touches live memory, and it makes this hook's verdict partly self-fulfilling: the input to our arithmetic is the original's own post-move state" + }, + { + "mitigation": "", + "risk": "high", + "what": "drives MoveFleet up to five times per fleet", + "why": "every undeclared effect of MoveFleet happens inside this call too; the pass schedule is recorded in the arguments but never compared" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes FPdpos into every fleet and clears flags 0x2 and 0x100 on every fleet", + "why": "no region covers the fleets, only the players' gate-traffic words" + }, + { + "mitigation": "", + "risk": "high", + "what": "OnFleetArrived posts EVENT_FLEET_ARRIVED", + "why": "the same class of write as B3's defect, and there is no replace mode for this hook, so nothing behind the compare could catch it either" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the original accumulates by player->index but writes back by the player's position in the server vector, into a fixed 32-int array with no bounds check", + "why": "a real latent bug in the original that our side reproduces only while index == position; the reference save never separates them" + }, + { + "mitigation": "", + "risk": "medium", + "what": "PassSchedule() is never called by the hook, and FleetSummary::targetFleetId / relation are never filled", + "why": "the header claims ours predicts the call order for a trace to check; that prediction is not actually emitted" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::TechTree::ProcessResearch": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::WeaponDictionary::Init": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "suspected cause of the sibling section hook's compare crash (docs/M2.md)", + "risk": "high", + "what": "LoadWeapon -> WeaponDef::ParseScript registers each weapon's name with the string table and resolves `requires` against the live TechTree", + "why": "per-file parsing is M3 scope; ours delegates to the game's own LoadWeapon, so a compare run performs the registration a SECOND time and neither the string table nor the tech tree is a declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 123 WeaponDef objects (0x278 bytes each) on the game heap", + "why": "the definitions do not exist when the hook is entered, so they cannot be a before-snapshot; the dictionary region compares them by id/name/path" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an opaque pointer, which the default policy ignores -- a change is visible in a trace but never a divergence" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes lines to the game log for a missing manifest", + "why": "log text is not simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "std::sort tie order for equal weapon names", + "why": "msvc_sort.h replays MSVC 2010's introsort, but the shipped data has no tied names, so the tie rule is unexercised rather than verified" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Mars::GlobalConsts::LoadFile": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "LoadAll's post-state would have to be hooked to see it", + "risk": "medium", + "what": "erases each consumed key from the caller's std::map", + "why": "the map is a LoadAll temporary; declaring a red-black tree as a region is not possible before the call. First-occurrence-wins is reproduced in game::config::apply instead, so the *effect* is modelled, the container is not" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes three kinds of line to the game log (unrecognised key, applied key, expected-but-not-found)", + "why": "log text is not part of the simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "opens the file through the VFS and allocates/releases a refcounted buffer", + "why": "ours performs the same two calls, so allocation behaviour matches by construction rather than by comparison" + }, + { + "mitigation": "", + "risk": "low", + "what": "String slots assign through the engine's own std::string, leaking one heap block per long string in compare mode", + "why": "start-up only; documented in docs/M1.md" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Shim::SelfTest::Fill": { + "coverage": { + "state": "complete", + "unmodelled": [], + "why": "Fill writes buf[0..n) and nothing else; the whole range is a declared region" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + } + }, + "inline_max": 256, + "started": "2026-09-08T10:30:02Z" + } + ], + "totals": { + "calls": 15, + "compared": 15, + "coverage_contradicted": 0, + "coverage_unstated": 0, + "diverged": 0, + "guarded_calls": 15, + "invalid_records": 0, + "undeclared_calls": 2, + "undeclared_writes": 9 + }, + "warnings": [] +} diff --git a/verify/results/compare/unlock-b3-t1-5.md b/verify/results/compare/unlock-b3-t1-5.md new file mode 100644 index 0000000..cf09294 --- /dev/null +++ b/verify/results/compare/unlock-b3-t1-5.md @@ -0,0 +1,26 @@ +## tracecmp report: u-b3-t1-5.jsonl + +- build: unlock-405ba41-20260908T1026Z started: 2026-09-08T10:30:02Z inline_max: 256 +- calls: 15 compared: 15 diverged: 0 invalid records: 0 warnings: 0 +- coverage: 15 guarded call(s), 9 undeclared write(s) in 2 call(s); 0 hook(s) unstated, 0 contradicted + +| hook | calls | modes | compared | diverged | errors | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | 15 | compare:15 | 15 | 0 | 0 | + +### coverage + +| hook | verdict | compared regions | guards | undeclared writes | unmodelled | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | partial | events, node[0], node[105], node[106], node[107], node[108], +271 | player, tree_header | 9 in 2 call(s) | 8 | + +#### Game::TechTree::ProcessResearch — not checked by this run +- (medium) posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it — text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all [region:events] +- (low) composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names — the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text [region:events] +- (high) TechTree::SetResearched in REPLACE mode: nothing of it runs — the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked [guard:player, guard:tree_header] +- (high) ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags — B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports [guard:player] +- (medium) the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths) — the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not [region:rng] +- (medium) constructs the ObservedTech element it appends to ServerPlayer+0x274 — `ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them [region:observed_techs] +- (low) the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region — the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard [guard:tree_header] +- (low) writes a completion line to the game log — log text is not simulation state +- guard hits in compare mode: player+0x10c:3, player+0x110:3, player+0x114:3, player+0x124:3, player+0x294:4, tree_header+0x20:1, player+0x130:3 diff --git a/verify/results/compare/unlock-b3-t1.json b/verify/results/compare/unlock-b3-t1.json new file mode 100644 index 0000000..2e89823 --- /dev/null +++ b/verify/results/compare/unlock-b3-t1.json @@ -0,0 +1,787 @@ +{ + "coverage_contradicted": [], + "coverage_unstated": [], + "format": 1, + "hooks": { + "Game::TechTree::ProcessResearch": { + "calls": 3, + "compared": 3, + "coverage": { + "checked_regions": [ + "events", + "node[0]", + "node[105]", + "node[106]", + "node[107]", + "node[108]", + "node[109]", + "node[10]", + "node[110]", + "node[111]", + "node[112]", + "node[113]", + "node[114]", + "node[115]", + "node[116]", + "node[117]", + "node[118]", + "node[119]", + "node[11]", + "node[120]", + "node[121]", + "node[122]", + "node[123]", + "node[124]", + "node[125]", + "node[126]", + "node[127]", + "node[128]", + "node[129]", + "node[12]", + "node[130]", + "node[131]", + "node[132]", + "node[133]", + "node[134]", + "node[135]", + "node[136]", + "node[137]", + "node[138]", + "node[139]", + "node[13]", + "node[140]", + "node[141]", + "node[142]", + "node[143]", + "node[144]", + "node[145]", + "node[146]", + "node[147]", + "node[148]", + "node[149]", + "node[14]", + "node[151]", + "node[152]", + "node[153]", + "node[154]", + "node[155]", + "node[156]", + "node[157]", + "node[158]", + "node[159]", + "node[15]", + "node[160]", + "node[161]", + "node[162]", + "node[163]", + "node[164]", + "node[165]", + "node[166]", + "node[167]", + "node[168]", + "node[169]", + "node[16]", + "node[170]", + "node[171]", + "node[172]", + "node[173]", + "node[174]", + "node[175]", + "node[177]", + "node[178]", + "node[179]", + "node[17]", + "node[180]", + "node[181]", + "node[182]", + "node[183]", + "node[184]", + "node[185]", + "node[186]", + "node[187]", + "node[188]", + "node[189]", + "node[18]", + "node[190]", + "node[191]", + "node[192]", + "node[193]", + "node[194]", + "node[195]", + "node[196]", + "node[197]", + "node[198]", + "node[199]", + "node[19]", + "node[1]", + "node[200]", + "node[201]", + "node[202]", + "node[203]", + "node[204]", + "node[205]", + "node[206]", + "node[207]", + "node[208]", + "node[209]", + "node[20]", + "node[210]", + "node[211]", + "node[212]", + "node[213]", + "node[214]", + "node[215]", + "node[216]", + "node[217]", + "node[218]", + "node[219]", + "node[21]", + "node[220]", + "node[221]", + "node[222]", + "node[223]", + "node[224]", + "node[225]", + "node[226]", + "node[227]", + "node[228]", + "node[229]", + "node[22]", + "node[230]", + "node[231]", + "node[232]", + "node[233]", + "node[234]", + "node[235]", + "node[236]", + "node[237]", + "node[238]", + "node[239]", + "node[23]", + "node[240]", + "node[241]", + "node[242]", + "node[243]", + "node[244]", + "node[245]", + "node[246]", + "node[247]", + "node[248]", + "node[249]", + "node[24]", + "node[250]", + "node[251]", + "node[252]", + "node[253]", + "node[254]", + "node[255]", + "node[256]", + "node[257]", + "node[258]", + "node[259]", + "node[25]", + "node[260]", + "node[261]", + "node[262]", + "node[263]", + "node[264]", + "node[265]", + "node[266]", + "node[267]", + "node[268]", + "node[269]", + "node[26]", + "node[270]", + "node[271]", + "node[272]", + "node[273]", + "node[274]", + "node[275]", + "node[276]", + "node[277]", + "node[278]", + "node[279]", + "node[27]", + "node[280]", + "node[281]", + "node[282]", + "node[283]", + "node[284]", + "node[285]", + "node[286]", + "node[287]", + "node[288]", + "node[289]", + "node[28]", + "node[290]", + "node[291]", + "node[292]", + "node[29]", + "node[2]", + "node[30]", + "node[31]", + "node[32]", + "node[33]", + "node[34]", + "node[35]", + "node[36]", + "node[37]", + "node[38]", + "node[39]", + "node[3]", + "node[40]", + "node[41]", + "node[42]", + "node[43]", + "node[44]", + "node[45]", + "node[46]", + "node[47]", + "node[48]", + "node[49]", + "node[4]", + "node[50]", + "node[51]", + "node[52]", + "node[53]", + "node[54]", + "node[55]", + "node[56]", + "node[57]", + "node[58]", + "node[5]", + "node[60]", + "node[61]", + "node[62]", + "node[63]", + "node[64]", + "node[65]", + "node[66]", + "node[67]", + "node[68]", + "node[69]", + "node[6]", + "node[70]", + "node[72]", + "node[74]", + "node[77]", + "node[78]", + "node[7]", + "node[80]", + "node[81]", + "node[85]", + "node[86]", + "node[87]", + "node[88]", + "node[89]", + "node[8]", + "node[90]", + "node[91]", + "node[92]", + "node[94]", + "node[98]", + "node[99]", + "node[9]", + "observed_techs", + "overbudget", + "rng" + ], + "guarded_calls": 3, + "guards": [ + "player", + "tree_header" + ], + "spans": { + "compare": [] + }, + "state": "partial", + "undeclared_calls": 0, + "undeclared_writes": 0, + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "verdict": "partial", + "why": "" + }, + "diffs": [], + "diverged": 0, + "diverged_call_ids": [], + "errors": 0, + "modes": { + "compare": 3 + } + } + }, + "inputs": [ + "/tmp/claude-1000/-home-alex/ec8e34f8-af37-4ef2-a309-ed6a15293097/scratchpad/u-b3-t1.jsonl" + ], + "invalid": [], + "kind": "report", + "meta": [ + { + "build": "unlock-405ba41-20260908T1026Z", + "exe_sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841", + "format": 1, + "hooks": { + "Game::SectionDictionary::SectionDictionary": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "see docs/M2.md; compare mode for this hook is not safe to run", + "risk": "high", + "what": "LoadSection registers each section with the string table and the live TechTree, and may append to the dictionary's own vector", + "why": "M3 scope; ours delegates to the game's LoadSection after the original has already built all 885 definitions, so the second pass registers duplicates -- the leading hypothesis for this hook's compare-mode crash" + }, + { + "mitigation": "", + "risk": "medium", + "what": "post-load validation pass over every definition's @-token against the string table", + "why": "runs after the loop and touches no declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 885 SectionDef objects (0x3d8 bytes each) on the game heap", + "why": "they do not exist at hook entry; compared by index/species/id/token" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an ignored pointer" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the before-snapshot of the object is uninitialised heap", + "why": "the hook is on the constructor, so `before` is meaningless and only `after` carries information" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::ComputeBudget": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "declared input boundary; see budget_inputs.h", + "risk": "high", + "what": "slots 1, 2, 3, 4, 7 and 11 are produced by callees this milestone does not model (per-system output, trade, ship-carried population, a second manager, the build-queue spend)", + "why": "they are copied out of the original's own output and back into the same slots, so they match BY CONSTRUCTION and prove nothing" + }, + { + "mitigation": "guard:budget_object does not reach the ships; unverified", + "risk": "high", + "what": "ServerSystem::ComputeOutput repairs damaged ships in orbit", + "why": "replace mode runs the original a second time on a scratch Budget to harvest the six unmodelled slots, so that repair happens TWICE per turn in replace mode and nothing in the trace would show it" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the difficulty-mods row from StrategyServer::GetDifficultyMods", + "why": "not reachable from a ServerPlayer, so the two relevant entries are fitted constants measured from the B1 trace rather than snapshotted inputs" + }, + { + "mitigation": "", + "risk": "low", + "what": "the research-allocation vector's heap block", + "why": "only the element count is compared; the three words are heap pointers the default policy ignores" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::OnTechResearched": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:player (EventStorage is inline at ServerPlayer+0x29c)", + "risk": "high", + "what": "posts EVENT_RESEARCH_COMPLETE / _UNDERBUDGET / _TEMPERANCE on the owner's EventStorage when !silent", + "why": "the same class of write as B3's defect, and this hook has no replace-mode oracle that could catch it: gotcha 4 in docs/B2.md says a changed save hash on a completion turn is expected and therefore not a finding" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes every owned system's AI flag (CCC_AIVrus / CCC_AISlv), re-evaluates the arcology civilian cap, cures addiction and clears plague across systems AND ships", + "why": "writes through pointers to other objects; compare mode must not touch live state, and no region reaches them" + }, + { + "mitigation": "this is the extra draw B3 observed on a completion", + "risk": "high", + "what": "the pending plague-cure roll (ServerPlayer::RollResearchEvent)", + "why": "it draws exactly one word from the strategic generator unconditionally; running it in compare mode would consume real randomness. The two words it guards are still cleared and the record says whether it would have fired" + }, + { + "mitigation": "", + "risk": "medium", + "what": "TechTree::SetResearched for the Zuul boarding-pod grant", + "why": "it would mutate the live tree, and it recurses" + }, + { + "mitigation": "region:node_bore, declared only when the block already exists", + "risk": "medium", + "what": "allocates or frees the node-bore block at ServerPlayer+0x308", + "why": "ours has no allocator the game's runtime could free, so replace mode calls the game's own updater -- which means replace mode never exercises our node-bore selection at all" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerSystem::ProcessTurn": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:system", + "risk": "high", + "what": "the addiction sweep raises MoraleEvents, which are constructed and appended to the system's capped morale history", + "why": "the same class of write as B3's defect. sim::ProcessColonyTurn does compute the morale events (ColonyTurnResult), but the hook never emits them: DescribeMoraleEvents is dead code, so they are neither compared nor logged" + }, + { + "mitigation": "guard:system covers the system object only, not the other objects", + "risk": "high", + "what": "every callee: the plague pass, imperial and civilian growth, the resource debit, in-orbit refuel, slaves, rebellion and the build queue", + "why": "declared input boundary -- ProcessTurn is a dispatcher and only the words it writes itself are modelled. The callees raise EVENT_SLAVES_DEAD, EVENT_SYSTEM_REBELLION_CONTINUES, the plague events and SEBuildCompleted, create ships and bump per-player ShipRecords counters" + }, + { + "mitigation": "", + "risk": "medium", + "what": "ApplyInfraBonus / ApplyPopBonus read the owner's home-system id, and the build queue writes the owning ServerPlayer", + "why": "writes through a pointer to another object; no region reaches the player" + }, + { + "mitigation": "", + "risk": "low", + "what": "ProcessRebellion is the pass's only RNG consumer and its draw count is data-dependent", + "why": "the generator IS a declared region, so a moved post-state is visible and names the system whose rebellion fired -- it is reported, not modelled" + }, + { + "mitigation": "", + "risk": "medium", + "what": "replace mode is refused for this hook", + "why": "our side models the dispatcher's own writes and none of the callees, so a replace run would silently skip a colony's whole turn. There is therefore no oracle layer behind the compare for this hook" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::MoveFleet": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:fleet sees the fleet's own words; the event and the system do not", + "risk": "high", + "what": "on arrival: dispatches SEFleetArrived and runs one of three arrival handlers by destination kind (enter system / join fleet / stop at point)", + "why": "declared input boundary -- an arriving call is expected to differ in all of it, and none of it is declared, so the compare says nothing about arrivals" + }, + { + "mitigation": "", + "risk": "high", + "what": "on departure: cancels every still-acting ship (with a log line each) and calls ServerSystem::FleetDeparts, which rewrites the system's ownership bits", + "why": "writes through pointers to ships and to the system" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the tanker top-up refuels other ships in the fleet", + "why": "the per-ship range regions would show it, but ours does not model it, so a fleet with a tanker diverges for a known reason" + }, + { + "mitigation": "declared gap: docs/B4.md", + "risk": "medium", + "what": "a node-line waypoint's step comes from the stutter profile", + "why": "NodeLineStep / BuildStutterSegments are written and unit-tested but not wired in; the hook steps every waypoint type as speed x dt, so a node-line leg is knowingly mis-stepped and only its type is recorded" + }, + { + "mitigation": "", + "risk": "medium", + "what": "a missed probabilistic jump scatters the fleet in a random direction", + "why": "the direction is a second draw whose mapping is not modelled; ours leaves the position alone and reports the scatter distance, so the generator region diverges by one word on a miss" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the route revalidation and the waypoint list itself", + "why": "declared input boundary; the waypoint vector is not a region" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::ProcessFleetMovement": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "", + "risk": "high", + "what": "`ours` re-reads the LIVE fleet list after the original has run", + "why": "the gate-traffic total is computed by the original at the very end of the pass, so a pre-call snapshot would diverge for the wrong reason. It breaks the compare invariant that ours never touches live memory, and it makes this hook's verdict partly self-fulfilling: the input to our arithmetic is the original's own post-move state" + }, + { + "mitigation": "", + "risk": "high", + "what": "drives MoveFleet up to five times per fleet", + "why": "every undeclared effect of MoveFleet happens inside this call too; the pass schedule is recorded in the arguments but never compared" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes FPdpos into every fleet and clears flags 0x2 and 0x100 on every fleet", + "why": "no region covers the fleets, only the players' gate-traffic words" + }, + { + "mitigation": "", + "risk": "high", + "what": "OnFleetArrived posts EVENT_FLEET_ARRIVED", + "why": "the same class of write as B3's defect, and there is no replace mode for this hook, so nothing behind the compare could catch it either" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the original accumulates by player->index but writes back by the player's position in the server vector, into a fixed 32-int array with no bounds check", + "why": "a real latent bug in the original that our side reproduces only while index == position; the reference save never separates them" + }, + { + "mitigation": "", + "risk": "medium", + "what": "PassSchedule() is never called by the hook, and FleetSummary::targetFleetId / relation are never filled", + "why": "the header claims ours predicts the call order for a trace to check; that prediction is not actually emitted" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::TechTree::ProcessResearch": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::WeaponDictionary::Init": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "suspected cause of the sibling section hook's compare crash (docs/M2.md)", + "risk": "high", + "what": "LoadWeapon -> WeaponDef::ParseScript registers each weapon's name with the string table and resolves `requires` against the live TechTree", + "why": "per-file parsing is M3 scope; ours delegates to the game's own LoadWeapon, so a compare run performs the registration a SECOND time and neither the string table nor the tech tree is a declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 123 WeaponDef objects (0x278 bytes each) on the game heap", + "why": "the definitions do not exist when the hook is entered, so they cannot be a before-snapshot; the dictionary region compares them by id/name/path" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an opaque pointer, which the default policy ignores -- a change is visible in a trace but never a divergence" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes lines to the game log for a missing manifest", + "why": "log text is not simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "std::sort tie order for equal weapon names", + "why": "msvc_sort.h replays MSVC 2010's introsort, but the shipped data has no tied names, so the tie rule is unexercised rather than verified" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Mars::GlobalConsts::LoadFile": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "LoadAll's post-state would have to be hooked to see it", + "risk": "medium", + "what": "erases each consumed key from the caller's std::map", + "why": "the map is a LoadAll temporary; declaring a red-black tree as a region is not possible before the call. First-occurrence-wins is reproduced in game::config::apply instead, so the *effect* is modelled, the container is not" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes three kinds of line to the game log (unrecognised key, applied key, expected-but-not-found)", + "why": "log text is not part of the simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "opens the file through the VFS and allocates/releases a refcounted buffer", + "why": "ours performs the same two calls, so allocation behaviour matches by construction rather than by comparison" + }, + { + "mitigation": "", + "risk": "low", + "what": "String slots assign through the engine's own std::string, leaking one heap block per long string in compare mode", + "why": "start-up only; documented in docs/M1.md" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Shim::SelfTest::Fill": { + "coverage": { + "state": "complete", + "unmodelled": [], + "why": "Fill writes buf[0..n) and nothing else; the whole range is a declared region" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + } + }, + "inline_max": 256, + "started": "2026-09-08T10:30:02Z" + } + ], + "totals": { + "calls": 3, + "compared": 3, + "coverage_contradicted": 0, + "coverage_unstated": 0, + "diverged": 0, + "guarded_calls": 3, + "invalid_records": 0, + "undeclared_calls": 0, + "undeclared_writes": 0 + }, + "warnings": [] +} diff --git a/verify/results/compare/unlock-b3-t1.md b/verify/results/compare/unlock-b3-t1.md new file mode 100644 index 0000000..2856423 --- /dev/null +++ b/verify/results/compare/unlock-b3-t1.md @@ -0,0 +1,25 @@ +## tracecmp report: u-b3-t1.jsonl + +- build: unlock-405ba41-20260908T1026Z started: 2026-09-08T10:30:02Z inline_max: 256 +- calls: 3 compared: 3 diverged: 0 invalid records: 0 warnings: 0 +- coverage: 3 guarded call(s), 0 undeclared write(s) in 0 call(s); 0 hook(s) unstated, 0 contradicted + +| hook | calls | modes | compared | diverged | errors | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | 3 | compare:3 | 3 | 0 | 0 | + +### coverage + +| hook | verdict | compared regions | guards | undeclared writes | unmodelled | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | partial | events, node[0], node[105], node[106], node[107], node[108], +271 | player, tree_header | 0 | 8 | + +#### Game::TechTree::ProcessResearch — not checked by this run +- (medium) posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it — text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all [region:events] +- (low) composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names — the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text [region:events] +- (high) TechTree::SetResearched in REPLACE mode: nothing of it runs — the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked [guard:player, guard:tree_header] +- (high) ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags — B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports [guard:player] +- (medium) the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths) — the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not [region:rng] +- (medium) constructs the ObservedTech element it appends to ServerPlayer+0x274 — `ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them [region:observed_techs] +- (low) the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region — the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard [guard:tree_header] +- (low) writes a completion line to the game log — log text is not simulation state diff --git a/verify/results/compare/unlock-b3-zuul.json b/verify/results/compare/unlock-b3-zuul.json new file mode 100644 index 0000000..efbf124 --- /dev/null +++ b/verify/results/compare/unlock-b3-zuul.json @@ -0,0 +1,754 @@ +{ + "coverage_contradicted": [], + "coverage_unstated": [], + "format": 1, + "hooks": { + "Game::TechTree::ProcessResearch": { + "calls": 20, + "compared": 20, + "coverage": { + "checked_regions": [ + "events", + "node[0]", + "node[106]", + "node[107]", + "node[108]", + "node[109]", + "node[10]", + "node[110]", + "node[111]", + "node[112]", + "node[113]", + "node[114]", + "node[115]", + "node[116]", + "node[117]", + "node[118]", + "node[119]", + "node[120]", + "node[121]", + "node[122]", + "node[123]", + "node[124]", + "node[125]", + "node[126]", + "node[129]", + "node[130]", + "node[131]", + "node[132]", + "node[133]", + "node[134]", + "node[135]", + "node[136]", + "node[137]", + "node[138]", + "node[139]", + "node[140]", + "node[141]", + "node[143]", + "node[144]", + "node[145]", + "node[146]", + "node[147]", + "node[148]", + "node[149]", + "node[14]", + "node[151]", + "node[152]", + "node[153]", + "node[154]", + "node[155]", + "node[156]", + "node[157]", + "node[158]", + "node[159]", + "node[160]", + "node[161]", + "node[162]", + "node[163]", + "node[164]", + "node[165]", + "node[166]", + "node[167]", + "node[168]", + "node[169]", + "node[170]", + "node[171]", + "node[172]", + "node[173]", + "node[174]", + "node[175]", + "node[176]", + "node[177]", + "node[178]", + "node[179]", + "node[180]", + "node[181]", + "node[182]", + "node[183]", + "node[184]", + "node[185]", + "node[186]", + "node[187]", + "node[188]", + "node[189]", + "node[18]", + "node[190]", + "node[191]", + "node[192]", + "node[193]", + "node[194]", + "node[195]", + "node[196]", + "node[197]", + "node[198]", + "node[199]", + "node[19]", + "node[200]", + "node[201]", + "node[202]", + "node[203]", + "node[204]", + "node[205]", + "node[206]", + "node[207]", + "node[208]", + "node[209]", + "node[210]", + "node[211]", + "node[212]", + "node[213]", + "node[214]", + "node[215]", + "node[216]", + "node[218]", + "node[219]", + "node[21]", + "node[220]", + "node[221]", + "node[222]", + "node[223]", + "node[224]", + "node[225]", + "node[226]", + "node[227]", + "node[228]", + "node[229]", + "node[22]", + "node[230]", + "node[231]", + "node[232]", + "node[233]", + "node[234]", + "node[235]", + "node[236]", + "node[237]", + "node[238]", + "node[239]", + "node[23]", + "node[240]", + "node[241]", + "node[242]", + "node[243]", + "node[244]", + "node[245]", + "node[246]", + "node[247]", + "node[248]", + "node[24]", + "node[259]", + "node[25]", + "node[260]", + "node[261]", + "node[262]", + "node[263]", + "node[264]", + "node[26]", + "node[270]", + "node[271]", + "node[272]", + "node[273]", + "node[274]", + "node[275]", + "node[276]", + "node[27]", + "node[282]", + "node[283]", + "node[284]", + "node[285]", + "node[286]", + "node[287]", + "node[288]", + "node[289]", + "node[28]", + "node[290]", + "node[291]", + "node[292]", + "node[29]", + "node[30]", + "node[31]", + "node[32]", + "node[33]", + "node[34]", + "node[35]", + "node[36]", + "node[37]", + "node[38]", + "node[39]", + "node[3]", + "node[41]", + "node[42]", + "node[43]", + "node[44]", + "node[45]", + "node[46]", + "node[47]", + "node[48]", + "node[49]", + "node[50]", + "node[51]", + "node[52]", + "node[53]", + "node[54]", + "node[55]", + "node[56]", + "node[57]", + "node[58]", + "node[61]", + "node[62]", + "node[63]", + "node[64]", + "node[65]", + "node[66]", + "node[67]", + "node[68]", + "node[69]", + "node[6]", + "node[70]", + "node[72]", + "node[74]", + "node[80]", + "node[81]", + "node[85]", + "node[89]", + "node[8]", + "node[90]", + "node[91]", + "node[92]", + "node[93]", + "node[94]", + "node[95]", + "node[96]", + "node[98]", + "node[99]", + "node[9]", + "observed_techs", + "overbudget", + "rng" + ], + "guarded_calls": 20, + "guards": [ + "player", + "tree_header" + ], + "spans": { + "compare": [ + "player+0x10c:3", + "player+0x110:3", + "player+0x114:3", + "player+0x124:3", + "player+0x294:4", + "tree_header+0x20:1" + ] + }, + "state": "partial", + "undeclared_calls": 2, + "undeclared_writes": 8, + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "verdict": "partial", + "why": "" + }, + "diffs": [], + "diverged": 0, + "diverged_call_ids": [], + "errors": 0, + "modes": { + "compare": 20 + } + } + }, + "inputs": [ + "/tmp/claude-1000/-home-alex/ec8e34f8-af37-4ef2-a309-ed6a15293097/scratchpad/u-b3-zuul2.jsonl" + ], + "invalid": [], + "kind": "report", + "meta": [ + { + "build": "unlock-405ba41-20260908T1026Z", + "exe_sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841", + "format": 1, + "hooks": { + "Game::SectionDictionary::SectionDictionary": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "see docs/M2.md; compare mode for this hook is not safe to run", + "risk": "high", + "what": "LoadSection registers each section with the string table and the live TechTree, and may append to the dictionary's own vector", + "why": "M3 scope; ours delegates to the game's LoadSection after the original has already built all 885 definitions, so the second pass registers duplicates -- the leading hypothesis for this hook's compare-mode crash" + }, + { + "mitigation": "", + "risk": "medium", + "what": "post-load validation pass over every definition's @-token against the string table", + "why": "runs after the loop and touches no declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 885 SectionDef objects (0x3d8 bytes each) on the game heap", + "why": "they do not exist at hook entry; compared by index/species/id/token" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an ignored pointer" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the before-snapshot of the object is uninitialised heap", + "why": "the hook is on the constructor, so `before` is meaningless and only `after` carries information" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::ComputeBudget": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "declared input boundary; see budget_inputs.h", + "risk": "high", + "what": "slots 1, 2, 3, 4, 7 and 11 are produced by callees this milestone does not model (per-system output, trade, ship-carried population, a second manager, the build-queue spend)", + "why": "they are copied out of the original's own output and back into the same slots, so they match BY CONSTRUCTION and prove nothing" + }, + { + "mitigation": "guard:budget_object does not reach the ships; unverified", + "risk": "high", + "what": "ServerSystem::ComputeOutput repairs damaged ships in orbit", + "why": "replace mode runs the original a second time on a scratch Budget to harvest the six unmodelled slots, so that repair happens TWICE per turn in replace mode and nothing in the trace would show it" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the difficulty-mods row from StrategyServer::GetDifficultyMods", + "why": "not reachable from a ServerPlayer, so the two relevant entries are fitted constants measured from the B1 trace rather than snapshotted inputs" + }, + { + "mitigation": "", + "risk": "low", + "what": "the research-allocation vector's heap block", + "why": "only the element count is compared; the three words are heap pointers the default policy ignores" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerPlayer::OnTechResearched": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:player (EventStorage is inline at ServerPlayer+0x29c)", + "risk": "high", + "what": "posts EVENT_RESEARCH_COMPLETE / _UNDERBUDGET / _TEMPERANCE on the owner's EventStorage when !silent", + "why": "the same class of write as B3's defect, and this hook has no replace-mode oracle that could catch it: gotcha 4 in docs/B2.md says a changed save hash on a completion turn is expected and therefore not a finding" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes every owned system's AI flag (CCC_AIVrus / CCC_AISlv), re-evaluates the arcology civilian cap, cures addiction and clears plague across systems AND ships", + "why": "writes through pointers to other objects; compare mode must not touch live state, and no region reaches them" + }, + { + "mitigation": "this is the extra draw B3 observed on a completion", + "risk": "high", + "what": "the pending plague-cure roll (ServerPlayer::RollResearchEvent)", + "why": "it draws exactly one word from the strategic generator unconditionally; running it in compare mode would consume real randomness. The two words it guards are still cleared and the record says whether it would have fired" + }, + { + "mitigation": "", + "risk": "medium", + "what": "TechTree::SetResearched for the Zuul boarding-pod grant", + "why": "it would mutate the live tree, and it recurses" + }, + { + "mitigation": "region:node_bore, declared only when the block already exists", + "risk": "medium", + "what": "allocates or frees the node-bore block at ServerPlayer+0x308", + "why": "ours has no allocator the game's runtime could free, so replace mode calls the game's own updater -- which means replace mode never exercises our node-bore selection at all" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::ServerSystem::ProcessTurn": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:system", + "risk": "high", + "what": "the addiction sweep raises MoraleEvents, which are constructed and appended to the system's capped morale history", + "why": "the same class of write as B3's defect. sim::ProcessColonyTurn does compute the morale events (ColonyTurnResult), but the hook never emits them: DescribeMoraleEvents is dead code, so they are neither compared nor logged" + }, + { + "mitigation": "guard:system covers the system object only, not the other objects", + "risk": "high", + "what": "every callee: the plague pass, imperial and civilian growth, the resource debit, in-orbit refuel, slaves, rebellion and the build queue", + "why": "declared input boundary -- ProcessTurn is a dispatcher and only the words it writes itself are modelled. The callees raise EVENT_SLAVES_DEAD, EVENT_SYSTEM_REBELLION_CONTINUES, the plague events and SEBuildCompleted, create ships and bump per-player ShipRecords counters" + }, + { + "mitigation": "", + "risk": "medium", + "what": "ApplyInfraBonus / ApplyPopBonus read the owner's home-system id, and the build queue writes the owning ServerPlayer", + "why": "writes through a pointer to another object; no region reaches the player" + }, + { + "mitigation": "", + "risk": "low", + "what": "ProcessRebellion is the pass's only RNG consumer and its draw count is data-dependent", + "why": "the generator IS a declared region, so a moved post-state is visible and names the system whose rebellion fired -- it is reported, not modelled" + }, + { + "mitigation": "", + "risk": "medium", + "what": "replace mode is refused for this hook", + "why": "our side models the dispatcher's own writes and none of the callees, so a replace run would silently skip a colony's whole turn. There is therefore no oracle layer behind the compare for this hook" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::MoveFleet": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "guard:fleet sees the fleet's own words; the event and the system do not", + "risk": "high", + "what": "on arrival: dispatches SEFleetArrived and runs one of three arrival handlers by destination kind (enter system / join fleet / stop at point)", + "why": "declared input boundary -- an arriving call is expected to differ in all of it, and none of it is declared, so the compare says nothing about arrivals" + }, + { + "mitigation": "", + "risk": "high", + "what": "on departure: cancels every still-acting ship (with a log line each) and calls ServerSystem::FleetDeparts, which rewrites the system's ownership bits", + "why": "writes through pointers to ships and to the system" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the tanker top-up refuels other ships in the fleet", + "why": "the per-ship range regions would show it, but ours does not model it, so a fleet with a tanker diverges for a known reason" + }, + { + "mitigation": "declared gap: docs/B4.md", + "risk": "medium", + "what": "a node-line waypoint's step comes from the stutter profile", + "why": "NodeLineStep / BuildStutterSegments are written and unit-tested but not wired in; the hook steps every waypoint type as speed x dt, so a node-line leg is knowingly mis-stepped and only its type is recorded" + }, + { + "mitigation": "", + "risk": "medium", + "what": "a missed probabilistic jump scatters the fleet in a random direction", + "why": "the direction is a second draw whose mapping is not modelled; ours leaves the position alone and reports the scatter distance, so the generator region diverges by one word on a miss" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the route revalidation and the waypoint list itself", + "why": "declared input boundary; the waypoint vector is not a region" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::StrategyServer::ProcessFleetMovement": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "", + "risk": "high", + "what": "`ours` re-reads the LIVE fleet list after the original has run", + "why": "the gate-traffic total is computed by the original at the very end of the pass, so a pre-call snapshot would diverge for the wrong reason. It breaks the compare invariant that ours never touches live memory, and it makes this hook's verdict partly self-fulfilling: the input to our arithmetic is the original's own post-move state" + }, + { + "mitigation": "", + "risk": "high", + "what": "drives MoveFleet up to five times per fleet", + "why": "every undeclared effect of MoveFleet happens inside this call too; the pass schedule is recorded in the arguments but never compared" + }, + { + "mitigation": "", + "risk": "high", + "what": "writes FPdpos into every fleet and clears flags 0x2 and 0x100 on every fleet", + "why": "no region covers the fleets, only the players' gate-traffic words" + }, + { + "mitigation": "", + "risk": "high", + "what": "OnFleetArrived posts EVENT_FLEET_ARRIVED", + "why": "the same class of write as B3's defect, and there is no replace mode for this hook, so nothing behind the compare could catch it either" + }, + { + "mitigation": "", + "risk": "medium", + "what": "the original accumulates by player->index but writes back by the player's position in the server vector, into a fixed 32-int array with no bounds check", + "why": "a real latent bug in the original that our side reproduces only while index == position; the reference save never separates them" + }, + { + "mitigation": "", + "risk": "medium", + "what": "PassSchedule() is never called by the hook, and FleetSummary::targetFleetId / relation are never filled", + "why": "the header claims ours predicts the call order for a trace to check; that prediction is not actually emitted" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::TechTree::ProcessResearch": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "region:events", + "risk": "medium", + "what": "posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it", + "why": "text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all" + }, + { + "mitigation": "region:events", + "risk": "low", + "what": "composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names", + "why": "the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text" + }, + { + "mitigation": "guard:player, guard:tree_header", + "risk": "high", + "what": "TechTree::SetResearched in REPLACE mode: nothing of it runs", + "why": "the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked" + }, + { + "mitigation": "guard:player", + "risk": "high", + "what": "ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags", + "why": "B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports" + }, + { + "mitigation": "region:rng", + "risk": "medium", + "what": "the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths)", + "why": "the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not" + }, + { + "mitigation": "region:observed_techs", + "risk": "medium", + "what": "constructs the ObservedTech element it appends to ServerPlayer+0x274", + "why": "`ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them" + }, + { + "mitigation": "guard:tree_header", + "risk": "low", + "what": "the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region", + "why": "the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes a completion line to the game log", + "why": "log text is not simulation state" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Game::WeaponDictionary::Init": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "suspected cause of the sibling section hook's compare crash (docs/M2.md)", + "risk": "high", + "what": "LoadWeapon -> WeaponDef::ParseScript registers each weapon's name with the string table and resolves `requires` against the live TechTree", + "why": "per-file parsing is M3 scope; ours delegates to the game's own LoadWeapon, so a compare run performs the registration a SECOND time and neither the string table nor the tech tree is a declared region" + }, + { + "mitigation": "", + "risk": "low", + "what": "allocates 123 WeaponDef objects (0x278 bytes each) on the game heap", + "why": "the definitions do not exist when the hook is entered, so they cannot be a before-snapshot; the dictionary region compares them by id/name/path" + }, + { + "mitigation": "guard:dict", + "risk": "low", + "what": "the word at dictionary+0x14", + "why": "not modelled; emitted as an opaque pointer, which the default policy ignores -- a change is visible in a trace but never a divergence" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes lines to the game log for a missing manifest", + "why": "log text is not simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "std::sort tie order for equal weapon names", + "why": "msvc_sort.h replays MSVC 2010's introsort, but the shipped data has no tied names, so the tie rule is unexercised rather than verified" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Mars::GlobalConsts::LoadFile": { + "coverage": { + "state": "partial", + "unmodelled": [ + { + "mitigation": "LoadAll's post-state would have to be hooked to see it", + "risk": "medium", + "what": "erases each consumed key from the caller's std::map", + "why": "the map is a LoadAll temporary; declaring a red-black tree as a region is not possible before the call. First-occurrence-wins is reproduced in game::config::apply instead, so the *effect* is modelled, the container is not" + }, + { + "mitigation": "", + "risk": "low", + "what": "writes three kinds of line to the game log (unrecognised key, applied key, expected-but-not-found)", + "why": "log text is not part of the simulation state" + }, + { + "mitigation": "", + "risk": "low", + "what": "opens the file through the VFS and allocates/releases a refcounted buffer", + "why": "ours performs the same two calls, so allocation behaviour matches by construction rather than by comparison" + }, + { + "mitigation": "", + "risk": "low", + "what": "String slots assign through the engine's own std::string, leaking one heap block per long string in compare mode", + "why": "start-up only; documented in docs/M1.md" + } + ], + "why": "" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + }, + "Shim::SelfTest::Fill": { + "coverage": { + "state": "complete", + "unmodelled": [], + "why": "Fill writes buf[0..n) and nothing else; the whole range is a declared region" + }, + "ftol": 0, + "ftol_kind": "abs", + "ptr": "ignore" + } + }, + "inline_max": 256, + "started": "2026-09-08T10:40:32Z" + } + ], + "totals": { + "calls": 20, + "compared": 20, + "coverage_contradicted": 0, + "coverage_unstated": 0, + "diverged": 0, + "guarded_calls": 20, + "invalid_records": 0, + "undeclared_calls": 2, + "undeclared_writes": 8 + }, + "warnings": [] +} diff --git a/verify/results/compare/unlock-b3-zuul.md b/verify/results/compare/unlock-b3-zuul.md new file mode 100644 index 0000000..f673a74 --- /dev/null +++ b/verify/results/compare/unlock-b3-zuul.md @@ -0,0 +1,26 @@ +## tracecmp report: u-b3-zuul2.jsonl + +- build: unlock-405ba41-20260908T1026Z started: 2026-09-08T10:40:32Z inline_max: 256 +- calls: 20 compared: 20 diverged: 0 invalid records: 0 warnings: 0 +- coverage: 20 guarded call(s), 8 undeclared write(s) in 2 call(s); 0 hook(s) unstated, 0 contradicted + +| hook | calls | modes | compared | diverged | errors | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | 20 | compare:20 | 20 | 0 | 0 | + +### coverage + +| hook | verdict | compared regions | guards | undeclared writes | unmodelled | +|---|---|---|---|---|---| +| Game::TechTree::ProcessResearch | partial | events, node[0], node[106], node[107], node[108], node[109], +231 | player, tree_header | 8 in 2 call(s) | 8 | + +#### Game::TechTree::ProcessResearch — not checked by this run +- (medium) posts EVENT_RESEARCH_OVERBUDGET on the owner's EventStorage: ours reproduces the decision and the id sequence, so region:events compares next_id, but the composed EvDsc/EvMsg text is not reproduced and no region can see it — text comes from the game's string table, which the engine must not carry; ours posts into its own EventStorage and writes only the counts into the scratch copy, so no live byte moves and replace mode posts nothing at all [region:events] +- (low) composes EVENT_TECHS_UNLOCKED's message from the unlocked techs' names — the trigger and the list are modelled (SetResearched's availability sweep plus the tail collector, both read off the instruction stream), so region:events compares next_id; the names come from the game's string table, so the message is composed from node indices instead and is not the game's text [region:events] +- (high) TechTree::SetResearched in REPLACE mode: nothing of it runs — the cascade is compare-mode only. In replace mode every pointer is live game memory, and applying half of OnTechResearched -- the observed-tech append and the research-event roll, but not the tech-effect field writes -- would leave the player in a state no code path produces. A replace run therefore still leaves the completed node unstamped and no tech unlocked [guard:player, guard:tree_header] +- (high) ServerPlayer::OnTechResearched's tech effects: the ~90 hard-coded ServerPlayer field writes, the plague-cure masks, the design-option bitmasks and the species tech flags — B2's milestone. `ours` models only the two parts of the callback this hook's regions can see -- the observed-tech append and the one RNG word RollResearchEvent draws -- and the rest is what the player guard reports [guard:player] +- (medium) the research-event branch RollResearchEvent takes when its roll beats the odds (0x00889d60: the plague and AI-rebellion event paths) — the one NextFloat is drawn unconditionally and is modelled; the branch behind it is entered only for the plague and AI-rebellion tech families, whose odds are 0 everywhere else. If it is ever entered, region:rng is the check -- it would consume draws ours does not [region:rng] +- (medium) constructs the ObservedTech element it appends to ServerPlayer+0x274 — `ours` models the append DECISION -- RecordObservedTech de-duplicates by tech name, so it decides whether the vector grows -- and moves the scratch header's byte span by one 0x2c element per append. The element's own fields (turn_first, turn_last, detected, the name string, `with`) are not built, and no region can see them [region:observed_techs] +- (low) the tree's completion-order counter (TechTree+0x20) is read pre-call, not modelled as a region — the per-node `order` word IS compared, and it is stamped from a counter `ours` seeds from the pre-call read and advances itself; the counter's own final value is only seen by the tree_header guard [guard:tree_header] +- (low) writes a completion line to the game log — log text is not simulation state +- guard hits in compare mode: player+0x10c:3, player+0x110:3, player+0x114:3, player+0x124:3, player+0x294:4, tree_header+0x20:1 diff --git a/verify/results/shim/unlock-shim.log b/verify/results/shim/unlock-shim.log new file mode 100644 index 0000000..da4a5b2 --- /dev/null +++ b/verify/results/shim/unlock-shim.log @@ -0,0 +1,94 @@ +06:30:02.121 [tid 6384] ==== sots-engine shim (binkw32 proxy) build unlock-405ba41-20260908T1026Z ==== +06:30:02.121 [tid 6384] exe: C:\SOTS\Sword of the Stars.exe +06:30:02.121 [tid 6384] exe base=0x00e80000 (link-time image base 0x00400000, ASLR delta +11010048) pid=7268 shim=69530000 +06:30:02.121 [tid 6384] addresses: Source: sots-re ghidra/addresses.json @ 545c715, generated 2026-09-08 by tools/gen_addresses.py +06:30:02.121 [tid 6384] config: hooks=trace +06:30:02.121 [tid 6384] config: hook.Shim::SelfTest::Fill=off +06:30:02.121 [tid 6384] config: hook.Mars::GlobalConsts::LoadFile=off +06:30:02.121 [tid 6384] config: hook.Game::WeaponDictionary::Init=off +06:30:02.121 [tid 6384] config: hook.Game::SectionDictionary::SectionDictionary=off +06:30:02.121 [tid 6384] config: hook.Game::ServerPlayer::ComputeBudget=off +06:30:02.121 [tid 6384] config: hook.Game::ServerPlayer::OnTechResearched=off +06:30:02.121 [tid 6384] config: hook.Game::ServerSystem::ProcessTurn=off +06:30:02.121 [tid 6384] config: hook.Game::StrategyServer::MoveFleet=off +06:30:02.121 [tid 6384] config: hook.Game::StrategyServer::ProcessFleetMovement=off +06:30:02.121 [tid 6384] config: hook.Game::TechTree::ProcessResearch=compare +06:30:02.121 [tid 6384] config: trace.path=C:\SOTS\shim.trace.jsonl +06:30:02.121 [tid 6384] config: trace.inline_max=256 +06:30:02.121 [tid 6384] config: trace.flush=always +06:30:02.183 [tid 6384] trace: C:\SOTS\shim.trace.jsonl (default mode trace, inline_max 256, flush always) +06:30:02.183 [tid 6384] hook: Mars_Application_Initialize rva=0x004a0e50 -> va=01320e50 +06:30:02.183 [tid 6384] hook: MH_Initialize -> MH_OK +06:30:02.183 [tid 6384] hook: MH_CreateHook -> MH_OK (trampoline=017e0fe0) +06:30:02.199 [tid 6384] hook: MH_EnableHook -> MH_OK +06:30:02.199 [tid 6384] cfg: GlobalConsts hook ready (scale constant 0.017453292519943295) +06:30:02.199 [tid 6384] hook: Mars::GlobalConsts::LoadFile rva=0x004b73c0 mode=off (not installed) +06:30:02.199 [tid 6384] dict: dictionaries hook ready (crt new=6adc232b delete=6adc0174) +06:30:02.199 [tid 6384] hook: Game::WeaponDictionary::Init rva=0x0019a4c0 mode=off (not installed) +06:30:02.199 [tid 6384] hook: Game::SectionDictionary::SectionDictionary rva=0x00176f40 mode=off (not installed) +06:30:02.199 [tid 6384] research: ProcessResearch hook ready (Cost=00ffda00, node=0x34, rng=0x9cc, fpu_cw=0x027f) +06:30:02.199 [tid 6384] hook: Game::TechTree::ProcessResearch rva=0x001876c0 -> va=010076c0 MH_CreateHook -> MH_OK (trampoline=017e0fc0) +06:30:02.215 [tid 6384] hook: Game::TechTree::ProcessResearch MH_EnableHook -> MH_OK mode=compare +06:30:02.215 [tid 6384] techfx: OnTechResearched hook ready (regions=15, gate=0/0, fpu_cw=0x027f) +06:30:02.215 [tid 6384] hook: Game::ServerPlayer::OnTechResearched rva=0x00491790 mode=off (not installed) +06:30:02.215 [tid 6384] hook: Game::ServerPlayer::ComputeBudget rva=0x00463030 mode=off (not installed) +06:30:02.215 [tid 6384] hook: Game::ServerSystem::ProcessTurn rva=0x003598e0 mode=off (not installed) +06:30:02.215 [tid 6384] hook: Game::StrategyServer::MoveFleet rva=0x003d9ee0 mode=off (not installed) +06:30:02.215 [tid 6384] hook: Game::StrategyServer::ProcessFleetMovement rva=0x003da9a0 mode=off (not installed) +06:30:02.215 [tid 6384] fpu: module init, entry cw=0x027f 53bit-double/nearest; force=off value=0x0000 sample_ticks=on +06:30:02.215 [tid 6384] fpu: StrategyClient::EndTurn rva=0x00383be0 -> va=01203be0 MH_CreateHook -> MH_OK (trampoline=017e0fa0) +06:30:02.230 [tid 6384] fpu: StrategyClient::EndTurn MH_EnableHook -> MH_OK +06:30:02.230 [tid 6384] fpu: StrategyServer::BeginProcessTurn rva=0x003d98e0 -> va=012598e0 MH_CreateHook -> MH_OK (trampoline=017e0f80) +06:30:02.246 [tid 6384] fpu: StrategyServer::BeginProcessTurn MH_EnableHook -> MH_OK +06:30:02.246 [tid 6384] fpu: StrategyServer::ProcessTurn rva=0x003dc6c0 -> va=0125c6c0 MH_CreateHook -> MH_OK (trampoline=017e0f60) +06:30:02.262 [tid 6384] fpu: StrategyServer::ProcessTurn MH_EnableHook -> MH_OK +06:30:02.262 [tid 6384] fpu: DemoApp::OnTick rva=0x0049a640 -> va=0131a640 MH_CreateHook -> MH_OK (trampoline=017e0f40) +06:30:02.262 [tid 6384] fpu: DemoApp::OnTick MH_EnableHook -> MH_OK +06:30:02.262 [tid 6384] selftest: Shim::SelfTest::Fill mode=off checksum=075ef0c3 records=0 +06:30:02.277 [tid 6384] Application::Initialize called (this=03b38128) +06:30:03.027 [tid 6384] fpu: TICK BASELINE at OnTick (this=03b38128): cw=0x127f 53bit-double/nearest +06:35:03.077 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=0e92ee08): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:35:06.155 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dd610): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:35:06.186 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dc038): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:35:06.218 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351e0908): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:35:07.171 [tid 6384] fpu: sample at StrategyServer::BeginProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:35:07.171 [tid 6384] fpu: sample at StrategyServer::ProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest +06:35:07.186 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:35:07.202 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:35:07.233 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:36:33.764 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=0e92ee08): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:36:36.811 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dd610): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:36:36.843 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dc038): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:36:36.858 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351e0908): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:36:37.827 [tid 6384] fpu: sample at StrategyServer::BeginProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:36:37.827 [tid 6384] fpu: sample at StrategyServer::ProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest +06:36:37.843 [tid 6384] research: cascade ok=1 completions=1 unlocked=3 otch_appends=1 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:36:37.874 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:36:37.889 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:03.343 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=0e92ee08): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:06.421 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dd610): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:06.436 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dc038): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:06.468 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351e0908): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:07.421 [tid 6384] fpu: sample at StrategyServer::BeginProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:07.421 [tid 6384] fpu: sample at StrategyServer::ProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest +06:37:07.436 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:07.468 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:07.483 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:32.858 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=0e92ee08): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:35.921 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dd610): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:35.936 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dc038): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:35.968 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351e0908): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:36.936 [tid 6384] fpu: sample at StrategyServer::BeginProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:37:36.936 [tid 6384] fpu: sample at StrategyServer::ProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest +06:37:36.952 [tid 6384] research: cascade ok=1 completions=1 unlocked=3 otch_appends=1 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:36.983 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:37:36.999 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:38:02.624 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=0e92ee08): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:38:05.686 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dd610): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:38:05.702 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351dc038): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:38:05.733 [tid 6384] fpu: sample at StrategyClient::EndTurn (this=351e0908): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:38:06.686 [tid 6384] fpu: sample at StrategyServer::BeginProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest [no fpu.force configured] +06:38:06.686 [tid 6384] fpu: sample at StrategyServer::ProcessTurn (this=0e966350): cw=0x127f 53bit-double/nearest +06:38:06.702 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:38:06.733 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 +06:38:06.749 [tid 6384] research: cascade ok=1 completions=0 unlocked=0 otch_appends=0 roll_draws=0 failures=0 depth=0 name_unreadable=0 diff --git a/verify/traces/unlock-b3-t1-5.jsonl.gz b/verify/traces/unlock-b3-t1-5.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..e1558f36f839eb511205e1efd4c4ee741151055f GIT binary patch literal 215225 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%0Aw^^+ZD9TZn&X}TmeMx z@kyI|BMqc~b3*;^y*T255W=qEjmlAFC;LjE5!y&hHS7^bjrwG=p-=2FImj{k zWuxtB(fZ!UNs&4+Cqx|nSkFIuH(x{XXaud^-w&qH2&(Gx%fx)7&2>k>;yK%JBHg`RjCEUHW#BCv40l;btTo`AYjB* z?Wa#LScTRL41v-RKgb&sQfex(>+FJ+OaZiP%tNnuV?{J8#zXDBh-%XGhBQ%|1p6mK zIV?zVG9Iw|ZDTi00ZypoY$C+au#@d6+twss-*!FPTqCA9q1>iFE8UT#i|0YHJ3$%A zBL{3({)Pa9g-rCRL57o~(y98#g)#4c_{(I$OVQ>UFm+)}Ivf-Pg=95iCxiK96(qhx zg8jDBWPMOrE*iQz4sNTJzrYKG$2_6RR`5p;8Ma$Y48-s*O}ay%R!MN-^_a~HQNxP ziDJoI+9Ib;9@XQ2AWfydgHpV*&U2%Jk&`cD5w$K~f>>Dc2I0AXZJhBOQF{#WP=YO9 z!!zSz!`bNCm6cI=g?FO9!LuNHXA)ShK1n665WK+O!Ivv3W4T^XuzC(}0gXsaekHTJ z4Xv!20xUe5)xHr7UBOT3M5&%_T1>wGJ=+6s{W>OlU59@F?>(I(@gZBgj0kngbWEe% z`5<9b>0x$(t7UlbMI?p_GHm<=4`Wq2iuZFD_X$dH9*!K9cFDYf=A5ER*0)?^fW=n@ z;=Z4HcQXoR$sLxbO@l$H+GK`<`E}xz6Ws-Gra*)|u055IBy?x**e8%1kL3N(xf~~* znVzRDAqlysRcYAwYZ;$FzV;|M6mZA}679!eNV|%?d_KfMQsmzBe%ym0LoOtvS@d_J z`m-pJMcHSOZhh`$2kt6Cw@|7*!ZZlOVt&z;=rQp%W_MLlK#1OTP10EqvJn|CEWe4x zB%?t$lmEkp?np=X@h=$@_#|UO3#pa^RhV_3Vcz=~HW{C+ zn5Mby!pG3oY~Zc`$ZUl@-vFP^T42amAk>a~cOKMv7sfO~v4Y^Je=9}H-8W(T3b;0H z7~tAWjZw#7aGFP?VpWvS{@`+E`7eXTV*T%3%`)Jzq4oRl39@$!f7Yj&y{8eBZa3tK zI1JE{Aek+879$lk6whFN(bk7CbSX=4l1!woYzFX@DTF>I07?&!C!CUI$~|2+u1ne9 zjk<=!*wAAznH7UHkmb+!euW-JbaB(%x+V-F?CL?^L1{W!Bav0j2cerrV(qVo4L;P+ z5m1oT!WP=!Buwqj719jXf*n%mdPs$t&$~i?W7INU!=n8SAz3HXD3YlFliTl{H{{Dz!F| zJsM1zZXge4;KEKI^3P=GDEgb3(S;%3WlkuWE=8E$*bKBq4D;LX>u0`eu@LVUQj zKwja%WTEV>n@DAkP4$3~^yam|OCG5?RB+!_!s(p*U=s?^bRuB`ni3#pGF7j0wC=JY z1(ofgO7eWWAw$ZaU&E0e5bfo@%`CRa(6B}VW)l_t8IOX~C82XQlOipFLG9b%9*bWx zT}c$sgHal!jwa~zr%9bSrwT9~+=i#bk+CaY(lt*UD@=wA6avMBqJHfB26~)^ur96eWOIX!u#|dE zN`D+UYo>`4o}Ni`X!uG7PV|!?zj)r)f{t0nGz^Pjb}qZ69)~Lw7!1bGBaf|4O!`B& zz!XHfgiXVs`>IGl>(TCU@b}+-1Jqgs9S`s(joP{WE1Q=TC8qaH8upc;*{|4~XVQi~ z7uxvN5u->+gC~~SRR9e6!Vs|04)?N;+8Xx)Xcdu(`oNtiw9ud`yP428H7#hX8i4ib z`>>fx^K;@Q^w|8v5O_rCjAEsN`qogYmlT8HO60@Vgfdr3D8Sfjwx?s6m9 zmiO_3j7?~=42PXmy>VNE*O(m`q3;s;S;rjSQdorFd)#RBH4bj$&Ko|RYvws#)=Ije-J%-4qS2DV3HI1 z^V$q14TSh%Dy*Q^^odi}eD^2b{jtrTAKoa#|MNizpM|?k{4GkJ)Y3MzY>lrRp8is| z9yLDt3J#9?$-w%1*^;lWfv+(OW1r$IqQ}D512MniDXj36+VcsOOmYXqce115HJtLu zTKyNMB)#+sU`RXvmDjVn1mb0JuoYoLirx_Fj|8*w%K&%N)Z!cA@4(EBL9Gy@#Bi{t zxDX-5lelCBR=genS_R-lDCh@}7hN`--IA^`c3wj{8C2ev15z?JYBE zzW{i{!um0Ur#~Q|2lJiW&?VCN7JeTo#^#owUqY+D*YjCPn7bSmp^fF! zB`T9x;s>wVD77X+5gFA8vI!!hhHhaTqFj z#r*BPKoez$QcmSxbREiGn{VEP>ZVjW>%!M#FqO^)7%gRX7CH}L!#4E4F&$Anv)G-i zk$9kKGH+y?4GRAU{|8YpojF0p*E4{mVg)(($lFjWRoL4V{7Kd{f6?#-@O``=b|bYz zAU9va79Y{^DWY8CZkbE!V`N9)`J&k)a^mZ;oM<&B##UQVp_o4zX zj%+pDd7I(@>x4aRvRoMgrgCP#&i2n3w*wN+flBF2T`E~fkZc>~z7%S>fJP+XYtE_( z!Dx?}oY`A(Hkwi&WsAo=L}`iI>Ke&gv;sJu?Jnr=vv*Tg?C~zC>-)Q+gVr?LNb1_AMj|kB-`r{DbRlWG zfK*D0@0WV9eiwFuJASCKcjR&2u3fvoQ&gNCDkhUfbhPZAq+f0simyAybSCgg zbeAId8g*uH2adr7x@?snCMth7=fdg9|3_0&-}ig`k7-`-s3TD+HJ}ZHDJC+Sd5LA?#q)~Vun+aggjj4^0UK{7cBK1LyoUm6lm13f z0#xEdNp(|6FLreGoo{@1`k;7j$|;RB+<`C=bIPIT0IZt1^QL7?@}&=$n6mGMRg7Cm z_|l3HNyq7dyX{`O$#a%VnoKeB2lw!Pg`taFyJy5RV%9kGPHgMhfzcb{yBhd8U0qmw zx>KuuD^pYpjo9XD?PzLdLftIw4j&1Yej8#CgigkEP}1}W{fg-Td|DT-!DDwkCU9-M zD48OOF)i!H07f(qW%uvk`3&6SqwQ1RN%E<}-R+g)vI9yUh99AK@bES?xXRl>19oEO z#PfBE&I_Bgsh~`0zw^tc0&H_RVMu^8N=#=&)W0$WtA<|{^z=l`_@XeC-2KjWB=Pw) z2Yr)nNR@j}g}Mt7h1^qrN-BAt@*G8?hBuy%T5d_8BYEGLkxu;m>s zrk=PmkRO0YE12NXN*k!@^1tLsS;9<1a9gNI=G`7R5U@~aiaAe|q*Hdo0bG5*zlM(n zBcw3uK$f6AB!eNj`A)W3AQc=|#fIvjh53mMsr(BV+KmhmkY7$h+GrTAk1V>GsH4G? z=6u3oKxc{UO-Ki4J8lUh`sb;$_iTztM z7kb;zOjdRGP!DK-;f==a#DWFSV~yL9H61RsNlz8-i_J^_a_lOdl4+B_zjvZXs% z>26pbh>Fz;w7Q?K(;Zbc3;U`k@>7-~Atc%6kCg(F`NY?+`we|0-j(o9vCbMRq%F*W^|L-G>A{J<%ZXGg$tF@a zt333WLXx12Y{bUAk(y|?==gwliG$?{lWadXtxghnVvG6p)WTXmQFkBhck~C30@%GM z7^&QnpEDbrMoufj+0@#>h^q$0F}K)J@pB+p5tf~#+9;BmTU{uPD5y*_Vc)+Kn^e@^ zsQHfaG2^?^O=KVD(YRaDP1^21!!Q5xeL%PI$IH%5!sED1&B^kDq^#%`g=I_?bktvV z5jkV|GhL6W*7&nZC^C$l(o_)w7rOT5e7ebCRVwc79lsvHssx&(Mr_Ma?o*d@R8mT* z$I1p1^B&Sc1m2ZpuR}8m@ho!gQ9ldiP<)Je}0S6b|5C2IvWq^Nr2DD;RKZw3NtZ@pZ95kFUQv-)Y za?O%P?+e5_@&oPwTqTK)x#?m>kEt9x;B8}uT2P|#r~ncC3FYbq*7>qry&PHO-#4fJ zn9L+RzOXVfvE8fV32u9t4aNWxB_8~|SMVX_@bcpT?~-F^+ncA`!mbBo>127y6UQBI-aM4RRF52<-{h<-{N4gyZlJF8PFmk9)doeJw4E8kw#UrXYtc0i`3~{ zdBl0}IQSM=xwG6hvABO5y+9)Qla6m04Tc>?)@%S+CUq0!3{ebHHJn+Xdl~TQxP!0H z>OfmBbwW`RQhg_dQj*cn)U1*t$W5+DI`UpNH2eDVQ+)|?+3z7$MFw4-W<-fNJ@39` z_~z;pDkV>ia=(?$&U6jNUCB(Hk;GOcUjt)Ip2dU6oH(w3kM@jUmLf(Cqo`Po~#jz}v?eCtn$wz+(>fu|_tQOJIM&Mrb{ zi}&;xQBctC%Xi|EIjUwDqUL;dh&cOZzwyHN{cd2o#QUA~1-^oUqx9D|os-82(g)NE z5xXx)(|i%>C(N^m-#Wx)pLI{yUZhL-oG6@WoNa7cAN_4bbRe7%srB14(TLrpnRx96 zgh-sAFJds|q0{8f-@%D3?QH}P-o`|_PR5qGIN}7@f+S8BkBqhmQjs|484hCa+vZZv zZtKZ_J)Qj8*6H7!tW=+)6Z_rvs-Z%JG?ybiVqfO$^fByLp3hrD9+0jkUd;jq#joT)_l-eaD7A63(j|6Z+2f zEPcBXrz5R~9WVDJ$olIMrvZQzrAHc-=yOF7y=ESlMx~6k^afy5a{iA|NqyE8F>kmP z`)EA%c7p&SQ$nH6EU9?9C7OPs9yN{fjJ|QBg{xO$Ya`|?3Bgv6GM6raIF~6s+)0_| zs;@oX`L%&KSmCnhpb?&%BM+ZNoGxP^I`3*Oc|8}uJyoMR?%m;qSZ-ylw|?4qsC~M_ z!}WH;Y53q;?}8q}=ZLgZV(zn+#e8GV$sxUj*K>rpy+i%)9J7*7E_W?04-eS9MaE7` z&o(E1N+2Jz(3JR|yOe0oT}r+Ge_cvy|7Vv{=b>fN&g$K$&ukoSr3Pmb_qT>!ox2=Q z!v>r82k)Mk1$i@Cbol=d(OLd_OzM*8H2i-NotArZkM#i2DFa+e9B6KZ{bGW8H5leE z_g{$njH|fPp5oOgQ~RH482cI=S?%{2RxXBo2yUaS#>i>gpX57yoF*Ere}eRA2++R# zbmF>_N^FKANL+$p4&BRqN>>BO%lU?SPDEPSu|V2w?!l~qNkTz9eE(iv)b+(NL%#*Q zla(!j?74}>T8w+B>y1(+VuF|zHwXf}$;eibL@1KMtiQ&AkVhdA#LzWeBXXi~L+|VH z-(8&JYS>0Ub3GL48Jk$TiIc6=lKR%Uc z^$Bcgb0YB|>UFsVp7@#7=3nhNdf)V5w66q+i|_Mg;qWymww6&&4xs;r8#zTO6VS3* z(*oD&($+Dm#^5gAc)X7U(G1CJhV8fX{_gMc%3rfBUKjnl@%ZqPn%O#9Y6-d)>`{k% zuxdIYdTTcQ<(n32On*wKeube_OzSS$s zqLQhGllL<4SP>MjeE;LT*)ca+)U0K$lWsTE5y+y!(5-J9ix7^nZzNcbNCJXJnl#tk`t=%AaL#+HO26dS*JAp zlm_wqz;DPigjA8l(D<8XQ3uI;8L!;pEFn&rCYi(oq#<7Y<6GbCM2@TKUy&+un@1j2 zEGrcvT0*Gr2R`M-t3$QkyrvUp7?6*vUTN<4W$d3fXP>M3Xr)+Qq~1T0eiy=P^vnf) z=xyPZb?5Lj(>}L0W964o)=g)c7KjYpgXbH#4wZW6I9%lewXFj@1DOfqm7P3ZhS4;X zsi*mmLG5tlm)F$^4hzF1-4oCjgdaH+#a-)k&EsJhPlKGf>0JVuaVcIMgCfFKU7b%F zEjh_j=1tmq_3v}6SgV*f(AG?^`qUHmQD&W0Z+XTBc1GqUA95S51@a>VJ|-YkZ?bLLp~+s9gej+fX6Ba|CngPyDhH z{ic<7FdDgm!bCD;J_P-W+B@7D)!!H%h0zrrvow4@xb05=_ex;Z4Gb`;7@>wMvw5fr zcPt#t0zU|s<>QT1>)E56;$3-I;%Gd;Q>h084%SNR=3iEDz^@OSUu}ivFN*5W7&;15 zJ}H!_%wW1%(zF>+S^wV=&+DIx)VP1BtWyaXzo-N8{(}iJFIN$nx`uY5b=$(Yljod$ zIox}>k8b%DMM9Fxo8EO+P7Sn;k8U~;JteCevtMSPrhPYTIp^8sjFCk;rz{$Li!r)hRn8qcCLl~Dp@OiXxgyPYc=+d?@SgczTIDAPnbX8LHU-4 z!#q*SbKc8r9Pzj!QpDh@0jy*uw0Mjwczi6(xn1%(97QCbA}QZ#N9eN0EB-&!y?0O) zTiCBV!;o{5oFpS4IfD#>fJ#zOkenn(2_gs#Q3MGBDiUN+6i`W`1d*JTFdz~H1Oz1q z$(g$v2KV0IIrmnbTXp}qRqV3%B$)2iZ?Eq4d)~)QN#R@NTLzDhuQOC05)2|PL74Z* zKhMt1()5uHn02Tp5Kv93WUrvF#}8VJFW&wS3~J-f`sP#bToKuTMF+}fzz$azHKG6D zTJ;qLZOE}Ow8OW(ZkjVI2^%)CIDJbab*Uu%(06qIWY3M3SiN3_iFxPWXO{G1z>Hb7 z;>SbOXW%jv=K%Jo)FgLtAADG8!EXCO{NZd#K+DM!PeeL>@Hwgr)?MlT_~d(%IQ%fr z{k_m)U%Pls1oWZZ^Z90y_{1F;uwq*{wfnE%=tGH%^myktvKl?!XC+*gKG^XUF2nUK zh;kQvHaQWaU&S=U`K;iS2+2=(mAwU%y@iALTgpRtzJstH*rGv7xXr3sq3wKTaaL4~Z&%GR= zd+*HXVGs@1c$uQA@zN9?{QAa3Bv&!+G5_0p#XWttQDHf1Omnhg15mS5XTry?=>MKwom-HfNao;X)#9CPCu2 zpz8nnF<>aI0Bi_Mc+U79++8};-q*G~T>`|ENd84~-tqes|1G2TbX?pA3i(=~6)P(A z=ToSwD?33w@A!Xut$Wogs==m-j3q}hbRt=OMfT-?Oj_~r{p$xVI(7n(XYMbac_-+u zVd0=R3a;i?dt%Rn<$+!ROl2w<3TsxQ!SUM9hujc`;N}%L#UDW_v6;f!W@bp%Vvw25kM{U+FdX78EbDmz)x>-Xf0t_l9_nJEH!hgyaKrK*7u_i{Byk4FS%3n z-T6**ckn6FtA+aoeSBprl;R0C+YB-2fAc7hcc0^1#(%|Fa~)VQmQT*V#aJx+STUCM zJb93*{M(OSSB!k7plxCLw@HH=8;urmYzfEMOhN|A3Oqc>b(jk0Z0q=1;U9QgjqiO( z35$^Im%2oIxnA=Cwx7lJo4-X8ydv(JtY)XxEY8Kn@o&~Z5NPJkv2F|XbF9QE>f2Wf zT>H`+lLxn>5oNHMdEd3KnOGrTdfuqBYx7H!PY#72SGXMlO06`Ejb*VntRcgH#e}u>4^w%}XXx94nICrr5 zlO45Imx94FM5b?!)0}~?%!s_gCrF4abY|Yj>j=>wCN1^J%83*F${9E}c0~u5Yw8JfA6X;AQ+w5FDq2Fc`dJZUnBKickG2^0X)0RVZ{}F}}lGidMyK6S4=F`uEumUjhGTKnGgmuS$0sKXewA%#$kWC#E!CNP=DR;}5OG~8M zgMsG0+pGlDG;+%stye(rb|yN&;o7)@b%^1mlW37QILD-26lK-`?0Wp|XLHF5$d+pXivk9KJoLRj2hJR+8^`4f2LybFb z&gc(^xOoTK&>)*NrjnSiizQB+51`os2xzsKAqTuZq)fo$quuEA8g!-wa)VHIQGN6^ zt{%jzq9mtE)S2bbDx8doI49=S41SMzW*}T)0^*F#0AQI4a#K89bFpt${_@h@-3$<2 z(9y)thLp+MSpx&Zg9{eZ@CsH9C-4koQ)I*D@M$S5!78jCU zugTl93;|D0OeDL3!ENMbE@lW7f&oPoIR@@REx|H)X2;x4{kF_U7~%4KhzJpC?BI(% za)Bug)^o;9spNFkPhC%-_DX!#eUJ4dOz*W9OSWWBF;IP=KUhJ5m%H(kd78F7%z4!9 z8<3trk{L2rwxXwVETY!y5CHmP6Pt1O+V%mt&xBFI%mKS)+^7dpXCMOXZ4fr_?1PZ} zScluX`{<%`DDS%VP*<%2iULi%E|T(|1p%ASX`4<}l|1g4OPYAceG1PR-8 zjUvY3a!dM#qX_v4!M2eWcAa;iz*9_3iF53!2ToUbQaVxm--5 vTPele1KEH18nO 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%0DY$0?#pGwex-rlK`Eta77^n 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 literal 0 HcmV?d00001 diff --git a/verify/traces/unlock-b3-zuul.jsonl.gz b/verify/traces/unlock-b3-zuul.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..b67f2a81f3e9b905c97b82242af25023acacc1c1 GIT binary patch literal 236606 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

1hTl`eDKWtE60TkJe;gvCXR0& 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 literal 0 HcmV?d00001