From 6e10def1b54e832501eabbb362c44518aa72e608 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Sep 2026 13:43:31 -0400 Subject: [PATCH] dashboard refresh after visibility --- campaign/DASHBOARD.md | 46 +++--- verify/results/standalone/report.txt | 78 +-------- verify/results/standalone/status.json | 226 ++++++++++---------------- 3 files changed, 113 insertions(+), 237 deletions(-) diff --git a/campaign/DASHBOARD.md b/campaign/DASHBOARD.md index 9e44adc..887793a 100644 --- a/campaign/DASHBOARD.md +++ b/campaign/DASHBOARD.md @@ -1,37 +1,37 @@ # SotS RE campaign — coverage dashboard -Generated 2026-09-08 17:28 UTC · `sots-re` @ f6a914b,2026-09-08 · `sots-engine` @ 54b0353,2026-09-08 (147 commits) · regenerate with `tools/dashboard.py` +Generated 2026-09-08 17:43 UTC · `sots-re` @ 069d7e6,2026-09-08 · `sots-engine` @ 06fe758,2026-09-08 (150 commits) · regenerate with `tools/dashboard.py` > **North star:** A functional reimplementation of the engine — behavior-equivalent, NOT byte-for-byte ## 1. Map coverage (campaign/board.md) -230 targets · mapped-or-better **209/230** `[█████████░] 91%` · verified **172/230** `[███████░░░] 75%` +240 targets · mapped-or-better **217/240** `[█████████░] 90%` · verified **179/240** `[███████░░░] 75%` | Status | Count | % | |---|---:|---:| -| verified | 172 | 75% | -| mapped | 37 | 16% | -| in-progress | 1 | 0% | -| backlog | 18 | 8% | +| verified | 179 | 75% | +| mapped | 38 | 16% | +| in-progress | 2 | 1% | +| backlog | 19 | 8% | | blocked | 2 | 1% | | Type | verified | mapped | in-progress | backlog | blocked | total | |---|---:|---:|---:|---:|---:|---:| -| objects | 29 | 6 | 0 | 2 | 1 | 38 | -| control-flow | 15 | 2 | 0 | 0 | 0 | 17 | +| objects | 30 | 6 | 0 | 2 | 1 | 39 | +| control-flow | 17 | 2 | 0 | 0 | 0 | 19 | | subsystems | 4 | 8 | 0 | 2 | 1 | 15 | -| engine | 21 | 0 | 0 | 0 | 0 | 21 | -| verify | 45 | 11 | 1 | 13 | 0 | 70 | +| engine | 22 | 0 | 0 | 0 | 0 | 22 | +| verify | 46 | 12 | 2 | 14 | 0 | 74 | | phase2 | 13 | 3 | 0 | 0 | 0 | 16 | -| meta | 37 | 6 | 0 | 1 | 0 | 44 | -| other | 8 | 1 | 0 | 0 | 0 | 9 | +| meta | 38 | 6 | 0 | 1 | 0 | 45 | +| other | 9 | 1 | 0 | 0 | 0 | 10 | ## 2. Binary understanding - RTTI type descriptors: **1,924** (`Game::` 1,404, `Mars::` 194; serializable types 179) - Classes with recovered member layouts: **384** / 1,598 named classes `[██░░░░░░░░] 24%` — `objects/layouts.json` (serializer recovery) plus classes recovered by hand in `struct-recovery.md` + `schema-gaps-resolved.md`. Note 179 types are *serializable*; the recovery also reaches non-serializable ones, so this is not a subset of that -- Functions: **41,411** (parsed from `01-fingerprint.md`); named/annotated in the **address contract** (`ghidra/addresses.json`, not Ghidra's full rename count): **986**, verified **940** `[██████████] 95%` +- Functions: **41,411** (parsed from `01-fingerprint.md`); named/annotated in the **address contract** (`ghidra/addresses.json`, not Ghidra's full rename count): **1019**, verified **957** `[█████████░] 94%` ## 3. Data layer @@ -45,7 +45,7 @@ Generated 2026-09-08 17:28 UTC · `sots-re` @ f6a914b,2026-09-08 · `sots-engine | Module | LOC | Test files | Checks | Wired | Doc | |---|---:|---:|---:|---|---| -| `app` | 2,078 | 6 | 82 | yes | N-output-term.md | +| `app` | 2,340 | 6 | 82 | yes | N-output-term.md | | `game/combat` | 582 | 2 | 34 | yes | mars-parse.md | | `game/config` | 558 | 4 | 131 | yes | M1.md | | `game/data` | 2,077 | 12 | 462 | yes | game-data.md | @@ -53,7 +53,7 @@ Generated 2026-09-08 17:28 UTC · `sots-re` @ f6a914b,2026-09-08 · `sots-engine | `game/effects` | 973 | 3 | 231 | yes | game-effects.md | | `game/events` | 558 | 3 | 152 | yes | E-events.md | | `game/nav` | 581 | 2 | 113 | yes | — | -| `game/sim` | 3,382 | 10 | 730 | yes | game-sim.md | +| `game/sim` | 3,606 | 11 | 792 | yes | game-sim.md | | `mars/parse` | 875 | 12 | 277 | yes | mars-parse.md | | `mars/rng` | 244 | 0 | 0 | yes | mars-rng.md | | `mars/stream` | 5,407 | 7 | 310 | yes | mars-stream.md | @@ -62,9 +62,9 @@ Generated 2026-09-08 17:28 UTC · `sots-re` @ f6a914b,2026-09-08 · `sots-engine | `shim` | 12,102 | 0 | 0 | direct (WIN32) | M0.md | | `shim/hooks` | 9,075 | 0 | 0 | direct (WIN32) | M0.md | | `shim/trace` | 2,258 | 9 | 273 | direct (WIN32) | shim-trace.md | -| **total** | **43,637** | **106** | **3483** | | | +| **total** | **44,123** | **107** | **3545** | | | -Board `engine:` rows: verified **21**, mapped 0, in flight 0 (of 21) — verified & merged `[██████████] 100%` +Board `engine:` rows: verified **22**, mapped 0, in flight 0 (of 22) — verified & merged `[██████████] 100%` ## 5. Phase 2 milestones @@ -78,11 +78,11 @@ Board `engine:` rows: verified **21**, mapped 0, in flight 0 (of 21) — verifie ## 6. Standalone (`src/app`) — distance to the byte-match -Turn-driver phases: **15/44** modelled (9 committed) `[███░░░░░░░] 34%` +Turn-driver phases: **14/44** modelled (8 committed) `[███░░░░░░░] 32%` | | verified | implemented | partial | blocked | stub | |---|---:|---:|---:|---:|---:| -| turn drivers (44) | 0 | 3 | 6 | 6 | 29 | +| turn drivers (44) | 0 | 2 | 6 | 6 | 30 | | post-combat tail (37) | 0 | 1 | 0 | 2 | 34 | Reference pair `turn1-state.sav` → `turn2-state.sav`, leaves localised by `state_checksum.py` (coverage proved by re-serialisation): @@ -131,11 +131,11 @@ Most recent open: ## 9. Delta since previous dashboard -- verified targets: 171 → 172 (+1) · mapped-or-better: 207 → 209 (+2) -- engine LOC: 43,313 → 43,637 (+324) · test files: 106 → 106 (+0) · checks: 3,480 → 3,483 (+3) -- addresses verified: 940 → 940 (+0) · recovered layouts: 384 → 384 (+0) · open questions: 26 → 26 (+0) +- verified targets: 172 → 179 (+7) · mapped-or-better: 209 → 217 (+8) +- engine LOC: 43,637 → 44,123 (+486) · test files: 106 → 107 (+1) · checks: 3,483 → 3,545 (+62) +- addresses verified: 940 → 957 (+17) · recovered layouts: 384 → 384 (+0) · open questions: 26 → 26 (+0) - standalone leaves closed: 5 → 5 (+0) · leaves still diverging: 204 → 204 (+0) --- warnings: board.md: unknown types subsystems; mars-rng.md: no oracle total row parsed; mars-stream.md: no oracle total row parsed; mars-vfs.md: no oracle total row parsed - + diff --git a/verify/results/standalone/report.txt b/verify/results/standalone/report.txt index 83c0767..8bc449a 100644 --- a/verify/results/standalone/report.txt +++ b/verify/results/standalone/report.txt @@ -1,99 +1,37 @@ # standalone vs the oracle -generated 2026-09-08T17:37:38Z binary /home/alex/sots-engine-e3/build-host/src/app/sots_turn +generated 2026-09-08T17:43:31Z binary /home/alex/sots-engine/build-host/src/app/sots_turn -phases: 16/44 of the two turn drivers modelled, 10 committed (implemented 4, partial 6, blocked 6, stub 28) - 5/37 of the post-combat tail modelled +phases: 14/44 of the two turn drivers modelled, 8 committed (implemented 2, partial 6, blocked 6, stub 30) + 3/37 of the post-combat tail modelled ## turn1-state.sav -> turn2-state.sav (real End Turn) baseline (do nothing) 209 leaves diverge - after one standalone turn 158 leaves diverge - closed 51, regressed 0, byte match: no + after one standalone turn 204 leaves diverge + closed 5, regressed 0, byte match: no coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True} closed: + /Sim/Frame - + /Sim/systems/Sys[112 "Gamma Cephei"]/EPid - + /Sim/systems/Sys[112 "Gamma Cephei"]/ETS - + /Sim/systems/Sys[112 "Gamma Cephei"]/Eid - + /Sim/systems/Sys[112 "Gamma Cephei"]/NVE - + /Sim/systems/Sys[112 "Gamma Cephei"]/ltis + /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev - + /Sim/systems/Sys[288 "Ke'Dolarra"]/EPid - + /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS - + /Sim/systems/Sys[288 "Ke'Dolarra"]/Eid - + /Sim/systems/Sys[288 "Ke'Dolarra"]/NVE - + /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis + /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev - + /Sim/systems/Sys[304 "Koa’Vo"]/EFlags - + /Sim/systems/Sys[304 "Koa’Vo"]/EPid - + /Sim/systems/Sys[304 "Koa’Vo"]/ETS - + /Sim/systems/Sys[304 "Koa’Vo"]/Eid - + /Sim/systems/Sys[304 "Koa’Vo"]/NVE - + /Sim/systems/Sys[304 "Koa’Vo"]/ltis + /Sim/systems/Sys[304 "Koa’Vo"]/ntdev - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/EFlags - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/EPid - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/ETS - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/Eid - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/NVE - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/ltis - + /Sim/systems/Sys[400 "Markab"]/EFlags - + /Sim/systems/Sys[400 "Markab"]/EPid - + /Sim/systems/Sys[400 "Markab"]/ETS - + /Sim/systems/Sys[400 "Markab"]/Eid - + /Sim/systems/Sys[400 "Markab"]/NVE - + /Sim/systems/Sys[400 "Markab"]/ltis - + /Sim/systems/Sys[448 "Kea’Pono"]/EFlags - + /Sim/systems/Sys[448 "Kea’Pono"]/EPid - + /Sim/systems/Sys[448 "Kea’Pono"]/ETS - + /Sim/systems/Sys[448 "Kea’Pono"]/Eid - + /Sim/systems/Sys[448 "Kea’Pono"]/NVE - + /Sim/systems/Sys[448 "Kea’Pono"]/ltis - + /Sim/systems/Sys[480 "Ko'Rorkor"]/EFlags - + /Sim/systems/Sys[480 "Ko'Rorkor"]/EPid - + /Sim/systems/Sys[480 "Ko'Rorkor"]/ETS - + /Sim/systems/Sys[480 "Ko'Rorkor"]/Eid - + /Sim/systems/Sys[480 "Ko'Rorkor"]/NVE - + /Sim/systems/Sys[480 "Ko'Rorkor"]/ltis - + /Sim/systems/Sys[64 "Hyperion"]/EFlags - + /Sim/systems/Sys[64 "Hyperion"]/EPid - + /Sim/systems/Sys[64 "Hyperion"]/ETS - + /Sim/systems/Sys[64 "Hyperion"]/Eid - + /Sim/systems/Sys[64 "Hyperion"]/NVE - + /Sim/systems/Sys[64 "Hyperion"]/ltis + /Summary/Turn ## turn2-state.sav -> turn3-state.sav (real End Turn) baseline (do nothing) 108 leaves diverge - after one standalone turn 87 leaves diverge - closed 21, regressed 0, byte match: no + after one standalone turn 103 leaves diverge + closed 5, regressed 0, byte match: no coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True} closed: + /Sim/Frame - + /Sim/systems/Sys[112 "Gamma Cephei"]/ETS - + /Sim/systems/Sys[112 "Gamma Cephei"]/ltis + /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev - + /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS - + /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis + /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev - + /Sim/systems/Sys[304 "Koa’Vo"]/ETS - + /Sim/systems/Sys[304 "Koa’Vo"]/ltis + /Sim/systems/Sys[304 "Koa’Vo"]/ntdev - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/ETS - + /Sim/systems/Sys[336 "Kaa’Vaalu"]/ltis - + /Sim/systems/Sys[400 "Markab"]/ETS - + /Sim/systems/Sys[400 "Markab"]/ltis - + /Sim/systems/Sys[448 "Kea’Pono"]/ETS - + /Sim/systems/Sys[448 "Kea’Pono"]/ltis - + /Sim/systems/Sys[480 "Ko'Rorkor"]/ETS - + /Sim/systems/Sys[480 "Ko'Rorkor"]/ltis - + /Sim/systems/Sys[64 "Hyperion"]/ETS - + /Sim/systems/Sys[64 "Hyperion"]/ltis + /Summary/Turn ## what still differs on the reference pair, by subsystem 82 /Sim/players - 34 /Sim/systems + 80 /Sim/systems 24 /Sim/turnstats 8 /Sim/SvSctOb 1 /Sim/DesignIDs[] diff --git a/verify/results/standalone/status.json b/verify/results/standalone/status.json index 1cb9523..ddf86b6 100644 --- a/verify/results/standalone/status.json +++ b/verify/results/standalone/status.json @@ -1,18 +1,18 @@ { "schema": "sots-standalone-status/1", - "generated": "2026-09-08T17:37:38Z", - "binary": "/home/alex/sots-engine-e3/build-host/src/app/sots_turn", + "generated": "2026-09-08T17:43:31Z", + "binary": "/home/alex/sots-engine/build-host/src/app/sots_turn", "reference": { "input": "turn1-state.sav", "oracle": "turn2-state.sav", "baselineDiverging": 209, - "divergingAfterTurn": 158, - "closed": 51, + "divergingAfterTurn": 204, + "closed": 5, "regressed": 0, "byteMatch": false, "subsystems": { "/Sim/players": 82, - "/Sim/systems": 34, + "/Sim/systems": 80, "/Sim/turnstats": 24, "/Sim/SvSctOb": 8, "/Sim/DesignIDs[]": 1, @@ -30,22 +30,22 @@ "phases": { "total": 44, "verified": 0, - "implemented": 4, + "implemented": 2, "partial": 6, "blocked": 6, - "stub": 28, - "modelled": 16, - "committed": 10 + "stub": 30, + "modelled": 14, + "committed": 8 }, "tailPhases": { "total": 37, "verified": 0, "implemented": 1, - "partial": 2, + "partial": 0, "blocked": 2, - "stub": 32, - "modelled": 5, - "committed": 3 + "stub": 34, + "modelled": 3, + "committed": 1 }, "rng": { "wordsModelled": 16, @@ -64,14 +64,14 @@ "roundtrip (untouched): byte-identical (591376 bytes)", "", "phases", - " turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed", - " verified 0 implemented 4 partial 6 blocked 6 stub 28", - " post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled", - " verified 0 implemented 1 partial 2 blocked 2 stub 32", + " turn drivers (the milestone's denominator): 14 of 44 modelled, 8 committed", + " verified 0 implemented 2 partial 6 blocked 6 stub 30", + " post-combat tail (written to the autosave, tracked separately): 3 of 37 modelled", + " verified 0 implemented 1 partial 0 blocked 2 stub 34", "", "this run", - " leaves written 53", - " leaves NOT written by a blocked phase 72", + " leaves written 7", + " leaves NOT written by a blocked phase 64", " generator words consumed 16 (state loaded, left untouched)", " generator words NOT accounted (never netted off the above):", " - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", @@ -80,8 +80,8 @@ " ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)", " ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's", "", - "wrote /tmp/tmpex18kut6/post-turn1-state.sav (65208 bytes gzipped, 591664 inflated)", - "metric -> /tmp/tmpex18kut6/metric-turn1-state.sav.json" + "wrote /tmp/tmpvupbr_eq/post-turn1-state.sav (65145 bytes gzipped, 591376 inflated)", + "metric -> /tmp/tmpvupbr_eq/metric-turn1-state.sav.json" ], "coverage": { "input": true, @@ -91,63 +91,17 @@ "roots": { "input": "64b836b966299d9b72fc02244ed31e31", "oracle": "4bed514f853332b9fa35b388c3aa5558", - "ours": "d77168aa0a5bd1b8890d8c0f994aed3f" + "ours": "1acc372b1d410b966ab544dffbe43cb5" }, "baselineDiverging": 209, - "divergingAfterTurn": 158, - "closed": 51, + "divergingAfterTurn": 204, + "closed": 5, "regressed": 0, "closedPaths": [ "/Sim/Frame", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/EPid", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/Eid", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/NVE", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/EPid", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Eid", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/NVE", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EFlags", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EPid", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/Eid", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/NVE", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EFlags", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EPid", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/Eid", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/NVE", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis", - "/Sim/systems/Sys[400 \"Markab\"]/EFlags", - "/Sim/systems/Sys[400 \"Markab\"]/EPid", - "/Sim/systems/Sys[400 \"Markab\"]/ETS", - "/Sim/systems/Sys[400 \"Markab\"]/Eid", - "/Sim/systems/Sys[400 \"Markab\"]/NVE", - "/Sim/systems/Sys[400 \"Markab\"]/ltis", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EFlags", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EPid", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/Eid", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/NVE", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EFlags", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EPid", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/Eid", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/NVE", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis", - "/Sim/systems/Sys[64 \"Hyperion\"]/EFlags", - "/Sim/systems/Sys[64 \"Hyperion\"]/EPid", - "/Sim/systems/Sys[64 \"Hyperion\"]/ETS", - "/Sim/systems/Sys[64 \"Hyperion\"]/Eid", - "/Sim/systems/Sys[64 \"Hyperion\"]/NVE", - "/Sim/systems/Sys[64 \"Hyperion\"]/ltis", "/Summary/Turn" ], "regressedPaths": [], @@ -197,30 +151,30 @@ "standalone": { "schema": "sots-standalone-metric/1", "input": "/home/alex/sots-re/verify/results/saves/turn1-state.sav", - "output": "/tmp/tmpex18kut6/post-turn1-state.sav", + "output": "/tmp/tmpvupbr_eq/post-turn1-state.sav", "spine": { "total": 44, "verified": 0, - "implemented": 4, + "implemented": 2, "partial": 6, "blocked": 6, - "stub": 28, - "modelled": 16, - "committed": 10 + "stub": 30, + "modelled": 14, + "committed": 8 }, "tail": { "total": 37, "verified": 0, "implemented": 1, - "partial": 2, + "partial": 0, "blocked": 2, - "stub": 32, - "modelled": 5, - "committed": 3 + "stub": 34, + "modelled": 3, + "committed": 1 }, "run": { - "leafWrites": 53, - "blockedLeafWrites": 72, + "leafWrites": 7, + "blockedLeafWrites": 64, "rngWords": 16, "rngLoaded": true, "rngCommitted": false, @@ -285,8 +239,8 @@ "driver": "StrategyServer::ProcessTurn", "id": "S04", "name": "RebuildAllianceMasks", - "status": "implemented", - "ran": 8, + "status": "stub", + "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 @@ -654,10 +608,10 @@ { "driver": "StrategyServer::ProcessTurn", "id": "S29", - "name": "SystemObservedStamp", - "status": "implemented", - "ran": 28, - "writes": 8, + "name": "SystemTailFixup", + "status": "stub", + "ran": 0, + "writes": 0, "blockedWrites": 0, "rng": 0 }, @@ -855,9 +809,9 @@ "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T17", "name": "RebuildPlayerViewTree", - "status": "partial", - "ran": 28, - "writes": 32, + "status": "stub", + "ran": 0, + "writes": 0, "blockedWrites": 0, "rng": 0 }, @@ -895,9 +849,9 @@ "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T21", "name": "UpdateSurveyAndSystemStats", - "status": "partial", - "ran": 28, - "writes": 6, + "status": "stub", + "ran": 0, + "writes": 0, "blockedWrites": 0, "rng": 0 }, @@ -1048,7 +1002,7 @@ "status": "blocked", "ran": 8, "writes": 0, - "blockedWrites": 56, + "blockedWrites": 48, "rng": 0 }, { @@ -1076,14 +1030,14 @@ "roundtrip (untouched): byte-identical (603360 bytes)", "", "phases", - " turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed", - " verified 0 implemented 4 partial 6 blocked 6 stub 28", - " post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled", - " verified 0 implemented 1 partial 2 blocked 2 stub 32", + " turn drivers (the milestone's denominator): 14 of 44 modelled, 8 committed", + " verified 0 implemented 2 partial 6 blocked 6 stub 30", + " post-combat tail (written to the autosave, tracked separately): 3 of 37 modelled", + " verified 0 implemented 1 partial 0 blocked 2 stub 34", "", "this run", - " leaves written 23", - " leaves NOT written by a blocked phase 66", + " leaves written 7", + " leaves NOT written by a blocked phase 58", " generator words consumed 16 (state loaded, left untouched)", " generator words NOT accounted (never netted off the above):", " - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", @@ -1092,8 +1046,8 @@ " ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)", " ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's", "", - "wrote /tmp/tmpex18kut6/post-turn2-state.sav (66882 bytes gzipped, 603360 inflated)", - "metric -> /tmp/tmpex18kut6/metric-turn2-state.sav.json" + "wrote /tmp/tmpvupbr_eq/post-turn2-state.sav (66883 bytes gzipped, 603360 inflated)", + "metric -> /tmp/tmpvupbr_eq/metric-turn2-state.sav.json" ], "coverage": { "input": true, @@ -1103,33 +1057,17 @@ "roots": { "input": "4bed514f853332b9fa35b388c3aa5558", "oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f", - "ours": "987447a85f9fcded1afd868fca112ef6" + "ours": "22071ae1303f308a93b805e940b626b5" }, "baselineDiverging": 108, - "divergingAfterTurn": 87, - "closed": 21, + "divergingAfterTurn": 103, + "closed": 5, "regressed": 0, "closedPaths": [ "/Sim/Frame", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS", - "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS", - "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS", - "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS", - "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis", - "/Sim/systems/Sys[400 \"Markab\"]/ETS", - "/Sim/systems/Sys[400 \"Markab\"]/ltis", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS", - "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS", - "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis", - "/Sim/systems/Sys[64 \"Hyperion\"]/ETS", - "/Sim/systems/Sys[64 \"Hyperion\"]/ltis", "/Summary/Turn" ], "regressedPaths": [], @@ -1179,30 +1117,30 @@ "standalone": { "schema": "sots-standalone-metric/1", "input": "/home/alex/sots-re/verify/results/saves/turn2-state.sav", - "output": "/tmp/tmpex18kut6/post-turn2-state.sav", + "output": "/tmp/tmpvupbr_eq/post-turn2-state.sav", "spine": { "total": 44, "verified": 0, - "implemented": 4, + "implemented": 2, "partial": 6, "blocked": 6, - "stub": 28, - "modelled": 16, - "committed": 10 + "stub": 30, + "modelled": 14, + "committed": 8 }, "tail": { "total": 37, "verified": 0, "implemented": 1, - "partial": 2, + "partial": 0, "blocked": 2, - "stub": 32, - "modelled": 5, - "committed": 3 + "stub": 34, + "modelled": 3, + "committed": 1 }, "run": { - "leafWrites": 23, - "blockedLeafWrites": 66, + "leafWrites": 7, + "blockedLeafWrites": 58, "rngWords": 16, "rngLoaded": true, "rngCommitted": false, @@ -1267,8 +1205,8 @@ "driver": "StrategyServer::ProcessTurn", "id": "S04", "name": "RebuildAllianceMasks", - "status": "implemented", - "ran": 8, + "status": "stub", + "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 @@ -1636,10 +1574,10 @@ { "driver": "StrategyServer::ProcessTurn", "id": "S29", - "name": "SystemObservedStamp", - "status": "implemented", - "ran": 28, - "writes": 8, + "name": "SystemTailFixup", + "status": "stub", + "ran": 0, + "writes": 0, "blockedWrites": 0, "rng": 0 }, @@ -1837,9 +1775,9 @@ "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T17", "name": "RebuildPlayerViewTree", - "status": "partial", - "ran": 28, - "writes": 8, + "status": "stub", + "ran": 0, + "writes": 0, "blockedWrites": 0, "rng": 0 }, @@ -1877,8 +1815,8 @@ "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T21", "name": "UpdateSurveyAndSystemStats", - "status": "partial", - "ran": 28, + "status": "stub", + "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 @@ -2030,7 +1968,7 @@ "status": "blocked", "ran": 8, "writes": 0, - "blockedWrites": 56, + "blockedWrites": 48, "rng": 0 }, {