From 4f7c3b64a3d55ded7b423ca781d179ee7a2ea099 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sun, 6 Sep 2026 23:28:39 -0600 Subject: [PATCH] =?UTF-8?q?docs(phase-33):=20commit-map=20+=20citations=20?= =?UTF-8?q?resolved=20to=20the=20rewritten=20history=20(C4=E2=80=93C7=20?= =?UTF-8?q?=E2=80=94=20the=20tip=20commit)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/commit-map.tsv: 4,032 rows (ordinal of the ORIGINAL main -> rewritten hash, author/committer dates, subject); 1 pruned row of zeros (ordinal 1712, "session archive update"); 0 old hashes asserted; ordinal 1 unchanged by the rewrite (byte-identical) - resolve_tokens: 1,238 commit:NNNN tokens -> shortest-unique new hashes in 98 files (docs, phase-ends, logs, tool docstrings, 2 C comments, the A5 evidence logs); residue left as tokens: commit:1712 x4 (the pruned commit), commit:orphan-24 x2, commit:orphan-26, commit:orphan-35 (cited commits that exist in no lineage) - the rewrite (C4): filter-repo 2.47.0 on a bare clone of the C2 tip, 311 s, exactly 1 pruned, main 4,032 -> 4,031; the pre-rewrite history is mirrored in the private archive repo and in the local bundle - the proof (C5): verify_rewrite 4,031 pairs / 0 failures; absent_scan 0 offenders; gate_scan 0 offenders on the clone - adoption (C6): 100 text files differ at the tip, 0 purge paths, 0 added/deleted; leftover refs dropped; no gc yet - resolver skips tools/public_rewrite/ (its self-test fixtures are the token grammar, not citations); repo-local identity is the GitHub noreply address from here on; CURRENT_PHASE: C4–C7 logged, checkpoint -> NEXT = C8 --- .run/P32/t3/LAUNCHED.md | 2 +- .run/P32/t4b/func_80039DEC/NOTES.md | 2 +- .run/P32/t4c/func_800CF408/NOTES.md | 2 +- .run/P32/t4d/NOTES.md | 2 +- .run/P32/t4e/NOTES.md | 2 +- .run/P33/verify/00_tree.log | 2 +- .run/P33/verify/SUMMARY.md | 4 +- .run/P33/verify/driver.log | 2 +- .run/fable_frontier/ANALYSIS.md | 2 +- .run/giants/p29t3_README.md | 8 +- .run/giants/pin_crash_sigabrt.md | 6 +- .run/maintenance.sh | 2 +- docs/SETUP.md | 4 +- docs/accelerators.md | 6 +- docs/automation-runbook.md | 4 +- docs/burndown.jsonl | 12 +- docs/calibration.md | 2 +- docs/commit-map.tsv | 4038 ++++++++++++++++++++ docs/decision-log.md | 20 +- docs/family-cousins.md | 2 +- docs/family-endgame-megaplan.md | 2 +- docs/family-hseq.md | 2 +- docs/frontier-atlas.md | 2 +- docs/frontier-p30.md | 2 +- docs/frontier-p32.md | 2 +- docs/history/cheap-tier-ab-experiment.md | 4 +- docs/matching-cookbook.md | 92 +- docs/phase25-t6-fable-brief.md | 2 +- docs/roadmap-to-100.md | 6 +- docs/tool-designs/aprop-lane-s59.md | 2 +- docs/tool-designs/frontier-analysis-s60.md | 18 +- docs/tool-designs/frontier-analysis-s61.md | 22 +- docs/tool-designs/jtbl-automation-s59.md | 14 +- docs/tool-designs/main-lane-fix-s59.md | 26 +- docs/tool-designs/o0-path-s59.md | 4 +- docs/tooling-audit.md | 78 +- docs/verification.md | 4 +- phase-ends/CURRENT_PHASE.md | 114 +- phase-ends/PhaseEnd_Phase10.md | 12 +- phase-ends/PhaseEnd_Phase11.md | 18 +- phase-ends/PhaseEnd_Phase12.md | 4 +- phase-ends/PhaseEnd_Phase13.md | 4 +- phase-ends/PhaseEnd_Phase15.md | 6 +- phase-ends/PhaseEnd_Phase16.md | 2 +- phase-ends/PhaseEnd_Phase17.md | 2 +- phase-ends/PhaseEnd_Phase18.md | 4 +- phase-ends/PhaseEnd_Phase19.md | 10 +- phase-ends/PhaseEnd_Phase20.md | 4 +- phase-ends/PhaseEnd_Phase21.md | 4 +- phase-ends/PhaseEnd_Phase22.md | 2 +- phase-ends/PhaseEnd_Phase23.md | 4 +- phase-ends/PhaseEnd_Phase24.md | 6 +- phase-ends/PhaseEnd_Phase25.md | 8 +- phase-ends/PhaseEnd_Phase26.md | 6 +- phase-ends/PhaseEnd_Phase27.md | 4 +- phase-ends/PhaseEnd_Phase28.md | 4 +- phase-ends/PhaseEnd_Phase29.md | 10 +- phase-ends/PhaseEnd_Phase31.md | 4 +- phase-ends/PhaseEnd_Phase32.md | 26 +- phase-ends/PhaseEnd_Phase8.md | 2 +- phase-ends/PhaseEnd_Phase9.md | 4 +- phase-ends/logs/Phase11.md | 4 +- phase-ends/logs/Phase12.md | 8 +- phase-ends/logs/Phase13.md | 2 +- phase-ends/logs/Phase15.md | 10 +- phase-ends/logs/Phase16.md | 4 +- phase-ends/logs/Phase17.md | 8 +- phase-ends/logs/Phase18.md | 10 +- phase-ends/logs/Phase19.md | 4 +- phase-ends/logs/Phase21.md | 64 +- phase-ends/logs/Phase22.md | 8 +- phase-ends/logs/Phase23.md | 26 +- phase-ends/logs/Phase24.md | 36 +- phase-ends/logs/Phase25.md | 46 +- phase-ends/logs/Phase26.md | 66 +- phase-ends/logs/Phase27.md | 2 +- phase-ends/logs/Phase28.md | 18 +- phase-ends/logs/Phase29.md | 212 +- phase-ends/logs/Phase30.md | 132 +- phase-ends/logs/Phase31.md | 336 +- phase-ends/logs/Phase32.md | 42 +- src/md_SC03_135/md_SC03_135.c | 6 +- src/ov_SC03_001/ov_SC03_001_jr_80184F64.c | 2 +- tools/atlas.py | 2 +- tools/audit_digest.py | 4 +- tools/bank_exemplar.py | 2 +- tools/campaign_status.py | 2 +- tools/decl_from_use.py | 2 +- tools/family_remap.py | 2 +- tools/gate_main.py | 2 +- tools/gate_stage.py | 2 +- tools/jtbl_pads_fix.py | 2 +- tools/lanes/maintenance.sh | 2 +- tools/launch_check.py | 2 +- tools/main_lane.py | 2 +- tools/ox_campaign.py | 6 +- tools/parallel_gate.py | 2 +- tools/public_rewrite/resolve_tokens.py | 6 +- tools/restore_dropped_decls.py | 2 +- 99 files changed, 4918 insertions(+), 840 deletions(-) create mode 100644 docs/commit-map.tsv diff --git a/.run/P32/t3/LAUNCHED.md b/.run/P32/t3/LAUNCHED.md index 2b830d8289..eeb4bf3bc0 100644 --- a/.run/P32/t3/LAUNCHED.md +++ b/.run/P32/t3/LAUNCHED.md @@ -14,7 +14,7 @@ Per result (never in bulk): grep the draft for .ent/.word (verbatim = not a matc ## overflowed at 07:07Z, four minutes after its 9th bank commit; see phase-ends/CURRENT_PHASE.md πŸ›‘ for the resume order) - 31 of 47 launched (16 Opus / 4 Sonnet incl. one escalation / 11 Haiku); 17 Haiku rows still queued in pending_launch.txt. - Verdicts: 20 MATCH / 9 NEAR / 2 FAIL β†’ .run/P32/t3/verdicts.jsonl (31 rows, rebuilt from tasks/a*.output only). -- Banked in the producing session (10 fns, 9 commits commit:3923..commit:3931): func_801EF558 Β· func_801EF49C Β· func_800D06E8 Β· +- Banked in the producing session (10 fns, 9 commits 4ecedb40b..0240fa5f6): func_801EF558 Β· func_801EF49C Β· func_800D06E8 Β· func_80039B20 Β· func_801EF6B0 + func_801EF95C Β· func_801EF624 Β· func_800CEE2C Β· func_80023BF0 Β· func_80038698. - MATCH, verified by the successor with rtu_match in the real TU, NOT yet banked: main func_80015B6C (120) Β· main func_8002FDE8 (73) Β· md_SC03_054 func_801EF6D8 (604, six jtbls β†’ carve) Β· md_SC03_053 func_801EF734 (44) + func_801EF7E4 (72) Β· md_MAIN_007 diff --git a/.run/P32/t4b/func_80039DEC/NOTES.md b/.run/P32/t4b/func_80039DEC/NOTES.md index f3efdebfaa..0b645e4349 100644 --- a/.run/P32/t4b/func_80039DEC/NOTES.md +++ b/.run/P32/t4b/func_80039DEC/NOTES.md @@ -7,4 +7,4 @@ alike: global.c find_reg's FIRST pass avoids hard regs with local_reg_n_refs>0 ( target a2_raw got $a3 β†’ no local pseudo sat in $a3 there. Find which block-local temp the draft puts in $a3 (compile the draft with `-dl -dg` via tools/cc1_dumps.sh, read "Register dispositions" for `in 7`), and remove/reshape it (the pinned $2/$3/$4 temps `pc/bc/pd/bd/kind` and `cnt`/`tmp` are the candidates β€” the pins themselves may be what pushes a local into $a3). -TU: the prototype at 800_c.c is now `extern void func_80039DEC();` (committed commit:3953) β€” rtu_match in the real TU works. +TU: the prototype at 800_c.c is now `extern void func_80039DEC();` (committed e39229051) β€” rtu_match in the real TU works. diff --git a/.run/P32/t4c/func_800CF408/NOTES.md b/.run/P32/t4c/func_800CF408/NOTES.md index 7060dcaf3b..02ae22c7c8 100644 --- a/.run/P32/t4c/func_800CF408/NOTES.md +++ b/.run/P32/t4c/func_800CF408/NOTES.md @@ -1,4 +1,4 @@ -# md_MAIN_007:func_800CF408 (178 ins) β€” T4b HAND PASS, S84 (2026-09-06) β€” **BANKED byte-identical** (`commit:4001`) +# md_MAIN_007:func_800CF408 (178 ins) β€” T4b HAND PASS, S84 (2026-09-06) β€” **BANKED byte-identical** (`8fa12bc22`) ## What closed it (one probe of the right kind after 135 of the wrong kind) The residual (3 rows, idx 10–12: `ori $s5,0x96` two slots below its `lui`) was correctly attributed by the T4b Fable agent to diff --git a/.run/P32/t4d/NOTES.md b/.run/P32/t4d/NOTES.md index 2b6451ccd4..017320c18d 100644 --- a/.run/P32/t4d/NOTES.md +++ b/.run/P32/t4d/NOTES.md @@ -1,6 +1,6 @@ # func_80185810 (ov_SC03_105, 489 ins) β€” T4b hand pass row (d), S85 (2026-09-06, session 3a7e207c, Max, Fable 5.1, no agents) -**Outcome: BANKED byte-identical `commit:4004`** (bank.sh: rtu MATCH 489/489 in the real TU β†’ splice β†’ `make build +**Outcome: BANKED byte-identical `cdd9a2cb8`** (bank.sh: rtu MATCH 489/489 in the real TU β†’ splice β†’ `make build BINARY=ov_SC03_105 -j8` rc 0 β†’ sha `d305ff6da199b52d0d44023766643a8b661ed524` == `config/check.ov_SC03_105.sha`). ov_SC03_105 is now 100% C. Zero pins, zero fences, zero asm dials β€” the cousin's natural spelling. diff --git a/.run/P32/t4e/NOTES.md b/.run/P32/t4e/NOTES.md index f6482b7227..93ff9feafe 100644 --- a/.run/P32/t4e/NOTES.md +++ b/.run/P32/t4e/NOTES.md @@ -4,7 +4,7 @@ Drew's directive after the T4b close: "do that now, lets crack these before clos "final verdicts" (PROVED at 1 / PLATEAU at 4). Both fell. Step 0 (the Β§501-N/P shape grep) found the cousins but the cracks came from two compiler mechanisms the earlier censuses had missed. -## A. `main:func_80032A74` (422 ins, 800_b_2) β€” PROVED wall β†’ BANKED `commit:4007` +## A. `main:func_80032A74` (422 ins, 800_b_2) β€” PROVED wall β†’ BANKED `f9a90affb` * The S84 "PROVED" verdict enumerated every stack-slot producer and refuted each; it missed one: **combine's reference bookkeeping skips the decrement when the deleted insn's dest also appears in its source** (`i2dest_in_i2src`, combine.c:2306). A local `x = ; x -= 0x100; ... (u8)x ...` compiles to the plain `lbu` diff --git a/.run/P33/verify/00_tree.log b/.run/P33/verify/00_tree.log index 32787037a1..7a00484a98 100644 --- a/.run/P33/verify/00_tree.log +++ b/.run/P33/verify/00_tree.log @@ -1,6 +1,6 @@ # tree # cmd: step_tree # started: 2026-09-07T02:58:29Z -HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the reference v +HEAD 3e0ecfacc 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the reference v porcelain -uno clean apart from ghidra/ (3 churn lines); untracked: 1 paths EXIT=0 wall=1s finished: 2026-09-07T02:58:30Z diff --git a/.run/P33/verify/SUMMARY.md b/.run/P33/verify/SUMMARY.md index 5cfaf73612..ced9a4bd17 100644 --- a/.run/P33/verify/SUMMARY.md +++ b/.run/P33/verify/SUMMARY.md @@ -1,11 +1,11 @@ # .run/P33/verify/SUMMARY.md β€” the recorded contract run (generated by tools/verify_contract.sh; never edit) -- **Tree:** `commit:4028` (2026-09-06) Β· **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 Β· **Run:** 2026-09-07T03:11:58Z +- **Tree:** `3e0ecfacc` (2026-09-06) Β· **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 Β· **Run:** 2026-09-07T03:11:58Z - **Verdict:** PASS β€” every step EXIT=0 with its contract line | # | Step | EXIT | wall | contract line | |---|---|---|---|---| -| 00 | `tree` | 0 | 1s | HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer | +| 00 | `tree` | 0 | 1s | HEAD 3e0ecfacc 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer | | 01 | `check-env` | 0 | 0s | check-env: OK β€” Phase-4 toolchain ready. | | 02 | `family-hseq` | 0 | 11s | family_hseq regenerated: 217 binaries scanned, 0 open instances | | 03 | `r22-clean-fleet` | 0 | 157s | check-all: 218 passed, 0 failed of 218 | diff --git a/.run/P33/verify/driver.log b/.run/P33/verify/driver.log index 789b56a673..dd65477ab4 100644 --- a/.run/P33/verify/driver.log +++ b/.run/P33/verify/driver.log @@ -1,4 +1,4 @@ -verify_contract: recorded run -> /home/musashi/bfm-decomp/.run/P33/verify (HEAD commit:4028) +verify_contract: recorded run -> /home/musashi/bfm-decomp/.run/P33/verify (HEAD 3e0ecfacc) verify_contract: step 00 tree: step_tree verify_contract: step 00 tree OK (rc=0, 1 s) verify_contract: step 01 check-env: make check-env diff --git a/.run/fable_frontier/ANALYSIS.md b/.run/fable_frontier/ANALYSIS.md index 71ba7cb59f..ecb52ee086 100644 --- a/.run/fable_frontier/ANALYSIS.md +++ b/.run/fable_frontier/ANALYSIS.md @@ -47,7 +47,7 @@ S1–S4 β‰ˆ **80–115k instructions moved from the 490-t/ins column to ~0** (11 Distribution survives (I measure 5,793 fams / 709,920 ins at HEAD vs claimed 5,792/701,508 β€” snapshot drift; the 100+ band is 74,741 ins exactly). The 147-family pool is real (148 / 1,585 / 75,383 at HEAD). Fleet 96.29/94.2/88.9 confirmed. What does NOT survive: "chance collision" (all four refuted), "ledgered not-templatable" (both contradicted), "free-sweep 0/0 undiagnosed" (both diagnosed, on disk, PLUMBING), and "the Γ—138 era is over." ## False-wall watch list -1. CURRENT_PHASE.md:228's Γ—138-era paragraph (S38) β€” rests entirely on the two undiagnosed zeros; should be rewritten against the classified files. *(DONE β€” struck in commit `commit:1413`.)* +1. CURRENT_PHASE.md:228's Γ—138-era paragraph (S38) β€” rests entirely on the two undiagnosed zeros; should be rewritten against the classified files. *(DONE β€” struck in commit `d053d71a2`.)* 2. The `0x80175820`/`0x80132018` "not-templatable" ledger entries β€” provenance predates or ignores the current classifier. 3. Any post-S1 sweep still returning 0% on an h_norm-identical family is a NEW undiagnosed zero β€” the one-line h_norm check against the sig files should become a standard pre-probe step (it would have predicted both of today's zeros as compile-error certainties before spending the probe). diff --git a/.run/giants/p29t3_README.md b/.run/giants/p29t3_README.md index ce3b24715d..472f1b7440 100644 --- a/.run/giants/p29t3_README.md +++ b/.run/giants/p29t3_README.md @@ -2,7 +2,7 @@ **Provenance:** two ultracode `worker_wave` runs (2026-07-16/17), ~2.6M agent tokens total. Every draft here is either a **match_one MATCH** (relocation-masked byte-correct, standalone) or a characterized near-miss. -The 5 that banked cleanly are already in `src/` (commits `commit:0668`, `commit:0669`) and are NOT duplicated here. +The 5 that banked cleanly are already in `src/` (commits `b5340f920`, `fd564a2cf`) and are NOT duplicated here. **Why preserved (R20):** reproducing these costs ~2.6M tokens. Each is blocked on *integration plumbing*, not codegen β€” a fresh session can bank several cheaply with the named fix. @@ -24,7 +24,7 @@ draft STANDALONE, so it is blind to the member TU's conflicting decls. The whole | `p29t3_func_8013C414.c` | **329** | **`_o0.c` (-O0!)** | MATCH 329/329 **at -O0** | **Β§8a rodata island**: needs `jtbl_801D836C` (27 entries @ `0x801D836C`, still nonmatching in `asm/ov_SC01_077/data/tail3.data.s`) carved into a `.rodata` subseg co-located with its code object + `ld_interleave --section`. A matched jr-fn's C emits its jtbl into `.rodata` (section_order floats it FRONT) while the raw copy stays in the data tail β‡’ duplicate + wrong address. See `config/splat.ov_SC01_077.yaml` lines 78-86 (the `func_8012ACE0` / `jtbl_801D8078` PoC). | **-O0 note:** `func_8013C414` only matched because `worker_wave` now passes `--o0` to `match_one` (committed -`commit:0670`). Against an `-O2` self-check it can never match β€” the wrong-build-step trap (Β§53/Β§54, Task-1). +`c91611529`). Against an `-O2` self-check it can never match β€” the wrong-build-step trap (Β§53/Β§54, Task-1). ## B. Wave-1 leftovers β€” byte-correct or near, not banked @@ -46,9 +46,9 @@ draft STANDALONE, so it is blind to the member TU's conflicting decls. The whole **βœ… DONE (both NON-jtbl giants, fully banked + propagated fleet-wide):** - **`func_8013FAF8` (312)** β€” banked x1 (cookbook Β§56 multi-symbol reconciliation) + **propagated x137** via `family_sweep --hseq` (h_seq family; Β§56b β€” align the exemplar's callee externs to fleet-canonical - first or it banks 0/137). Commits `commit:0673`, `commit:0675`. ~+42.7k ins. + first or it banks 0/137). Commits `def16c8b1`, `c5e8af5cf`. ~+42.7k ins. - **`func_8014F4C0` (141)** β€” banked x1 (clean; earlier reject was Β§55b propagate-damage) + **propagated - x134** via `dedup_propagate --recover` (h_exact). Commit `commit:0674`. ~+19k ins. + x134** via `dedup_propagate --recover` (h_exact). Commit `c7fedced1`. ~+19k ins. **⏸ DEFERRED β€” the 4 jtbl giants are BLOCKED on ONE tooling gap (the teed-up next-session task):** `func_80131340` (424), `func_80159C84` (337, +a trivial D_801891B8 (u8*/void*) plumbing fix), diff --git a/.run/giants/pin_crash_sigabrt.md b/.run/giants/pin_crash_sigabrt.md index 0a6d351e4e..af92adac05 100644 --- a/.run/giants/pin_crash_sigabrt.md +++ b/.run/giants/pin_crash_sigabrt.md @@ -129,7 +129,7 @@ dependencies; the staged sibling body arrives WITHOUT them: `Map_80133AB0 undeclared` β†’ **exit 33** (plain error), both era layouts tested (`histA/histB`). Properly staged (typedef + the sibling's `extern int func_80133AB0(int,s16,s16,int);` β†’ s16-form decl flip): **exit 0 in 133/133 sibling TUs today** (`sweep.sh`) **and 133/133 at the - era commit commit:0510** (`era_sweep.sh`). The Error-134 attribution: in the era one-big-split + era commit c84bcb35c** (`era_sweep.sh`). The Error-134 attribution: in the era one-big-split layout its stub shared `ov_SC01_XXX.c` β€” and therefore the (overlay,split) gate compile β€” with func_8013D9B0's stub; d9b0's genuine abort killed the shared TU compile and the 134 was blamed on every family staged there. @@ -156,7 +156,7 @@ context reproduces every result (ddmin `mask_min.txt`: the masking "TU context" # the genuine SIGABRT (minimal): tools/bin/gcc-2.7.2-psx/cc1 -quiet -O2 -G0 -mips1 -mcpu=3000 -mgas -msoft-float -fgnu-linker \ .run/giants/pincrash/minimal_repro.c -o /dev/null # exit 134 -# the historical crash, era-exact (staged macro-less GTE body in the commit:0510 sibling TU): +# the historical crash, era-exact (staged macro-less GTE body in the c84bcb35c sibling TU): tools/bin/gcc-2.7.2-psx/cc1 .run/giants/pincrash/era_d9b0.i -o /dev/null # exit 134 # the same body properly staged (macros carried) β€” clean: tools/bin/gcc-2.7.2-psx/cc1 .run/giants/pincrash/d9b0_000.tu3.i -o /dev/null # exit 0 @@ -164,7 +164,7 @@ tools/bin/gcc-2.7.2-psx/cc1 .run/giants/pincrash/d9b0_000.tu3.i -o ``` Fleet evidence: `sweep_results.txt` (80133AB0 today, 133Γ—exit=0), `era_sweep_results.txt` -(80133AB0 at commit:0510, 133Γ—exit=0), `d9b0_fleet.py` output (8013D9B0 today, 133Γ—exit=0). +(80133AB0 at c84bcb35c, 133Γ—exit=0), `d9b0_fleet.py` output (8013D9B0 today, 133Γ—exit=0). ## 6. Implications for Phase 31 (the pin-Γ—1 endgame) diff --git a/.run/maintenance.sh b/.run/maintenance.sh index 24f5aed293..082d285715 100644 --- a/.run/maintenance.sh +++ b/.run/maintenance.sh @@ -151,7 +151,7 @@ PY # NEVER stage main's TUs (top-level src/*.c) from this lane (S59): sweep_parallel refuses # main, so any dirt there is another lane's in-flight gate_main work β€” unverified by # construction. One writer (gate_main), one committer (main_lane); adopting a mid-flight - # substitution is how commit:2693 turned main's baseline RED for 3h46m. + # substitution is how 24bd25993 turned main's baseline RED for 3h46m. git reset -q -- src/*.c 2>/dev/null || true if git diff --cached --quiet; then say "only main-TU dirt found β€” leaving it to gate_main/main_lane; nothing to commit" diff --git a/docs/SETUP.md b/docs/SETUP.md index a7f4027c45..0a36e658a1 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -873,7 +873,7 @@ Every script under `tools/` (plus the two report make-targets), grouped by purpo | | `tools/serve_local.py` | **Serve the fine-tuned model on the GPU** (base+LoRA via Unsloth, `.venv-train`, OpenAI endpoint) β€” the in-repo replacement for LM Studio. Run: `LD_LIBRARY_PATH=$(ls -d .venv-train/lib/python3.12/site-packages/nvidia/*/lib \| tr '\n' :) .venv-train/bin/python tools/serve_local.py --adapter models/bfm-match-7b-v3 --name bfm-match-7b-v3 --port 1234`. (Prebuilt `llama-cpp-python` CUDA wheels SIGILL on this no-AVX-512 CPU; the Unsloth/torch path is reliable, no build.) | | | `tools/export_pairs.py` / `format_finetune.py` / `train_lora.py` / `eval_lora.py` | The corpusβ†’LoRA pipeline (`.venv-train`): mine (asm↔C) pairs incl. the `engine_core.h` **macro bodies** + `engine_types.h` structs (corpus-v3) β†’ Qwen chat-template + compile-filter β†’ Unsloth QLoRA (3080 Ti) β†’ held-out gate-true eval. Datasets/weights gitignored (`datasets/`, `models/`, `.venv-train/`). | | **The derived oracles** (Phase 26-A tooling audit; R33 before R32 β€” *the best outcome is a deleted scanner, not a fixed regex*) | `tools/corpus.py` + **`make audit-corpus`** | THE corpus oracle. Derives from the FILESYSTEM (which `.c` files make a binary; the `INCLUDE_ASM` line is self-describing β€” its first argument *is* the asm subdir) and from the PROVEN INVARIANT (`matched = sig βˆ’ stubs`, never re-parsed from C). Killed ~10 hand-maintained layout models. `audit-corpus` is a **second oracle that can disagree**: it cross-checks splat's boundaries against `sig_image`'s independent ones (0 phantom + 0 truncated since A4; was 193 unmatchable slices). | -| | `tools/audit_digest.py` + **`make audit-digest`** | **(P30 S1e, cookbook Β§140)** The **scoreboard** oracle: recomputes the three headline metrics from the CURRENT tree and fails if the committed `docs/progress.fleet.md` disagrees. Wired into `tools-health` AFTER `report`. Exists because a digest generated from a working tree that later changed (work reverted before the commit landed) is **byte-invisible** β€” `check-all` stays 140/140 over it forever (R34: the byte-gate is a null oracle for DOCUMENTS) β€” and the next honest regeneration then reads as a REGRESSION that never happened. That is exactly what the `commit:1426` digest did: overstated **+7,879 ins / +130 unique fns**, which parked the phase's best lever on a phantom for a session. Compares **integers, not the printed percentages** (the staleness rendered as "94.4%" on both sides). Negative-control-proven against that stale digest. Same task hardened `progress.py stub_addrs`, which wrapped the fail-closed `corpus.stubs` in a bare `except` β†’ empty stub set β†’ `matched = sig βˆ’ stubs` credited EVERY function: byte-witnessed reporting **instr 100.00% / distinct 100.00%** in a tree with no `asm/`. The identical swallow was fixed in `cast_call_sites.tu_for` + `reconcile_tu.tu_for`, where it silently reconciled drafts against the default `.c` instead of the jr/-O0 split TU β€” the very bug `cast_call_sites`' docstring exists to fix. | +| | `tools/audit_digest.py` + **`make audit-digest`** | **(P30 S1e, cookbook Β§140)** The **scoreboard** oracle: recomputes the three headline metrics from the CURRENT tree and fails if the committed `docs/progress.fleet.md` disagrees. Wired into `tools-health` AFTER `report`. Exists because a digest generated from a working tree that later changed (work reverted before the commit landed) is **byte-invisible** β€” `check-all` stays 140/140 over it forever (R34: the byte-gate is a null oracle for DOCUMENTS) β€” and the next honest regeneration then reads as a REGRESSION that never happened. That is exactly what the `10f954627` digest did: overstated **+7,879 ins / +130 unique fns**, which parked the phase's best lever on a phantom for a session. Compares **integers, not the printed percentages** (the staleness rendered as "94.4%" on both sides). Negative-control-proven against that stale digest. Same task hardened `progress.py stub_addrs`, which wrapped the fail-closed `corpus.stubs` in a bare `except` β†’ empty stub set β†’ `matched = sig βˆ’ stubs` credited EVERY function: byte-witnessed reporting **instr 100.00% / distinct 100.00%** in a tree with no `asm/`. The identical swallow was fixed in `cast_call_sites.tu_for` + `reconcile_tu.tu_for`, where it silently reconciled drafts against the default `.c` instead of the jr/-O0 split TU β€” the very bug `cast_call_sites`' docstring exists to fix. | | | `tools/cdecl.py` + **`make audit-cdecl`** | **THE C-declaration oracle (cookbook Β§51g).** ONE recursive-descent parser of C's **declarator grammar**, replacing fifteen tools' private regex models β€” models that disagreed with each other and were, all fifteen, blind to fn-ptr/jump-table decls (`extern void (*D_X[])(void);`), sized arrays (`[4]`), and multi-declarators (where the *whole line* was dropped). Total by construction, not by shape enumeration. **Two statement paths, because the inputs differ:** `tu_statements()` derives a TU's file scope from **`cpp`** (a decl inside a `DEFINE_func_*` macro body declares nothing until invoked β€” Β§8c; 54 ms/TU), and `split_statements()` is a **span-preserving** raw split for drafts (which get rewritten). API: `parse` / `scope` / `tu_scope` / `Declarator{name,kind,type,params,pnames,is_proto,is_definition}`. Verified: **2,952,246 depth-0 statements β†’ 2,731,521 declarators, 0 parser defects**; **50,405 distinct declarations round-tripped through the real cross-gcc, 0 rejected**; residue adjudicated NOT-C *by gcc*, not by opinion. **Phase-27 T4 β€” the canonical draft-typedef strip:** `typedef_names(tu_path)` (the names a TU declares as typedefs, robust `tu_statements`-based so a coverage gap can't crash the byte-gate) + `strip_provided_typedefs(draft, provided)` (drop a draft's self-contained typedefs the target already supplies, splitting multi-typedef lines and covering scalar AND struct typedefs). Replaced **six** copied scalar-name regexes with complementary holes: `harvest_verify` now strips per-TU (unblocks the 39 struct-typedef drafts `_TD` dropped) and **surfaces cc1 stderr** so a `redefinition`/`conflicting types` failure reports as **PLUMBING**, not a byte mismatch (`.run/harvest_failed.classified.txt`); `masked_diff.strip_scalar_typedefs()` (used by `match_one`/`p16_permute`) fixes the multi-typedef-line skip that discarded 42 masked-MATCH drafts over whitespace (`func_8015C030` β†’ `MATCH (23 ins)` unedited). `canon_sig_reconcile`/`eval_lora`/`format_finetune` keep their own copies for now (migrate per-bank, byte-gated β€” the audit-prescribed cadence). | | | Phase 26-A tool-hygiene close (A9d–A10) | **DELETED** (R33, dead Phase-17 chain): `tools/census_conflict_callees.py` + `tools/derive_canonical_sigs.py` β€” `reconcile_tu`/`cdecl` answer their question from the build. **`overlay_src_split.py`**: `scan_construct` force_decl latch fixed (no longer swallows a def sharing a line with leading externs) + `hidden_definitions()` R32 coverage oracle wired into `selftest`. **`jr_isolate_all.py` `jr_inventory`**: `banked` DERIVED FROM THE IMAGE (`family_remap.reloc_targets` owns-a-carve) not a gitignored roster (R33) + curated-name via `addr_of` + 1:1 carve-ownership assert. **`family_remap.reloc_targets`**: optional `data=` param (read the image once, pass to N calls). **`backlog.py`**: `BACKLOG_NO_RENDER` env so parallel `gate_stage` workers skip the render race (append is atomic). `reconcile_tu` confirmed live on BOTH banking paths (`gate_stage` + `jtbl_family_bank.recover`β†’`bank_exemplar`). | | | **S68 tooling, round 2 β€” retrieval, triage, walls, liveness** (P31 S68) | **`tools/neighbor_ref.py` (NEW)** β€” for an OPEN stub, the already-MATCHED functions worth READING as worked examples, ranked SAME-TU first, then same binary, then shape (li-normalised skeleton / call-sequence hash / reloc-kind sequence / CFG counts / opcode cosine, all precomputed in `.run/feat.*.jsonl`), with a hard penalty for opt-level mismatch (Β§116). Surfaces the neighbour's HEADER COMMENT β€” the payload agents actually consume. Answers the question `seed_ref` cannot: seed_ref needs a hash-identical twin, this finds a near-twin. **Run it for every card.** Measured motivation: S68's cheapest large matches all came from a neighbour (555 ins/72k, 657 ins/122k first compile, 753 ins/177k) while neighbour-less main fns ran 200-350k for ~80 ins. **`tools/wall_sweep.py` (NEW)** β€” enumerates the Β§332 delay-slot macro walls (10 fns / 1,027 ins); `--emit-exclude` feeds `draw_waves --exclude`. **Run before every draw AND before every escalation** β€” an escalation cannot beat the toolchain. **`tools/residual_rules.py` + `residual_rules_b.py` (NEW, experimental)** β€” residualβ†’cookbook-lever classifiers; `_b` is the stronger (113/113 classified, 63% certain/high). NOT yet wired into the pipeline: see `docs/next-session-triage-ladder.md`. **`tools/lane_inflight.py` (NEW)** β€” the RECORDED liveness ledger (`add` on launch, `done` on verdict); `list` exits non-zero while any agent is live and IS the guard. **`tools/r22_verify.sh` (NEW)** β€” the clean-fleet verify, EXCLUSIVE by construction: it refuses while `lane_inflight` shows live agents, because `make clean` deletes `asm/` and drafting agents READ it. Clears `.run/R22_DEBT` only on a genuinely green run. | @@ -897,7 +897,7 @@ Every script under `tools/` (plus the two report make-targets), grouped by purpo | | `tools/rtu_shadow.py` | **(P31 S61)** Shadow-mode `rtu_match` beside the wave gate to decide the gate INVERSION (Β§3 of the same analysis). `--wave X` (prospective, before X is gated, never while a gate is in flight) writes `.run/rtu_shadow/X.jsonl`; `--join X` after the gate commit prints the rtu-verdict Γ— outcome matrix, P(bank | rtu MATCH), the false-negative rate, and current-vs-inverted build counts. Drafts map to binaries through the shard's targets file, never by bare name. | | | `tools/decl_from_use.py` | **(P31 S61)** Infer a MINIMAL C89 extern for a data symbol a draft uses but its destination TU does not declare (the A-prop "no seed decl" / resolver `undeclared` class): access widths/sign/index-scale from the target `.s`, use-forms from the draft, same-binary spellings preferred; refuses STRUCT shapes, conflicting width evidence, function symbols. Negative-controlled on 4,702 banked ground-truth triples (kind agreement 97.4%; the control forced 3 instrument fixes before any case verdict was read). Importable `infer()`/`tu_compiles()` for aprop_autodraft:522 and the resolver. First measured run: 39 of 42 "undeclared" cases were ONE uncompilable TU, not draft defects β€” classify `undeclared` only after a TU-alone compile probe. Ledger `.run/decl_from_use/verdicts.jsonl`. | | | `.run/baseline_red.txt` (live gate input) | **(P31 S61)** The binaries whose CLEAN build fails the locked SHA at HEAD. `gate_stage` refuses their drafts pre-build as class BASELINE-RED (a RED binary rejects every draft gated against it β€” 15/214 binaries were red on 08-26 00:00 and ate 174/245 of the resolver's doubly-verified drafts). Maintained by the fleet audit + repairs; the maintenance lane's lock-aware fleet sweep is the standing detector. Keep it current: a repaired binary comes OFF the list or its drafts stay unjudged. | -| | `tools/jtbl_lane.py` (+ `jtbl_carve --probe/--island-split`, `harvest_verify._ISLAND_WALLS`) | **(P31 S59, cookbook Β§260-A; design `docs/tool-designs/jtbl-automation-s59.md`)** The jtbl carveβ†’draftβ†’bank lane. The carve stays AT THE GATE (`harvest_verify._jtbl_prep_one`, Β§61b's proven order β€” the lane never pre-carves); the lane probes feasibility READ-ONLY (`jtbl_carve.island_probe`: tail / covered / island-end / island-blocked / island-pads / main-manual), drafts (api_agent or `--draft-dir`), gates via the exact `sweep_parallel` worker call (per-binary flock + exclusive shared lock) while HOLDING THE CAMPAIGN'S DRAW LOCK across gate+commit (gates never overlap), and commits the named per-binary paths on a bank (R42). The Β§260 md island split is automated inside the gate (`_ISLAND_WALLS`: isolate body-spliced β†’ `--island-split` insert β†’ re-extract β†’ covered no-op). One jtbl target per gate invocation (Β§61c batch constraint, by construction). `jtbl_lane --census` = the ranked work-list (245 members probed: 181/26,445 ins reachable). Wave route: `build_wave_atlas` gained the probe filter + a one-jtbl-card-per-binary cap, both inert unless `--levers jtbl-carve`. `idiom_serial` now REFUSES the jtbl-carve lever (its pre-carve ran the refuted order). Byte-proven Γ—3, one per class: `commit:2661` (ov tail, Β§8b merge + Β§8e pads), `commit:2663` (md covered β€” Β§260 stage 2, the FIRST md jr bank), `commit:2664` (md island-end, full split by the gate on a virgin module). | +| | `tools/jtbl_lane.py` (+ `jtbl_carve --probe/--island-split`, `harvest_verify._ISLAND_WALLS`) | **(P31 S59, cookbook Β§260-A; design `docs/tool-designs/jtbl-automation-s59.md`)** The jtbl carveβ†’draftβ†’bank lane. The carve stays AT THE GATE (`harvest_verify._jtbl_prep_one`, Β§61b's proven order β€” the lane never pre-carves); the lane probes feasibility READ-ONLY (`jtbl_carve.island_probe`: tail / covered / island-end / island-blocked / island-pads / main-manual), drafts (api_agent or `--draft-dir`), gates via the exact `sweep_parallel` worker call (per-binary flock + exclusive shared lock) while HOLDING THE CAMPAIGN'S DRAW LOCK across gate+commit (gates never overlap), and commits the named per-binary paths on a bank (R42). The Β§260 md island split is automated inside the gate (`_ISLAND_WALLS`: isolate body-spliced β†’ `--island-split` insert β†’ re-extract β†’ covered no-op). One jtbl target per gate invocation (Β§61c batch constraint, by construction). `jtbl_lane --census` = the ranked work-list (245 members probed: 181/26,445 ins reachable). Wave route: `build_wave_atlas` gained the probe filter + a one-jtbl-card-per-binary cap, both inert unless `--levers jtbl-carve`. `idiom_serial` now REFUSES the jtbl-carve lever (its pre-carve ran the refuted order). Byte-proven Γ—3, one per class: `b801b499e` (ov tail, Β§8b merge + Β§8e pads), `bad793c73` (md covered β€” Β§260 stage 2, the FIRST md jr bank), `f74ad7ac8` (md island-end, full split by the gate on a virgin module). | --- diff --git a/docs/accelerators.md b/docs/accelerators.md index 77c1252d1c..1e7030699f 100644 --- a/docs/accelerators.md +++ b/docs/accelerators.md @@ -235,7 +235,7 @@ startup banner echoing the values it actually parsed. The main lane drafted at 84–98% completion all day and banked ZERO for 3h46m β€” and every log line blamed the drafts (`reject func_…`, `COMPILE conflict … drafts declaring it: []`, tries burned, bisects to MAX_STEPS). One `try_batch([])` control β€” build the committed tree with NOTHING -substituted β€” would have named the real defect (`commit:2693` had adopted a mid-flight substitution; +substituted β€” would have named the real defect (`24bd25993` had adopted a mid-flight substitution; HEAD itself built RED) in ~40 seconds. Measured cost of not having it: ~737 drafts drafted, 160 slated, ~50 clean whole-EXE rebuilds burned, and a day's lane output read as a model failure (P31 S59, `docs/tool-designs/main-lane-fix-s59.md`). The generalization for ANY gated pipeline: @@ -538,7 +538,7 @@ a TU, separated by other data across TUs). **When we found it.** P31 S72, 2026-09-02. -**When it COULD have been found.** **2026-06-15, Phase 7** β€” commit `commit:0025` wrote the island's +**When it COULD have been found.** **2026-06-15, Phase 7** β€” commit `038e7de53` wrote the island's contents into `config/splat.us.exe.yaml` by hand, naming the game jtbls, `loadDestPtrTable @0x80072C70` as the divider, and the library tables at `0x800737CC+`. Everything needed to compute the spans and their owner address ranges was in that comment, 2.5 months before it was used. The signal needs **no @@ -696,7 +696,7 @@ had refused **436 stored backlog drafts for four phases**. Every permuter verdic one cold cycle. Accelerator: an R61a "not judged" state in every loop tool, and an R39 control over the WHOLE stored population when a parser/regex changes (the control caught the fix's own false positive β€” the bare word `asm` inside `INCLUDE_ASM("asm/…")` path strings). Cost of not having it: a month of "permuter-class plateau" verdicts that measured -nothing. (`commit:3890`, cookbook Β§493 S80 correction.) +nothing. (`7fbdb8fd6`, cookbook Β§493 S80 correction.) **(2) A byte gate is a null oracle for "is this C?".** S79 #7 spliced a function's ASSEMBLY as a file-scope `__asm__` body and counted it banked β€” `rtu_match` MATCHes it by construction, the build is green by construction, `progress.py` diff --git a/docs/automation-runbook.md b/docs/automation-runbook.md index a087c7bdc6..dee9f4d664 100644 --- a/docs/automation-runbook.md +++ b/docs/automation-runbook.md @@ -167,13 +167,13 @@ build_wave_atlas --only-bins main ─┴→ draft β†’ reloc fil HEAD still builds byte-identical BEFORE any tokens are spent. On red the lane refuses (R43), writes `.run/main_lane.BASELINE_RED`, and re-checks every 30 min. `gate_main` runs the same control on any batch failure and exits 3 without bisecting when the TREE, not the slate, is broken (R40). Why: - auto-commit `commit:2693` adopted a mid-flight substitution at 14:57 and the lane then banked 0 from + auto-commit `24bd25993` adopted a mid-flight substitution at 14:57 and the lane then banked 0 from four 200-card rounds until 18:43 β€” every rejection a false verdict. Full story: `docs/tool-designs/main-lane-fix-s59.md`. * **main's TUs (top-level `src/*.c`) have ONE writer (`gate_main`) and ONE committer (`main_lane`)** (S59). Every overlay/maintenance adopter (`ox_campaign` Γ—3, `maintenance.sh`, `gate_stage`, `gate_lane`, `idiom_serial`) unstages them before committing and never reverts them β€” the old - revert-then-add carve-out was the losing half of the TOCTOU that produced `commit:2693`. + revert-then-add carve-out was the losing half of the TOCTOU that produced `24bd25993`. --- diff --git a/docs/burndown.jsonl b/docs/burndown.jsonl index 4dafa289d2..16505b4841 100644 --- a/docs/burndown.jsonl +++ b/docs/burndown.jsonl @@ -1,6 +1,6 @@ -{"head": "commit:0763", "label": "session-4 close (post func_8017AE2C \u00d7137)", "instr_pct": 78.0, "distinct_pct": 66.5, "fn_pct": 87.9, "substantial_families": 572, "templatable_ins": 1578048, "matched_sib": 67} -{"head": "commit:0826", "label": "session-9 (gate_stage SHA fix + t5wave re-run + family sweeps)", "instr_pct": 78.5, "distinct_pct": 67.5, "fn_pct": 88.06, "substantial_families": 569, "templatable_ins": 1521954, "matched_sib": 71} -{"head": "commit:0831", "label": "session-9b (func_801299C8 x137; 0x8013C414 -O0-walled)", "instr_pct": 78.6, "distinct_pct": 67.9, "fn_pct": 88.1, "substantial_families": 568, "templatable_ins": 1500308, "matched_sib": 70} -{"head": "commit:0834", "label": "session-9 CLOSE (gate_stage SHA fix; 5 families swept; 7/12 t5wave cracks banked)", "session_close": true, "instr_pct": 78.7, "distinct_pct": 67.9, "fn_pct": 88.14, "substantial_families": 568, "templatable_ins": 1486476, "matched_sib": 70} -{"head": "commit:0866", "label": "SESSION-14 broad type-lift + 13 cores x138 + uniquify recipe", "session_close": true, "instr_pct": 79.3, "distinct_pct": 67.6, "fn_pct": 88.61, "substantial_families": 558, "templatable_ins": 1449339, "matched_sib": 74} -{"head": "commit:3698", "label": "", "session_close": false, "instr_pct": 99.6, "distinct_pct": 99.1, "fn_pct": 99.97, "substantial_families": 104, "templatable_ins": 36965, "matched_sib": 62} +{"head": "d50c2f6bb", "label": "session-4 close (post func_8017AE2C \u00d7137)", "instr_pct": 78.0, "distinct_pct": 66.5, "fn_pct": 87.9, "substantial_families": 572, "templatable_ins": 1578048, "matched_sib": 67} +{"head": "6ff05498c", "label": "session-9 (gate_stage SHA fix + t5wave re-run + family sweeps)", "instr_pct": 78.5, "distinct_pct": 67.5, "fn_pct": 88.06, "substantial_families": 569, "templatable_ins": 1521954, "matched_sib": 71} +{"head": "49b66cd56", "label": "session-9b (func_801299C8 x137; 0x8013C414 -O0-walled)", "instr_pct": 78.6, "distinct_pct": 67.9, "fn_pct": 88.1, "substantial_families": 568, "templatable_ins": 1500308, "matched_sib": 70} +{"head": "11a22b5c7", "label": "session-9 CLOSE (gate_stage SHA fix; 5 families swept; 7/12 t5wave cracks banked)", "session_close": true, "instr_pct": 78.7, "distinct_pct": 67.9, "fn_pct": 88.14, "substantial_families": 568, "templatable_ins": 1486476, "matched_sib": 70} +{"head": "e393c320e", "label": "SESSION-14 broad type-lift + 13 cores x138 + uniquify recipe", "session_close": true, "instr_pct": 79.3, "distinct_pct": 67.6, "fn_pct": 88.61, "substantial_families": 558, "templatable_ins": 1449339, "matched_sib": 74} +{"head": "2c1d21bb9", "label": "", "session_close": false, "instr_pct": 99.6, "distinct_pct": 99.1, "fn_pct": 99.97, "substantial_families": 104, "templatable_ins": 36965, "matched_sib": 62} diff --git a/docs/calibration.md b/docs/calibration.md index 0272e98b51..5df098ebfd 100644 --- a/docs/calibration.md +++ b/docs/calibration.md @@ -44,7 +44,7 @@ re-measured there.** > **Compounding:** the family is one of only **3 of 163** with `has_mid_jr` β€” i.e. the roadmap generalized > from n=1, on the least representative family in the population, using the wrong tool for its class. And > the three Phase-26 exhaustion probes it corroborated (tiny-IMM 0/241, PURE 0/134, pinned 0/133) all -> **predate** `_carry_macros` (Phase-27 T5, `commit:0637`) β€” Phase 27's decision-log itself calls its re-probe +> **predate** `_carry_macros` (Phase-27 T5, `ee4b3a02e`) β€” Phase 27's decision-log itself calls its re-probe > "a **fourth** phantom exhaustion proof" while never re-running the first three. **R35: a 0% from a broken > tool and a 0% from a working one are the same number and opposite facts.** diff --git a/docs/commit-map.tsv b/docs/commit-map.tsv new file mode 100644 index 0000000000..495be149c4 --- /dev/null +++ b/docs/commit-map.tsv @@ -0,0 +1,4038 @@ +# docs/commit-map.tsv β€” the public history's commit map (P33 C7). Generated by tools/public_rewrite/build_commit_map.py; never edit. +# Before the public flip the history was rewritten (ROM-derived paths purged, personal addresses mapped, old commit hashes +# in every historical doc replaced by the inert token commit:NNNN). NNNN is the ordinal of the commit on main in the ORIGINAL +# order (1 = the first commit); this table maps it to the rewritten commit. A row of 40 zeros is the one commit that touched +# only purged paths and was pruned. Documents at the tip cite the new hashes directly (tools/public_rewrite/resolve_tokens.py). +ordinal new_hash author_date committer_date subject +0001 23066aa5710497ac10f49f6f37e45b009116ae1f 2026-06-10T19:39:19-06:00 2026-06-10T19:39:19-06:00 Initial commit +0002 d4334fc1ca7e3ce37c6e6a46cc64c567be9b5a6d 2026-06-10T22:02:07-06:00 2026-06-10T22:02:07-06:00 plan files created +0003 90585bcf14bd4a3b94091c8dd8f193b3d08bee7a 2026-06-10T22:17:46-06:00 2026-06-10T22:17:46-06:00 Update SETUP.md +0004 cacac2257747bec78008c2341a3d2c629b975ec3 2026-06-10T23:43:30-06:00 2026-06-10T23:43:30-06:00 chore: archive superseded brief + research into docs/history/ +0005 de7f015436ed836d49f4e3d529a3786f3105d31c 2026-06-10T23:43:31-06:00 2026-06-10T23:43:31-06:00 feat(extract): ISO9660/MODE2 disc reader + SLUS_007.26 extractor +0006 ca51930605adaf4606b475814c38c9200d32de7c 2026-06-10T23:43:31-06:00 2026-06-10T23:43:31-06:00 docs: convert to all-in-WSL architecture; relax H1 ROM policy while private +0007 416b8251bd6f5676d3492465a93e35183f03212a 2026-06-10T23:43:31-06:00 2026-06-10T23:43:31-06:00 chore(phase-1): in-progress log + recorded constitution corrections +0008 1d16583cae88394ff90f9c46fdad76f1ff3a840d 2026-06-11T00:33:17-06:00 2026-06-11T00:33:17-06:00 chore(phase-1): mark section A complete, next = WSL migration +0009 3c5d09fb5a3739b53f83f6c5e4f909504ef84611 2026-06-11T00:52:14-06:00 2026-06-11T00:52:14-06:00 chore(phase-1): record no-co-author convention; de-stale commit refs +0010 7e5f4c98be42b8c16c30f087f67a3289016d9db6 2026-06-13T15:02:00-06:00 2026-06-13T15:02:00-06:00 chore(phase-1): bootstrap WSL2 env (Ubuntu-24.04, user, Claude Code, gh, git) +0011 2dd2d6ff0f12b70fcdff89faf2feea95b4359250 2026-06-13T15:13:06-06:00 2026-06-13T15:13:06-06:00 chore(phase-1): record git workflow = WSL-commit / GitHub-Desktop-push +0012 36a366ba3f98e0fdf61c0302fef7894d6213065c 2026-06-13T15:52:37-06:00 2026-06-13T15:52:37-06:00 chore(phase-1): install RE stack + headless import (PsyQ 4.0.0, MCP live) +0013 5b6ffc0664620a1cb57bb3671bd0d6c5ddcd2fe0 2026-06-13T16:46:03-06:00 2026-06-13T16:46:03-06:00 chore(phase-1): headless .gdt attach + MCP type-resolution test (ledger #2) +0014 3e6a6e54809f4969c53511b8516b15d226dcc006 2026-06-13T17:04:08-06:00 2026-06-13T17:04:08-06:00 chore(phase-1): close Phase 1 β€” RE stack live, EXE imported, LZSS matched via MCP +0015 b6ea3a2747ee7c7f156c54aebcb883626c6b7e9a 2026-06-13T19:47:42-06:00 2026-06-13T19:47:42-06:00 feat(phase-2): deterministic disc/.CD/PAC/LZSS extraction pipeline +0016 bd5e21b36668cf28f6a209f9f28f0c5bbe31f807 2026-06-14T02:04:28-06:00 2026-06-14T02:04:28-06:00 feat(phase-3): file-loader & overlay-map RE + PCSX-Redux runtime oracle +0017 3207d524915efae1ebb7c71f5c6b06a9502c87b7 2026-06-14T03:19:23-06:00 2026-06-14T03:19:23-06:00 feat(phase-3.5): prototype research spike β€” go/no-go (protos don't accelerate Gen1 matching) +0018 ffe2352db2881b04d796ef867e2d3abdcd8783c4 2026-06-14T03:56:07-06:00 2026-06-14T03:56:07-06:00 feat(phase-4): matching-build toolchain (WSL) β€” make check-env green +0019 d55882b4b8d39284134b9ff286e05321af4ab3e0 2026-06-14T12:05:38-06:00 2026-06-14T12:05:38-06:00 feat(phase-5): splat config + all-asm byte-identical build of SLUS_007.26 +0020 5f937bdda58f2c9536da546b7a1a3f90d6587482 2026-06-14T14:47:01-06:00 2026-06-14T14:47:01-06:00 feat(phase-6): compiler pinned + matching loop proven (14 matches) β€” LZSS to Phase 7 +0021 379185a7999c369e3595c3dc6d128e435e5f295b 2026-06-14T17:36:12-06:00 2026-06-14T17:36:12-06:00 feat(phase-7): matching reports + 24 matches (38 real) β€” session A checkpoint +0022 8ffb7f0607bb9bbbebb3013b91125e9e2e93acfd 2026-06-14T19:37:05-06:00 2026-06-14T19:37:05-06:00 feat(phase-7): -O0 split + 4 matches (42 real) + libcd.h β€” session B checkpoint +0023 26b71c5b2d5575308fd72a56901b7271d2e83863 2026-06-14T21:24:10-06:00 2026-06-14T21:24:10-06:00 feat(phase-7): PsyQ library-linking proven byte-exact + rodata-island mechanism β€” session C checkpoint +0024 3788a89b3c4da1afa4cd958d8a584908053d1b06 2026-06-14T23:13:39-06:00 2026-06-14T23:13:39-06:00 feat(phase-7): libcd linked into byte-identical build (58 SDK funcs) β€” session D checkpoint +0025 038e7de5321c77e50aef2ec0bff5bae08992299a 2026-06-15T01:47:18-06:00 2026-06-15T01:47:18-06:00 feat(phase-7): LZSS cross-jump barrier breakthrough + libgs byte-verified β€” session E checkpoint +0026 c894dadb48c3e5c184ac03357ec0fb2364e99baf 2026-06-15T10:10:26-06:00 2026-06-15T10:10:26-06:00 feat(phase-7): LZSS matched byte-for-byte (43 real) β€” gcc-2.7.2 regalloc tail closed β€” session F checkpoint +0027 f91a67a6fe3b57c60099f069323dc88bb20030a0 2026-06-15T10:48:08-06:00 2026-06-15T10:48:08-06:00 feat(phase-7): libgs block 6 linked byte-identical (16 objs / 26 SDK funcs) β€” session F +0028 49db81d8ae4e3f7806840c2551900dcf9fa55c8b 2026-06-15T13:44:32-06:00 2026-06-15T13:44:32-06:00 feat(phase-7): Gen1 close-out β€” matching loop industrialized, PsyQ libs linked, LZSS matched (v1.7.0) +0029 6f248462dda08f05d55f81d525e20950afc82662 2026-06-15T17:15:31-06:00 2026-06-15T17:15:31-06:00 chore(gen2-prep): Gen2 roadmap + private-repo backup hardening + SETUP/submodule fixes +0030 c27a4432eb7a8d8d703d0f2e4fc058ab698fc255 2026-06-15T18:00:56-06:00 2026-06-15T18:00:56-06:00 feat(phase-8): library survey + progress.py LINKED category (T1-T2) +0031 675872616ddb203a091a6c2395bb3db9434701ce 2026-06-15T18:08:57-06:00 2026-06-15T18:08:57-06:00 feat(phase-8): link libetc byte-identical (T3) β€” 5 objs / 35 fns +0032 ade73cce627868efaf02949e3a751dd34a722285 2026-06-15T18:21:25-06:00 2026-06-15T18:21:25-06:00 feat(phase-8): link libgpu EXT+PRIM byte-identical (T4); exclude SYS.o (scattered .bss) +0033 0d6380c845bd83eded11d9ddcd9c02ec4c794347 2026-06-15T18:23:59-06:00 2026-06-15T18:23:59-06:00 feat(phase-8): link libmcrd byte-identical (T5) β€” 2 objs / +104 fns +0034 9dbae2681e47986f32a63f3e3f147c6a71b32e98 2026-06-15T18:32:48-06:00 2026-06-15T18:32:48-06:00 feat(phase-8): link libc2 byte-identical (T6) β€” 17 objs / +62 fns +0035 c4a627b22b85ab39c907711c977eb0edafaa3afe 2026-06-15T18:43:27-06:00 2026-06-15T18:43:27-06:00 feat(phase-8): link libgte byte-identical (T11, value-first) β€” 53/58 objs / +120 fns +0036 8bbf2e8e4d5d2c49620613367b020caf5897c3ac 2026-06-15T18:54:21-06:00 2026-06-15T18:54:21-06:00 feat(phase-8): link libspu+libsnd combined sound region (T9+T10) β€” 60 objs / +225 fns +0037 11a9bdc03291756149414ca899bd6ca67d1762db 2026-06-15T18:59:14-06:00 2026-06-15T18:59:14-06:00 feat(phase-8): link libapi+libcard combined 800c2 region (T7+T8) β€” 22 objs / +24 fns +0038 44586c885e032902e3389ed35f279b601e5e22fe 2026-06-15T19:07:59-06:00 2026-06-15T19:07:59-06:00 feat(phase-8): game-code harvest (T13) β€” 9 trivial accessors, REAL 43 -> 52 +0039 20a0d7a4d2d2adf756864f668bc7a6b4e9483bb3 2026-06-15T19:09:49-06:00 2026-06-15T19:09:49-06:00 docs(phase-8): cookbook Β§9.6 + SETUP tool inventory (R16/R21 flywheel) +0040 2025da70580efa45741b03c6b7737b7b23977e7e 2026-06-15T19:12:45-06:00 2026-06-15T19:12:45-06:00 chore(phase-8): finalize CURRENT_PHASE β€” milestone achieved, awaiting Drew's gate-2 confirm +0041 1f5cc439812e47f119e80deb44186ef33ab6779f 2026-06-15T19:22:36-06:00 2026-06-15T19:22:36-06:00 feat(phase-8): close-out β€” PhaseEnd_Phase8 + worklog archived (v1.8.0) +0042 170586d6bfe34c577c5001f9bf215b5450962657 2026-06-15T20:20:42-06:00 2026-06-15T20:20:42-06:00 refactor(phase-9): T1 β€” data-driven BINARIES Makefile (no-op on EXE) +0043 d9517a013ba77439943c1ccda76a2b6d3974280e 2026-06-15T20:30:19-06:00 2026-06-15T20:30:19-06:00 refactor(phase-9): T2 β€” thread vram_base/exe through psyq_link.py +0044 4737d3ea4e9f6196dfc2cfad286524ad0ab189d0 2026-06-15T20:32:53-06:00 2026-06-15T20:32:53-06:00 refactor(phase-9): T3 β€” argparse --vram-base/--exe for psyq_identify.py +0045 0a59e96ce4527445350dfc80cc12822062030842 2026-06-15T20:36:32-06:00 2026-06-15T20:36:32-06:00 refactor(phase-9): T4 β€” thread vram_base/exe through psyq_link_region + psyq_link_lib +0046 06676e6ab1fb0e6c0abb64e525f9800714548ba7 2026-06-15T20:42:32-06:00 2026-06-15T20:42:32-06:00 refactor(phase-9): T5 β€” psyq_integrate flags + progress regex + 9 Makefile call sites +0047 22b20e8f31907d0ec6a31cae80e377f1f612bc00 2026-06-15T20:46:48-06:00 2026-06-15T20:46:48-06:00 refactor(phase-9): T6 β€” --binary selector for dup_report + difficulty; report threads BINARY +0048 5e0d80a8873cbea2be4ba7e176e9ccf51bb2f2a1 2026-06-15T20:49:45-06:00 2026-06-15T20:49:45-06:00 refactor(phase-9): T7 β€” ld_interleave.py --front/--tail; gate extract call to BINARY=main +0049 cb7a280994c096814b023ca33e1f60750ee922fa 2026-06-15T20:55:28-06:00 2026-06-15T20:55:28-06:00 refactor(phase-9): T8a β€” de-default the EXE-curation helpers (thread --exe/--vram-base) +0050 1b9397c4625e51359ca4a33670dbaaa68d1c574d 2026-06-15T21:00:36-06:00 2026-06-15T21:00:36-06:00 refactor(phase-9): T8b β€” remove transitional defaults across link pipeline (no-EXE-default end state) +0051 3b2093dfde79aca06fe82a404813bcbdf2620193 2026-06-15T21:02:43-06:00 2026-06-15T21:02:43-06:00 refactor(phase-9): T9 β€” BFM_BINARY env-var selector for diff_settings.py +0052 6345b5012aa8d302c1fd7f9da850f30392dd5302 2026-06-15T21:09:06-06:00 2026-06-15T21:09:06-06:00 docs(phase-9): T10 β€” binary-agnostic toolchain docs + final milestone proof (R16/R21) +0053 d380b13fc53037ab010dc5fbd9b867d397f4568f 2026-06-15T22:01:17-06:00 2026-06-15T22:01:17-06:00 feat(phase-9): close-out β€” PhaseEnd_Phase9 + binary-agnostic toolchain (v1.9.0) +0054 95ade8476897a3c4c312165c3249779a38537b59 2026-06-15T22:50:55-06:00 2026-06-15T22:50:55-06:00 feat(phase-10): T1 β€” scaffold the `resident` second binary (Makefile no-op on main) +0055 f06785bcf28b0f490ca1c8a733ab6010c79c7332 2026-06-15T23:00:51-06:00 2026-06-15T23:00:51-06:00 feat(phase-10): T2 β€” resident blob byte-identical (8e17e02f), the milestone +0056 cc739511280a51fa1f380c190aa7ad7f741bc5c1 2026-06-15T23:06:25-06:00 2026-06-15T23:06:25-06:00 feat(phase-10): T3 β€” per-binary reports/diff/expected for the resident binary +0057 03978ec4ba5c1d3ec0611b1acf320bae5b0ac568 2026-06-15T23:25:00-06:00 2026-06-15T23:25:00-06:00 feat(phase-10): T4 β€” resident Ghidra program (2nd binary) + symbol seed + sig +0058 702b94fd7d0cf76b187161f323a4ccc8df8ce82e 2026-06-15T23:35:11-06:00 2026-06-15T23:35:11-06:00 docs(phase-10): close-out β€” PhaseEnd_Phase10 + flat-blob recipe (v1.10.0) +0059 6df7e79c5dcff2586dad22cccf45c4c7c6921983 2026-06-15T23:39:56-06:00 2026-06-15T23:39:56-06:00 docs(phase-10): store the plain-English recap in the PhaseEnd + rule R25 +0060 7cc2911456db343e482548dfe841595e36a0b7eb 2026-06-16T00:37:18-06:00 2026-06-16T00:37:18-06:00 feat(phase-11): T1 β€” cross-binary dup_report --cross β†’ duplicates.cross.md +0061 b06d74c1be6a8b607ba0be864404cf5bfc24e902 2026-06-16T00:47:20-06:00 2026-06-16T00:47:20-06:00 feat(phase-11): T2 β€” dedup.us.yaml registry + dedup_integrate byte-honesty validator +0062 a8ae190fa3459be4b5eea9d9dc83d8bf99fbd1a4 2026-06-16T00:56:35-06:00 2026-06-16T00:56:35-06:00 feat(phase-11): T3 β€” intra-binary collapse PROOF (one body, two addresses, byte-identical) +0063 685e35fdc6550f4a03f1706c8df648ee133bc649 2026-06-16T01:07:28-06:00 2026-06-16T01:07:28-06:00 feat(phase-11): T4 β€” sig_image.py, Ghidra-free h_exact signer + boundary detection +0064 81e33c7a1e5fad61ef5f6fa1b9a1ccf6590788a3 2026-06-16T01:15:07-06:00 2026-06-16T01:15:07-06:00 feat(phase-11): T5 β€” sig_image self-consistent h_norm + h_seq (scope-guard D2) +0065 f672c709c1918ddbfb88a50e0d4340c632ef40bd 2026-06-16T01:26:49-06:00 2026-06-16T01:26:49-06:00 feat(phase-11): T6 β€” sign the 134 overlays; cross-report spans 136 binaries (milestone report half) +0066 190afe10f05015a4899ec0c9936435a27df2deef 2026-06-16T01:31:50-06:00 2026-06-16T01:31:50-06:00 docs(phase-11): T7 close-out β€” 4.7 sha-record, cookbook Β§11, SETUP Β§6.8, README/worklist +0067 0cd9656f25d63200ef8f3d11e4770c41d5ae56ec 2026-06-16T09:45:49-06:00 2026-06-16T09:45:49-06:00 docs(phase-11): close-out β€” PhaseEnd_Phase11 + worklog archive (v1.11.0) +0068 ce790965478e889907482e49490119eeb5bc9a11 2026-06-16T11:05:22-06:00 2026-06-16T11:05:22-06:00 feat(phase-12): T1 β€” resident PsyQ footprint survey = NIL (resident is custom engine code) +0069 b8457a8636e1fbe30276a56dce58c0ae28708c8b 2026-06-16T11:14:25-06:00 2026-06-16T11:14:25-06:00 feat(phase-12): T2 β€” resident compiler triple CONFIRMED = the EXE's (2 byte-exact matches) +0070 6d1b0c051ee3c2931f84086499c484abff15b94a 2026-06-16T11:17:54-06:00 2026-06-16T11:17:54-06:00 feat(phase-12): T3 batch 1 β€” 6 trivial resident accessors matched (REAL 2->8) +0071 c37332fa1999feca6e7753335436c14b04de391a 2026-06-16T11:59:02-06:00 2026-06-16T11:59:02-06:00 feat(phase-12): T3 batch 2 β€” 62 resident functions matched via parallel-draft + byte-gate (REAL 8->70) +0072 69227e4f6abb9338ca5d0f2d937bde50ba8af400 2026-06-16T12:15:27-06:00 2026-06-16T12:15:27-06:00 feat(phase-12): T3 batch 3 β€” +8 resident fns via redraft pass + byte-gate (REAL 70->78) +0073 8dbaa489f74f48e7239e6a4a3444ce76b9f713ac 2026-06-16T12:35:21-06:00 2026-06-16T12:35:21-06:00 feat(phase-12): T3 batch 3b β€” +9 via retry-resilient redraft pass (REAL 78->87, 61.4%) +0074 4c7cf48ebf9c653704e6c71b1306983765f75884 2026-06-16T12:43:59-06:00 2026-06-16T12:43:59-06:00 feat(phase-12): T3 β€” +2 (typedef-strip recovery) + per-function match tool (REAL 87->89) +0075 393d34604bad4671a9e621a979d56ea5742a8673 2026-06-16T13:15:50-06:00 2026-06-16T13:15:50-06:00 feat(phase-12): T3 pass 4 β€” match_one iteration loop, +13 (REAL 89->102, 71.7%) +0076 f5209b6ef37969ccdbabdd45465f28198fe64321 2026-06-16T13:20:21-06:00 2026-06-16T13:20:21-06:00 docs(phase-12): T3 harvest checkpoint β€” REAL 102/145 (71.7%); recovery path recorded +0077 e3d86e60778af2d44f1cee20be2ed3a23e076c99 2026-06-16T13:28:46-06:00 2026-06-16T13:28:46-06:00 docs(phase-12): cookbook Β§12 (ultracode harvest pattern) + effort-map ultracode-prompting (R16/R21) +0078 a480d83bee641ed9b7e777d4ad66b382378baabe 2026-06-16T14:05:20-06:00 2026-06-16T14:05:20-06:00 feat(phase-12): T3a β€” extern-conflict recovery, +20 (REAL 102->123, 85.6%) +0079 0821ba22da43125bed0a1a3f457648d52ef83306 2026-06-16T14:12:46-06:00 2026-06-16T14:12:46-06:00 docs(phase-12): T3 substantively complete β€” REAL 123/146 (85.6%); T3b reassessed/deferred +0080 9a70f7179c6b4dd908e09fd22b67189b0fe6ea56 2026-06-16T14:14:57-06:00 2026-06-16T14:14:57-06:00 docs(phase-12): T4 β€” script/event system + SQV driver determinations (byte-backed) +0081 d443cdf433248fc73dd148f1eada103bd695c9df 2026-06-16T14:18:47-06:00 2026-06-16T14:18:47-06:00 docs(phase-12): T5 (static start) β€” save/memcard format: saveHeaderTemplate + handler table (Q#5) +0082 373418dc8d96942f99584c41e4475e51f5d6645b 2026-06-16T14:33:54-06:00 2026-06-16T14:33:54-06:00 docs(phase-12): T5 β€” save trace findings (memcard path + directory confirmed; deep data deferred) +0083 b7b34f007e1d1c305add780942e64b06eadb4a7d 2026-06-16T14:42:52-06:00 2026-06-16T14:42:52-06:00 docs(phase-12): PhaseEnd β€” key engine systems complete; resident 1.4%->85.6% (v1.12.0) +0084 50c5c9ea333216748c502a93bd7c8e263fd3b836 2026-06-16T15:19:49-06:00 2026-06-16T15:19:49-06:00 feat(phase-13): T0 β€” overlay splat template + overlays.mk indirection +0085 144839f24b6e64f0e56b33fc0fbd1e4fed7f5357 2026-06-16T15:39:52-06:00 2026-06-16T15:39:52-06:00 feat(phase-13): T1a/T1b β€” SC01/077 onboarded + all-asm byte-match (d19c9580) +0086 3b59354c7f3c6e6aa4c47e308416920d35b3aa7d 2026-06-16T15:42:43-06:00 2026-06-16T15:42:43-06:00 feat(phase-13): T1c β€” commit ov_SC01_077 C record (2505 INCLUDE_ASM stubs) +0087 3262cbca3996b30e286e531c178fc093190f0b38 2026-06-16T15:51:44-06:00 2026-06-16T15:51:44-06:00 docs(phase-13): T1c done β€” C record + Ghidra import (2661 fns, 0 failed); harvest next +0088 0278a902d390e130df665887b27a8d953884a46b 2026-06-16T16:04:08-06:00 2026-06-16T16:04:08-06:00 feat(phase-13): T1e harvest pass 1 β€” 110 ov_SC01_077 fns matched (Ultracode Β§12) +0089 fdc9e22a8c5931f663e17d971a5129673b3c24dd 2026-06-16T16:09:54-06:00 2026-06-16T16:09:54-06:00 feat(phase-13): T1e harvest pass 2 β€” +205 ov_SC01_077 fns (REAL ~315; Ultracode Β§12) +0090 b6a82b8c43c731b0226044c39ce94b4444c1fe06 2026-06-16T16:16:52-06:00 2026-06-16T16:16:52-06:00 feat(phase-13): T1e harvest pass 3 β€” +217 ov_SC01_077 fns (REAL ~532; Ultracode Β§12) +0091 5ccdd2b2251402943fcd0826d9af4562d9b86731 2026-06-16T16:29:41-06:00 2026-06-16T16:29:41-06:00 feat(phase-13): T1e harvest pass 4 (rate-limited) β€” +52 ov_SC01_077 (REAL 584) +0092 ce07b72794238fe723d0a68cebee2d726ebc523a 2026-06-16T16:38:22-06:00 2026-06-16T16:38:22-06:00 feat(phase-13): T1e harvest pass 5 β€” +106 ov_SC01_077 (REAL 690/2586 = 26.7%) +0093 67592993eabbc587e2f9c368506554f98d1e2e8b 2026-06-16T16:44:01-06:00 2026-06-16T16:44:01-06:00 feat(phase-13): T3+T4 β€” new_overlay.sh + dup-pair & free-roam onboarded byte-identical +0094 eee4cb3196847b531fe243bf274a68a3beba343b 2026-06-16T17:05:23-06:00 2026-06-16T17:05:23-06:00 feat(phase-13): T2 β€” dup-pair collapse SC01/005 ≑ 006 (one source, both green) +0095 e2200e17db1f554818f2ffbfa74db5c8194595a1 2026-06-16T17:07:57-06:00 2026-06-16T17:07:57-06:00 feat(phase-13): T5 β€” make build-all / check-all (fleet PASS/FAIL) +0096 eaff101c3f98ab7a542f5b37f9f2530a12389337 2026-06-16T17:09:23-06:00 2026-06-16T17:09:23-06:00 docs(phase-13): T0-T5 complete β€” milestone met; T7 experiment + T6 PhaseEnd remain +0097 b2773874d0a5ad864aa11cceccba7869a28c4dad 2026-06-16T17:23:07-06:00 2026-06-16T17:23:07-06:00 docs(effort-map): per-task effort mapping + pause-at-every-transition discipline (Drew) +0098 7622ea7609395c66c89d0488cc2a5c45bff7c26d 2026-06-16T17:50:31-06:00 2026-06-16T17:50:31-06:00 feat(phase-13): T7 β€” effort experiment (Max vs Ultracode yield = noise) + bank 14 +0099 52514b5f451bca4e4490ef16a675e391a4a7c3fb 2026-06-16T17:56:38-06:00 2026-06-16T17:56:38-06:00 docs(phase-13): T6 docs β€” cookbook Β§13 overlay runbook + SETUP/gen2-roadmap + digests +0100 a0865e78cac54d7397502f69198532c8e2c8aa72 2026-06-16T18:00:25-06:00 2026-06-16T18:00:25-06:00 docs(phase-13): PhaseEnd β€” representative overlays complete; 6 binaries byte-identical (v1.13.0) +0101 324ad1c3a6ca2147fc888e0480a2b4d8bca9992f 2026-06-16T18:57:06-06:00 2026-06-16T18:57:06-06:00 docs(phase-15): T0 β€” defer Phase 14 to Gen3+; Phase 15 is the active phase +0102 e5a2bd40830748d63d91a8b7b69460c2ddcef063 2026-06-16T19:02:14-06:00 2026-06-16T19:02:14-06:00 feat(phase-15): T1 β€” onboard diverse wave-1 (12 overlays); fleet 18/18 byte-identical +0103 0c7619231d5738b39cb3ea02aee9832fab320477 2026-06-16T19:24:08-06:00 2026-06-16T19:24:08-06:00 feat(phase-15): T2 β€” dedup_propagate.py (match-once -> propagate-many) proven on wave +0104 87136a024e1bba9c1b6dc764bb3831a492ac3195 2026-06-16T19:41:37-06:00 2026-06-16T19:41:37-06:00 feat(phase-15): T3 β€” onboard the remaining 118 overlays; full fleet 136/136 byte-identical +0105 c716eb15e12f21ce8d8d5141178e71b77ce2849a 2026-06-16T20:00:19-06:00 2026-06-16T20:00:19-06:00 feat(phase-15): T4 β€” fleet progress roll-up + fix cross-report double-count +0106 aefe2eac185512a6f83e34adfbb9c553c8b93874 2026-06-16T20:35:39-06:00 2026-06-16T20:35:39-06:00 feat(phase-15): T5a β€” bulk-propagate 553 shared functions fleet-wide (3.82% -> 22.14%) +0107 2ac97878b2931f19b5371e816bf3f611b2759d7c 2026-06-16T21:16:46-06:00 2026-06-16T21:16:46-06:00 feat(phase-15): T5b β€” Ultracode harvest pass 1 (+49 shared fns); fleet 24.05% +0108 9d5c0870546ac4c5d5c5944610c2919c2191806c 2026-06-16T22:18:06-06:00 2026-06-16T22:18:06-06:00 feat(phase-15): T5b pass-2 leaf-first harvest (+34 shared fns); fleet 25.38% +0109 ef1cf9f05efbdc0e2f3cc6d2bfbd4276c9340454 2026-06-17T00:12:23-06:00 2026-06-17T00:12:23-06:00 feat(phase-15): T6 pass-1 β€” callee-sig-aware harvest of the call-heavy shared core; fleet 25.38% -> 30.48% +0110 1d94f9ec96ef6686105ec29c66b37785f108bc05 2026-06-17T00:30:45-06:00 2026-06-17T00:30:45-06:00 feat(phase-15): T6d β€” deterministic decl-canonicalization recovers 19 more shared fns; fleet -> 31.22% +0111 bdfb86dc4fd876ea59b110b85b9c7de0853bcd75 2026-06-17T11:59:33-06:00 2026-06-17T11:59:33-06:00 feat(phase-15): T6 v2 β€” data-sig-aware harvest + struct-guarded propagate; fleet 31.22% -> 42.14% +0112 db4fddc44ec9c8961c4626da5c4e0ef059a8f568 2026-06-17T13:21:36-06:00 2026-06-17T13:21:36-06:00 feat(phase-15): T6g medium band β€” harvest+propagate 65 shared fns; fleet 42.14% -> 44.64% +0113 57a0a88f3737a437b32a1034724c892d5012336d 2026-06-17T15:06:29-06:00 2026-06-17T15:06:29-06:00 feat(phase-15): T6 tail β€” quarantine decl-recovery propagates 42 more; fleet 44.64% -> 46.27% +0114 5c5e9fb97366fa345683edacb0cd8b908956e201 2026-06-17T15:25:44-06:00 2026-06-17T15:25:44-06:00 feat(phase-15): T6 struct follow-up β€” shared engine_types.h unblocks 37 struct-using fns; fleet 46.27% -> 47.70% +0115 2366d56f47c8e494a3e4b5095fbfbf15a08e7293 2026-06-17T15:40:52-06:00 2026-06-17T15:40:52-06:00 docs(phase-15): log v3 harvest rate-limit consolidation at 47.70% +0116 85b3599e5b92c3893f5eebccfa132fabe6eb7d65 2026-06-17T18:38:03-06:00 2026-06-17T18:38:03-06:00 feat(phase-15): T6 groups-of-10 missing harvest β€” fleet 48.02% -> 51.41% (over half) +0117 be0ceae55db5716b613940fc511893ba3e5d3a16 2026-06-18T17:21:54-06:00 2026-06-18T17:21:54-06:00 feat(phase-15): T6 wave-1 (50-agent) harvest β€” 27 shared fns matched, 9 propagated fleet-wide; fleet 51.41% -> 51.77% +0118 4b0f4d100359652ddb53edf364b3c052d818c363 2026-06-18T18:03:44-06:00 2026-06-18T18:03:44-06:00 feat(phase-15): #3 types-header propagation β€” +8 struct-using shared fns; fleet 51.77% -> 52.08% +0119 a10f7f8a1a856d493db48d21978d34a561005df2 2026-06-18T20:00:50-06:00 2026-06-18T20:00:50-06:00 feat(phase-15): sig-unify recovery + find_site brace-fix β€” fleet 52.08% -> 54.44% +0120 ab8b857cd352052348e13709bf0f0a6e61311d84 2026-06-18T20:23:21-06:00 2026-06-18T20:23:21-06:00 feat(phase-15): engine_types follow-up β€” +1 struct-using shared fn; fleet 54.44% -> 54.48% +0121 964cec8b61c7c2d0f8a4d77de6e291f201642cf8 2026-06-18T21:01:38-06:00 2026-06-18T21:01:38-06:00 docs(phase-15): close β€” PhaseEnd v1.14.0 (fleet 54.48%), continuation backlog -> Phase 16 +0122 7141e9752b804ce52754f583fa411fa7438cf760 2026-06-18T22:32:03-06:00 2026-06-18T22:32:03-06:00 feat(phase-16): S0 close + S2 foundation β€” m2c-compat in common.h (byte-verified) +0123 381b0652a1191d23bad2a6cb1fcfcbee89dc9c28 2026-06-18T22:53:19-06:00 2026-06-18T22:53:19-06:00 feat(phase-16): pipeline proven β€” known-answer ladder 67% m2c-direct re-derivation +0124 c8c9fd20c126ebb45e32b2bec71e5ad939fc1f51 2026-06-18T23:15:31-06:00 2026-06-18T23:15:31-06:00 feat(phase-16): S5 driver+supervisor+safe-exit + NULL fix + sig_unify pipeline +0125 5dd42ad703501e4db2a98ae699396b6fd67c9e97 2026-06-18T23:40:17-06:00 2026-06-18T23:40:17-06:00 feat(phase-16): permuter batch tester + known-answer improvement-loop workhorse +0126 ed6314f0907fd11c19b58d6a5d7ff117b100df05 2026-06-18T23:41:40-06:00 2026-06-18T23:41:40-06:00 feat(phase-16): wire the permuter into auto_driver (the near-miss yield lever) +0127 9062f0fcc06f0d1c3085698fb4dbfb0d1efabbf6 2026-06-19T10:05:58-06:00 2026-06-19T10:05:58-06:00 docs(phase-16): PIVOT β€” m2c+permuter won't crack the loose-typed core; new plan + harness fixes +0128 f3f15649f1f897dfcddba82eb0c88f13353f246b 2026-06-19T10:12:22-06:00 2026-06-19T10:12:22-06:00 docs(phase-16): PhaseEnd β€” pivot from m2c+permuter to type-recovery (v1.15.0) +0129 edb0360d3056a69c674dbd890e58e6a28d7cc473 2026-06-19T11:31:41-06:00 2026-06-19T11:31:41-06:00 feat(phase-17): T1 wall taxonomy β€” census the 957 residuals, size every avenue (skip T2) +0130 070cf375c92476db8eb244601a1208c597c51c7f 2026-06-19T12:13:38-06:00 2026-06-19T12:13:38-06:00 feat(phase-17): T3 β€” bank 42 sig_unify matches + propagate x134 (fleet 54.48%->55.00%); fix taxonomy classifier +0131 7380ed4b81f4d16fac8db4d110135062b19d7930 2026-06-19T12:25:20-06:00 2026-06-19T12:25:20-06:00 docs(phase-17): checkpoint β€” T4 investigation (m2c-context fnptr mechanism proven; T5 struct is the byte-lever) +0132 1431b523a4b30167264554ea87115c3df2b1d8d3 2026-06-19T13:03:14-06:00 2026-06-19T13:03:14-06:00 feat(phase-17): T4+T5 β€” actor struct recovered (comprehension) but byte-neutral for matching +0133 40f2bc8bdce6bbf205e5fef23994b8f76764d765 2026-06-19T13:20:23-06:00 2026-06-19T13:20:23-06:00 docs(phase-17): T6 β€” permuter yields 0 whole-binary matches (isolated != whole-binary TU) +0134 fa925913e39f6a090c6e77ab93920de6f0f9c588 2026-06-19T13:46:55-06:00 2026-06-19T13:46:55-06:00 docs(phase-17): START HERE handoff β€” pivot to guided hand-matching + the demo protocol +0135 19f005ea1130f744323ba68dfe694c154ac4213c 2026-06-19T18:03:49-06:00 2026-06-19T18:03:49-06:00 feat(phase-17): guided hand-matching demo β€” GO; 4/5 close-rate; loose-typing wall breakable +0136 28c23f4be80eaf06dea4daee2abb44d52774062a 2026-06-19T20:06:33-06:00 2026-06-19T20:06:33-06:00 feat(phase-17): task-1 β€” bank func_8015F9A4 (fnptr close) + firm the rate +0137 0dd9bf6bac40d61af8e7429bedd0996a005eeb1c 2026-06-19T20:54:45-06:00 2026-06-19T20:54:45-06:00 feat(phase-17): calibration harvest wave β€” fleet 55.04%->55.51% (+0.47%) +0138 d369da81626942d30b384c7eda77ca931fbd5000 2026-06-19T20:56:16-06:00 2026-06-19T20:56:16-06:00 docs(phase-17): CURRENT_PHASE log β€” session 3 (task 1 + calibration wave, +0.47%) +0139 f0dd9351e41667085f5c6d2465f0f363ed635b66 2026-06-19T21:16:41-06:00 2026-06-19T21:16:41-06:00 docs(phase-17): flywheel + handoff up to date β€” canonical-sig wall is the scaling lever +0140 c4b0cef86a437f3881a7cb7c41a1a4915034ba67 2026-06-20T09:35:18-06:00 2026-06-20T09:35:18-06:00 feat(phase-17): close β€” canonical-sig layer built; the wall is the compiler, not sigs; pivot to gcc research (v1.16.0) +0141 d20b20c64b7fe888004c4e26a48bbdfec69ef858 2026-06-20T11:08:21-06:00 2026-06-20T11:08:21-06:00 feat(phase-18): T0 β€” setup + exemplar set; match_one validated as the Β§10 oracle +0142 c5fc6789bf58bbd06df61915753f6265176a2d67 2026-06-20T11:21:40-06:00 2026-06-20T11:21:40-06:00 feat(phase-18): T1 gate β€” branch-polarity Β§10 win; regalloc residue is global.c ordering +0143 eb90cacd7203edc7dc30bf104274b27b2f457e62 2026-06-20T11:35:33-06:00 2026-06-20T11:35:33-06:00 feat(phase-18): T2+T3 β€” regalloc-order UNSTEERABLE (corroborated); array-decay-remat idiom +0144 52cfc22972ca7a477556433bb522301c4d77b4af 2026-06-20T11:48:12-06:00 2026-06-20T11:48:12-06:00 feat(phase-18): T6 β€” func_801399A8 matched + propagated x134 (fleet 55.51->55.55%) +0145 92a0ab4a9adaa51052e54dc3b2644a099ecedfac 2026-06-20T11:51:30-06:00 2026-06-20T11:51:30-06:00 docs(phase-18): T4+T6 record β€” idioms byte-validated; STRUCTURAL_MISS is mixed +0146 ceecaeb2359550c3f2782aa37213e8ba2dcd46a5 2026-06-20T11:54:07-06:00 2026-06-20T11:54:07-06:00 docs(phase-18): T5 β€” cookbook Β§17 (steerable-vs-not) + reconcile Β§10-vs-Β§16 +0147 bd9ee97854678c1886508ebe31b44001160ea9bb 2026-06-20T11:56:30-06:00 2026-06-20T11:56:30-06:00 docs(phase-18): W1 β€” build-divergence ruled out by proxy (Wine install dropped) +0148 f1bbcd241fda2691fee80d36db049a84d668d3d5 2026-06-20T12:17:54-06:00 2026-06-20T12:17:54-06:00 feat(phase-18): VERDICT REVERSED β€” func_8012B8E4 hand-matched via register pinning +0149 667504a4ba5b768da22e6891b1a1b646c1811e81 2026-06-20T12:33:08-06:00 2026-06-20T12:33:08-06:00 docs(phase-18): correct Β§17/Β§8e β€” register-order class is STEERABLE via pins (not unsteerable) +0150 23666cb28427d8d466906de032fb414f689ca1c9 2026-06-20T12:33:33-06:00 2026-06-20T12:33:33-06:00 docs(phase-18): CURRENT_PHASE β€” verdict reversal + the 3->1->2 plan; step 3a done +0151 f28a435815c7a87136db1d384b993fa25f3169a8 2026-06-20T12:56:15-06:00 2026-06-20T12:56:15-06:00 docs(phase-18): CURRENT_PHASE β€” full Step-3b runbook + new-session banner +0152 d593ee20fe75813fb3ddb2116d87d8627e9a1fbe 2026-06-20T13:40:11-06:00 2026-06-20T13:40:11-06:00 feat(phase-18): Step-3b calibration β€” Β§17-toolkit wave banks 9 reach-134 matches (55.58->55.94%) +0153 ab5ccf726a9c6695dbcdb977b0d0c65f2e94d92b 2026-06-20T13:41:07-06:00 2026-06-20T13:41:07-06:00 docs(phase-18): CURRENT_PHASE β€” Step 3b done (calibration 56% close-rate, fleet 55.94%); paused for Step-1 scale-up +0154 fa0d4a3f626144a29c94ab773290d938c879a382 2026-06-20T14:30:36-06:00 2026-06-20T14:30:36-06:00 feat(phase-18): Step-1 wave banks 20 reach-134 matches (55.94->56.60%) +0155 6d9cd213a207abc169ccb44c856090b8d64e6973 2026-06-20T14:39:51-06:00 2026-06-20T14:39:51-06:00 feat(phase-18): Step-1 recovery β€” +2 matches (func_8012F68C parse-fix x134, func_8012A418 sibling-decl reconcile) +0156 151da542ab6c14e0476c0269a4ae3c578784d6ad 2026-06-20T14:41:46-06:00 2026-06-20T14:41:46-06:00 docs(phase-18): cookbook Β§17a (toolkit at wave scale + pipeline-integration recovery) + CURRENT_PHASE Step-1 done +0157 a741d2b6b5a6862ca67a0dbd246320e166e08e4d 2026-06-20T15:05:52-06:00 2026-06-20T15:05:52-06:00 feat(phase-18): compiler-quirk research -> the matching TOOLKIT, taught to waves (v1.17.0) +0158 be33b887fe5b996d1c3c036ff98fc70784e0b185 2026-06-20T16:30:39-06:00 2026-06-20T16:30:39-06:00 feat(phase-19): T1 -O0 split lever β€” infra proven + 6 -O0 fns matched (ov_SC01_077) +0159 c8e92584265e6ae849814a384534a031f6a477e4 2026-06-20T16:35:29-06:00 2026-06-20T16:35:29-06:00 docs(phase-19): cookbook Β§18 β€” per-file -O0 split mechanism + the %lo-folding residual (T1 flywheel) +0160 dce768a269a3bcdf55dcc02779ce33cee8a645ca 2026-06-20T16:37:27-06:00 2026-06-20T16:37:27-06:00 docs(phase-19): CURRENT_PHASE β€” T2 scoping finding + session checkpoint/resume pointer +0161 85afa0dc8114c5346bf1a5dfc68bc46911d522e9 2026-06-20T17:12:00-06:00 2026-06-20T17:12:00-06:00 feat(phase-19): T2 recovery tooling β€” canon_resident_calls + no-proto caller fix (3 matches) +0162 2f9b0d99060ecd00f022603c592d83efee17d0d0 2026-06-20T19:27:53-06:00 2026-06-20T19:27:53-06:00 feat(phase-19): T3 batch-1 wave β€” 30 matched, 25 propagated Γ—134, fleet 56.64%->57.62% +0163 3e99d2836d6f24d8a66a8d0b7b47135b50674d2f 2026-06-20T19:51:50-06:00 2026-06-20T19:51:50-06:00 feat(phase-19): T3 batch-2 wave β€” 25 matched, 8 propagated Γ—134, fleet 57.62%->57.93% +0164 c43b6d08308024245a133bb8a07a95e76b285e27 2026-06-20T19:57:34-06:00 2026-06-20T19:57:34-06:00 feat(phase-19): T3 struct-lift + propagation top-up β€” fleet 57.93%->58.00% +0165 de35505a6309e530c864a8feb0d35f9a0306eb65 2026-06-20T20:33:00-06:00 2026-06-20T20:33:00-06:00 feat(phase-19): scale the toolkit β€” 2 waves (88%/92%), fleet 56.64%->58.00%, propagation is the cap (v1.18.0) +0166 4f5f73c480384f395ac9965f9a4072205a512841 2026-06-20T23:49:58-06:00 2026-06-20T23:49:58-06:00 feat(phase-20): T1 β€” typedef lift closes the type-blocked propagation cap (9 fns Γ—134) +0167 ba6cb87d3056d68144c13a44a552bc1c85fc0f6e 2026-06-20T23:55:51-06:00 2026-06-20T23:55:51-06:00 feat(phase-20): T2 β€” exemplar_miner routes 835 residuals (WAVE 472 / PINS 45 reach-134 / STUB 90) +0168 9991e4d6be16e8fe41b28253be8eea2eed5dcda0 2026-06-21T00:57:04-06:00 2026-06-21T00:57:04-06:00 feat(phase-20): T6 batch-1 β€” harvest wave 41/48 match_one, 8 banked (7 x134), fleet 58.35->58.63% +0169 dab6ccb96f3c74b46af238f99ad44763541d89f3 2026-06-21T01:12:18-06:00 2026-06-21T01:12:18-06:00 docs(phase-20): T6 batch-1 recovery β€” diagnose the loose-typing call-graph wall (gate cap) +0170 187f7200d4783d76f8f825f91fb656dd1f2343ab 2026-06-21T01:17:48-06:00 2026-06-21T01:17:48-06:00 docs(phase-20): multi-session handoff β€” resume point for T3a/T4/T5 + the cap-recovery (Drew: continue, don't close) +0171 2070cdb00023b7fa94f5ffee41c2a021a55ae704 2026-06-21T01:24:01-06:00 2026-06-21T01:24:01-06:00 docs(phase-20): T4 β€” distill the codegen map (cookbook Β§20) + R14 loop-guard correction +0172 ea3ef7fb80339fbf4911672c0726c09c30cc39c9 2026-06-21T01:25:46-06:00 2026-06-21T01:25:46-06:00 docs(phase-20): record candidate R30 β€” capture context-dependent knowledge before a fresh session +0173 6c5bd1c4a9f902535cb8cb00fc07c29329b7193a 2026-06-21T02:04:39-06:00 2026-06-21T02:04:39-06:00 feat(phase-20): cast_call_sites.py β€” the Β§17a-1 callee-cast cap tool; 6 recovered, fleet 58.63%->58.82% +0174 7f2f3148964e9279e0228300d2b01258d8604908 2026-06-21T09:26:44-06:00 2026-06-21T09:26:44-06:00 docs(phase-20): -O0 Γ—134 rollout is INVALID β€” cluster is overlay-local, not reach-134 (R14) +0175 a978081b2d5ede03295f018e5a6ddfafcf40119b 2026-06-21T09:30:22-06:00 2026-06-21T09:30:22-06:00 docs(phase-20): data-cast is moot (R14) β€” 0 data-type conflicts on the tail +0176 d5ddbc587dd8ff66ca755f992a8115bc628e276b 2026-06-21T09:31:20-06:00 2026-06-21T09:31:20-06:00 docs(phase-20): log consolidated state β€” cached ≀90-ins tail byte-exhausted; T5 is the lever +0177 f1a7e518f5e0ff9bbf4a1c9aee6589e2c35f4930 2026-06-21T09:57:37-06:00 2026-06-21T09:58:01-06:00 feat(phase-20): T3a CRACKED β€” %lo-folding -O0 falls to the array-of-struct idiom +0178 e803651f0cdb7be5327543847041da1bcedd319a 2026-06-21T10:26:34-06:00 2026-06-21T10:26:34-06:00 feat(phase-20): close β€” cap tool + T3a %lo crack + 3 byte-proven findings; fleet 58.00%->58.82% (v1.19.0) +0179 971f95f7c8431dcf9a22506b733a1a9fc6d1b71e 2026-06-21T11:50:31-06:00 2026-06-21T11:50:31-06:00 feat(phase-21): T1 β€” fuel manifest + R14 giants byte-verification +0180 5674587bcb0c2f8c0e558ba471fac677e4dee0fa 2026-06-21T12:00:47-06:00 2026-06-21T12:00:47-06:00 feat(phase-21): T2 β€” fuel prefetch, Ghidra-C cache complete for the ROI pool +0181 c2e93e50cd74d91ceac12b0a0212197b13eb6268 2026-06-21T12:32:21-06:00 2026-06-21T12:32:21-06:00 feat(phase-21): T3 β€” backlog ledger + shared gate stage (validated, +0.08%) +0182 2d7926e9f6eab9e96baeb9b46d8bd8563ca6d7a0 2026-06-21T12:41:14-06:00 2026-06-21T12:41:14-06:00 feat(phase-21): T4/T5 tooling β€” worker Workflow + wave selector + permuter grinder +0183 76c5feb1169a9f638095e61b5d1c3fd66f18c432 2026-06-21T12:50:16-06:00 2026-06-21T12:50:16-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 58.94%) +0184 bee543722da52a8486f1204e05da05176896af61 2026-06-21T13:04:40-06:00 2026-06-21T13:04:40-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 58.98%) +0185 8de18e617d0fab39e6c6a6d5e39f0b470f94a292 2026-06-21T13:06:34-06:00 2026-06-21T13:06:34-06:00 feat(phase-21): T4/T5/T6 β€” worker validated (func_80164530 x134), grinder, orchestrator +0186 66d1af0e09775f9632fdb40b5d62d2fbc3613ef2 2026-06-21T13:12:04-06:00 2026-06-21T13:12:04-06:00 docs(phase-21): automation runbook + status tool (grinder running; worker = remote-driven) +0187 1b3fc8b20aee752943574dcbc9b1553bbdb27b27 2026-06-21T13:13:17-06:00 2026-06-21T13:13:17-06:00 docs(phase-21): trip hand-off β€” grinder running, worker staged for remote drive +0188 7bd3fa2ee932fb026452201d5bed2f16f5d04098 2026-06-21T13:30:01-06:00 2026-06-21T13:30:01-06:00 docs(phase-21): backlog snapshot at reboot stopping point +0189 4d00a40609865f82039779995b83fc2fc98ec687 2026-06-21T13:50:39-06:00 2026-06-21T13:50:39-06:00 feat(phase-21): worker gate β€” +4 fns x2 propagated (fleet 59.05%) +0190 aa010db9d4dd613d9e7ae986746e0a814dc13006 2026-06-21T13:50:53-06:00 2026-06-21T13:50:53-06:00 feat(phase-21): R1 β€” gate pre-reboot wave2 drafts (+2 fns x134) +0191 5fc5d644455af78befa33dcaf1bc3635a41aada1 2026-06-21T13:56:59-06:00 2026-06-21T13:56:59-06:00 feat(phase-21): R2/R3 β€” the learning flywheel (class-grouped waves + distill) +0192 0a79cf63cd078d94b3149b114979afd035c59650 2026-06-21T13:58:44-06:00 2026-06-21T13:58:44-06:00 docs(phase-21): resume log β€” flywheel built, fleet 59.05%, ready for fresh-session /loop +0193 1d7c31393c6a62cd53080263c333aafa00173d03 2026-06-21T15:17:27-06:00 2026-06-21T15:17:27-06:00 feat(phase-21): worker gate β€” +7 fns x4 propagated (fleet 59.21%) +0194 fc3b7d25e11e8f98f2ca769b6eefc11f1647ad0a 2026-06-21T15:22:16-06:00 2026-06-21T15:22:16-06:00 docs(phase-21): distill β€” memcpy-unaligned + 16-byte struct block-copy + out-param-buffer idioms from func_80153800/func_80163A94/func_801749C8 +0195 7f272eb6b8af51dcdea5e213a443d77091abc4a9 2026-06-21T22:02:17-06:00 2026-06-21T22:02:17-06:00 feat(phase-21): worker gate β€” +5 fns x4 propagated (fleet 59.37%) +0196 0744e5ad89f0fc12e24ea4ede6777c2e481d0b8c 2026-06-21T22:05:23-06:00 2026-06-21T22:05:23-06:00 docs(phase-21): distill β€” disjoint-bits add->ori barrier idiom from func_80169058 +0197 125222d14e6e093b7fb1fed52fe50fa8b22abfda 2026-06-21T22:35:16-06:00 2026-06-21T22:35:16-06:00 feat(phase-21): worker gate β€” +7 fns x6 propagated (fleet 59.6%) +0198 9dcabfbdc7f2c1f1d57b29acc19c0cfff985bf1e 2026-06-21T22:39:22-06:00 2026-06-21T22:39:22-06:00 docs(phase-21): distill β€” giv-anchor store-order idiom from func_80178298 +0199 a1b29eac8aae13deeb5f38a771b3620404abbc83 2026-06-21T22:51:51-06:00 2026-06-21T22:51:51-06:00 feat(phase-21): recovery gate β€” +2 fns x2 propagated (fleet 59.68%) +0200 4927f38c46410f596c3bc1b88a5d5de5fe0aad05 2026-06-21T22:55:40-06:00 2026-06-21T22:55:40-06:00 feat(phase-21): option C β€” grinder blacklist + sig_unify DEF-side arity-extend recovery +0201 28767a6a0740139b688afdadaedf2537a564c144 2026-06-21T23:26:10-06:00 2026-06-21T23:26:10-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 59.72%) +0202 1332f43d55ad9337f2360c95564f19f43db01fea 2026-06-22T00:05:35-06:00 2026-06-22T00:05:35-06:00 feat(phase-21): worker gate β€” +4 fns x4 propagated (fleet 59.87%) +0203 29858df0b46531841d59be12382b79120aa98d8c 2026-06-22T00:08:05-06:00 2026-06-22T00:08:05-06:00 docs(phase-21): distill β€” register-short-truthiness sll-16 idiom from func_8013F244 +0204 8a6db99b859f120dc399582d4ebb9260187f17fe 2026-06-22T00:53:33-06:00 2026-06-22T00:53:33-06:00 feat(phase-21): worker gate β€” +3 fns x3 propagated (fleet 59.99%) +0205 40fa76284ec3ee9f33245eea6993d416bfedf58a 2026-06-22T00:59:06-06:00 2026-06-22T00:59:06-06:00 feat(phase-21): wave_targets skips close=0 plumbing-blocked near-misses from the pool +0206 7d46a6056eedc23d539d2f5fdbcbf87820fc35f6 2026-06-22T01:34:03-06:00 2026-06-22T01:34:03-06:00 feat(phase-21): worker gate β€” +4 fns x4 propagated (fleet 60.15%) +0207 77644039b870dd21d59a893af4f0a3e244cf3bff 2026-06-22T02:10:22-06:00 2026-06-22T02:10:22-06:00 feat(phase-21): worker gate β€” +6 fns x6 propagated (fleet 60.38%) +0208 7b477c82b9dacb9b91fe60dc9e602f7fd7c98e1f 2026-06-22T02:13:17-06:00 2026-06-22T02:13:17-06:00 feat(phase-21): wave_targets β€” exclude self-MATCH-but-gate-rejected via drafter verdict too +0209 33e21d305088ffeab6fcc49431681758cc974aa6 2026-06-22T02:50:42-06:00 2026-06-22T02:50:42-06:00 feat(phase-21): worker gate β€” +3 fns x3 propagated (fleet 60.5%) +0210 06496b52381b7691968a37732bc418e973dba3a6 2026-06-22T03:30:16-06:00 2026-06-22T03:30:16-06:00 feat(phase-21): worker gate β€” +4 fns x4 propagated (fleet 60.65%) +0211 0b77956d54b95577d6c79bca5273fddf8a017102 2026-06-22T03:31:30-06:00 2026-06-22T03:31:30-06:00 docs(phase-21): drafter-distilled idioms (non-volatile reload-clobber, phantom-frame induce) + backlog/progress regen +0212 43a356b3fbc60e3aa76b3c855e0caa1346356ed0 2026-06-22T04:25:30-06:00 2026-06-22T04:25:30-06:00 feat(phase-21): worker gate β€” +6 fns x5 propagated (fleet 60.85%) +0213 c63a41b1a85f799843382a132a69cbcc65eb0434 2026-06-22T05:07:05-06:00 2026-06-22T05:07:05-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 60.89%) +0214 9e9278d4a87ef7fe4774448ff48d8a9677152ad7 2026-06-22T05:31:06-06:00 2026-06-22T05:31:06-06:00 feat(phase-21): grinder gate β€” +1 fns x1 propagated (fleet 60.93%) +0215 501d112758adfe837680e2a6b416ca94e2cd2ee6 2026-06-22T07:47:14-06:00 2026-06-22T07:47:14-06:00 docs(phase-21): session handoff + queued 10h run (fleet 60.93%) β€” crash-recovery for fresh session +0216 b1272109c0cb38652a8a27443adeb0a003e9fd8c 2026-06-22T08:51:03-06:00 2026-06-22T08:51:03-06:00 feat(phase-21): worker gate β€” +3 fns x2 propagated (fleet 61.0%) +0217 72e71811d3580fada2feef0a678f585409f265cd 2026-06-22T08:54:00-06:00 2026-06-22T08:54:00-06:00 feat(phase-21): grinder gate β€” +1 fns x1 propagated (fleet 61.04%) +0218 382a559502049b2cbc428edfafd13e6e273102b4 2026-06-22T09:27:29-06:00 2026-06-22T09:27:29-06:00 feat(phase-21): worker gate β€” +2 fns x2 propagated (fleet 61.12%) +0219 f137658171ebe2c2142ea2de55f3ec2787d90de8 2026-06-22T09:36:47-06:00 2026-06-22T09:36:47-06:00 fix(phase-21): drafters write ONLY their draft .c β€” distill owns cookbook (prevent unverified near-miss idiom pollution) +0220 3299d7f1a2ba5e2c3df5dd662d4846c9c296dd84 2026-06-22T10:51:47-06:00 2026-06-22T10:51:47-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 61.16%) +0221 9d07712205d7dc99d89bcd25c16defab56cb5120 2026-06-22T21:22:35-06:00 2026-06-22T21:22:35-06:00 feat(phase-21): reach-1 harvest pivot β€” fuel built + handoff (Γ—134 walls exhausted at 61.16%) +0222 8851053417773075fee54843752c547a3b3cb1a0 2026-06-23T00:36:17-06:00 2026-06-23T00:36:17-06:00 feat(phase-21): worker gate β€” +15 fns x0 propagated (fleet 61.16%) +0223 7d4c1582eb6b163599bdf71cd6aa4e63aaaa241a 2026-06-23T00:46:48-06:00 2026-06-23T00:46:48-06:00 feat(phase-21): worker gate β€” +21 fns x0 propagated (fleet 61.17%) +0224 9f028b8f683f2a893003ad624b77d6d4f5430eae 2026-06-23T01:06:05-06:00 2026-06-23T01:06:05-06:00 feat(phase-21): worker gate β€” +17 fns x0 propagated (fleet 61.18%) +0225 bbfe27d095797082e2dc6544daafe67374749f69 2026-06-23T01:09:19-06:00 2026-06-23T01:09:19-06:00 docs(phase-21): distill β€” u16-vs-s16 high-bit-const halfword-store ori idiom from func_8017E924 +0226 8484dfc6f1ae582d86cb45246b561d01a91cc71d 2026-06-23T01:25:51-06:00 2026-06-23T01:25:51-06:00 feat(phase-21): worker gate β€” +18 fns x0 propagated (fleet 61.18%) +0227 478aeeee2a4b27916e4bb9bfd118b84b7e5936da 2026-06-23T01:28:13-06:00 2026-06-23T01:28:13-06:00 docs(phase-21): distill β€” $sp-switch inline-asm trampoline idiom (maspsx delay-nop/.set-reorder/%% rules) from func_8014CCB4 family +0228 d09248361bfc77b0c985dc9a9b7c2e4c647acdfb 2026-06-23T01:34:08-06:00 2026-06-23T01:34:08-06:00 fix(phase-21): pool excludes ALL self-MATCH-but-gate-rejected churners +0229 c20d87207eef551a5e218e8e9de403422d632a58 2026-06-23T01:38:06-06:00 2026-06-23T01:38:06-06:00 feat(phase-21): worker gate β€” +21 fns x0 propagated (fleet 61.19%) +0230 43d089ec64e67abc91a12a9d2ec36f7f1ac2f405 2026-06-23T01:42:09-06:00 2026-06-23T01:42:09-06:00 docs(phase-21): distill β€” byte-predecrement +0xFF-not-1 immediate idiom from func_8016EBA8 +0231 df88ca83ba53565eedd9a4dbde12ca29e4437d53 2026-06-23T02:02:54-06:00 2026-06-23T02:02:54-06:00 feat(phase-21): worker gate β€” +16 fns x0 propagated (fleet 61.19%) +0232 c694c9d7a186cd499ae566a923a20c60df7f7357 2026-06-23T02:05:40-06:00 2026-06-23T02:05:40-06:00 docs(phase-21): distill β€” combined store-and-capture call-result idiom from func_80142DC4 +0233 e59e8b5ef6dd87fb54f6eb046762c4014f65f028 2026-06-23T02:07:35-06:00 2026-06-23T02:07:35-06:00 chore(phase-21): checkpoint β€” session 2026-06-23 reach-1 progress (fleet 61.19%, 165 banked, 4 idioms, pool fix) +0234 fea30940b3eb7497f79d5579483925ce447e7f34 2026-06-23T02:20:05-06:00 2026-06-23T02:20:05-06:00 feat(phase-21): worker gate β€” +16 fns x0 propagated (fleet 61.2%) +0235 279662bbed6674422f27c233858d616fd7121273 2026-06-23T02:23:46-06:00 2026-06-23T02:23:46-06:00 docs(phase-21): distill β€” barrier-free memory-reload-via-statement-order idiom from func_80168430 +0236 cbdbe04229a1e674b7227e9bb0cfcc74fb28dc45 2026-06-23T02:43:01-06:00 2026-06-23T02:43:01-06:00 feat(phase-21): worker gate β€” +17 fns x0 propagated (fleet 61.2%) +0237 1e5cc1b28fda17a2e0016e850de905446c957ca5 2026-06-23T02:45:37-06:00 2026-06-23T02:45:37-06:00 docs(phase-21): distill β€” exploit-cross-jump dual-arm-call idiom from func_80159BE4 +0238 b58aef625cef794ab2e457e92a9ef0ce58330e8c 2026-06-23T03:07:39-06:00 2026-06-23T03:07:39-06:00 feat(phase-21): worker gate β€” +17 fns x0 propagated (fleet 61.21%) +0239 39164b7b6bac76e6263c4fafe62c62a7192547ad 2026-06-23T03:08:30-06:00 2026-06-23T03:08:30-06:00 fix(phase-21): pool excludes re-drafted-twice near-miss walls +0240 8e892ad49e12a6da035af19fab0f722d01258da7 2026-06-23T03:11:26-06:00 2026-06-23T03:11:26-06:00 docs(phase-21): distill β€” packed-aligned(1)-union unaligned-source load idiom from func_80142A80 +0241 a830648291813a4d1c02b64e14b8ffd4a743ca56 2026-06-23T03:13:49-06:00 2026-06-23T03:13:49-06:00 chore(phase-21): checkpoint β€” session reach-1 progress (fleet 61.21%, 215 banked, 7 idioms, 2 pool fixes) +0242 50bc85d72b40abfbd0eecfdf7e1fe77edc9a9591 2026-06-23T03:36:16-06:00 2026-06-23T03:36:16-06:00 feat(phase-21): worker gate β€” +11 fns x0 propagated (fleet 61.21%) +0243 934c007df8cc6c39bde40c13e9c5054eecbad7e2 2026-06-23T03:39:30-06:00 2026-06-23T03:39:30-06:00 docs(phase-21): distill β€” global-RMW pointer-var address-materialize idiom from func_80186938 +0244 80ba81ffa8f982ba4399ec56f3fe9daa736a6f3b 2026-06-23T10:33:43-06:00 2026-06-23T10:33:43-06:00 feat(phase-21): worker gate β€” +14 fns x0 propagated (fleet 61.21%) +0245 d07c6edb0a473cb221689d01472ed4bb5f32f923 2026-06-23T10:36:56-06:00 2026-06-23T10:36:56-06:00 docs(phase-21): distill β€” volatile-global forces reload-between-stores idiom from func_801806D8 +0246 6420413571c0a26da77692847d09e793f6583619 2026-06-23T11:09:23-06:00 2026-06-23T11:09:23-06:00 feat(phase-21): worker gate β€” +13 fns x0 propagated (fleet 61.22%) +0247 28afb3c49c8b18d9162adf5cd351f89e98da9f0b 2026-06-23T11:12:15-06:00 2026-06-23T11:12:15-06:00 docs(phase-21): distill β€” per-access (volatile T*) field-reload idiom from func_801424E4 +0248 1e2d905b5c7bc883c0cf56db3fd293d5d52b7b63 2026-06-23T11:48:21-06:00 2026-06-23T11:48:21-06:00 feat(phase-21): worker gate β€” +8 fns x0 propagated (fleet 61.22%) +0249 e8b1f8f253ad68d534b12d0603e8dacbf1bd7d08 2026-06-23T11:50:51-06:00 2026-06-23T11:50:51-06:00 docs(phase-21): distill β€” explicit-temp load-delay-fill idiom from func_801856F8 +0250 50070aad941724d65afcc9fca127420100f75bff 2026-06-23T12:01:50-06:00 2026-06-23T12:01:50-06:00 feat(phase-21): grinder gate β€” +2 fns x0 propagated (fleet 61.22%) +0251 296d834467f469053d89f921f103d9c5dea5ce0d 2026-06-23T12:18:12-06:00 2026-06-23T12:18:12-06:00 feat(phase-21): worker gate β€” +13 fns x13 propagated (fleet 61.73%) +0252 c9e7c26af4c023d2b44dfa626ef403d97e6acca6 2026-06-23T12:19:06-06:00 2026-06-23T12:19:06-06:00 feat(phase-21): grinder gate β€” +1 fns x0 propagated (fleet 61.73%) +0253 f555a441a33116a9c8e7b8af910ff0adeb77fef7 2026-06-23T12:21:51-06:00 2026-06-23T12:21:51-06:00 docs(phase-21): distill β€” handwritten-GTE-sqr cop2-nop + raw-byte-verify idiom from func_8013E2C4 +0254 74021b08408f3518457bd52521e68187ed85a065 2026-06-23T12:23:52-06:00 2026-06-23T12:23:52-06:00 chore(phase-21): checkpoint β€” PIVOT to reach-134 (fleet 61.73%, +0.51%/wave); grinder live; 12 idioms +0255 c2bad12d6cc384e2faf1eacd5e5b32eba2a2ff0c 2026-06-23T12:39:39-06:00 2026-06-23T12:39:39-06:00 feat(phase-21): worker gate β€” +13 fns x12 propagated (fleet 62.19%) +0256 3074584982f18bce034e48d7e71b0dcfe4afb70f 2026-06-23T12:45:22-06:00 2026-06-23T12:45:22-06:00 feat(phase-21): grinder gate β€” +1 fns x1 propagated (fleet 62.23%) +0257 90b94971cd14c4e38d7f13fbd9df602571a541ab 2026-06-23T12:46:39-06:00 2026-06-23T12:46:39-06:00 fix(phase-21): --class mode filters to still-unbanked genuine near-misses +0258 b5eb1718afe4c7b72b1c7f4c5f23af31e4e2393b 2026-06-23T14:15:31-06:00 2026-06-23T14:15:31-06:00 feat(phase-21): grinder gate β€” +1 fns x1 propagated (fleet 62.27%) +0259 71e3dc93703bc8595db225f9e08079a04b09f952 2026-06-23T18:43:33-06:00 2026-06-23T18:43:33-06:00 chore(phase-21): SESSION CHECKPOINT β€” fleet 62.27% (+1.11%); reach-134 pivot + giants finding; full handoff +0260 ccd61d6528a2499cd7667a314251d6f57034bc3b 2026-06-23T19:35:21-06:00 2026-06-23T19:35:21-06:00 feat(phase-21): worker gate β€” +1 fns x1 propagated (fleet 62.31%) +0261 72a5da614bec815e749cbf23f48e60972ce8a702 2026-06-23T19:39:18-06:00 2026-06-23T19:39:18-06:00 docs(phase-21): giants are near-misses not plumbing-blocked (R14) β€” func_80153E00 cracked via scalar-data-cast +0262 0d92e5640f275371a1cebf305261e8742f92374f 2026-06-24T01:19:26-06:00 2026-06-24T01:19:26-06:00 docs(phase-21): correct the giants finding β€” stale+incomplete drafts, not cheap near-misses (R14/P9) +0263 cbf7e774ab17f84958c464325cdd49eef4ae7138 2026-06-24T13:11:56-06:00 2026-06-24T13:11:56-06:00 feat(phase-21): split-aware dedup_propagate + cast_call_sites --src-file (unlock the _a.c vein) +0264 7b5cdfe80e894f899b44dd21f95bd52bd7085a64 2026-06-24T19:26:28-06:00 2026-06-24T19:26:28-06:00 chore(phase-21): CURRENT_PHASE up to date β€” grinder relaunched (token-free background filler) +0265 91430e930949dd6c3904b9212195204ffbfc067a 2026-06-24T19:35:17-06:00 2026-06-24T19:35:17-06:00 feat(phase-21): _a wave is turnkey β€” gate_stage --src-file + wave_targets region-aware asm +0266 19c163d3b70c7e1602d914109fd3ade318eb6665 2026-06-24T20:13:51-06:00 2026-06-24T20:13:51-06:00 feat(phase-21): worker gate β€” +11 fns x0 propagated (fleet 62.31%) +0267 1e3410ffc1df475b26898ec3730235b6d8648bba 2026-06-24T20:35:19-06:00 2026-06-24T20:35:19-06:00 feat(phase-21): propagate 10 _a-wave fns x134 β€” _a vein is a real x134 lever (fleet 215699 / 344010 = 62.70%) +0268 e30697a081448ec5fa0feef787cedf60b79196dc 2026-06-24T20:37:57-06:00 2026-06-24T20:37:57-06:00 docs(phase-21): _a vein is a x134 lever (10/11) β€” worker_wave region-fix + cont.4 findings +0269 04c5c9b47f73689cf25211583f989b2dd73b9ccc 2026-06-24T21:32:05-06:00 2026-06-24T21:32:05-06:00 fix(phase-21): dedup_propagate skips -O0 overlay-local fns + gate_stage surfaces prop failures +0270 881e462e0e5d276b38252fab8a393f3c0d3b741c 2026-06-24T21:53:10-06:00 2026-06-24T21:53:10-06:00 feat(phase-21): worker gate β€” +6 fns x0 propagated (fleet 62.7%) +0271 05e98070ba3e21265443add3925b37e05101360c 2026-06-24T22:09:47-06:00 2026-06-24T22:09:47-06:00 feat(phase-21): drop-straggler propagation banks 3 _a fns x134 (fleet 216104 / 344010 = 62.82%) +0272 5e5423e953d2d35fe598f59cb377760d30b70ec7 2026-06-24T22:11:27-06:00 2026-06-24T22:11:27-06:00 feat(phase-21): dedup_propagate drop-straggler retry β€” _a pipeline now hands-free +0273 3943c34ac42c991b7065a2bcb2b5c678841d7362 2026-06-24T22:48:09-06:00 2026-06-24T22:48:09-06:00 feat(phase-21): worker gate β€” +6 fns x4 propagated (fleet 62.98%) +0274 a79aa410bd788bdb41fc2b41a7e8ad8da87ec455 2026-06-24T22:59:04-06:00 2026-06-24T22:59:04-06:00 feat(phase-21): idiom_loop.py β€” the neverending idiom-learning meta-loop (wall->assess->fuel) +0275 1c1b75026a43ba36037b26d41b8c688d394b7a49 2026-06-24T23:16:18-06:00 2026-06-24T23:16:18-06:00 feat(phase-21): worker gate β€” +7 fns x4 propagated (fleet 63.13%) +0276 63b83d93f6220e783bed98467bd35072aea406d2 2026-06-24T23:17:06-06:00 2026-06-24T23:17:06-06:00 chore(phase-21): regen digests at the cont.5 handoff checkpoint (fleet 63.13%) +0277 e5ae5958d5c65cdd95afb2b305dbe5b4b5ab7e49 2026-06-25T00:57:32-06:00 2026-06-25T00:57:32-06:00 feat(phase-21): recover-a gate β€” +1 fns x1 propagated (fleet 63.17%) +0278 1ca0faef29b2b800a033d192fc725e97210bfc8a 2026-06-25T01:06:36-06:00 2026-06-25T01:06:36-06:00 feat(phase-21): sched-idiom gate β€” +1 fns x0 propagated (fleet 63.17%) +0279 790326057adf8c6706394b65bb8cf1dc15277d92 2026-06-25T01:17:12-06:00 2026-06-25T01:17:12-06:00 feat(phase-21): cont.6 β€” sig_unify --src-file + gate two-stage; schedule idiom = coalescing (Β§25) +0280 cf23808d5c2d10ea399acc8c6e905f381e5fff9c 2026-06-25T13:09:02-06:00 2026-06-25T13:09:02-06:00 feat(phase-21): cont.7 β€” cheap close=0 recovery EXHAUSTED (byte-proven); fix --assess double inflation +0281 61a37534b9ed4997b78dcdc1f0b96d407c3505b3 2026-06-25T13:52:43-06:00 2026-06-25T13:52:43-06:00 docs(phase-21): cont.7b β€” resolved-reach probe REFUTED + close-1 tail is permuter-class (2 R14) +0282 8e78cd7ce83b21889a553ca52a100ab59c28af7c 2026-06-25T16:32:31-06:00 2026-06-25T16:32:31-06:00 feat(phase-21): cont.7c β€” giant approach VALIDATED (func_80176D94 structurally matched) + recipe Β§27 +0283 62fa026f7e4673dc53a4d1aaf04c356b482d25a4 2026-06-25T16:46:35-06:00 2026-06-25T16:46:35-06:00 feat(phase-21): worker_wave β€” GIANT-guarded Β§27 hint (arg-arity decls, sibling templates, coalescing residual) +0284 4b836add6dfe9484031ce1399f92972325518bb6 2026-06-25T17:27:46-06:00 2026-06-25T17:27:46-06:00 feat(phase-21): cont.7d β€” 6-giant wave banked 0; giants don't auto-bank (the honest result) +0285 4284afb9e6a2216392e11f9245a5cc5fe144d0ed 2026-06-25T17:36:17-06:00 2026-06-25T17:36:17-06:00 docs(phase-21): cont.7d β€” frame-pressure-locked giant residuals are PERMUTER-ONLY (Β§27) +0286 653d123b658450597a2ae63c22ba5b28045bfcd6 2026-06-25T18:19:19-06:00 2026-06-25T18:19:19-06:00 docs(phase-21): cont.7d β€” deep frame-RE doesn't crack a scheduler-walled giant (Β§27) +0287 8df3b90722814c878ae07c6074e03f4a26a92f47 2026-06-25T19:01:31-06:00 2026-06-25T19:01:31-06:00 docs(phase-21): cont.7e β€” Drew's refined idiom-loop model = the built flywheel + the analyze-all-remaining gap +0288 8be03a7859986753bfca53219fab9bc10c11ca65 2026-06-25T19:12:35-06:00 2026-06-25T19:12:35-06:00 docs(phase-21): cont.7e β€” Drew's decision: keep Phase 21 OPEN, hand off to fresh session (+ lean-orchestrator lesson) +0289 3d9e8f0a9a7e3f9815219192f2c91d4988ef3202 2026-06-25T20:30:30-06:00 2026-06-25T20:30:30-06:00 feat(phase-21): worker gate β€” +10 fns x0 propagated (fleet 63.17%) +0290 2b6931696331b7edb2a9da0dcebd70bdd289658d 2026-06-25T20:41:57-06:00 2026-06-25T20:41:57-06:00 docs(phase-21): distill β€” chained-store-fanout idiom from func_80143D28 +0291 ac7f2dcddd4355a5b5fca2b854dd4e52c6bfad22 2026-06-25T21:28:23-06:00 2026-06-25T21:28:23-06:00 feat(phase-21): worker gate β€” +6 fns x0 propagated (fleet 63.18%) +0292 1f4aac62fbbb2ac6d17be52cf1a2226d6b12b43e 2026-06-25T23:56:12-06:00 2026-06-25T23:56:12-06:00 docs(phase-21): cont.8 β€” collaboration sweep (clean verdicts) + 62 PsyQ names + SETUP -G fix +0293 34dded11cff3fe67114905f058da02c0f865758a 2026-06-25T23:59:22-06:00 2026-06-25T23:59:22-06:00 docs(phase-21): cont.8 β€” record the collaboration-sweep closure (dedup clean-negative across all 3 sisters; no external shortcut to the wall) +0294 b70c9c86310b70b5bb1675460a2ed02c3d941ce6 2026-06-26T01:17:49-06:00 2026-06-26T01:17:49-06:00 docs(phase-21): log xsig open-source genericize task as future work (Drew, 2026-06-26) +0295 ddf9266ab0db3a9319e07a95ab58ce2679aadbf8 2026-06-26T01:34:09-06:00 2026-06-26T01:34:09-06:00 feat(phase-21): close β€” automation manager built + run + ceiling byte-proven; fleet 58.82%->63.18% (v1.20.0) +0296 013806b075c491a4947413286148693b8ee96a71 2026-06-26T02:07:03-06:00 2026-06-26T02:07:03-06:00 feat(phase-22): T0 β€” unified byte-weighted ranked worklist (the loop's decision spine) +0297 75dc869099de31c0bf8f24de1dae945002e07878 2026-06-26T02:54:39-06:00 2026-06-26T02:54:39-06:00 feat(phase-22): T1 β€” calibrate hand-loop; func_8015126C banked x134 (fleet 63.18%->63.22%) +0298 0375cd529be112761201e047516d0073fd22c8eb 2026-06-26T03:06:54-06:00 2026-06-26T03:06:54-06:00 docs(phase-22): T3 β€” distill Β§28 canonical-extern recovery + recover_giant.py + decomp.wiki patterns +0299 b234130666a29b475dc202dee1a3628e5f780f4e 2026-06-26T03:16:39-06:00 2026-06-26T03:16:39-06:00 chore(phase-22): session checkpoint β€” reports regen + resume pointer (fleet 63.22%, grinder stopped) +0300 b5a1fe6dab47a80e4365e72fbf88523fd416eb41 2026-06-26T03:45:35-06:00 2026-06-26T03:45:35-06:00 feat(phase-22): T2 β€” giant func_80156B74 banked Γ—134 via engine_types.h type-lift (fleet 63.22%->63.25%) +0301 d789d9c24273fe33f902340230fe86578149fb1b 2026-06-26T03:51:11-06:00 2026-06-26T03:51:11-06:00 feat(phase-22): T2 β€” giant func_80163C2C banked Γ—134 via Blk16/Buf32 type-lift (fleet 63.25%->63.29%) +0302 c1230fa6eaf104814ae52e9969d017e89d0728d2 2026-06-26T04:14:06-06:00 2026-06-26T04:14:06-06:00 feat(phase-22): T2 close=0 recovery batch β€” 14 fns Γ—134 (fleet 63.29%->63.66%) +0303 23ba3cc677c68790e1128aa913fa026a48a5d65b 2026-06-26T04:15:54-06:00 2026-06-26T04:15:54-06:00 chore(phase-22): refresh worklist after close=0 batch (441 live stubs, fleet 63.66%) +0304 20037480cf4b613a186448c8894d83c71a81df25 2026-06-26T10:01:01-06:00 2026-06-26T10:01:01-06:00 docs(phase-22): log func_801372B0 structural near-miss (giant scheduler-wall) + session checkpoint +0305 a126d2170d6c9c8a0465bf54ff66b3dfea12b653 2026-06-26T22:25:17-06:00 2026-06-26T22:25:17-06:00 docs(phase-22): correct cookbook Β§28b-6 β€” the dedup_propagate registry-skip is independent of concurrent make (R14, per Β§28c) +0306 cac25bd74b1e9ada3e94ad81691025f24fc35a46 2026-06-27T14:31:54-06:00 2026-06-27T14:31:54-06:00 docs(phase-22): grinder stopped (clean) + ROI audit β€” 7 banks all-time, 2 bugs logged +0307 6d5fe3dfde1eac157789a1a010756502ea9eac9c 2026-06-29T12:51:40-06:00 2026-06-29T12:51:40-06:00 feat(phase-22): bank 4 fns from cheap-tier A/B experiment (byte-verified, fleet 63.66->63.67) +0308 f154822f7b1a3114797228e475b28b6b7e99a998 2026-06-29T12:52:39-06:00 2026-06-29T12:52:39-06:00 feat(phase-22): cheap-tier A/B experiment harness + findings +0309 3549f756f7d47961c0a2452f2e313a953de30aa6 2026-06-29T13:05:18-06:00 2026-06-29T13:05:18-06:00 feat(phase-22): api_draft.py β€” provider-agnostic draft worker (local/OpenRouter) +0310 ad535ad1abc40fbf0de2bc0786427b58eddb7ec0 2026-06-29T14:27:19-06:00 2026-06-29T14:27:19-06:00 feat(phase-22): gen2 matching-model design + export_pairs.py corpus miner +0311 4895843dda7ed371c7d2342c343d4d275c26f793 2026-06-29T16:24:37-06:00 2026-06-29T16:24:37-06:00 feat(phase-22): api_draft fair-harness β€” inline common.h + live cookbook + corpus examples +0312 671177aece85eca364d5f7bca5f1e04f59e8fabb 2026-06-29T16:26:29-06:00 2026-06-29T16:26:29-06:00 docs(phase-22): capture stock-local-model floor β€” 0 reliable banks, motivates the LoRA specialist +0313 1c80b25ac6d41ea762275c6130e90d7ef29d1924 2026-06-29T16:35:06-06:00 2026-06-29T16:35:06-06:00 feat(phase-22): LoRA specialist pilot tooling β€” format_finetune + train_lora + api_draft LEAN +0314 dfd97226cca98bec910f33724ea5ae663c475dcd 2026-06-29T16:43:19-06:00 2026-06-29T16:43:19-06:00 feat(phase-22): format_finetune compile-filter β€” keep only standalone-compilable pairs +0315 803be6341cc075bbb48016bed3cdde5b77ac875e 2026-06-29T16:49:11-06:00 2026-06-29T16:49:11-06:00 feat(phase-22): eval_lora held-out scorer (validated) + train_lora --max-steps +0316 0a75c2470dcd61e2ab0b8f482a0e202eb000c3c9 2026-06-29T19:43:59-06:00 2026-06-29T19:43:59-06:00 docs(phase-22): LoRA pilot result β€” NEGATIVE on meaningful fns (corpus-starved) +0317 85377060067d7a15ba52c0972d3d9e56d9212fc0 2026-06-29T20:03:53-06:00 2026-06-29T20:03:53-06:00 feat(phase-22): corpus-v2 β€” capture the extern block above each def (self-contained completions) +0318 748dece7fc9dfc87504629d0f3637b0814df6190 2026-06-29T20:07:48-06:00 2026-06-29T20:07:48-06:00 feat(phase-22): train_lora auto-cleans GGUF intermediates (the ~30GB that crashed C:) +0319 6a45497a1e76eef70164142470d96d7c763b2725 2026-06-29T21:33:21-06:00 2026-06-29T21:33:21-06:00 docs(phase-22): corpus-v2 result β€” POSITIVE, data was the bottleneck +0320 b4c312a30ccbf1dec7ae5f0265b967597f767ca7 2026-06-29T21:58:09-06:00 2026-06-29T21:58:09-06:00 feat(phase-22): FIRST free-local-model banks β€” 4 open stubs matched by the v2 LoRA +0321 edd62ef992ef558cd89e3b11df77ed6d94183902 2026-06-29T22:10:05-06:00 2026-06-29T22:10:05-06:00 feat(phase-22): lora_grind.py β€” the free local-model mass-run (draft source for the grinder flywheel) +0322 8016481036a43f23998948288e93856e6c3e60e5 2026-06-29T23:32:57-06:00 2026-06-29T23:32:57-06:00 feat(phase-23): lora-grind gate β€” +7 fns x0 propagated (fleet 63.67%) +0323 bff03dbdb556080b34651a2cd69c4382cc1dc083 2026-06-29T23:44:12-06:00 2026-06-29T23:44:12-06:00 fix(phase-23): T7 β€” lora_grind broad-rotation banking (two gate bugs); ov_SC01_000 7/15 +0324 366f7e4c7fedf7108b5b94f16adaec63cc092c18 2026-06-30T00:12:45-06:00 2026-06-30T00:12:45-06:00 feat(phase-23): T9 β€” reach>=2 targeting (lora_grind --min-reach); shared-code is the model's weak band +0325 64cc91ee83564aff1486222a58dc641b9ce0a4db 2026-06-30T00:26:49-06:00 2026-06-30T00:26:49-06:00 feat(phase-22): close β€” tractable giants banked Γ—134 (fleet 63.18->63.66%), irreducible tail byte-deferred; pivot to the LLM tier (v1.21.0) +0326 117081c7d856637c7524810382b284f108fb0ca1 2026-06-30T00:52:14-06:00 2026-06-30T00:52:14-06:00 feat(phase-23): grinder gate β€” +3 fns x0 propagated (fleet 63.67%) +0327 e91859fb4a46897ba0dc20baaffe4f9c1cd00b74 2026-06-30T00:57:11-06:00 2026-06-30T00:58:13-06:00 feat(phase-23): grinder per-binary fix (5-layer) β€” unlock non-077 near-miss grinding +0328 5c44a317b32455a35f448461eb7bed857d759806 2026-06-30T01:38:00-06:00 2026-06-30T01:38:00-06:00 feat(phase-23): lora-grind gate β€” +3 fns x0 propagated (fleet 63.67%) +0329 066a2e5c8f61a7f78a1240c1e54fa58caae4e21e 2026-06-30T01:46:54-06:00 2026-06-30T01:46:54-06:00 feat(phase-23): local GPU serving + prompt-fix + corpus-v3 (macro+struct mining) +0330 b6019333dd14ea7518e8b8f1c860c47360cfaace 2026-06-30T04:29:10-06:00 2026-06-30T04:29:10-06:00 feat(phase-23): lora-grind gate β€” +4 fns x0 propagated (fleet 63.67%) +0331 4359e647505c91d3cc1e7f0df02a4a2821ae2f41 2026-06-30T04:40:13-06:00 2026-06-30T04:40:13-06:00 feat(phase-23): lora-grind gate β€” +8 fns x0 propagated (fleet 63.67%) +0332 aec384eccd6d78a0742a11a8f4065075d3c85abc 2026-06-30T04:46:49-06:00 2026-06-30T04:46:49-06:00 feat(phase-23): lora-grind gate β€” +9 fns x0 propagated (fleet 63.68%) +0333 758ab7de65cce86031a2ab4763486bebabd214d9 2026-06-30T05:00:13-06:00 2026-06-30T05:00:13-06:00 feat(phase-23): lora-grind gate β€” +14 fns x0 propagated (fleet 63.72%) +0334 b03fdb1dcbb6126278b927e6176b82e43184ccbd 2026-06-30T05:06:04-06:00 2026-06-30T05:06:04-06:00 feat(phase-23): lora-grind gate β€” +19 fns x0 propagated (fleet 63.72%) +0335 9623afd3fac39f0a2b862649cb39f3b41296267e 2026-06-30T05:12:09-06:00 2026-06-30T05:12:09-06:00 feat(phase-23): lora-grind gate β€” +10 fns x0 propagated (fleet 63.73%) +0336 238a1c00d8cc78abbd23ce1dac0b405d0cb720b2 2026-06-30T05:18:19-06:00 2026-06-30T05:18:19-06:00 feat(phase-23): lora-grind gate β€” +17 fns x0 propagated (fleet 63.73%) +0337 865d185a8a967e1c4f2acfae0ea65116871f5dda 2026-06-30T05:24:51-06:00 2026-06-30T05:24:51-06:00 feat(phase-23): lora-grind gate β€” +9 fns x0 propagated (fleet 63.73%) +0338 0188638afd1ef9da592f1e6855e27649e59e35cc 2026-06-30T05:29:37-06:00 2026-06-30T05:29:37-06:00 feat(phase-23): lora-grind gate β€” +1 fns x0 propagated (fleet 63.73%) +0339 c7775eb8b575b6ffabe09b11f0b8ac5a4d63e3ff 2026-06-30T05:36:16-06:00 2026-06-30T05:36:16-06:00 feat(phase-23): lora-grind gate β€” +15 fns x0 propagated (fleet 63.74%) +0340 cba2addc1da7374d6e55e2edae26b681ab207272 2026-06-30T05:47:52-06:00 2026-06-30T05:47:52-06:00 feat(phase-23): lora-grind gate β€” +19 fns x0 propagated (fleet 63.74%) +0341 fb1fe5e2263ef522398b3eac79a645beb3c65ce4 2026-06-30T05:53:40-06:00 2026-06-30T05:53:40-06:00 feat(phase-23): lora-grind gate β€” +25 fns x0 propagated (fleet 63.75%) +0342 37cc7d8dd67be5ab34efdc2122be99c4e9fd3d2f 2026-06-30T06:08:18-06:00 2026-06-30T06:08:18-06:00 feat(phase-23): lora-grind gate β€” +12 fns x0 propagated (fleet 63.76%) +0343 0409ee9199c0fcf5f146dc6c6b3cad576f4e8f78 2026-06-30T06:14:51-06:00 2026-06-30T06:14:51-06:00 feat(phase-23): lora-grind gate β€” +13 fns x0 propagated (fleet 63.76%) +0344 189cc113c289ee4b743f0933bfcb740f886f1dd6 2026-06-30T06:20:35-06:00 2026-06-30T06:20:35-06:00 feat(phase-23): lora-grind gate β€” +19 fns x0 propagated (fleet 63.77%) +0345 714760a1a05dbc65b67ba856b82d692a88b5c13a 2026-06-30T06:27:19-06:00 2026-06-30T06:27:19-06:00 feat(phase-23): lora-grind gate β€” +15 fns x0 propagated (fleet 63.77%) +0346 29800c80588b8038a9b3257d333604fe99280008 2026-06-30T06:32:48-06:00 2026-06-30T06:32:48-06:00 feat(phase-23): lora-grind gate β€” +11 fns x0 propagated (fleet 63.78%) +0347 581e27d7f41ae66fe135406fe18773b7e72fb666 2026-06-30T06:39:20-06:00 2026-06-30T06:39:20-06:00 feat(phase-23): lora-grind gate β€” +14 fns x0 propagated (fleet 63.78%) +0348 3d4f7778fa4d87a2aaf5b9b5da2bb7a92c482236 2026-06-30T06:46:02-06:00 2026-06-30T06:46:02-06:00 feat(phase-23): lora-grind gate β€” +18 fns x0 propagated (fleet 63.79%) +0349 07ff65a2677164ca71b31da1ca2fbac6d3ae6d16 2026-06-30T06:52:08-06:00 2026-06-30T06:52:08-06:00 feat(phase-23): lora-grind gate β€” +14 fns x0 propagated (fleet 63.79%) +0350 a2b5ff345ff4d3fd95d6cb142a352cf9c8f4d18d 2026-06-30T07:04:34-06:00 2026-06-30T07:04:34-06:00 feat(phase-23): lora-grind gate β€” +13 fns x0 propagated (fleet 63.79%) +0351 996f54dac9849d35a21af77bcd1306ededb23b7e 2026-06-30T07:11:19-06:00 2026-06-30T07:11:19-06:00 feat(phase-23): lora-grind gate β€” +18 fns x0 propagated (fleet 63.8%) +0352 8eb11589048685272d2c2dbb3faa7a3f74b958ef 2026-06-30T07:17:05-06:00 2026-06-30T07:17:05-06:00 feat(phase-23): lora-grind gate β€” +23 fns x0 propagated (fleet 63.81%) +0353 88fdb17943b5135dc3578d7362d88c004d3a7e35 2026-06-30T07:23:11-06:00 2026-06-30T07:23:11-06:00 feat(phase-23): lora-grind gate β€” +18 fns x0 propagated (fleet 63.81%) +0354 ac968645f20b3c747da8f16877d59197382a8101 2026-06-30T07:31:49-06:00 2026-06-30T07:31:49-06:00 feat(phase-23): lora-grind gate β€” +14 fns x0 propagated (fleet 63.82%) +0355 1eadbc73e9affa06efce693a2f47cbec2b087fb5 2026-06-30T07:36:33-06:00 2026-06-30T07:36:33-06:00 docs(phase-23): 8-hour autonomous run β€” corpus-v3 + v3 + local serving; fleet 63.67->63.82% +0356 76054ef3830107d3cdc172bdf8506fbf75d27ceb 2026-06-30T07:37:10-06:00 2026-06-30T07:37:10-06:00 chore(phase-23): gitignore the unused .venv-serve (llama-cpp SIGILLs; serve via .venv-train) +0357 060334d744a5b8a2f604f049f3c6c85a7b8ef753 2026-06-30T09:45:32-06:00 2026-06-30T09:45:32-06:00 docs(phase-23): CURRENT_PHASE up to date β€” v3 + local serving live; T8/T9 done; next = reachβ‰₯2 (v3) or 14B +0358 d9f4dc86e481a898a5f1dda824b2aa684e84dc6a 2026-06-30T10:08:51-06:00 2026-06-30T10:08:51-06:00 docs(phase-23): lock the decided next-session sequence β€” A (reachβ‰₯2 with v3) then B (14B) +0359 1b24f21a279ab93733c66ed58838d2fa5e483d69 2026-06-30T10:36:23-06:00 2026-06-30T10:36:23-06:00 feat(phase-23): lora-grind gate β€” +6 fns x0 propagated (fleet 63.82%) +0360 708f5971fc0658aa551e3c1587cc0416cb10b03d 2026-06-30T10:43:32-06:00 2026-06-30T10:43:32-06:00 feat(phase-23): lora-grind gate β€” +1 fns x0 propagated (fleet 63.82%) +0361 ecc95da031389d1c87d165edff4086604a024158 2026-06-30T11:02:19-06:00 2026-06-30T11:02:19-06:00 chore(phase-23): regen reports after the reachβ‰₯2 measurement run +0362 205fc202e9d38c0c7298290913d4bc3aa744f28f 2026-06-30T11:15:11-06:00 2026-06-30T11:15:11-06:00 feat(phase-23): macro-extern-injection lever β€” 8 reach-134 fns freed Γ—134 (fleet 63.82β†’64.09%) +0363 fdd3bf3c284f1cf816f72cea6a5b94be7bfef129 2026-06-30T11:20:13-06:00 2026-06-30T11:20:13-06:00 feat(phase-23): inject-extern lever on _a.c β€” +3 reach-134 fns (fleet 64.09β†’64.16%) +0364 9a0345aed276f64fbe2797a65d576af7af8f108a 2026-06-30T11:40:32-06:00 2026-06-30T11:40:32-06:00 feat(phase-23): lora-grind gate β€” +2 fns x0 propagated (fleet 64.17%) +0365 6c02c82614d43ba4d0a6a77ecad982677669c8c7 2026-06-30T12:00:05-06:00 2026-06-30T12:00:05-06:00 feat(phase-23): lora-grind gate β€” +4 fns x0 propagated (fleet 64.17%) +0366 9a10f493e877863a856efef99a05eb9e3bd9b271 2026-06-30T12:34:34-06:00 2026-06-30T12:34:34-06:00 feat(phase-23): lora-grind gate β€” +3 fns x0 propagated (fleet 64.17%) +0367 15a456302e3184a24d6cc8b3629f12d2b446e7ad 2026-06-30T12:46:47-06:00 2026-06-30T12:46:47-06:00 feat(phase-23): lora-grind gate β€” +12 fns x0 propagated (fleet 64.17%) +0368 39ccbee46c5bd2d056dbfe76c8cb7cfba7e3d997 2026-06-30T12:58:40-06:00 2026-06-30T12:58:40-06:00 feat(phase-23): lora-grind gate β€” +3 fns x0 propagated (fleet 64.17%) +0369 7792566bfdccd9b09001990fad75ba2361c1dd80 2026-06-30T13:11:19-06:00 2026-06-30T13:11:19-06:00 feat(phase-23): lora-grind gate β€” +7 fns x0 propagated (fleet 64.17%) +0370 613df42ed0626a8112e10714a35b9ad55689e505 2026-06-30T13:24:13-06:00 2026-06-30T13:24:13-06:00 feat(phase-23): lora-grind gate β€” +7 fns x0 propagated (fleet 64.18%) +0371 7b1b68cdadcd01a864c4b5a6ab80c127684eadcc 2026-06-30T13:37:06-06:00 2026-06-30T13:37:06-06:00 feat(phase-23): lora-grind gate β€” +6 fns x0 propagated (fleet 64.18%) +0372 71e686ad2ed682a53d3edf50d459fb6c8dc5c299 2026-06-30T13:50:51-06:00 2026-06-30T13:50:51-06:00 feat(phase-23): lora-grind gate β€” +4 fns x0 propagated (fleet 64.18%) +0373 72dabb470c504a326667dff4e54b2d5c50e3711c 2026-06-30T13:54:53-06:00 2026-06-30T13:54:53-06:00 feat(phase-23): broad v3 harvest (48 banks) + final propagate sweep; docs +0374 eb3b18efccb8caaa3ef4b14aa790a8ca190c3da4 2026-06-30T15:05:25-06:00 2026-06-30T15:05:25-06:00 feat(phase-23): lora_grind --min-nins (skip the saturated small band for a fresh-band pass) +0375 5a984886af6c27e8ae3eb41040c00f2d3bf574c9 2026-06-30T15:32:56-06:00 2026-06-30T15:32:56-06:00 perf(phase-23): lora_grind computes progress.py --fleet only on propagate sweeps (was every batch, ~14s overhead dominating small batches) +0376 f72aa74bd4fae4554c422e72bc66e3a691461041 2026-06-30T15:49:45-06:00 2026-06-30T15:49:45-06:00 feat(phase-23): lora-grind gate β€” +22 fns x0 propagated (fleet 64.19%) +0377 7dbdd1ce476b01f3565ba84dbdc9f1fcc34e6d1f 2026-06-30T15:52:04-06:00 2026-06-30T15:52:04-06:00 perf(phase-23): cap api_draft max_tokens 4096->512 (no-stop ramble) + capture saturation/throughput findings +0378 69189570dac77454246ef9261c5fb163cc53fc48 2026-06-30T15:59:47-06:00 2026-06-30T15:59:47-06:00 docs(phase-23): session close β€” handoff CURRENT_PHASE for the harvester-factory build (T10) +0379 c5cca1c6d4034dd47a08a921e6b371624926fc7b 2026-06-30T22:48:26-06:00 2026-06-30T22:48:26-06:00 feat(phase-23): T10 tooling β€” parallel-safe gate spine + bulk_harvest +0380 a36c5ded0ae99d5168e508b75907ee452a076e6a 2026-06-30T22:52:53-06:00 2026-06-30T22:52:53-06:00 feat(decomp): bulk_harvest β€” +9 fns across 9 binaries, 12 propagated (fleet 64.19%) +0381 aa2af72f0c0d394a0143fa6f8dfd5cc7f070a8f5 2026-06-30T23:17:02-06:00 2026-06-30T23:17:02-06:00 feat(decomp): bulk_harvest β€” +52 fns across 40 binaries, 12 propagated (fleet 64.2%) +0382 e9f199530eba895b25c7d1c2e3d15d87f9e63527 2026-06-30T23:22:46-06:00 2026-06-30T23:22:46-06:00 docs(phase-23): T10 harvester built + measured β€” 65% bank-rate, parallel gate ~75x, vLLM justified +0383 265e930f65ecf6786be9f5bcbab95df7d98cc149 2026-06-30T23:23:04-06:00 2026-06-30T23:23:04-06:00 chore(phase-23): regenerate backlog + fleet digests (T10 banks) +0384 35bc7c3873eea1c5f703067364a084e865d1f46c 2026-06-30T23:34:31-06:00 2026-06-30T23:34:31-06:00 feat(phase-23): bulk_harvest --cycles campaign mode (resumable, per-cycle commit, dry/STOP-aware) +0385 5ba5500f82f9a197ed8a8e4e1d97d6954590903c 2026-06-30T23:37:38-06:00 2026-06-30T23:37:38-06:00 feat(decomp): bulk_harvest β€” +4 fns across 4 binaries, 1 propagated (fleet 64.21%) +0386 337e120c2a135c8e5fa66e6b9ec323368dcbe671 2026-06-30T23:39:18-06:00 2026-06-30T23:39:18-06:00 feat(decomp): bulk_harvest β€” +4 fns across 4 binaries, 0 propagated (fleet 64.21%) +0387 6eee685acc437ac58e5e6d4bf909ed5938e7083a 2026-07-01T00:14:55-06:00 2026-07-01T00:14:55-06:00 feat(decomp): bulk_harvest β€” +81 fns across 74 binaries, 18 propagated (fleet 64.23%) +0388 8dc42f12b55625533952f9957a59fa68155e3d06 2026-07-01T00:52:23-06:00 2026-07-01T00:52:23-06:00 docs(gen3): parking-lot for asset export/Unity + verified mesh-state survey +0389 95586a6751aec63b01a1118567b08d5f6d70a031 2026-07-01T00:54:27-06:00 2026-07-01T00:54:27-06:00 feat(decomp): bulk_harvest β€” +69 fns across 67 binaries, 6 propagated (fleet 64.26%) +0390 7efe5ce10d94ad115521088b298df9a5ae97bc44 2026-07-01T01:29:20-06:00 2026-07-01T01:29:20-06:00 feat(decomp): bulk_harvest β€” +72 fns across 63 binaries, 5 propagated (fleet 64.28%) +0391 d2d15c9e41c53a6a8b2d6c55cf8ead7a14142b4a 2026-07-01T02:03:59-06:00 2026-07-01T02:03:59-06:00 feat(decomp): bulk_harvest β€” +78 fns across 69 binaries, 1 propagated (fleet 64.3%) +0392 7fa2134326269703c35ed86457c927bc1e06ab79 2026-07-01T02:41:58-06:00 2026-07-01T02:41:58-06:00 feat(decomp): bulk_harvest β€” +75 fns across 64 binaries, 0 propagated (fleet 64.32%) +0393 3d90707d4147dd3158699b8d8cdbf106df26f247 2026-07-01T03:22:46-06:00 2026-07-01T03:22:46-06:00 feat(decomp): bulk_harvest β€” +69 fns across 62 binaries, 1 propagated (fleet 64.34%) +0394 b4693430a014aafd49f9e11d1642c5fb6b3b78f5 2026-07-01T04:00:29-06:00 2026-07-01T04:00:29-06:00 feat(decomp): bulk_harvest β€” +66 fns across 55 binaries, 1 propagated (fleet 64.36%) +0395 f55052e2b5b488ad232c46c66f0652be10ca37ba 2026-07-01T04:39:21-06:00 2026-07-01T04:39:21-06:00 feat(decomp): bulk_harvest β€” +64 fns across 55 binaries, 1 propagated (fleet 64.38%) +0396 c1afac9f76ec7d32052d7f2e72a15a7c17f2a1f6 2026-07-01T05:17:55-06:00 2026-07-01T05:17:55-06:00 feat(decomp): bulk_harvest β€” +70 fns across 58 binaries, 2 propagated (fleet 64.4%) +0397 7e9dd8f03ae2da91efc2f08ef303614126213de3 2026-07-01T06:05:00-06:00 2026-07-01T06:05:00-06:00 feat(decomp): bulk_harvest β€” +53 fns across 48 binaries, 2 propagated (fleet 64.42%) +0398 00064af87968071ef297febe354ca68559799f70 2026-07-01T06:46:07-06:00 2026-07-01T06:46:07-06:00 feat(decomp): bulk_harvest β€” +47 fns across 43 binaries, 1 propagated (fleet 64.43%) +0399 67a0718148d76d05752ce24138ffba11b6203b61 2026-07-01T07:23:56-06:00 2026-07-01T07:23:56-06:00 feat(decomp): bulk_harvest β€” +54 fns across 48 binaries, 3 propagated (fleet 64.45%) +0400 416b3f37a62d937ebb7311eff134f6b1fb3126a7 2026-07-01T08:05:11-06:00 2026-07-01T08:05:11-06:00 feat(decomp): bulk_harvest β€” +56 fns across 46 binaries, 2 propagated (fleet 64.46%) +0401 eb696bf35d06018900337dab0810f5842e46112f 2026-07-01T08:45:39-06:00 2026-07-01T08:45:39-06:00 feat(decomp): bulk_harvest β€” +49 fns across 41 binaries, 0 propagated (fleet 64.48%) +0402 ef27dedb83e341d09667b42578b659b078e88411 2026-07-01T09:21:07-06:00 2026-07-01T09:21:07-06:00 feat(decomp): bulk_harvest β€” +51 fns across 36 binaries, 2 propagated (fleet 64.49%) +0403 ecf01e32a312032c6d415565f7954de9c7c9ab06 2026-07-01T09:59:28-06:00 2026-07-01T09:59:28-06:00 feat(decomp): bulk_harvest β€” +58 fns across 38 binaries, 0 propagated (fleet 64.51%) +0404 a95c19447d3e87ee0ae85e2548083a42ff7c860c 2026-07-01T10:44:57-06:00 2026-07-01T10:44:57-06:00 feat(decomp): bulk_harvest β€” +58 fns across 39 binaries, 1 propagated (fleet 64.53%) +0405 f2b9c2473560aa130accf96b5c4f9b6f2e984dde 2026-07-01T11:32:03-06:00 2026-07-01T11:32:03-06:00 feat(decomp): bulk_harvest β€” +56 fns across 38 binaries, 2 propagated (fleet 64.54%) +0406 8ad248fa3d0a3dd0f87b9242d966cd89eb96316d 2026-07-01T12:10:38-06:00 2026-07-01T12:10:38-06:00 feat(decomp): bulk_harvest β€” +48 fns across 35 binaries, 1 propagated (fleet 64.56%) +0407 d53b6ae56afc89c3d240e6d71bc9a96b513a47ca 2026-07-01T12:45:44-06:00 2026-07-01T12:45:44-06:00 feat(decomp): bulk_harvest β€” +45 fns across 28 binaries, 2 propagated (fleet 64.57%) +0408 34ef8ad960b31cab9fd508d5740a7cb7fed5dc97 2026-07-01T13:28:40-06:00 2026-07-01T13:28:40-06:00 feat(decomp): bulk_harvest β€” +35 fns across 21 binaries, 0 propagated (fleet 64.58%) +0409 8f15e2bad98b92e4874b6d60076446facb20a5b8 2026-07-01T14:10:47-06:00 2026-07-01T14:10:47-06:00 feat(decomp): bulk_harvest β€” +38 fns across 23 binaries, 1 propagated (fleet 64.59%) +0410 6069eaa727bf7d86676b0baba7ac505765beb33d 2026-07-01T14:17:42-06:00 2026-07-01T14:17:42-06:00 feat(decomp): bulk_harvest β€” +5 fns across 5 binaries, 0 propagated (fleet 64.6%) +0411 70aaad4efb0daf7c2ae4f057686eb8e0d984f5e2 2026-07-01T14:20:12-06:00 2026-07-01T14:20:12-06:00 chore(phase-23): regenerate backlog + fleet digests (≀15 campaign end, fleet 64.6%) +0412 14fbc0039d38bd8140a334d4df83e1ccbabcc1ef 2026-07-01T14:23:09-06:00 2026-07-01T14:23:09-06:00 docs(phase-23): T10.6 campaign result β€” 1297 banked, fleet 64.6%, ~92% ≀15 saturated (crash-graceful) +0413 2d0d63953e9da0c7d52d2e5f2762c47d65a21ef2 2026-07-01T17:25:47-06:00 2026-07-01T17:25:47-06:00 docs(phase-23): Fable5 strategy review β€” scope-vs-reality scorecard, wall re-tests, resource map +0414 1caff3dc4cd6293cbe791284b64da1f75f2cab92 2026-07-01T18:29:27-06:00 2026-07-01T18:29:27-06:00 feat(phase-23): api_draft MAXTOK env + OpenRouter cost capture (T10.7 reasoning-model support) +0415 42719160e7032915790c6f2d438a5b15ae7ae4e5 2026-07-01T19:17:39-06:00 2026-07-01T19:17:39-06:00 feat(phase-23): T10.7 β€” first GLM5.2 cloud-model banks (2 hard-band fns, byte-gated) +0416 b1e0391c52c5bc2b9aa299b0b7ea3393f0eda95f 2026-07-01T19:27:45-06:00 2026-07-01T19:27:45-06:00 feat(phase-23): T10.7a β€” recover 1 more GLM bank via fix_arity_callers (func_801577C8) +0417 bce95a13cda63c12970c0fed1383ed19876cfe71 2026-07-01T20:01:14-06:00 2026-07-01T20:01:14-06:00 docs(phase-23): T10.7 GLM5.2 A/B result β€” 10x codegen edge, but def-side wall caps banks (3/18) +0418 8562aa89c1dccb366041e94b66a3980a3e3a1490 2026-07-01T21:03:08-06:00 2026-07-01T21:03:08-06:00 feat(phase-23): T10.7 Option-3 β€” GLM reasons the def-side wall; +1 bank (func_80175184) +0419 612736701773a93fb64f137e0cf5e8f8a1634c6f 2026-07-01T21:05:18-06:00 2026-07-01T21:05:18-06:00 docs(phase-23): T10.7 conclusion β€” def-side wall intrinsic (GLM 1/7); GLM = drafter+teacher not wall-breaker +0420 d71305fa5f2f74189c84225241e6fd11b7620000 2026-07-01T23:13:29-06:00 2026-07-01T23:13:29-06:00 feat(phase-23): T10.8 idiom-hunt harness + calibration β€” GLM confirms our idioms, no NEW ones +0421 ecd8741b94ae3ef85adca661ec5f5ddb0cf12fd5 2026-07-01T23:48:57-06:00 2026-07-01T23:48:57-06:00 docs(phase-23): CURRENT_PHASE checkpoint β€” T10.6-T10.9 (GLM frontier exploration) + resume brief +0422 00d9d9d491ca0342892d6cfd41272e36a37355b6 2026-07-02T02:02:25-06:00 2026-07-02T02:02:25-06:00 feat(phase-23): T10.9 β€” 2 fresh hard-band GLM banks; fresh hand-solve confirms idiom well is DRY +0423 83d3c762ee2e86d1a62b81d4fd8eee5da2c0dfc3 2026-07-02T02:02:56-06:00 2026-07-02T02:02:56-06:00 docs(phase-23): T10.9 verdict + clean stopping point β€” idiom well dry (both angles); LLM tier concluded; next = PhaseEnd + public flip +0424 09e80573b7005135de0a41cb9d10036965a717ae 2026-07-02T11:08:49-06:00 2026-07-02T11:08:49-06:00 feat(phase-23): glm-small40 gate β€” +2 fns x2 propagated (fleet 64.67%) +0425 0d1e8d2372d22ce475f6488f0bf68b0d7d9ef003 2026-07-02T14:57:27-06:00 2026-07-02T14:57:27-06:00 feat(decomp): bulk_harvest β€” +44 fns across 18 binaries, 3 propagated (fleet 64.69%) +0426 13122771a0ffe716bbd89948ed1f9f9f9f095689 2026-07-02T15:29:38-06:00 2026-07-02T15:29:38-06:00 feat(decomp): bulk_harvest β€” +45 fns across 13 binaries, 6 propagated (fleet 64.7%) +0427 6678c6868a822d8313fe1b4c835fa5ae009cf262 2026-07-02T16:56:56-06:00 2026-07-02T16:56:56-06:00 feat(phase-23): Fable5Max cracks Β§20 "unsteerable" giant func_8014EE14 Γ—134 +0428 396fd28398c1438255b5b2db3fa884d459b9f999 2026-07-02T17:33:17-06:00 2026-07-02T17:33:17-06:00 feat(phase-23): toolkit-storeload gate β€” +2 fns x2 propagated (fleet 64.82%) +0429 e74dd52b19d30b7baa907fb125306176aeee4175 2026-07-02T17:34:53-06:00 2026-07-02T17:34:53-06:00 docs(phase-23): cookbook Β§30a β€” Β§30 generalizes via Opus agents + 2 new levers (IV-combine, inline-limit) + mechanical macro-widen integration +0430 337a30a88f8ee002aa471ca42cc26f79f45dd562 2026-07-02T17:44:39-06:00 2026-07-02T17:44:39-06:00 docs(phase-23): CURRENT_PHASE β€” the giant campaign (Fable5 wall-break + toolkit generalization, 3 giants Γ—134, reframe) +0431 fcfe3afea61d604f099e02fef9b7d9719d5db7dc 2026-07-02T20:08:10-06:00 2026-07-02T20:08:10-06:00 feat(phase-23): gccmap-remat gate β€” +1 fns x1 propagated (fleet 64.86%) +0432 3b6f2c5f946964947ac763aa754e0ea2c44e1e45 2026-07-02T20:12:19-06:00 2026-07-02T20:12:19-06:00 docs(phase-23): Β§31 β€” the gcc-2.7.2 codegen map (4 Fable5 agents read the source) +0433 da4eb3ff6cdae74d73930e98916cdf75d094ac0a 2026-07-02T21:19:07-06:00 2026-07-02T21:19:07-06:00 feat(phase-23): map-wave gate β€” +1 fns x0 propagated (fleet 64.86%) +0434 80b89d8a2d6391e24c3146cb061c364ecbf00ca9 2026-07-02T21:51:25-06:00 2026-07-02T21:51:25-06:00 feat(phase-23): LLM matching tier + the Fable5 wall-breaker + the gcc-2.7.2 codegen map (v1.22.0) +0435 394e3a81b336c50dabd60c74197936b207701266 2026-07-02T22:55:05-06:00 2026-07-02T22:55:05-06:00 chore(phase-24): T1 β€” re-log map-wave seeds (byte-verified) + backlog/gate_stage hygiene +0436 5984749421085b2631c8523bb50e5ad959f7752d 2026-07-02T23:10:54-06:00 2026-07-02T23:10:54-06:00 feat(phase-24): T2 β€” floor-free relocation-masked permuter scorer (-drz) +0437 0abcd250abdb96ee04975b2314e8b331b2b097f1 2026-07-02T23:32:02-06:00 2026-07-02T23:32:38-06:00 feat(phase-24): T3 β€” permuter setup fixes (pins/GTE-asm, typedefs, -O0); flagship closed +0438 9c8bb5183128ef15c4eb85ae99cd3bd04cb3c6fb 2026-07-02T23:38:32-06:00 2026-07-02T23:38:32-06:00 feat(phase-24): T4-flagship gate β€” +1 fns x0 propagated (fleet 64.86%) +0439 b2b1d0eeaea09dfc8fe2bf8144686fe6072d168f 2026-07-02T23:44:38-06:00 2026-07-02T23:44:38-06:00 chore(phase-24): T4 close β€” flagship banked x1, count-exact seeds -> T5, xN -> T6 +0440 0eadf313ee496130aac78abb152f1a381e59578b 2026-07-03T00:14:29-06:00 2026-07-03T00:14:29-06:00 feat(phase-24): T5 β€” Β§31-directed permuter mutation + grinder input-changed gating +0441 6c2fb9f04f53a69f90af0b1b67c7544d4347aef7 2026-07-03T02:02:26-06:00 2026-07-03T02:02:26-06:00 fix+feat(phase-24): T5b β€” S11 CRACKED (func_8014E048 banked) + fleet GetTPage linkage fix +0442 0cda15c6deafe66428ba42fe5b426cddda1d96d8 2026-07-03T02:50:03-06:00 2026-07-03T02:50:03-06:00 fix(phase-24): T5c β€” restore main's clean-rebuild: propagate the Phase-21 PsyQ renames to 62 stub refs +0443 be38b941478e1c67dcf374c8b95c4728c09f2264 2026-07-03T04:21:15-06:00 2026-07-03T04:21:15-06:00 feat(phase-24): T6 β€” flagship func_80132784 propagated Γ—134 (+1.6% byte-weight) via straggler-reconcile +0444 b79cbe6ef79652c52cbf0726802aed5f6bf62d1e 2026-07-03T04:22:24-06:00 2026-07-03T04:22:24-06:00 chore(phase-24): T6 β€” log flagship Γ—134 win + remaining-tool spec in CURRENT_PHASE +0445 91e5c4c294aac4bc00327483106a68d1847286e8 2026-07-03T13:33:13-06:00 2026-07-03T13:33:13-06:00 feat(phase-24): T6 β€” integration-recovery tool (gate-recovery proven; Γ—134 propagation deferred) +0446 cbbcd50ecd4fdb16154f6d82743754d66e97c749 2026-07-03T13:46:11-06:00 2026-07-03T13:46:11-06:00 chore(phase-24): checkpoint β€” CURRENT_PHASE is a complete fresh-session handoff +0447 5b3697553fa54ae12eeba9c28d454156d9f7cac6 2026-07-03T15:00:46-06:00 2026-07-03T15:00:46-06:00 feat(phase-24): T6 β€” 13 leaf-MATCH fns propagated Γ—134 (fleet 64.90β†’65.40%) +0448 99ccc374800427ba65f41704e1de0ef38767ef64 2026-07-03T15:17:50-06:00 2026-07-03T15:17:50-06:00 feat(phase-24): T6.4 β€” find_site trailing-comment externs β†’ func_8014E048 + func_80157580 Γ—134 +0449 1c2e0166e29ec9ff01947c245c509f7e83888527 2026-07-03T15:21:22-06:00 2026-07-03T15:21:22-06:00 chore(phase-24): T6 Β§A complete β€” checkpoint (15 fns Γ—134, fleet 65.48%, clean 136/136) +0450 8b48f482f990d4cb2a1f632faebc8cf368dcf294 2026-07-03T16:40:04-06:00 2026-07-03T16:40:04-06:00 feat(phase-24): T7 β€” Fable5 cracks giant func_80129CF8 + Β§32 idiom; banked Γ—1 (Γ—134 needs the canonical-decl tool) +0451 d1d628c4a18249b861313470934fa7b73f88f220 2026-07-03T16:41:23-06:00 2026-07-03T16:41:23-06:00 chore(phase-24): checkpoint β€” T7 giant cracked Γ—1 + Β§32; next = canonical-decl tool (Drew's A) +0452 eb53ae988e1ef37c5ce472477a0a86e0991cbf84 2026-07-03T17:44:29-06:00 2026-07-03T17:44:29-06:00 feat(phase-24): T7b/T1 β€” func_80129CF8 Γ—134 (the "Γ—134 wall" was an R14 misdiagnosis); fleet 65.48β†’65.52% +0453 bdc349e3b0ed34ef48623e6c49d5fa4dbe29827d 2026-07-03T17:55:43-06:00 2026-07-03T17:55:43-06:00 feat(phase-24): T7b/T2+T3 β€” reconcile_decls.py (data-symbol canonical reconcile); byte-proven on func_80129CF8 +0454 787b756e6d3b716344c8dc29832e4356ce86e174 2026-07-03T17:59:19-06:00 2026-07-03T17:59:19-06:00 docs(phase-24): T7b β€” distill reconcile_decls (cookbook Β§33, SETUP, design-doc RESOLVED); R14-correct Β§32 wall +0455 994368fbcdf91132ebf502e14a2c1ce15394bdd3 2026-07-03T21:09:38-06:00 2026-07-03T21:09:38-06:00 feat(phase-24): T7b/T5 β€” 2nd giant func_80138ED0 MATCHED + banked Γ—134; fleet 65.52β†’65.56%; Β§34 idioms +0456 cfa9571be0850fc72ac21f3128a99118f2c08768 2026-07-03T21:10:32-06:00 2026-07-03T21:10:32-06:00 chore(phase-24): T7b COMPLETE β€” reconcile tool + 2 giants Γ—134 + Β§34 idioms (fleet 65.56%); checklist marked +0457 6802997180f2aa311ca040c314aeaf906a452c11 2026-07-03T23:50:05-06:00 2026-07-03T23:50:05-06:00 feat(phase-24): T7 β€” 2 more giants Γ—134 (func_8012D098 + func_8012EC04, one-shot Opus); fleet 65.56β†’65.64% +0458 f38bded1d6f32aff83295100a16854636250552f 2026-07-04T00:40:45-06:00 2026-07-04T00:40:45-06:00 docs(phase-24): T7 harvest β€” Β§35 (ranking law + banking recipe + loop idioms); 3 residuals -> backlog +0459 dee27c720b29dd85b150947b53cfb6d1685481fa 2026-07-04T00:56:21-06:00 2026-07-04T00:56:21-06:00 docs(phase-24): store the giant-endgame queue (Β§G) for next session β€” closest-first + whale-early-triage +0460 8ba3b823078472a7ca86b54ff9c2f5461f5359be 2026-07-04T04:14:43-06:00 2026-07-04T04:14:43-06:00 feat(phase-24): T7 β€” 3 Fable5-cracked giants Γ—134 (func_801392FC/8013A530/8013AF20); fleet 65.64->65.75% +0461 e8b55793bbde2e5abbad3832dda91bdb7ee8177c 2026-07-04T04:15:19-06:00 2026-07-04T04:15:19-06:00 chore(phase-24): T7 Fable5 batch complete β€” 7 giants Γ—134 this session, fleet 65.75%; Β§G queue for next session +0462 c1067747763b57612343c1aeeae6b29898580619 2026-07-07T20:20:43-06:00 2026-07-07T20:20:43-06:00 feat(phase-24): T7 Β§G β€” 6/8 giants cracked, 4 Γ—134; fleet 65.75β†’65.91% +0463 3b0cc190b28a646b3330127ee5d4fb4bf97b5bed 2026-07-07T22:01:58-06:00 2026-07-07T22:01:58-06:00 feat(phase-24): T7 whale func_80144B9C CRACKED + banked Γ—1 (-O0 struct-assign) + Γ—134 infra +0464 8cfbbf2d4709e10dd6ffbb5801ed24f1851a820c 2026-07-07T22:23:10-06:00 2026-07-07T22:23:10-06:00 feat(phase-24): T7 whale func_80144B9C banked Γ—134 (-O0 reach-134 rollout) β€” clean fleet 136/136 +0465 b205115d697c71ab2798955d3229a086212a255e 2026-07-07T22:36:30-06:00 2026-07-07T22:36:30-06:00 docs(phase-24): store the Γ—1-giants->Γ—134 handoff for a fresh session (whale-derived shared-header lever bypasses compiles_standalone) +0466 8e6658ee858a24805a5f331846a85b862bbe6758 2026-07-07T23:21:20-06:00 2026-07-07T23:21:20-06:00 feat(phase-24): T7 Β§G β€” func_801770E0 banked Γ—134 (native DEFINE-macro path); fleet 65.95β†’65.99% +0467 f62cd42c32a96747b99fa58c66e4fd43bbebaf8f 2026-07-07T23:39:27-06:00 2026-07-07T23:39:27-06:00 feat(phase-24): T7 Β§G β€” func_801372B0 banked Γ—134; Γ—1β†’Γ—134 giant endgame COMPLETE; fleet 65.99β†’66.02% +0468 9194d27760e7ebcd7695a503330496cd78fdabb8 2026-07-08T00:14:40-06:00 2026-07-08T00:14:40-06:00 feat(phase-24): permuter overhaul + integration-recovery + the giant endgame (all giants Γ—134); fleet 64.86->66.02% (v1.23.0) +0469 41e454ec1fbe1ca06f311277a53fd94fb06b467f 2026-07-08T01:02:58-06:00 2026-07-08T01:02:58-06:00 chore(phase-25): T0 β€” refresh sigs/surveys, regen worklist+backlog, fix sig_image h_norm doc +0470 d7b877f12cee86635ac304c9c6e96294ee4eb610 2026-07-08T01:23:08-06:00 2026-07-08T01:23:08-06:00 fix(phase-25): recover_integration split-aware (Β§39) β€” per-stub asm-subdir, gate per split group +0471 510262036b0b0aa86471706f63e14b12e133773b 2026-07-08T09:06:43-06:00 2026-07-08T09:06:43-06:00 docs(phase-25): T1 close β€” split-aware recovery fix; caller-arity cohort exhausted (0/16), residuals backlogged +0472 9a4104247d4cb2cabcdce8a25d00a00b11c81816 2026-07-08T09:12:55-06:00 2026-07-08T09:12:55-06:00 feat(phase-25): T2 β€” structural-family target manifest (tools/family_manifest.py) +0473 fdfb93fdb3c0ebeef5e310eeb1602a8ef6e16c16 2026-07-08T09:59:31-06:00 2026-07-08T09:59:31-06:00 feat(phase-25): T3 β€” mechanical symbol-remap lever PROVEN (tools/family_remap.py); free --tier h_norm refuted +0474 fe216ff54aadfa9c296a27344b55c1634e4f9907 2026-07-08T10:05:43-06:00 2026-07-08T10:05:43-06:00 feat(phase-25): T7 mechanical family-sweep driver (tools/family_sweep.py) +0475 03601b0441409a376fef83a08ae5ef3e0391e9bb 2026-07-08T10:12:11-06:00 2026-07-08T10:12:11-06:00 feat(phase-25): T7 sweep β€” func_80141100 banked Γ—134 mechanically (driver validated 133/133) +0476 c993029f0e29597683e83097cea4f12cecc0dd4d 2026-07-08T11:10:56-06:00 2026-07-08T11:10:56-06:00 feat(phase-25): T7 mechanical family sweep β€” matched-free harvest; fleet 66.02%->70.82% (+16,512 members) +0477 e77a16b89a84dc37af93a9c871fab46b8838fb16 2026-07-08T11:12:23-06:00 2026-07-08T11:12:23-06:00 docs(phase-25): T7 part-1 handoff β€” matched-free sweep done (70.82%); fresh-session resume plan +0478 6280d24c168023ef2c1a34b730a0d583e431e695 2026-07-08T11:25:27-06:00 2026-07-08T11:25:27-06:00 docs(phase-25): cookbook Β§40 β€” structural-family mechanical symbol-remap (R30 capture) +0479 903d594728ce1f347ae484663cd833dc19e7df2c 2026-07-08T13:18:08-06:00 2026-07-08T13:18:08-06:00 feat(phase-25): T7.2 decl-reconcile β€” type-lift + mechanical sweep banks 1,729 (fleet 70.82%->71.32%) +0480 aa0736a4f855b36bf851266ee17776ea3925e5a7 2026-07-08T13:20:36-06:00 2026-07-08T13:20:36-06:00 docs(phase-25): T7.2 log + cookbook Β§40a β€” decl-reconcile pass +0481 c62f8537100a1fc4925799bd3a8692aed1b588b5 2026-07-08T13:48:05-06:00 2026-07-08T13:48:05-06:00 feat(phase-25): T7.3 β€” propagate 2 h_exact engine-core stragglers via dedup_propagate (+~200 members) +0482 744cb59de14e8143733c5b18c8d1b6635193f19c 2026-07-08T13:49:17-06:00 2026-07-08T13:49:17-06:00 docs(phase-25): T7.3 log + close-state β€” fleet 71.36%, T4/T5/T6 + 127-draftable deferred to Phase 26 +0483 c4069442cac8911102f3a7264e988b743eb141d8 2026-07-08T14:01:26-06:00 2026-07-08T14:01:26-06:00 docs(phase-25): CORRECT close/defer misread β€” phase is OPEN, T4->T5->T6->T7-cracking remain +0484 bb4e74a1af0c1a414b46329762a88fd48c548bf2 2026-07-08T14:11:27-06:00 2026-07-08T14:11:27-06:00 docs(phase-25): T4 in-progress β€” v4 corpus (3,574 pairs) + training launched (crash-recovery note) +0485 191e7cef0481176da9577ea35668669070674d99 2026-07-08T15:19:11-06:00 2026-07-08T15:19:11-06:00 docs(phase-25): add docs/decision-log.md (R31) β€” capture strategic pivot 'why' while fresh +0486 99e23dcc910e5916ff0fb66203aa22c488db70aa 2026-07-08T15:23:40-06:00 2026-07-08T15:23:40-06:00 docs(phase-25): R31 confirmed by Drew (binding) β€” strategic-pivot capture discipline +0487 5ef2d4d2ab1414d7915e85d272ce96f31f62ee1f 2026-07-08T18:36:50-06:00 2026-07-08T18:36:50-06:00 docs(phase-25): T4 CLOSEOUT β€” v4 retrain FAILED (negative), keep v3; T5 handoff +0488 938eb7ae0625de1ebf34b08632a019e04bd1264b 2026-07-08T20:16:31-06:00 2026-07-08T20:16:31-06:00 feat(phase-25): T5 pilot β€” measure-wave validated, +402 fns (fleet 71.36->71.47%) +0489 897939eb462d71dcc299ebcdac00350420f6f0dd 2026-07-08T22:56:01-06:00 2026-07-08T22:56:01-06:00 feat(phase-25): T5b batch-1 (partial) β€” +1877 fns (fleet 71.47->72.02%) +0490 808ec6ff7ef7d9daa38839aff6cb00cd26746d01 2026-07-09T15:47:30-06:00 2026-07-09T15:47:30-06:00 feat(phase-25): T5b batch-1 COMPLETE β€” continuation +541 fns (fleet 72.02->72.18%) +0491 00f81e1678251444e930573e559239f0ed0a8200 2026-07-09T15:50:45-06:00 2026-07-09T15:50:45-06:00 docs(phase-25): T5b batch-1 CLOSEOUT + fresh-session handoff (fleet 72.18%) +0492 20747321c4eabcc647ccc9a432731d1099feefce 2026-07-09T20:56:35-06:00 2026-07-09T20:56:35-06:00 feat(phase-25): T5b batch-2 β€” def-side wall cracked mechanically (canon_sig_reconcile); +5 giants, 3x134 (fleet 72.18->72.29%) +0493 d572cc4d2b8b4f638ac0b0d9ee6f7e0dd09bc536 2026-07-09T22:45:56-06:00 2026-07-09T22:45:56-06:00 chore(phase-25): T5b batch-3 (_o0 measured) + T6 Fable5 brief + match_one --o0 (fleet 72.29%, handoff) +0494 f12bff04c0b1054adacdd677a0cbffc96f0d7c31 2026-07-09T23:39:14-06:00 2026-07-09T23:39:14-06:00 feat(phase-25): T6 β€” Fable5 crack curriculum: def-side wall ~71% tool-shaped; 44/62 probe-BANKABLE via canon_sig_reconcile v3.1; x134 sweep law proven +0495 5b94a8247b2f3438097bffcdfac91ac0e39e5392 2026-07-10T00:02:55-06:00 2026-07-10T00:02:55-06:00 feat(phase-25): T7-M1 β€” 37 exemplars banked Γ—1 via canon_sig_reconcile v3.2 (giants incl. func_8016A290/284) +0496 c908c3913a00d06dd37e44a26a130a06fdf63ff6 2026-07-10T01:20:38-06:00 2026-07-10T01:20:38-06:00 feat(phase-25): T7-M2 β€” 4,389 def-side-wall members swept Γ—134 (fleet 72.29β†’73.58%) +0497 1ea7c2925dc23344c2919a684e0dfb4eef21fcb2 2026-07-10T01:43:05-06:00 2026-07-10T01:43:05-06:00 feat(phase-25): T7-M3 β€” 2 no-proto exemplars banked + swept Γ—134 (engine_core.h fleet-neutral) +0498 eb3596530504db6fae8e3375923d190808c875be 2026-07-10T01:44:12-06:00 2026-07-10T01:44:12-06:00 docs(phase-25): T7 mechanical-tiers execution log + deferred backlog (fleet 73.66%, phase OPEN) +0499 ee957d11c6ba6dd5c2423f35bc329427f00e0760 2026-07-10T01:52:24-06:00 2026-07-10T01:52:24-06:00 docs(phase-25): T7-M4 verdict β€” NOT mechanical (0/8), re-tiered to F-band; checkpoint for fresh session +0500 0d28aed67c6a08492b38932184c809f357398048 2026-07-10T04:03:46-06:00 2026-07-10T04:03:46-06:00 feat(phase-25): T7 mechanical family sweep β€” 266 member-matches banked via family_remap +0501 67a8fe670d6dbd93844ed23c0cdd5897864cc965 2026-07-10T04:22:52-06:00 2026-07-10T04:22:52-06:00 docs(phase-25): T7 F-band ≀28 regalloc crack wave β€” 4 banked + 266 swept Γ—134 +0502 8bfb7694b7c55f527e83b345b6c37e8641605878 2026-07-10T12:41:34-06:00 2026-07-10T12:41:34-06:00 feat(phase-25): T7 mechanical family sweep β€” 399 member-matches banked via family_remap +0503 b936dec411f364e93da946dd28bad6312ba17932 2026-07-10T12:52:20-06:00 2026-07-10T12:52:20-06:00 docs(phase-25): T7 F-band wave 2 β€” 4 banked + 399 swept Γ—134 (fleet 73.73β†’73.85%, R22 136/136) +0504 69d1d372628e006caea4e19e8891bf18c558e78b 2026-07-10T14:58:19-06:00 2026-07-10T14:58:19-06:00 feat(phase-25): T7 F-band wave 3 β€” func_80164930 cracked + swept Γ—134 (read-global fix); fleet 73.85->73.89%, R22 136/136 +0505 8fa29f2ddaaa7647396ce134eef9abfd8ac48070 2026-07-10T17:23:20-06:00 2026-07-10T17:23:20-06:00 feat(phase-25): T7 F-band wave 3 part 2 β€” corrected rtu_match fan-out, 7/9 cracked + 266 swept; fleet 73.89->73.97%, R22 136/136 +0506 b0991694302388ea16a799d78eed115b68a2131b 2026-07-10T17:54:01-06:00 2026-07-10T17:54:01-06:00 docs(phase-25): frontier map β€” rtu_match-measured classification of the 42 draftable + 235 matched-free families +0507 6c0887b097d5268d0ce4b65b7bb8f730a12b77fc 2026-07-10T19:49:39-06:00 2026-07-10T19:49:39-06:00 feat(phase-25): crack fan-out over the frontier map β€” wave 4, 24/26 MATCH + 1330 swept; fleet 73.97->74.36% (+1350 fns), R22 136/136 +0508 56a2be10bf5cfb7732dda0987d3abb25a89e7588 2026-07-10T20:00:04-06:00 2026-07-10T20:00:04-06:00 docs(phase-25): decision-log β€” task-b propagation recovery is a family_remap limitation, not an --edit-remap gap (backlogged) +0509 02417722253f8ac918630b01077ab80726f4441e 2026-07-10T21:05:25-06:00 2026-07-10T21:05:25-06:00 fix(phase-25): canon_sig_reconcile def-finder (\n -> (?:^|\n)) unblocks crack propagation; recover func_8014FE60 x134; fleet 74.36->74.40%, R22 136/136 +0510 c84bcb35c8e95cd48d2b16ab1093262190bf1ab1 2026-07-10T21:18:56-06:00 2026-07-10T21:18:56-06:00 docs(phase-25): session checkpoint β€” lock B->A->C order for the fresh session (Drew 2026-07-10c) +0511 5fcb040dc328d2d1252030fa628caa776720acf4 2026-07-11T00:03:39-06:00 2026-07-11T00:03:39-06:00 feat(phase-25): task B β€” family_sweep --edit-remap; 2 array-decay families Γ—134 (+266 fns), 4 cc1-crash-walled +0512 c0379f07383c1487e4bbe9f6f075d79a9961c9d5 2026-07-11T00:42:22-06:00 2026-07-11T00:42:22-06:00 feat(phase-25): progress.py --weighted β€” byte/instruction-weighted metrics (the honest headline numbers) +0513 c62fe7f7eaa8995478bb743a822e4562d3b9e83b 2026-07-11T01:03:09-06:00 2026-07-11T01:03:09-06:00 feat(phase-25): task A giant #1 β€” func_80166994 (369 ins) cracked Γ—134 via Fable5 + the K&R s16-param idiom (Β§43) +0514 89162fd6b8c22ab94cf369d712f747a52506dfe4 2026-07-11T02:27:23-06:00 2026-07-11T02:27:23-06:00 feat(phase-25): task A giant batch 1 β€” 2 more giants Γ—134 (func_80135480, func_80163EC8) + Β§44 levers; 4 Fable5 seeds +0515 8270e7692e0d33f6e07f8dfbfacdbb1cbd003b08 2026-07-11T15:09:40-06:00 2026-07-11T15:09:40-06:00 feat(phase-25): task A giant #2 β€” flagship func_80133CD4 (399 ins) cracked Γ—134 via Fable5 Β§45; 3 flywheel giants Fable5-seeded +0516 b438ee184670493d56a0d0a8c5de6701a7264b62 2026-07-11T16:52:46-06:00 2026-07-11T16:52:46-06:00 docs(phase-25): family-endgame megaplan + checkpoint β€” the 'unique tail' is ~986 templatable h_seq families +0517 4415fd9910950bac2f07f7249ce23be6c770f291 2026-07-11T19:30:11-06:00 2026-07-11T19:30:11-06:00 feat(phase-25): close β€” structural-family endgame + the giant endgame + the h_seq family reframe (v1.24.0) +0518 2226e565f5a3e84f4426d9209be38caa82a8c532 2026-07-11T20:45:33-06:00 2026-07-11T20:45:33-06:00 feat(phase-26): open β€” family-endgame plan approved (gate 1); CURRENT_PHASE.md + task list +0519 5b7e366648dbc77c9cee3a722a88ba05ea475a0d 2026-07-11T20:57:28-06:00 2026-07-11T20:57:28-06:00 feat(phase-26): task 1 β€” extended reloc tracker (addu-hi) + single-pass remap; V0/V1 green +0520 faedd103e4958fa8018633670b9a04210a9efa73 2026-07-11T21:05:29-06:00 2026-07-11T21:05:29-06:00 feat(phase-26): task 2 β€” tools/family_hseq.py full-frontier survey + shared word-diff classifier +0521 462734edb21be163be73a053e0e3644bbe1a7a83 2026-07-11T21:14:09-06:00 2026-07-11T21:14:09-06:00 feat(phase-26): task 3 β€” T2a immediate engine (Tier 1) + T2b cross-address, 0-DIFF verified +0522 3ce81cbf56a112c8f75c91e094ec9d5c20a31633 2026-07-11T21:26:00-06:00 2026-07-11T21:26:00-06:00 feat(phase-26): task 4 β€” family_sweep --hseq mode (cross-address + imm templating) +0523 d05203b9a0dd69376d9316e9af0632b78f89b268 2026-07-11T22:15:30-06:00 2026-07-11T22:15:30-06:00 feat(phase-26): task 5 β€” h_seq zero-crack GO/NO-GO = GO; 532 members banked (R22 136/136) +0524 80536efbea63188f5b93542df927619385de78b6 2026-07-11T23:00:26-06:00 2026-07-11T23:00:26-06:00 feat(phase-26): task 6 β€” Ultracode triage of 119 draftable substantial families +0525 5f07d099e6ec161d37e66dd77c61f8ad7437330c 2026-07-11T23:12:53-06:00 2026-07-11T23:12:53-06:00 docs(phase-26): finalize Task-6 triage (119 agents) + banking caveat; pause before Task 8 +0526 8dbde107520ca226f5491c021b75d1dc122bf063 2026-07-11T23:40:01-06:00 2026-07-11T23:40:01-06:00 feat(phase-26): Task-8 validation slice β€” reconcileβ†’bank proven (4 cracks into ov077, R22 136/136) +0527 7ccf48f2f47975335a00d17834e7de2ca19aa1c2 2026-07-12T00:03:47-06:00 2026-07-12T00:03:47-06:00 feat(phase-26): Task-8 reconcile wiring (Β§41c h_seq) + 463 reconcile-class banks +0528 62f95330247efcf41b9ab7ae7929b2eb3703ae0d 2026-07-12T01:38:49-06:00 2026-07-12T01:38:49-06:00 feat(phase-26): +266 reconcile-class banks (2 no-jtbl cracks x133) + Fable5 batch-1 whole-binary findings +0529 b94e417edf9ee650ed2831857b674658ea74c923 2026-07-12T10:22:31-06:00 2026-07-12T10:22:31-06:00 docs(phase-26): session-2 checkpoint β€” full resume context (mid-harvest in flight, Β§8 approved, 2 gaps) +0530 3074ceb4853e90b8243b3c5639f0ff36ec564c16 2026-07-12T11:28:48-06:00 2026-07-12T11:28:48-06:00 feat(phase-26): mid-band clean harvest β€” 6853 member-matches (320 distinct fns), R22 136/136 +0531 025cc03f6920759ad1d21392f6f63e8a6a6b3168 2026-07-12T15:38:40-06:00 2026-07-12T15:38:40-06:00 feat(phase-26): tiny-band mechanical harvest β€” 17,975 member-matches, R22 136/136 +0532 095a611e75d727ba1f31328527d8331251fd8069 2026-07-12T16:37:37-06:00 2026-07-12T16:37:37-06:00 feat(phase-26): Β§8 jtbl-rodata tooling β€” overlay PoC proven (func_8012ACE0, R22 136/136) +0533 5a081806177ebaf06fe9994b5f7cc7c53e8d899b 2026-07-12T19:02:25-06:00 2026-07-12T19:02:25-06:00 feat(phase-26): Β§8 Γ—134 automation β€” func_8012ACE0 banked fleet-wide (133/133, R22 136/136) +0534 6fb8d323bd489316ce1ecde618b4dd90797aa049 2026-07-12T19:12:33-06:00 2026-07-12T19:12:33-06:00 perf(phase-26): parallelize R22 clean-fleet β€” ~9min -> ~50s (10.5x), 136/136 byte-identical +0535 4e17a7e77b89d44b3870fda50530d40ca46c4b16 2026-07-12T19:20:58-06:00 2026-07-12T19:20:58-06:00 docs(phase-26): session-3 checkpoint β€” heavy-byte-weight reframe (Β§8 unlocked the switch cores) +0536 79ca6b4975c47c9f9a848b8a83f4602880080444 2026-07-12T20:24:21-06:00 2026-07-12T20:24:21-06:00 docs(phase-26): refine session-3 checkpoint β€” small-jr-first as de-risk preamble, then heavy 191 +0537 ca50ee6978043c59f97b71d07857c019011d42a3 2026-07-12T21:51:27-06:00 2026-07-12T21:51:27-06:00 feat(phase-26): Β§8 multi-jtbl --order carve + family-1 (func_801734BC Γ—134) +0538 d1dd29d815829879c3c4a0cb68741a6c4d7a9ede 2026-07-12T22:06:17-06:00 2026-07-12T22:06:17-06:00 feat(phase-26): Β§8b multi-jtbl same-subseg β€” contiguous MERGE (built) + isolation scaffold +0539 234788dfc4274572f1821fcd57ec201de5678f2a 2026-07-13T12:00:26-06:00 2026-07-13T12:00:26-06:00 feat(phase-26): Β§8b overlay-src parser (404/404) + jr isolation tool + the gcc-scoping wall finding +0540 38ac5659aa17b09e1618249108028cdef9d88d41 2026-07-13T13:25:39-06:00 2026-07-13T13:25:39-06:00 feat(phase-26): Β§8b scoping wall BROKEN β€” decl-environment reconstruction + lazy per-core isolation +0541 e79d0304997c88811b9cf20899facd0924c99b11 2026-07-13T14:34:04-06:00 2026-07-13T14:34:04-06:00 feat(phase-26): func_80182268 banked via the LAZY isolation path + the void->s32 gate-cap fix +0542 c66b530f71142748ff1c0995fba7a1403b2af459 2026-07-13T14:40:11-06:00 2026-07-13T14:41:53-06:00 fix(phase-26): bound the Β§8b carried decl layer + cross-address sibling naming +0543 258f10c048cd1f9ebd1912fc0128d45b4ee6470d 2026-07-13T14:43:36-06:00 2026-07-13T14:43:36-06:00 feat(phase-26): func_80182268 family banked x3 β€” the lazy jr pipeline proven end-to-end +0544 f89fd50afb0e46e26b762f42dc09ec51550a06bd 2026-07-13T14:44:07-06:00 2026-07-13T14:44:07-06:00 docs(phase-26): session-6 checkpoint β€” de-risk complete, 3 gate-cap bugs fixed; Β§41d +0545 b0691f4bd98c810aea40fd8deb59503f141fe9aa 2026-07-13T15:23:59-06:00 2026-07-13T15:23:59-06:00 fix(phase-26): jtbl_carve trims trailing .align pad words (Β§8a-pad) +0546 754ac3428f2d21d6771586f9b1ff85164f4adfd2 2026-07-13T16:50:38-06:00 2026-07-13T16:50:38-06:00 fix(phase-26): permuter silently no-op'd on every GTE draft (+ --asm-subdir) +0547 9b93c254c28f2cf5fd2d8b5107271441788d046d 2026-07-13T18:26:16-06:00 2026-07-13T18:26:32-06:00 feat(phase-26): func_8015AE2C (562 ins, x134) banked β€” Fable5 MATCH + 3 isolation bugs fixed +0548 f206659dcf966c27cc8aa0d3dc96f2fc1a08abf7 2026-07-13T18:35:02-06:00 2026-07-13T18:35:02-06:00 feat(phase-26): jtbl_family_bank recovery stage (per-sibling cast+reconcile) + tolerant stage loop +0549 9bbfff9b8ccc879b459735d4e0c3ee8c50108a49 2026-07-13T18:35:38-06:00 2026-07-13T18:35:38-06:00 docs(phase-26): session-7 checkpoint β€” heavy-jr waves run; 1 core banked x1, 2 cracks in hand, sweep blocker diagnosed +0550 12631df74aacf79928e72bb2a407fdad6abe9951 2026-07-13T19:50:51-06:00 2026-07-13T19:50:51-06:00 docs(phase-26): R17 triage rule β€” 'wrong bytes' -> read gcc; 'won't compile' -> read our Python +0551 1ab99053689f5aa776ba1cf502962b2baa31fa15 2026-07-13T20:45:15-06:00 2026-07-13T20:45:15-06:00 feat(phase-26): Β§8d scope_data_externs β€” the Γ—133 sweep blocker fixed; func_8015AE2C banked Γ—134 +0552 cc6220eba429022880726f5aa4db57cad5aba529 2026-07-13T20:53:23-06:00 2026-07-13T20:53:23-06:00 fix(phase-26): extract_unit mistook m2c declarations for definitions (15 phantom exemplars) +0553 7b970653ffbfc967d4e9d547f55071e38d803764 2026-07-13T21:16:36-06:00 2026-07-13T21:16:36-06:00 docs(phase-26): cookbook Β§46 β€” func_80178D40 MATCH (890 ins Γ—134): four loop-structure levers +0554 b8a525bb98286c9a56552e93e4c7ff30c21d230b 2026-07-13T21:29:45-06:00 2026-07-13T21:29:45-06:00 feat(phase-26): h_seq substantial-band re-sweep β€” 266 free member-matches (~0 agent tokens) +0555 a0e7ff7f6f590bb2bc346bb0ecc43ca0dbcec0d1 2026-07-13T21:49:22-06:00 2026-07-13T21:49:22-06:00 fix(phase-26): scope_data_externs ANSI-brace fix + wire Β§8d into family_sweep --hseq; 780-class diagnosed +0556 3a67dd609f84852b1634386b7d7804db0b5169b4 2026-07-13T22:02:46-06:00 2026-07-13T22:02:46-06:00 feat(phase-26): func_8017BEBC (952 ins, Γ—113) CLOSED + banked Γ—1 β€” the Β§47 live-length slider +0557 660aa9f21585828f218bade0814c3773242c7992 2026-07-13T22:05:53-06:00 2026-07-13T22:05:53-06:00 feat(phase-26): func_80178D40 (890 ins, Γ—134 β€” the heaviest core) banked Γ—1 in ov_SC01_077 +0558 7e4165676d9f9b209b180902a980f2ea59bff8e7 2026-07-13T22:13:11-06:00 2026-07-13T22:13:11-06:00 fix(phase-26): isolation-residue corruption chain β€” config cleanup + revert() restores config + fail-loud validation + --raw sweep mode +0559 07ebb5658d76011d8a97f42e6d07a5a878ed17ae 2026-07-13T22:14:57-06:00 2026-07-13T22:14:57-06:00 fix(phase-26): jr_isolate_all empty-region0 skip β€” cutting an already-isolated region's non-leader works +0560 cc08601ae751a4e2eddc532bc010cdec791bfc50 2026-07-14T00:02:26-06:00 2026-07-14T00:02:26-06:00 feat(phase-26): func_80178D40 swept Γ—134 β€” the heaviest core in the game, fleet-wide +0561 6f3441d261c185fe297302a2df69b2386c4fb19d 2026-07-14T00:08:59-06:00 2026-07-14T00:08:59-06:00 fix(phase-26): 10% of the canonical-callee oracle was silently missing (own-line-brace DEFINE macros) +0562 29478ab9b01539967afa2dd9ee3a8a0e11a8d21f 2026-07-14T00:10:43-06:00 2026-07-14T00:10:43-06:00 docs(phase-26): cookbook Β§48 β€” the 12-core jr crack wave (9/12 MATCH): allocno-pricing dials, the EBB rule, type-driven codegen, the cross-jump ratchet +0563 91fd1257ba2dc715a0532bdd047cb1ebabba6d59 2026-07-14T00:13:50-06:00 2026-07-14T00:13:50-06:00 docs(phase-26): session-8 checkpoint β€” 3 heaviest cores cracked, 12-core wave 9/12 MATCH, 6 silent-skip bugs fixed +0564 5aea9b1112859cd71933b403a10f1869ae1a2682 2026-07-14T00:26:22-06:00 2026-07-14T00:26:22-06:00 docs(phase-26): decision-log β€” promote the silent-skip lesson from a rule to a MECHANISM (coverage oracles); flag the verdicts reached on top of the broken oracle (Drew approved) +0565 0bf0313a6dd73c72389475a674ba37d5112f2347 2026-07-14T00:26:55-06:00 2026-07-14T00:26:55-06:00 docs(phase-26): cookbook Β§48-A4 β€” SINK THE CONSUMER CALL INTO THE ARMS (func_8016AB6C MATCH) +0566 7a5657e83c6be5740de06eaf021c3312d8db4087 2026-07-14T00:30:06-06:00 2026-07-14T00:30:06-06:00 feat(phase-26): func_8015A3C8 swept x132 siblings β€” R22 136/136 +0567 b813432b1b227ab929e47656d95785b99959d323 2026-07-14T00:31:58-06:00 2026-07-14T00:31:58-06:00 feat(phase-26): func_8013FFD8 banked Γ—1 (crack wave) β€” whole-binary gate, R22 136/136 +0568 a30500eecf977e7eb90097d51ed96a40e91ef099 2026-07-14T00:53:27-06:00 2026-07-14T00:53:27-06:00 docs(phase-26): cookbook Β§49 β€” the LUID DIAL (func_8017A4AC MATCH, 536 ins Γ—134, the biggest remaining fn) +0569 ffcd914ed543b726ad21b7d366eb06dedddd7234 2026-07-14T00:58:33-06:00 2026-07-14T00:58:33-06:00 feat(phase-26): func_8013FFD8 swept Γ—128 siblings β€” R22 136/136 byte-identical +0570 55a63fae9563440c8e0e85a509bfa96f34bc86c0 2026-07-14T00:59:13-06:00 2026-07-14T00:59:13-06:00 fix(phase-26): remove the duplicate code-subseg line from ov_SC01_077's committed config +0571 f5f3c4469399d788a32ff83318473328ca5261d1 2026-07-14T01:00:51-06:00 2026-07-14T01:00:51-06:00 feat(phase-26): func_8016AB6C banked Γ—1 (crack wave) β€” whole-binary gate, R22 136/136 +0572 cffbdbe88e490febe11b53f8ec230de20e10db14 2026-07-14T01:28:41-06:00 2026-07-14T01:28:41-06:00 feat(phase-26): func_8016AB6C swept Γ—134 siblings β€” R22 136/136 byte-identical +0573 9caea6014266219e84be7742f6a0d54e0e4f7424 2026-07-14T01:29:48-06:00 2026-07-14T01:29:48-06:00 feat(phase-26): func_8015444C banked Γ—1 (crack wave) β€” whole-binary gate, R22 136/136 +0574 329ab4cbe7124a75dec5e3e59da21658389d3806 2026-07-14T01:30:22-06:00 2026-07-14T01:30:22-06:00 fix(phase-26): progress.py β€” K&R definitions were invisible; phantom dedup members; + a COVERAGE ASSERTION +0575 7e7c80659bd4eed7e13a1b84938b245218c2d817 2026-07-14T01:30:49-06:00 2026-07-14T01:30:49-06:00 docs(phase-26): decision-log β€” the audit's finding was real, my reading of it was wrong; derive metrics from invariants, don't re-parse the world (R14/P9 self-correction) +0576 8a3f227ac120b809d1e3748e9b4d87a97405ea05 2026-07-14T01:50:19-06:00 2026-07-14T01:50:19-06:00 feat(phase-26): func_8015444C swept Γ—134 siblings β€” R22 136/136 byte-identical +0577 c12c497e10f0d9bab9b2ceec4c2af0cf30e9de5e 2026-07-14T01:52:02-06:00 2026-07-14T01:52:02-06:00 feat(phase-26): func_801380E0 banked Γ—1 (crack wave) β€” whole-binary gate, R22 136/136 +0578 807924021602ad9ad6c39f136d36b54c46bdb92b 2026-07-14T02:00:49-06:00 2026-07-14T02:00:49-06:00 docs(phase-26): cookbook Β§50 β€” refinements that BOUND Β§47/Β§48 (from the func_80135EB0 wall) +0579 4e1ec84028baca63b01df490cd076ee4de76eda0 2026-07-14T02:08:39-06:00 2026-07-14T02:08:39-06:00 docs(phase-26): decision-log β€” Drew: the tooling-integrity audit GATES further matching work and gets its own phase (fix the instrument before taking more readings) +0580 5b1de7acaa75dc27290128274ed98efe5f25a5ff 2026-07-14T02:10:08-06:00 2026-07-14T02:10:08-06:00 feat(phase-26): tools/reconcile_tu.py β€” ask "what can THIS TU see", not "what does the fleet call it" +0581 cc7ee23d03ea90842bbc8d98abfcfdab1785d59e 2026-07-14T02:18:46-06:00 2026-07-14T02:18:46-06:00 feat(phase-26): func_801380E0 swept Γ—134 siblings β€” R22 136/136 byte-identical +0582 6e8c459ade8af2226f35f790e0069c1131399d98 2026-07-14T02:21:08-06:00 2026-07-14T02:21:08-06:00 docs(phase-26): SESSION-8 CLOSE β€” checkpoint for a fresh session; the tooling-integrity audit gates what comes next +0583 9a94e9ba46f3790f926c45df05ccd03779b11b7b 2026-07-14T02:25:31-06:00 2026-07-14T02:25:31-06:00 docs(phase-26): docs/tooling-audit.md β€” the 40 measured findings, made DURABLE (R30) +0584 b757de73a85f3188021f626403edb3b4d164c893 2026-07-14T02:26:14-06:00 2026-07-14T02:26:14-06:00 docs(phase-26): checkpoint now POINTS AT docs/tooling-audit.md as the audit phase's input document +0585 978ef703acc445d647e33ece55bd48f9af896364 2026-07-14T02:39:38-06:00 2026-07-14T02:39:38-06:00 docs(phase-26a): A0 β€” the tooling-integrity audit, as an INSERTED HALF-PHASE (Drew's call) +0586 bb65d36341c666d3a9ac484b2e9cb0e08bc8a110 2026-07-14T02:49:51-06:00 2026-07-14T02:50:28-06:00 fix(phase-26a): A1 β€” dedup_integrate was a gate that could print a FALSE GREEN +0587 92a695ef93f6402f9946ff3db829dd98a5d512e9 2026-07-14T02:51:59-06:00 2026-07-14T02:51:59-06:00 docs(phase-26a): ORDER CORRECTED β€” the full 18-tool audit runs BEFORE the fix campaign +0588 ffb6f1a40f12e7d2b0a1d179e24a892fade390e2 2026-07-14T03:41:43-06:00 2026-07-14T03:41:43-06:00 docs(phase-26a): A2 β€” the full audit; 28 findings survive; the endgame plan was majority-fiction +0589 f7b7399ebe1c9877c801d26ff260763392d7da96 2026-07-14T09:20:01-06:00 2026-07-14T09:20:01-06:00 feat(phase-26a): A3 β€” tools/corpus.py, ONE derived corpus oracle (+ a second oracle that can disagree) +0590 a302908f24ad628c493be1ec58aa2191366ed5cb 2026-07-14T09:22:31-06:00 2026-07-14T09:22:31-06:00 fix(phase-26a): A3 β€” target selection was blind to 91.6% of the remaining work; now derived +0591 70a99aa9f7ffd1d7572dd04db759828a8c1b59fa 2026-07-14T09:30:03-06:00 2026-07-14T09:30:03-06:00 fix(phase-26a): A3 β€” the byte-gate could only see ONE translation unit (96.6% of stubs unreachable) +0592 3be734bde83689be5293136efed6fd4744a8a916 2026-07-14T09:30:38-06:00 2026-07-14T09:30:38-06:00 docs(phase-26a): A3 progress β€” the oracle is built; 4 of ~10 scanners deleted +0593 9794b13ed25d34b4d09fd7c0d4bcda101d9e761e 2026-07-14T09:40:38-06:00 2026-07-14T09:40:38-06:00 fix(phase-26a): A3 β€” the endgame plan was 2.8x too big; the matched set is now DERIVED +0594 af2f40d153b174093aa5b500f64ca25d7276a752 2026-07-14T10:12:19-06:00 2026-07-14T10:12:19-06:00 fix(phase-26a): A4/A5 β€” 193 unmatchable slices dissolved; the closeness oracle stops lying +0595 a2a507d079ffcd89755762ff539a2e2011aa9a98 2026-07-14T10:12:59-06:00 2026-07-14T10:12:59-06:00 docs(phase-26a): A4/A5 + the stale-object false-pass hole recorded +0596 82d79e7a32a6a792e985243203921a0669e6afda 2026-07-14T10:34:06-06:00 2026-07-14T10:34:06-06:00 fix(phase-26a): A6/A7 β€” the family engine could not see half its corpus; 17 fns banked x134 free +0597 2086b15b480178c33248f8c32f1eae807745ae62 2026-07-14T10:38:09-06:00 2026-07-14T10:38:09-06:00 fix(phase-26a): A8 β€” jr_isolate_all silently dropped 683 prototypes: a LATENT BYTE-CHANGER +0598 c7772bc452023713c0feaa4ccbb2dd9f965f436a 2026-07-14T10:40:04-06:00 2026-07-14T10:40:04-06:00 docs(phase-26a): SESSION-9 CLOSE β€” cookbook Β§51 (the tooling-integrity laws) + handoff +0599 f9742cf9c04c824a02063244523c436f40874db7 2026-07-14T11:37:13-06:00 2026-07-14T11:37:13-06:00 feat(phase-26a): A3b β€” cdecl.py, THE C-declaration oracle: one grammar, fifteen deleted models +0600 f4502f11bb421bf3c1d723e40a79c7547a69daa5 2026-07-14T12:26:01-06:00 2026-07-14T12:26:01-06:00 fix(phase-26a): A3c β€” the recovery passes were reconciling 95% of drafts against the WRONG TU +0601 4aae5e7589b7d6cc3734c5668ced59e8fc09eaec 2026-07-14T12:52:41-06:00 2026-07-14T12:53:14-06:00 fix(phase-26a): A3d β€” retire the fleet-majority oracle: it was WRONG for the TU 16% of the time, on both banking paths +0602 b89fcc2edc2b81059ff5b0ef90af6454719d2c27 2026-07-14T15:39:07-06:00 2026-07-14T15:39:07-06:00 fix(phase-26a): A3e β€” gate_stage pinned the byte-gate back to 4.9%, OF A3'S OWN FIX +0603 8ffcf9646eb65ed70a42a8d666daa244f8cfb99f 2026-07-14T15:49:13-06:00 2026-07-14T15:49:13-06:00 feat(phase-26a): A3f β€” 33 functions banked that the project had written off as compiler walls +0604 60e26e07f8c2cf382d86155ba0b2c46457c5ada9 2026-07-14T16:47:42-06:00 2026-07-14T16:47:42-06:00 feat(phase-26a): A3g β€” propagate the 3 fleet-wide banks Γ—134 (bounded, gated, R22-clean) +0605 7a3921a3f30b4fd8c5edba231508652d75069526 2026-07-14T16:48:23-06:00 2026-07-14T16:48:23-06:00 docs(phase-26a): log A3f+A3g (harvest + propagation) + disk-hygiene note +0606 2f38e31e76b383708e85887c3cf9bbd14283dad5 2026-07-14T17:41:24-06:00 2026-07-14T17:41:24-06:00 feat(phase-26a): A3h β€” propagate 14 fleet-wide byte-exact stubs Γ—134 (Bucket P) +0607 6139800e6d1dbc74bdb927c0ee549c32d0678850 2026-07-14T18:59:32-06:00 2026-07-14T18:59:32-06:00 feat(phase-26a): A3h β€” family_sweep --hseq re-harvest, +2,675 member banks (post-audit-fix) +0608 959cc9b7c16828fff76b7b405099d2f9ff741594 2026-07-14T19:04:13-06:00 2026-07-14T19:04:13-06:00 docs(phase-26a): log A3h β€” standing-lead harvest (measured, banked +1.3% instr, Bucket X honest-stop) +0609 abbedcee8b458d0eebc96ff2a99675af1d3f47a2 2026-07-14T19:59:56-06:00 2026-07-14T19:59:56-06:00 fix(phase-26a): A9a β€” canon_sig_reconcile sees fn-ptr dispatch tables (cdecl supplement) +0610 97d86fae69d74cbe9a1765d707aab5696407f92f 2026-07-14T20:09:22-06:00 2026-07-14T20:09:22-06:00 feat(phase-26a): A9b β€” bank func_8017A4AC exemplar Γ—1 (wall re-test payoff) +0611 3509acf4b7bb6aa90c2656cef7065ac417ec7d88 2026-07-14T20:38:10-06:00 2026-07-14T20:38:10-06:00 feat(phase-26a): A9b β€” func_8017A4AC banked Γ—134 (536-ins giant, wall re-test payoff) +0612 49004f5b06f89f0c66c4c5f6b7394c69e4a3baad 2026-07-14T20:39:23-06:00 2026-07-14T20:39:23-06:00 docs(phase-26a): log A9a (canon_sig_reconcile fn-ptr fix) + A9b (func_8017A4AC Γ—134 wall re-test) +0613 d7d2613ae652ec397042028ae177b38ead75d4fc 2026-07-14T20:46:11-06:00 2026-07-14T20:46:11-06:00 fix(phase-26a): A9c β€” lint_symbol_refs green + wired into make report +0614 181191b6af18199f37bdae0db10a9ab68f07d8c9 2026-07-14T20:46:53-06:00 2026-07-14T20:46:53-06:00 docs(phase-26a): log A9c (lint_symbol_refs green + wired into make report) +0615 40477281ce1554ff0074a95a03d2c7d3abddcef3 2026-07-14T21:21:02-06:00 2026-07-14T21:21:02-06:00 fix(phase-26a): A9d β€” retire the dead Phase-17 canonical-sig chain (R33) +0616 68d29ba8af8cf6741e58cd73d91809eab555beb1 2026-07-14T21:25:19-06:00 2026-07-14T21:25:19-06:00 fix(phase-26a): A9e β€” reconcile_tu already wired into bank_exemplar (A3d); document the ladder +0617 96e025a32451b0a4c4c2ab3f2eecef4c13f84de4 2026-07-14T21:43:52-06:00 2026-07-14T21:43:52-06:00 fix(phase-26a): A9f β€” overlay_src_split swallowed 2 real definitions; the selftest was blind +0618 ea20bdf9f3c187d81aa37ab6b0fb25e5b98cce2a 2026-07-14T22:03:43-06:00 2026-07-14T22:03:43-06:00 fix(phase-26a): A9g β€” jr_inventory: retire the ephemeral roster, derive banked from the image (R33) +0619 f2b2a9d778eb25bd72d1360efb4717ba98648d9a 2026-07-14T22:27:19-06:00 2026-07-14T22:27:19-06:00 docs(phase-26a): A10 Max-phase β€” wall re-test scoping + arity measurement (fan-out pending R27) +0620 b1c58d7668f7431818eaf797311b7858fa7b60b0 2026-07-14T23:54:16-06:00 2026-07-14T23:54:16-06:00 docs(phase-26a): A10 wave 1 β€” closeness-0 wall re-test CONFIRMED REAL (0/958 bank) +0621 e9038a04ea86b0a7beb6cfb535eba39c75710c02 2026-07-15T00:01:42-06:00 2026-07-15T00:01:42-06:00 docs(phase-26a): A10 COMPLETE β€” wall re-test verdict on all 5 walls +0622 a33c6f85f55487c0bc50fcad4c0667ee55b05c61 2026-07-15T00:23:31-06:00 2026-07-15T00:23:31-06:00 docs(phase-26a): A11 β€” distill + close the tooling-integrity audit (26-A COMPLETE) +0623 8f3e4a12ba0e30ad59cdae37f77fbce3f32290db 2026-07-15T11:15:54-06:00 2026-07-15T11:15:54-06:00 docs(phase-26): T7 re-baseline + Β§52 walker-family regalloc idiom (func_80178004 wall) +0624 06e43873e9cafe34da60d7b5dc490cfe708b52c7 2026-07-15T12:26:47-06:00 2026-07-15T12:26:47-06:00 feat(phase-26 T7): Β§52 regalloc sibling wave β€” 2 cores banked Γ—134 (268 instances) +0625 ed09ee749fcf08b4f3dddd4c05bfa07f6523f375 2026-07-15T13:30:52-06:00 2026-07-15T13:30:52-06:00 feat(phase-26 T7): Β§52 sibling wave 2 β€” 3 more cores banked Γ—134 (402 instances) +0626 d40711fe5f0d737cbafbdf320299fe9e96c6d81a 2026-07-15T14:36:52-06:00 2026-07-15T14:36:52-06:00 chore(phase-26 T7): family_sweep --allow-pins flag + honest matched-sib finding +0627 1bbab78c65c6ca7a36e8498a2c2ea17e3099ea76 2026-07-15T14:54:25-06:00 2026-07-15T14:54:25-06:00 feat(phase-26): close β€” family engine + the tooling-integrity audit + the Β§52 discovery-flywheel; mechanical harvest byte-proven exhausted; fleet 58.2->68.9% instr (v1.25.0) +0628 6344a2c42421c846c31ac52fca3db3559f8071fd 2026-07-15T15:49:45-06:00 2026-07-15T15:49:45-06:00 docs(roadmap): adopt the Road-to-100 endgame roadmap (Phase 27+) β€” supersedes the family-endgame megaplan +0629 002f6d7c7bef1495c0bf0a0a35846a05e902ac46 2026-07-15T17:30:37-06:00 2026-07-15T17:30:37-06:00 chore(phase-27 T0): Phase Start β€” plan approved (gate 1) + the P27 verification corrections +0630 2351c43e6622b25f63707363f4e466515bb9d862 2026-07-15T17:32:59-06:00 2026-07-15T17:32:59-06:00 chore(phase-27 T3): preserve the irreplaceable .run/ recon (R20) β€” 2.2M, not 12.3M +0631 6e99157bcf9a824de8ef59139b3e17620eaca588 2026-07-15T17:35:29-06:00 2026-07-15T17:35:29-06:00 chore(phase-27 T3 addendum): widen the .run/giants allowlist β€” cookbook Β§45 cited untracked files +0632 ebdef9012bd658df2df537e6825c978f0fb5bcc8 2026-07-15T17:56:45-06:00 2026-07-15T17:56:45-06:00 feat(phase-27 T2): make the Makefile fail-closed β€” the enabling fix for every downstream gate +0633 e0a0becfaadd1c4c4c6e3b7300473b8ea50405da 2026-07-15T18:11:43-06:00 2026-07-15T18:11:43-06:00 feat(phase-27 T4): one cdecl typedef-strip primitive (was six regexes) + surface cc1 stderr +0634 8a1a1a0d79fe0c64ad6eb79472a8e3007c9a43fb 2026-07-15T18:20:55-06:00 2026-07-15T18:20:55-06:00 feat(phase-27 T6): migrate difficulty + exemplar_miner off hand-lists/proxies (R33) β€” before T7 +0635 264fe6c115339816a3c0324247d2a3385a708b45 2026-07-15T18:33:37-06:00 2026-07-15T18:33:37-06:00 feat(phase-27 T7): disc-completeness audit β€” onboard 4 hidden SC07 overlays (136->140) + the type sweep +0636 427baba3bf38a989ae28989d271f5a973e00954c 2026-07-15T18:51:43-06:00 2026-07-15T18:51:43-06:00 feat(phase-27 T10): completion dashboard (main in the weighted metric) + the resident second oracle +0637 ee4b3a02e84254d91f22113fb5842f6c8eee02e9 2026-07-15T19:20:56-06:00 2026-07-15T19:20:56-06:00 feat(phase-27 T5): extract_unit carries file-scope #define macros β€” honest 0x8017BEBC probe + the pin-crash wall dissolved +0638 2bcd1344e3c504164bf55ec48bbf1b8089d90a94 2026-07-15T19:22:21-06:00 2026-07-15T19:22:21-06:00 chore(phase-27): preserve the Fable5 wave-1/2 recon (R20) β€” 112K, not 260M +0639 54bdf962184cccf450269a565c16694c9d90b55f 2026-07-15T19:30:12-06:00 2026-07-15T19:30:12-06:00 docs(phase-27 T1): distill the Fable5 wave β€” the pin-crash wall refuted + 3 RC-6 downgrades +0640 0f68a83cfad11dd6d45b69f8e41ccb7a53497f89 2026-07-15T19:37:28-06:00 2026-07-15T19:37:28-06:00 feat(phase-27 T8): worklist --assert-partition (R32) + honest re-scan + ledger corruption fixed +0641 ce88baf365c40bf7c7f397e699074dd4211e9986 2026-07-15T19:40:08-06:00 2026-07-15T19:40:08-06:00 feat(phase-27 T9): calibration β€” the templatability swing measured (structural families are NOT cheap) +0642 d1ef983af0d18eea2a42558d2f6e0cb74e3f63f1 2026-07-15T20:34:35-06:00 2026-07-15T20:34:35-06:00 docs(phase-27 T1 close): func_80176734 crack + distill β€” the CSE address-fold antidote +0643 3b31508a24322de01032833500a9bbc3314a70c3 2026-07-15T20:42:32-06:00 2026-07-15T20:42:32-06:00 feat(phase-27): the honest frontier β€” fix the instruments, audit the disc, dissolve a wall (v1.26.0) +0644 76db32455c36fac733ebb1b2ffc3682ebb8d1103 2026-07-15T21:44:13-06:00 2026-07-15T21:44:13-06:00 feat(phase-28 T0): fix img_path (derive, don't guess) β€” the SC07 pool was doubly hidden +0645 a4640e3a5170e65c7342c15dfa5b94a8e7801ba6 2026-07-15T21:56:28-06:00 2026-07-15T21:56:28-06:00 feat(phase-28 T1): B2 LIVES β€” 8/8 banked; the "families don't template" doctrine was a missing carve +0646 4db79a20603497e77eebd7c9408d936714ad1664 2026-07-15T22:34:45-06:00 2026-07-15T22:34:45-06:00 feat(phase-28 T1b): the B2 family swept β€” 102/115 banked (88.7%), fleet 67.0 -> 67.7% instr +0647 65e96e5d5a9900caef6dac2a44e224289361fcea 2026-07-15T22:37:19-06:00 2026-07-15T22:37:19-06:00 feat(phase-28 T2): purge the poisoned grinder blacklist β€” 8 of its 22 had MATCHED anyway +0648 515d003dbece0039ffd5bb3ee0302b02fb847c50 2026-07-15T22:49:52-06:00 2026-07-15T22:49:52-06:00 feat(phase-28 T3-A): ZERO DIFF β€” the SC07 pool is the EASY (h_exact) class and is simply UNWIRED +0649 c0486fe5f864b33165ac602321dccea7a5b0063c 2026-07-15T23:14:19-06:00 2026-07-15T23:14:19-06:00 feat(phase-28 T4): dedup_extend β€” wire newly-onboarded binaries in; ov_SC07_006 1543/1614 (95.6%) +0650 fda9eebb42969c8f0de11f27ca6294bc51701a8c 2026-07-16T00:10:12-06:00 2026-07-16T00:10:12-06:00 fix(phase-28 T4): wire all 4 SC07 overlays (6174/6457, 95.6%) + REPAIR the registry I destroyed +0651 2c4e2344da8afee9c6aeff0939b79b67f5434a38 2026-07-16T00:17:57-06:00 2026-07-16T00:17:57-06:00 fix(phase-28 T5): progress.py β€” #if 0 blindness + the len()-sum; resident 123/146 -> 122/145 +0652 876dc7f05343dffcbd6450682072a0b692a289c1 2026-07-16T01:41:57-06:00 2026-07-16T01:41:57-06:00 feat(phase-28 T5): resident 21 -> 14 stubs (7 banked, 90.34%) + fix match_one's fake isolation +0653 af05f6e412eedf5673a35034e48f5fdf908a97fe 2026-07-16T01:44:11-06:00 2026-07-16T01:44:11-06:00 docs(phase-28 T5b): the resident wall dossier β€” 14 remaining, classed and byte-grounded +0654 1dbf5477d0f36049c6b5ecfb4590e403406c9e5a 2026-07-16T01:50:06-06:00 2026-07-16T01:50:06-06:00 perf(phase-28 T6): harvest_verify --chunk 1 no longer double-builds every failing draft +0655 064e762a004a35980a2ac8629e6a50afa6e3f260 2026-07-16T01:50:59-06:00 2026-07-16T01:50:59-06:00 docs(phase-28): checkpoint β€” 9/11 tasks done; resume point for T7 + T3b recorded +0656 758c4365b6bb272c0a0d45ccd0b136a9d89db776 2026-07-16T01:56:26-06:00 2026-07-16T01:56:26-06:00 feat(phase-28 T7): make audit-binaries β€” the R36 citizenship gate (R32 enforcement) +0657 6d9af19482ada0b4e2d713534b90ded4fbbe35e8 2026-07-16T01:59:32-06:00 2026-07-16T01:59:32-06:00 fix(phase-28 T7): disc_code_sweep was blind to COMPRESSED code β€” the type-4 row was vacuous +0658 45fb6affbb3737ede09cc754d753f4f2285155e2 2026-07-16T02:01:15-06:00 2026-07-16T02:01:15-06:00 fix(phase-28 T7): worklist --assert-partition read the wrong manifest key (silent default) +0659 6996d253798948343384180764a5f5739ca9259d 2026-07-16T02:11:03-06:00 2026-07-16T02:11:03-06:00 feat(phase-28 T3b): the legacy h_seq swing number β€” ~3% as-tooled, CLASSIFIED, ceiling unknown +0660 3827d01bfb1c54522f3ea95afc70d49d7b6a2427 2026-07-16T10:53:23-06:00 2026-07-16T10:53:23-06:00 feat(phase-28): the endgame engine -> the instrument-repair phase; B2 lives, SC07 wired, R36 (v1.27.0) +0661 2e84b53b2d5d86ce70de39f96f385259d7e692e1 2026-07-16T12:07:37-06:00 2026-07-16T12:07:37-06:00 feat(phase-29 T1): the swing number RESOLVED β€” (a) tooling, an -O0 compile-flag artifact (not a wall) +0662 5b6a8ae6cbf2214de597c949f037a10c952bf7d9 2026-07-16T14:27:10-06:00 2026-07-16T14:27:10-06:00 feat(phase-29 T2a): Arm B type-lift sweep β€” 3,407 member-matches banked (fleet 68.9->70.2% instr) +0663 908dded511631b910675748aff0b12f69d3767e2 2026-07-16T16:33:40-06:00 2026-07-16T16:33:40-06:00 feat(phase-29 T2a): Arm B tail β€” 748 members banked in the 4 SC07 tail overlays (fleet 70.2->70.4% instr) +0664 f6f89781ffadaefbade65fb7a58794a757c79f26 2026-07-16T17:05:52-06:00 2026-07-16T17:05:52-06:00 feat(phase-29 T2 Arm A): swing verdict = BANKED FACT (9/9 -O0 members on ov_SC07_010); fleet -O0 rollout deferred at the splat wall +0665 53ee97494747220f83d02338ce8bdbf63d1098d0 2026-07-16T17:53:42-06:00 2026-07-16T17:53:42-06:00 docs(phase-29 T6-scout): tiny-IMM mega-pools = a symbol-definition gap, not a wall (~4,966 members) +0666 941cd37b19a08f23cb27b54122de275543cb9ade 2026-07-16T18:56:40-06:00 2026-07-16T18:56:40-06:00 feat(phase-29 T6): tiny-IMM mega-pools CRACKED +4,801 via family_sweep --fix-def-sig (fleet 70.4->71.0% instr) +0667 afd1aeea4f10ff25100b68a2dd16694fc447cee5 2026-07-16T19:35:18-06:00 2026-07-16T19:35:18-06:00 feat(phase-29 T6): broad --fix-def-sig harvest +19 (def-sig lever tapped beyond the mega-pools) +0668 b5340f920b2c787212919f3c95c38fe89a9e7d23 2026-07-17T01:32:37-06:00 2026-07-17T01:33:16-06:00 feat(phase-29 T3): core-crack wave β€” 5 cores banked x1 (13 agents: 7 match/6 near); propagate deferred + 3 tooling traps logged +0669 fd564a2cf75bf977686cbcd7649023f52eddce46 2026-07-17T02:04:38-06:00 2026-07-17T02:04:38-06:00 feat(phase-29 T3): propagate the 3 self-contained cores Γ—137 (+410 instances; fleet 71.0->71.4% instr) +0670 c916115291ad15ceab641ffbe99ee35a58a7c754 2026-07-17T02:12:17-06:00 2026-07-17T02:12:17-06:00 feat(phase-29 T3): the Β§53 has_mid_jr INTERLOCK + worker_wave -O0 build-step fix +0671 225d78106d45dbc8c60f872124c24e03472f1742 2026-07-17T02:59:10-06:00 2026-07-17T02:59:10-06:00 feat(phase-29 T3): CLOSE β€” jr cores 4/4 match_one MATCH (gate-blocked on plumbing) + 12 giants preserved; SESSION CHECKPOINT +0672 620e7ed24b928553ee877298495aaea303048209 2026-07-17T02:59:28-06:00 2026-07-17T02:59:28-06:00 chore(phase-29 T3): backlog ledger β€” gate-run near-miss logging +0673 def16c8b18be43ba619d738377ab1de09ab224a2 2026-07-17T12:50:11-06:00 2026-07-17T12:50:11-06:00 feat(phase-29 T4): bank giant func_8013FAF8 (312) x1 + cookbook Β§56 (giant-splice reconciliation) +0674 c7fedced10e543cdd1ccf7806ff41526b3ec281e 2026-07-17T17:40:54-06:00 2026-07-17T17:40:54-06:00 feat(phase-29 T4): propagate giant func_8014F4C0 (141) x134 + bank x1 +0675 c5e8af5cfbed157c502786b85b775fb6708aabd1 2026-07-17T17:57:18-06:00 2026-07-17T17:57:18-06:00 feat(phase-29 T4): propagate giant func_8013FAF8 (312) x137 (h_seq family sweep) +0676 d6db1343b80812f9b915acc2d1f4fdf6156f8a74 2026-07-17T18:37:00-06:00 2026-07-17T18:37:00-06:00 feat(phase-29 T4): type-lift + propagate 2 local-type cores x138 (func_8014E284, func_80137DD4) +0677 1dbf8310efb2c834a9a7e0c065ae2ed54c6cc62d 2026-07-17T18:37:47-06:00 2026-07-17T18:37:47-06:00 chore(phase-29 T4): regen progress.fleet.md digest (fleet 72.1% instr after session-2 banks) +0678 5e78dccf07be33a5ff97ede386d9c63d857ec753 2026-07-18T02:03:48-06:00 2026-07-18T02:03:48-06:00 feat(phase-29 Β§8e): jtbl 8-align pad-spec filter β€” the 4-giant unblock tooling (fleet-neutral) +0679 15c38fd9537bde78b42193817918dd397b638cf6 2026-07-18T02:05:11-06:00 2026-07-18T02:05:11-06:00 feat(phase-29 Β§8e): bank giant func_80131340 (424) x1 β€” first 4-mod-8 non-first jtbl bank +0680 387e224ead76b43f83529667038acd99705c0956 2026-07-18T02:13:51-06:00 2026-07-18T02:13:51-06:00 feat(phase-29 Β§8e): sweep func_80131340 x50 (chunk 1/3) β€” 50/50 BANKED, 0 failed +0681 224bf44ca2e67204f81caa88bf70c788162fb718 2026-07-18T02:20:38-06:00 2026-07-18T02:20:38-06:00 feat(phase-29 Β§8e): sweep func_80131340 x50 (chunk 2/3) β€” 50/50 BANKED, 0 failed +0682 9b463f2f9703406cc52666756d6b6ca6aaffb52a 2026-07-18T02:29:43-06:00 2026-07-18T02:29:43-06:00 feat(phase-29 Β§8e): sweep func_80131340 x37 (chunk 3/3) β€” 137/137 siblings BANKED, family COMPLETE +0683 9b61bd7bd4d63d06c1875b01d5a2552af0a3ab74 2026-07-18T02:36:13-06:00 2026-07-18T02:36:13-06:00 chore(phase-29 Β§8e): log func_80131340 family complete x138 β€” fleet 72.5% instr / 55.0% distinct +0684 db2daf47e4000a311d67a539be3330bdefa781ae 2026-07-18T02:41:16-06:00 2026-07-18T02:41:16-06:00 feat(phase-29 Β§8e): bank giant func_80159C84 (337) x1 β€” isolate + the FIRST pad=4 spec +0685 1cb018bc0039f4ab37eb8f40670c76b80b4a629a 2026-07-18T02:55:34-06:00 2026-07-18T02:55:34-06:00 feat(phase-29 Β§8e): bank giant func_8013F350 (490) x1 β€” the 4-table [0,0,4,0] span + tables= persistence +0686 c3afadc878fef98e5c9e59b4bcf3cc5ea9200b83 2026-07-18T02:56:25-06:00 2026-07-18T02:56:25-06:00 feat(phase-29 Β§8e): bank giant func_8013C414 (329, -O0) x1 β€” all 4 jtbl giants banked x1 +0687 041c9c755315d345aefeb8bfae38589e3ce8941c 2026-07-18T02:57:12-06:00 2026-07-18T02:57:12-06:00 feat(phase-29 Β§8e): jtbl_family_bank passes --like to sibling carves (span-structure transfer) +0688 a11e4d9d85ae4617b3604dfb19f928fd99a0737f 2026-07-18T03:00:32-06:00 2026-07-18T03:00:32-06:00 feat(phase-29 Β§8e): sweep func_80159C84 partial β€” 3 BANKED (SC01_000/001/005) before diagnostic stop +0689 c9499fbef89f52fafef4727c93ea5b75b388a0f5 2026-07-18T03:01:01-06:00 2026-07-18T03:01:01-06:00 feat(phase-29 Β§8e): func_80159C84 diagnostic β€” clean (canonical-decl) draft banks the gate-fail class (ov_SC01_004 BANKED) +0690 44f70fbb8f2fa93ae362e201a2e6bc03e34f8bfb 2026-07-18T03:15:21-06:00 2026-07-18T03:15:21-06:00 feat(phase-29 Β§8e): sweep func_80159C84 remainder r1 β€” 50/50 BANKED (clean canonical-decl draft) +0691 85fc2a1a7cdd41c96582b6aa0173173895d4f682 2026-07-18T03:28:10-06:00 2026-07-18T03:28:10-06:00 feat(phase-29 Β§8e): sweep func_80159C84 remainder r2 β€” 51/50 BANKED +0692 698a3d58e2e54a21f2f3dfebdc22ff6ff5bfa7ff 2026-07-18T03:37:06-06:00 2026-07-18T03:37:06-06:00 feat(phase-29 Β§8e): sweep func_80159C84 remainder r3 β€” 29/33 BANKED (family 133/137) +0693 b577b6cd74517585a5e233027a861bf8db9119ab 2026-07-18T03:39:12-06:00 2026-07-18T03:39:12-06:00 feat(phase-29 Β§8e): Β§30#2 fleet-widen func_8013F350 extern void->s32 x267 (discarding callers; byte-neutral, R22-verified at batch end) +0694 232698dcfbed4888617ebfe39988d50920432fb6 2026-07-18T03:53:21-06:00 2026-07-18T03:53:21-06:00 feat(phase-29 Β§8e): sweep func_8013F350 x50 (chunk 1/3) β€” 50/50 BANKED (--like 4-table span transfer proven x50) +0695 abc658b590ff56c5086d90ed3b185b27100f31aa 2026-07-18T04:06:15-06:00 2026-07-18T04:06:15-06:00 feat(phase-29 Β§8e): sweep func_8013F350 (chunk 2/3) β€” 50/50 BANKED +0696 ece9c6ee8dd3a52f97951e790640e58a1dc68bfb 2026-07-18T04:15:54-06:00 2026-07-18T04:15:54-06:00 feat(phase-29 Β§8e): sweep func_8013F350 x37 (chunk 3/3) β€” family COMPLETE 138/138, 0 failed +0697 4310269bb849c503526d69c68306137d66c7c928 2026-07-18T04:25:19-06:00 2026-07-18T04:25:19-06:00 feat(phase-29 Β§8e): campaign close β€” 3 families swept (410 banks), fleet 73.4% instr / 56.9% distinct (v-batch R22 140/140) +0698 85dd9938d42e3e872f721c9857960021b77a62b7 2026-07-18T09:10:59-06:00 2026-07-18T09:10:59-06:00 feat(phase-29 crack-wave): bank func_8013CB84 (249) x1 β€” camera-region core, 5-lever crack +0699 33ed9a909a459912c4ec951d1befb9db9c5d1eea 2026-07-18T09:19:48-06:00 2026-07-18T09:19:48-06:00 feat(phase-29 crack-wave): func_8013CB84 family COMPLETE 138/138 (137 swept, 0 failed) +0700 8bd1b2b175d36737c2a41734acccfb4fbf133584 2026-07-18T09:36:30-06:00 2026-07-18T09:36:30-06:00 chore(phase-29 crack-wave): log wave outcome (3 MATCH/4 near, 8013CB84 x138) + preserve drafts + fleet 73.7% +0701 5a059d6219ca2744ab471f00ecadada7da25cf9c 2026-07-18T11:37:16-06:00 2026-07-18T11:37:16-06:00 feat(phase-29 wave2/fable): bank x1 β€” 8016CBC0/8015EA3C/8015D738/8015F448 (wave2) + 801670E4 (fable) +0702 7f61d347b5d60926a0942dc34b5b09f3ade83ffa 2026-07-18T11:39:11-06:00 2026-07-18T11:39:11-06:00 feat(phase-29 wave2/fable): bank x1 β€” 8014FFDC (wave2, x276) + 8012956C (fable sched1/loop crack) +0703 c7af030709e0fe4fddb2bd7d528793876d4a22f6 2026-07-18T11:45:36-06:00 2026-07-18T11:45:36-06:00 feat(phase-29 fable): bank func_8013D53C (240) x1 β€” the cse.c address-CSE wall crack +0704 602fac6e20806c4cbb07a97dc6899fc8661e517f 2026-07-18T11:58:24-06:00 2026-07-18T11:58:24-06:00 feat(phase-29 wave2/fable): sweep 8 families β€” 538 member-matches banked (partial) +0705 6dcc4fb16f1fa8622ac5e45b64802ae4db7b7b3a 2026-07-18T12:07:24-06:00 2026-07-18T12:07:24-06:00 feat(phase-29 crack-wave): type-lift Blk16_956C/Ent_956C -> engine_types.h (func_8012956C sweep enabler) +0706 b346c0abe8476cf224654cf6a1baea3491adf9af 2026-07-18T12:15:25-06:00 2026-07-18T12:15:25-06:00 feat(phase-29 crack-wave): func_8012956C family COMPLETE 138/138 (type-lift recovery, 137 swept) +0707 cceec3b8ead4f5b6be2d37f462557f9e0ea2bc86 2026-07-18T12:16:04-06:00 2026-07-18T12:16:04-06:00 feat(phase-29 crack-wave): type-lift SVec/Fr_801670E4 -> engine_types.h (func_801670E4 sweep enabler) +0708 f281c6cf472567d0befd161118a0d21e6ff1697e 2026-07-18T12:23:00-06:00 2026-07-18T12:23:00-06:00 feat(phase-29 crack-wave): func_801670E4 partial sweep (4 members; 133 blocked on def-sig) +0709 514383de6a5b0db9393fcd0e1e560be840e60bfa 2026-07-18T12:33:39-06:00 2026-07-18T12:33:39-06:00 chore(phase-29 crack-wave): log wave2+fable+type-lift outcome (fleet 74.6% instr) + preserve drafts +0710 c7fae2e5585c5be30689a2877fd48bae717c5fb6 2026-07-18T16:39:43-06:00 2026-07-18T16:39:43-06:00 docs(phase-29): precise BUILD SPEC for the sweep decl-normalize enhancement (next-session, byte-verified) +0711 ad11c491a516122631efb81e73900eb789fe5213 2026-07-18T17:30:25-06:00 2026-07-18T17:30:25-06:00 feat(phase-29 decl-normalize): func_801670E4 family 4->137/137 (+133) via the 3rd Β§17a-1 direction +0712 65c93ea03579f1ead62e767e1c69f0b0eb7772b9 2026-07-18T17:49:03-06:00 2026-07-18T17:50:07-06:00 feat(phase-29 type-lift): func_8016CBC0 family 1->138/138 (+137) via the 6-typedef engine_types.h lift +0713 259c6e6382dd87e36d28bb216c085caadea1777c 2026-07-18T17:51:27-06:00 2026-07-18T17:51:27-06:00 docs(phase-29): session-3 checkpoint β€” decl-normalize + type-lift, +270 members (75.1% instr) +0714 6b0bb5440a99ab057cc96079b0a6bde9fa827e1e 2026-07-18T20:05:42-06:00 2026-07-18T20:05:42-06:00 feat(phase-29 broad-sweep): +137 (func_801502EC x134 + func_80131B14 x3) via --fix-def-sig +0715 53433df1b320f751b6accbd339787eb08d95c4b7 2026-07-18T20:30:43-06:00 2026-07-18T20:30:43-06:00 feat(phase-29): func_8013D53C 14/137 + NSD hardened (rewrite-to-canonical, (void) fix) + Cmd lift +0716 c9e12a079b4b55a36b6914827cb7161c1faaffa6 2026-07-18T22:58:15-06:00 2026-07-18T22:58:15-06:00 feat(phase-29 crack-wave): +6 cores banked Γ—1 in ov_SC01_077 (R22 140/140) +0717 2605f206d361c44adeb5865d5bd91f2c9ec225a7 2026-07-18T23:15:06-06:00 2026-07-18T23:15:06-06:00 feat(phase-29 crack-wave): func_80150170 Γ—138 dedup-propagate (+137, 138/138) +0718 30812b85e004609d20da2d02e9ad82aba6134f5a 2026-07-18T23:22:58-06:00 2026-07-18T23:22:58-06:00 feat(phase-26): h_seq family sweep β€” 137 member-matches banked via remap_hseq +0719 08588968a777cc5214942d4f6a2a09a3700d1ce9 2026-07-18T23:31:02-06:00 2026-07-18T23:31:02-06:00 docs(phase-29 crack-wave): session-4 checkpoint β€” dedup+sweep +275 members, R22 140/140 +0720 43a6ded6b00f1bcd9a9a0bf6bb0d2ee8fb737bd6 2026-07-18T23:39:45-06:00 2026-07-18T23:39:45-06:00 feat(phase-29 crack-wave): func_80165240 family sweep +137 (137/137) +0721 af6e70afe892f8ee1c58225aef02bde29ac4cbb1 2026-07-19T00:05:52-06:00 2026-07-19T00:05:52-06:00 feat(phase-29 crack-wave): func_8016D1D8 + func_8016D688 family sweep +274 (137/137 each) +0722 768676ac0d50dd2bda058aef4f0c71c2a3dd5e54 2026-07-19T00:09:18-06:00 2026-07-19T00:09:18-06:00 feat(phase-29 giants): func_8013C0F8 Γ—1 in ov_SC01_077 (jtbl_801D82FC carve) +0723 d7092de63a3ab4d0f85d2532004a62909ff6aa72 2026-07-19T00:25:58-06:00 2026-07-19T00:25:58-06:00 docs(phase-29 crack-wave): session-4 close β€” +412 residuals verified, cookbook Β§59 +0724 3ed35eafe1d5050d31685e6c6f00a106921db7fc 2026-07-19T00:36:51-06:00 2026-07-19T00:36:51-06:00 docs(phase-29): regen family-manifest after session-4 banks (frontier snapshot) +0725 cbe224567c0449e4b9d14233947f96eebcf431e4 2026-07-19T01:37:48-06:00 2026-07-19T01:37:48-06:00 feat(phase-29 crack-wave2): +4 absent-family cores banked Γ—1 in ov_SC01_000 +0726 a725c2a4e66a4dca4352de932fce92bb0a190860 2026-07-19T01:43:45-06:00 2026-07-19T01:43:45-06:00 feat(phase-26): h_seq family sweep β€” 1 member-matches banked via remap_hseq +0727 9ee4ce8d0e64172a933c2d131b0409432575dbdb 2026-07-19T01:57:32-06:00 2026-07-19T01:57:32-06:00 feat(phase-29 crack-wave2): func_8016DC20 +132 / func_801418F8 +126 family sweep (ov_SC01_000 exemplar) +0728 9e020256dc3b51e1b052dea929a70ecd0d35134c 2026-07-19T01:59:24-06:00 2026-07-19T01:59:24-06:00 feat(phase-29 crack-wave2): func_8013EF88 +136 / func_8013D8FC +135 family sweep (ov_SC01_000 exemplar) +0729 3eb6b019ffbe1761ce781c99a92c49df74826544 2026-07-19T02:04:50-06:00 2026-07-19T02:04:50-06:00 feat(phase-29 crack-wave2): func_801418F8 +10 residuals via D_8011512E u16 canonical +0730 f72ad4a85d8851434daf9e52892fc6d3814e2d0b 2026-07-19T02:09:23-06:00 2026-07-19T02:09:23-06:00 feat(phase-29 crack-wave2): func_8016DC20 +3 SC07 residuals (carried-extern reconcile) +0731 c48a485ff9b1d97c2b850b0d534a42cc4210e719 2026-07-19T02:25:45-06:00 2026-07-19T02:26:05-06:00 feat(phase-29 crack-wave2): +2 residual exemplars banked x1 in ov_SC01_000 +0732 b00461774a43ad49971b26d50ace7f771c85a36a 2026-07-19T02:35:33-06:00 2026-07-19T02:35:33-06:00 feat(phase-29 crack-wave2): func_80141A60 family sweep +135 (135/135, fully banked) +0733 8e00adb0a70a135f211c77e117cd0bd330ee9734 2026-07-19T02:37:50-06:00 2026-07-19T02:37:50-06:00 feat(phase-29 crack-wave2): func_8013D9B0 family sweep +135 (fully banked) +0734 dd184d3ee3617dcc8f4a1ba49653817568f06976 2026-07-19T02:40:11-06:00 2026-07-19T02:40:11-06:00 docs(phase-29 crack-wave2): regen family-manifest after +814 member banks (frontier snapshot) +0735 1ad5cc359ae21f67d1be90c2f3a4c7fd95d794cf 2026-07-19T02:48:11-06:00 2026-07-19T02:48:11-06:00 docs(phase-29 crack-wave2): session-4 checkpoint β€” +819 members (76.3% instr), frontier honest +0736 6a367f424627ee94e8f4ac025d687d3dc49b60e1 2026-07-19T10:28:57-06:00 2026-07-19T10:28:57-06:00 feat(phase-29 crack-wave3): func_80169BBC banked Γ—1 in ov_SC01_077 (162 ins) +0737 d22de5d0e8fae60de0afdb32c2839f54482b8fc5 2026-07-19T11:34:01-06:00 2026-07-19T11:34:01-06:00 feat(phase-29 crack-wave3): func_80160534 banked Γ—1 in ov_SC01_077 (Β§58 reconcile_tu D_801152A0) +0738 32ab6e54960e3428e3c0e7f451d2e122a9d2484c 2026-07-19T11:40:19-06:00 2026-07-19T11:40:19-06:00 feat(phase-26): h_seq family sweep β€” 133 member-matches banked via remap_hseq +0739 e47e680b1865bc7a225b1086b52b20133d44dcc9 2026-07-19T11:43:34-06:00 2026-07-19T11:43:34-06:00 fix(phase-29 crack-wave3): cast func_80161208 call in func_80160534 exemplar (Β§56b member-proof, byte-neutral) +0740 5513530a5b2c24668e9a1f4b748882d78d8e70e1 2026-07-19T11:46:56-06:00 2026-07-19T11:46:56-06:00 feat(phase-29 crack-wave3): func_80160534 family sweep β€” 137 members banked Γ—137 across fleet +0741 bffbb8b9b785a77ef0e22ea3744bf25bbea5b115 2026-07-19T11:47:54-06:00 2026-07-19T11:47:54-06:00 feat(phase-29 crack-wave3): func_8016B234 + func_8016C998 banked Γ—1 in ov_SC01_077 +0742 2ac8070f3d22ff55b922165e0fe1bf7165c6ac98 2026-07-19T11:56:19-06:00 2026-07-19T11:56:19-06:00 feat(phase-26): h_seq family sweep β€” 137 member-matches banked via remap_hseq +0743 dcd9bc49a124c35442eb33334553b5adb2a5a94d 2026-07-19T12:02:54-06:00 2026-07-19T12:02:54-06:00 docs(phase-29 crack-wave3): regen family-hseq manifest after func_8016B234/C998 banks +0744 48e5c716f22b041c3cd5838ad2c0bef566924032 2026-07-19T12:04:36-06:00 2026-07-19T12:04:36-06:00 fix(phase-29 crack-wave3): collapse struct Prim to single-line typedef in func_8016B234 exemplar (Β§59(1) remap carries typedefs not multiline structs, byte-neutral) +0745 925dbfa14fb85633301c9b2f74f7d186f0d38c32 2026-07-19T12:16:15-06:00 2026-07-19T12:16:15-06:00 fix(phase-29 crack-wave3): rename Prim->Prim_B234 in func_8016B234 exemplar (collides with engine_types.h Prim in member TUs, byte-neutral) +0746 257b7d69ad077911cdf9922169f7a283e1cda1b5 2026-07-19T12:28:46-06:00 2026-07-19T12:28:46-06:00 feat(phase-26): h_seq family sweep β€” 137 member-matches banked via remap_hseq +0747 e1600809047e3c40b713a15ecae3745ad91dec9d 2026-07-19T12:46:09-06:00 2026-07-19T12:46:09-06:00 feat(phase-29 crack-wave3): func_8015C32C jtbl family bank Γ—9 (exemplar + 8 siblings, Β§8 jtbl_carve) +0748 135213704ee98c2c1ad0d3e5cb16bee08a02dfd0 2026-07-19T13:32:36-06:00 2026-07-19T13:32:36-06:00 feat(phase-29 crack-wave3): func_8015C32C jtbl family bank +110 members (Β§8 jtbl_carve) +0749 432396ca643d0f37b33129c57d91ceea16b3dd4b 2026-07-19T13:33:26-06:00 2026-07-19T13:33:26-06:00 feat(phase-29 crack-wave3): func_8015C32C jtbl bank ov_SC06_018 (transient crash recovery) +0750 364b1a07e0dd878a622ee2518f4840d00289ac19 2026-07-20T09:28:28-06:00 2026-07-20T09:28:28-06:00 feat(phase-29 crack-wave3): func_8015C32C jtbl family bank +18 final members (138/138 complete) +0751 5a3f6900bd817ef377982367f2cd6ae07ebb16a7 2026-07-20T09:37:42-06:00 2026-07-20T09:37:42-06:00 feat(phase-29 crack-wave3): func_8014032C jtbl exemplar banked Γ—1 (Β§59(3) two-table merged-span wall blocks member propagation) +0752 d2b5f340391026dd53a370e390e3fb445f508c94 2026-07-20T10:15:46-06:00 2026-07-20T10:15:46-06:00 feat(phase-29 crack-wave3): func_80154C24 jtbl family bank 138/138 (Β§8 jtbl_carve + jr_isolate) +0753 cd63e31487544c406976780ecaf33ec2ef6cc6a1 2026-07-20T10:54:14-06:00 2026-07-20T10:54:14-06:00 feat(phase-29 crack-wave3): func_801588CC jtbl family bank 138/138 (Β§8 jtbl_carve + jr_isolate) +0754 3f3a4df5cef8f7288f0fe4bba280bc621e22da43 2026-07-20T11:12:11-06:00 2026-07-20T11:12:11-06:00 feat(phase-29 crack-wave3): func_801594E8 jtbl family bank 138/138 (Β§8 jtbl_carve + jr_isolate) +0755 bd2afeb51cc25a5fb95b46da48fa3b91629feba1 2026-07-20T11:33:52-06:00 2026-07-20T11:33:52-06:00 feat(phase-29 crack-wave3): func_801555F4 jtbl family bank 138/138 (Β§18 fix: drop redundant D_8011F730 extern; TU s32 decl + sign-agnostic |= is byte-neutral where reconcile_tu's &-cast dropped 1 ins) +0756 0872dc3762375c285896b059bc008eb39b9bd7b8 2026-07-20T12:12:47-06:00 2026-07-20T12:12:47-06:00 feat(phase-29 crack-wave3): func_80140608 jtbl family bank 138/138 (Β§8 jtbl_carve; earlier isolate-fail resolved as overlay jr-structure evolved) +0757 edf2a3a5e6675b7c12e5517470e4c27b466f0948 2026-07-20T12:14:39-06:00 2026-07-20T12:14:39-06:00 chore(phase-29 crack-wave3): isolate func_8017AE2C into own jr region in ov_SC01_077 (byte-neutral; unblocks Β§8 span-fit carve) +0758 7d22e8d25859c5f0c5f636533b6a55e15f042d4a 2026-07-20T12:17:31-06:00 2026-07-20T12:17:31-06:00 feat(phase-29 crack-wave3): func_8017AE2C jtbl exemplar banked Γ—1 (174 ins; Β§8 span-fit carve needs per-overlay isolation, members blocked) +0759 5dc984f942338213e7b03161f35ee177edc51543 2026-07-20T12:29:11-06:00 2026-07-20T12:29:11-06:00 docs(phase-29 crack-wave3): regen family-hseq frontier after wave-3 banks (88.1% fn / 77.8% instr) +0760 3add7026156251c2bceb9ca5d8bd086e3cec4701 2026-07-20T12:32:40-06:00 2026-07-20T12:32:40-06:00 docs(phase-29 crack-wave3): session close β€” wave-3 +~1378 instances, R22 140/140, 77.8% instr +0761 9591d61f78e28de1bc6a32f75591edd3058ec6ce 2026-07-20T14:00:52-06:00 2026-07-20T14:00:52-06:00 fix(phase-29): family_sweep --hseq --source now overrides the manifest exemplar +0762 09a561e3e7d2a97e52ea8a2eb6056810715e7b3a 2026-07-20T14:03:51-06:00 2026-07-20T14:03:51-06:00 fix(phase-29): jtbl_family_bank auto-isolates on the span-fit wall too +0763 d50c2f6bb92b181deed1e5809bd5b78e7fa2f720 2026-07-20T14:50:43-06:00 2026-07-20T14:50:43-06:00 feat(phase-29 tooling): func_8017AE2C family Γ—137 via the span-fit jtbl fix (R22 140/140) +0764 a5bad7f48d81ece2b8e735a0ff6b932a741ba958 2026-07-20T14:55:49-06:00 2026-07-20T14:55:49-06:00 feat(phase-29 Task-11): burn-down + velocity tracker (the ROI-close instrument) +0765 5c936c078c0ac21e4bbdac7899985d8b20d23550 2026-07-20T19:24:17-06:00 2026-07-20T19:24:17-06:00 docs(phase-29): hindsight study β€” optimal decomp ordering + offline-automatic endgame (Β§7) +0766 b6549a5f637e0648436142b927942c64013da765 2026-07-20T19:33:45-06:00 2026-07-20T19:33:45-06:00 feat(phase-29 crack-wave4): bank x1 the 6 -O2 exemplars in ov_SC01_000 +0767 30fa4fb34d92ee223ac9ba1ab16bf80aea959dc1 2026-07-20T19:43:11-06:00 2026-07-20T19:43:11-06:00 docs(phase-29): crack-wave 4 checkpoint + crack-track floor; pivot to permuter-automation +0768 eec96f76a4e663cb6eb41d4c798bf8a8eb0bfc15 2026-07-20T19:50:14-06:00 2026-07-20T19:50:14-06:00 feat(phase-29 Task-12): structured failure telemetry + durable permuter-winner save +0769 f61952bfde2e16470e834fb42b0299cf0b417fb8 2026-07-20T19:50:46-06:00 2026-07-20T19:50:46-06:00 docs(phase-29): Task-12 done (structured telemetry flows) + Task 13/14 pickup for a fresh session +0770 e4e8ec5ca9e165fb09015c358fcf156c4a175a87 2026-07-20T23:52:06-06:00 2026-07-20T23:52:06-06:00 docs(phase-29): SESSION-5 CHECKPOINT β€” full session-checkpoint block for a fresh session +0771 b3ab5c22536d7834c44e0a347de040d94a613975 2026-07-21T11:03:59-06:00 2026-07-21T11:03:59-06:00 feat(phase-29 Task-13A): deterministic residual classifier β€” the permuter's problem is TARGETING +0772 b8ee9fa9d27fc06082bc8f02ca59f0d656dfa9a8 2026-07-21T11:24:48-06:00 2026-07-21T11:24:48-06:00 feat(phase-29 Task-13B): directed permuter wins first try; 3 latent gate defects fixed at root +0773 4fb4d96d543636f956d8dc8ab0caf5c12a2b8d15 2026-07-21T11:25:19-06:00 2026-07-21T11:25:19-06:00 docs(phase-29): SESSION-6 CHECKPOINT β€” Task 13A/13B done; the permuter's problem was targeting +0774 dfb17fc495429d9b6245008ae7fb36b5bceffada 2026-07-21T13:29:30-06:00 2026-07-21T13:29:30-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0775 3b7399ea88d69d4e8918917359deab7ef7edb881 2026-07-21T13:30:04-06:00 2026-07-21T13:30:04-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0776 1feba77a929112b19aa53eca23ab283ecb86ca12 2026-07-21T13:30:38-06:00 2026-07-21T13:30:38-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0777 ca7369b0f97544a799cdbf18e2cfd9f3e5786972 2026-07-21T13:31:11-06:00 2026-07-21T13:31:11-06:00 feat(decomp): grinder gate β€” +3 fns x0 propagated (fleet None%) +0778 97d9eb43e84e643ddab85399e2e4a8e0a4653759 2026-07-21T13:31:45-06:00 2026-07-21T13:31:45-06:00 feat(decomp): grinder gate β€” +3 fns x0 propagated (fleet None%) +0779 625c7223582792730ab3ec7cb4bffffefae2cd13 2026-07-21T13:32:22-06:00 2026-07-21T13:32:22-06:00 feat(decomp): grinder gate β€” +3 fns x0 propagated (fleet None%) +0780 7c1cc56401f770772ef0d53296c4a1ded33a3822 2026-07-21T13:32:55-06:00 2026-07-21T13:32:55-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0781 efe3680bcc8dac81e1f73478f0a586ce856803e7 2026-07-21T13:33:28-06:00 2026-07-21T13:33:28-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0782 51177eb672b877764499c0b874f23fefbe91aed2 2026-07-21T13:34:02-06:00 2026-07-21T13:34:02-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0783 6c43c0243df7d71953779e05486ec6f38ebc6b3b 2026-07-21T13:34:35-06:00 2026-07-21T13:34:35-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0784 941d04c4504628f7497515abbd22be1b81e786c2 2026-07-21T13:35:09-06:00 2026-07-21T13:35:09-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0785 eb6a2eeac9524b388f1769677e3710b578d4cab1 2026-07-21T13:35:42-06:00 2026-07-21T13:35:42-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0786 64d0188dba57c508d8cd72789e0022079c1b77f9 2026-07-21T13:36:14-06:00 2026-07-21T13:36:14-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0787 23a3854a1f6d8d366c134febe6dbb09fcd68a33a 2026-07-21T13:36:47-06:00 2026-07-21T13:36:47-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0788 835657d70db744c7f577fd25e05ae75ec90d19da 2026-07-21T13:37:19-06:00 2026-07-21T13:37:19-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0789 0e5796aef6c0dec5695950af3687b0ea11ecc9ec 2026-07-21T13:37:53-06:00 2026-07-21T13:37:53-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0790 865633ec87da12b6b8059a9321d0c77a435a9821 2026-07-21T13:38:25-06:00 2026-07-21T13:38:25-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0791 e6b60a38f10cc5f0f1a7e8ad2c6e3c826f995305 2026-07-21T13:38:58-06:00 2026-07-21T13:38:58-06:00 feat(decomp): grinder gate β€” +3 fns x0 propagated (fleet None%) +0792 3e2de98522b6e1c2ed981ee3325fa960150f6ab0 2026-07-21T13:39:30-06:00 2026-07-21T13:39:30-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0793 e3e4d329a54e9428fd6d9cff7a46bde28725ed15 2026-07-21T13:40:03-06:00 2026-07-21T13:40:03-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0794 5c894c1e62cb57028f165db5b2e481d03f8593b8 2026-07-21T15:05:56-06:00 2026-07-21T15:05:56-06:00 feat(phase-29 Task-13B): func_80141B90 x138 + the reach repricing + the `length` profile +0795 83f20f4271ed718a10fee7caef82702996a1472b 2026-07-21T15:39:27-06:00 2026-07-21T15:39:27-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0796 835c45905d77095229b4a4d5c864ff2cfcd905ac 2026-07-21T17:45:49-06:00 2026-07-21T17:45:49-06:00 feat(phase-29 Task-13B close): plateau autopsy = ZERO missing-transforms; narrow the admission instead +0797 1074f2f202343ba0bcd2ae743e91d096042fa11d 2026-07-21T18:19:04-06:00 2026-07-21T18:19:04-06:00 feat(phase-29 Task-14 stage 1): the ARITY pre-pass β€” and the shared-state constraint it cost +0798 be43af8b597733d2eb1c89e9bd493852e6d3a5f9 2026-07-21T18:41:04-06:00 2026-07-21T18:41:04-06:00 feat(phase-29 Task-5): Ghidra-C prefetch β€” scoped by measurement, one overlay imported (+101 exemplars) +0799 a7f3fce4cf1f8b5b4cf0e7e365d859b662151fbf 2026-07-21T19:47:05-06:00 2026-07-21T19:47:05-06:00 feat(phase-29 T5 wave): 11/12 MATCH, 0 banked β€” three integration walls named + 12 cracks preserved +0800 96d1324acd40b7be2903d2b5c978bb560b570da3 2026-07-21T21:07:50-06:00 2026-07-21T21:07:50-06:00 feat(phase-29 T14 stage 4): jtbl isolate+carve stage built; the CARVE-MUST-FOLLOW-SPLICE law +0801 aa1b8b3c1a81de2d0ae9056f670b9c617d0b9d28 2026-07-21T22:13:30-06:00 2026-07-21T22:13:30-06:00 feat(phase-29 T14 stage 4): jtbl prep moved into harvest_verify β€” it BANKS; new blocker named +0802 86e262e8445f5e9f2869e307ccf5848c3d260106 2026-07-21T22:13:50-06:00 2026-07-21T22:13:50-06:00 docs(phase-29): jtbl-in-harvest_verify result + the jr_inventory ownership blocker +0803 41d65af73f2c10cc2de3a758b35c8b103c73fb74 2026-07-21T23:51:16-06:00 2026-07-21T23:51:16-06:00 fix(phase-29): per-function jtbl prep + stranded-carve undo; the clean-rebuild blocker named +0804 0cf6356ffded0286dd3bd3efbf1ccc23355021ab 2026-07-21T23:51:38-06:00 2026-07-21T23:51:38-06:00 docs(phase-29): jr_inventory was right; the clean-rebuild blocker stops jtbl banking +0805 e1e77c7482dcb0e0fab13d2e529c97f3ff20df22 2026-07-22T00:12:04-06:00 2026-07-22T00:12:04-06:00 docs(phase-29): SESSION-7 CHECKPOINT β€” full fresh-session block (Β§61c is the single next task) +0806 12a14410f91118094ff0a4976de8647c7dee6ab8 2026-07-22T00:40:26-06:00 2026-07-22T00:40:26-06:00 fix(phase-29): Β§61c REFUTED β€” the jtbl bank IS clean-reproducible; func_80135A4C banked Γ—1 +0807 b70fb3a728cd9fdefc38ed790c6f6ed438fe8280 2026-07-22T00:41:58-06:00 2026-07-22T00:42:36-06:00 feat(phase-29): func_80135A4C family sweep probe β€” ov_SC01_000 banked (mechanism validated) +0808 115a6c536f72d89363d7650007a8d20d8414ea9b 2026-07-22T00:56:45-06:00 2026-07-22T00:56:45-06:00 feat(phase-29): func_80135A4C family sweep chunk 1 β€” 45/45 siblings banked +0809 18e989ca077d0167015d8197b7d389d84a0b5fc7 2026-07-22T01:08:55-06:00 2026-07-22T01:08:55-06:00 feat(phase-29): func_80135A4C family sweep chunk 2 β€” 45/45 siblings banked +0810 01882c58d73f8e92024ac3d66c4dc79f3a1ad84b 2026-07-22T01:21:19-06:00 2026-07-22T01:21:19-06:00 feat(phase-29): func_80135A4C family sweep chunk 3 β€” 46/46 siblings banked (family COMPLETE 138/138) +0811 fcd83f705ed34fbf07c4834e418d50b24d7f3e51 2026-07-22T01:30:30-06:00 2026-07-22T01:30:30-06:00 fix(phase-29): the undo was EATING the tree β€” snapshot src too; kill the Β§58 label; giant func_8018F694 banked +0812 02b16fa7a73b83c4cb92aee62a9e396d64a920e5 2026-07-22T01:55:47-06:00 2026-07-22T01:55:47-06:00 refactor(phase-29): DELETE gate_stage's jtbl pre-pass (R33) + the honest ladder measurement +0813 7529ee3d86749135cae39b1b9d576a65d4205c73 2026-07-22T01:57:04-06:00 2026-07-22T01:57:04-06:00 docs(phase-29): SESSION-8 CHECKPOINT β€” Β§61c refuted, the tree-eating undo fixed, family Γ—138 + a giant banked +0814 1ded372164c438e0fb6b620a4a00c4257576056c 2026-07-22T10:58:08-06:00 2026-07-22T10:58:08-06:00 feat(phase-29): func_80135888 (113 ins, reach-138) BANKED β€” the isolation must keep the BODY spliced +0815 52e772628bd73f359dee6079877350a71084d374 2026-07-22T11:18:43-06:00 2026-07-22T11:18:43-06:00 feat(phase-29): isolate-with-body FIX + 3 more preserved cracks banked (incl. a 673-ins giant) +0816 84fd6c785a2a3b00115411ae0dee385b937fb6b8 2026-07-22T11:24:36-06:00 2026-07-22T11:24:36-06:00 docs(phase-29): the isolation-must-follow-the-splice finding, 5/11 cracks banked, and the retraction +0817 e4f8bdca3c35551f868bd25ba5166d0e4ae35106 2026-07-22T11:24:57-06:00 2026-07-22T11:24:57-06:00 chore(phase-29): refresh backlog ledger +0818 c1c910ffdc5ce96221b4bd420de4f1c75aa08359 2026-07-22T11:53:35-06:00 2026-07-22T11:53:35-06:00 feat(phase-29): func_80135888 sweep chunk 1 β€” 46/46 banked +0819 fbed540ef201f8cebccf061a64d35322a1daed19 2026-07-22T12:14:04-06:00 2026-07-22T12:14:04-06:00 feat(phase-29): func_80135888 sweep chunk 2 β€” 46/46 banked +0820 adf379fb888a1419cc08a2c9c604a9a42ba1777b 2026-07-22T12:34:57-06:00 2026-07-22T12:34:57-06:00 feat(phase-29): func_80135888 family COMPLETE 137/137 (~15.5k ins) +0821 c56de627e08c24c042166be7c949213e55a8c952 2026-07-22T12:57:09-06:00 2026-07-22T12:57:09-06:00 feat(phase-29): func_80135D20 sweep chunk 1 β€” 46/46 banked +0822 595b6476f940babe0d283d4c56900e7988482cf4 2026-07-22T13:16:35-06:00 2026-07-22T13:16:35-06:00 feat(phase-29): func_80135D20 sweep chunk 2 β€” 46/46 banked +0823 05f9b20f1d13845e303512c884e7a31beb6ceaea 2026-07-22T13:31:24-06:00 2026-07-22T13:31:24-06:00 feat(phase-29): func_80135D20 family COMPLETE 137/137 (~13.7k ins) +0824 8016c172f98fad64ba290844df36ec07f45378ca 2026-07-22T13:47:14-06:00 2026-07-22T13:47:14-06:00 docs(phase-29): SESSION-9 CHECKPOINT β€” sweep 274 siblings, the PUREβ‰ templatable finding, the tooling answer +0825 64bfe59bc085f241ec0a785108634947b5532a51 2026-07-22T14:12:32-06:00 2026-07-22T14:12:32-06:00 fix(phase-29): gate_stage gated EVERY non-077 binary against ov_SC01_077's SHA β€” one-line default, one month +0826 6ff05498c8a582b0f1631706c71608af1ec142c4 2026-07-22T14:12:59-06:00 2026-07-22T14:12:59-06:00 docs(phase-29): decision-log β€” the shared gate compared against another binary's hash (R31) +0827 9c9ee6ea94a4d8a31c66b34415222ca566bb9e09 2026-07-22T14:20:28-06:00 2026-07-22T14:20:28-06:00 chore(phase-29): burn-down snapshot + regenerated digests +0828 540f096502d9377830bfcf944ecc2c403c43b7d4 2026-07-22T14:22:58-06:00 2026-07-22T14:22:58-06:00 feat(phase-29): func_801299C8 family probe β€” 3/3 banked +0829 048edcc6c27f4d6287637fb7134cb0647717f36c 2026-07-22T14:30:07-06:00 2026-07-22T14:30:07-06:00 feat(phase-29): func_801299C8 sweep chunk 1 β€” 45/45 banked +0830 8887cf87bca4ee2c2f239dc7aaa3182d0862eb4e 2026-07-22T14:36:09-06:00 2026-07-22T14:36:09-06:00 feat(phase-29): func_801299C8 sweep chunk 2 β€” 45/45 banked +0831 49b66cd56b4c8e9641246b16182992beac6ab3c2 2026-07-22T14:41:57-06:00 2026-07-22T14:41:57-06:00 feat(phase-29): func_801299C8 family COMPLETE 137/137 (~21.6k ins) +0832 a609f433388937bc73814277fbd477c11da1f391 2026-07-22T14:45:59-06:00 2026-07-22T14:45:59-06:00 docs(phase-29): Task-7 burn-down live (floor NOT yet determinable), zero-crack track, jtbl_family_bank revert defect +0833 372bff1153cd92f723bb152113e5d92597f22467 2026-07-22T14:52:02-06:00 2026-07-22T14:52:02-06:00 fix(phase-29): jtbl_family_bank's revert left the tree GIT-CLEAN BUT UNBUILDABLE +0834 11a22b5c771bbc2b4880ee6cb71b6fa446905647 2026-07-22T15:18:58-06:00 2026-07-22T15:18:58-06:00 feat(phase-29): func_80167714 propagated Γ—134 (h_exact; 4 SC07 byte-diverge, kept Γ—1) +0835 c6515a6cdc0528e052497bcd0f726700695ee950 2026-07-22T15:24:59-06:00 2026-07-22T15:24:59-06:00 fix(phase-29): the FLOOR VERDICT was an artifact of snapshot frequency, not yield decay +0836 b1d8c0cf396724dc8dc39f64c098a5ac87bc0489 2026-07-22T15:25:20-06:00 2026-07-22T15:25:20-06:00 docs(phase-29): zero-crack sweep track, revert fix, floor-verdict artifact corrected +0837 80d570195c7da90106ea0b8600444dde42607b4b 2026-07-22T15:43:48-06:00 2026-07-22T15:43:48-06:00 feat(phase-29): add main to the weighted denominators (roadmap Β§1 metrics contract) +0838 124ada384b608b2fe24417e574c09b49f7eb0a92 2026-07-22T16:23:30-06:00 2026-07-22T16:23:30-06:00 docs(phase-29): zero-crack vein tapped (exemplar provenance is the discriminator); metrics contract met +0839 d53a33eb06a63ca991fc5503db3047001dacccbf 2026-07-22T16:25:50-06:00 2026-07-22T16:25:50-06:00 docs(phase-29): SESSION-10 CHECKPOINT β€” five tooling walls, the gate SHA bug, main in the denominators +0840 f142a6858facd5b3098665bd2ca100bd5bf779b1 2026-07-22T18:12:09-06:00 2026-07-22T18:12:09-06:00 feat(phase-29): ov_SC06_018 crack-wave β€” func_801365B8 x138 (fresh-exemplar sweep CONFIRMED), thesis is family-specific +0841 215c5e2636c28ecfafca4af6c76903de132174a6 2026-07-22T18:23:58-06:00 2026-07-22T18:23:58-06:00 feat(phase-29): ov_SC06_018 func_8017D648 x71 (3rd thesis data point: modal family sweeps 85%) +0842 7e3a234985f0ea6c217e4f1725d32addec7aadab 2026-07-22T18:24:48-06:00 2026-07-22T18:24:48-06:00 docs(phase-29): SESSION-11 CHECKPOINT β€” fresh-exemplar sweep is family-specific (100/85/0% across 3), fleet 78.4->78.6% instr +0843 3ebdd91fc699822205c587acd36b4f8479661a09 2026-07-22T20:01:10-06:00 2026-07-22T20:01:10-06:00 feat(phase-29): jtbl post-carve reconcile (harvest_verify._jtbl_reconcile) + REFUTE the reach-138 jtbl families as plumbing wins +0844 57af7ea889cee6f812d0f9f7f9bd6a5e2cf7f23c 2026-07-22T21:48:17-06:00 2026-07-22T21:48:17-06:00 feat(phase-29): ov_SC06_018 non-jtbl wave batch-1 (8 x1 + 30 swept = 38 instances) + fix gate_stage arity-undo revert bug +0845 0aae4b2ce50184aa29bf987020dcbb50d7240fe7 2026-07-22T21:48:59-06:00 2026-07-22T21:48:59-06:00 docs(phase-29): checkpoint non-jtbl wave batch-1 + gate_stage arity-undo fix (resume aids for batch 2/3) +0846 e945933364ebb66ed695ecfe848496e49712629c 2026-07-22T22:57:32-06:00 2026-07-22T22:57:32-06:00 feat(phase-29): ov_SC06_018 non-jtbl wave batch-2 partial (5 x1 + 21 swept = 26 instances) +0847 14166b8c472f292c6cb949fc1acc52e22d088e0d 2026-07-22T22:58:13-06:00 2026-07-22T22:58:13-06:00 docs(phase-29): SESSION-12 CHECKPOINT β€” non-jtbl wave 64 instances + gate_stage arity-undo fix + jtbl Β§62; fleet 78.6% instr / 67.6% distinct +0848 b76ad85157c3113e044792e1f77d5ccc5023a03a 2026-07-23T10:51:36-06:00 2026-07-23T10:51:36-06:00 feat(phase-29): ov_SC07_006 reach-138 crack-wave batch-1 β€” 6 x1 banks +0849 57ef4ebcb5dcd2596528cebb4b23dfae48c9a3e3 2026-07-23T11:43:28-06:00 2026-07-23T11:43:28-06:00 feat(phase-29): ov_SC07_006 reach-138 batch-1 propagation + live-count re-scope (SESSION-13) +0850 5760b39a1a5fc864578edc88b279ef11073e82a3 2026-07-23T11:46:35-06:00 2026-07-23T11:46:35-06:00 docs(phase-29): SESSION-13 β€” diagnose the fresh-138 def-side blocker (header-decl reconcile is the missing tool) +0851 7f18dbad2f8d177d4d3d87fceda545d16954faaf 2026-07-23T12:06:26-06:00 2026-07-23T12:06:26-06:00 feat(phase-29): func_8014CD80 x138 β€” the fresh-138 def-side blocker is RECOVERABLE (R35 reversal) +0852 cbb52ebce1b93942bde994a6c83865bd9bf3dda5 2026-07-23T12:15:49-06:00 2026-07-23T12:15:49-06:00 feat(phase-29): fix_header_decl.py β€” automate the fresh-138 def-side header reconcile (Β§63) +0853 f8d8f13b9899085bb4eb605d29f9fc7b33e4cf88 2026-07-23T12:42:43-06:00 2026-07-23T12:42:43-06:00 feat(phase-29): fix_header_decl v2 (--reconcile-externs) + SESSION-13 cont checkpoint +0854 3814de98174006b3ba1dc4b9a18d9e23394b8855 2026-07-23T13:27:55-06:00 2026-07-23T13:27:55-06:00 docs(phase-29): SESSION-13 remaining-work re-derivation + roadmap deltas (B1 reversal, B7 behemoth correction, prefetch gap) +0855 3c8fd8a0b01ddbaa6a7774dc2b0639e7d9c55a0f 2026-07-23T13:55:29-06:00 2026-07-23T13:55:29-06:00 feat(phase-29): ov_SC07_006 fresh-138 wave β€” 7 x1 core banks (gate_stage reconcile) +0856 1dd80e9287da782f9b8f71415455dcf075cac298 2026-07-23T17:07:29-06:00 2026-07-23T17:07:29-06:00 feat(phase-29): ov_SC07_006 fresh-138 β€” 2 cores propagated x138 (+274) + integration-wall finding +0857 09bc2c7b72d8debca7becbb3e9befc322941b449 2026-07-23T17:17:18-06:00 2026-07-23T17:17:18-06:00 docs(phase-29): SESSION-13 CHECKPOINT β€” 15 reach-138 cores banked + 2Γ—138; integration-wall finding + build_engine_types as next lever; fleet 78.9% instr +0858 b48455d586ae0abfe034da839caaf851966b477c 2026-07-23T17:39:29-06:00 2026-07-23T17:39:29-06:00 docs(phase-29): Β§20 type-lift is a fleet-wide collision-resolution op, not a tool-run (R32/R35 β€” 2 broken-instrument catches); concrete plan for a dedicated pass +0859 b921c00912cef40082193dc97342a1e96dd37a29 2026-07-23T17:54:14-06:00 2026-07-23T17:54:14-06:00 feat(phase-29): lift_types.py β€” fleet-wide Β§20 type-lift; Mat32+Cam8012E138 lifted (R22 140/140) +0860 b3597c08e0cd701abd88e3bb3e72f707a2ace465 2026-07-23T18:04:44-06:00 2026-07-23T18:04:44-06:00 feat(phase-29): 2 Β§20-unblocked cores propagated x138 (+276) via the type-lift +0861 0eb22e10aee6e22a438e7990b8ba1ceb7afa806f 2026-07-23T18:19:41-06:00 2026-07-23T18:19:41-06:00 docs(phase-29): SESSION-13 type-lift addendum β€” Β§20 cap partially cracked (+276), lift_types.py doctrine; fleet 79.0% instr +0862 f62d3bcf379c34712c2e1fcb1e325f3c805bba91 2026-07-23T18:38:41-06:00 2026-07-23T18:38:41-06:00 feat(phase-29): lift_types.py topo-sort (dep ordering) + broad-lift finding (needs collision-vet + -O0 strip precision; clean 2-type lift stands) +0863 5ab80517de0d841ac690f2499f7c9dc798e0d268 2026-07-23T19:54:19-06:00 2026-07-23T19:54:19-06:00 feat(phase-29): broad Β§20 type-lift lands β€” 154 types fleet-wide, R22 140/140 (Β§64) +0864 3642b5458a87da19e8b28e1b578677ea95299064 2026-07-23T20:18:50-06:00 2026-07-23T20:18:50-06:00 feat(phase-29): the type-lift's payoff β€” 13 cores propagated Γ—138, βˆ’831 stubs, R22 140/140 +0865 5c3a2bb69d7067ae7072857c7fc8c4d86b36ac16 2026-07-23T20:19:25-06:00 2026-07-23T20:19:25-06:00 docs(phase-29): SESSION-14 checkpoint β€” broad Β§20 lift + 13 cores Γ—138; fleet 79.3% instr +0866 e393c320e6b6b32a30273f82d44de514117679e6 2026-07-23T20:51:42-06:00 2026-07-23T20:51:42-06:00 feat(phase-29): VARIANT camps -> UNIQUIFY (not reconcile); validated on Buf, R22 140/140 (Β§64a) +0867 43041f7fa9abee830914a4c67566631ef844bf5b 2026-07-23T20:52:37-06:00 2026-07-23T20:52:37-06:00 docs(phase-29): SESSION-14 final checkpoint + burn-down session-close (+0.60pp instr) +0868 72b7a7227aa2862bf35db38a66a7b8c1e1159b3f 2026-07-23T21:05:35-06:00 2026-07-23T21:05:35-06:00 feat(phase-29): uniquify+lift the MATRIX camps β€” 77 files renamed, 655 stripped, R22 140/140 +0869 23b9b575054873b307ca56bcf58875819a6c6182 2026-07-23T21:15:58-06:00 2026-07-23T21:15:58-06:00 feat(phase-29): uniquify+lift Vec8 camps + propagate 0x8012E778 Γ—138; blocked queue 10 -> 7 +0870 f9ad13e031f13d7359322e1543c9fba9d2d2315b 2026-07-23T21:21:36-06:00 2026-07-23T21:21:36-06:00 docs(phase-29): record the types-first verdict for the PhaseEnd (byte-neutral for matching; the win is a naming convention) +0871 0d60e53db23b1ff3444a5e138ddfc26210a39015 2026-07-23T21:24:14-06:00 2026-07-23T21:24:14-06:00 docs(phase-29): PsyQ primitive types β€” consistency done, correctness NOT (27 lookalikes; MATRIX name/layout hazard) +0872 22af9ab2c5a1793843e20bf8be6f670c0de29c49 2026-07-23T21:25:39-06:00 2026-07-23T21:25:39-06:00 feat(phase-29): 3 Vec8-freed cores Γ—138, R22 140/140 β€” and the honest ROI verdict on the cap +0873 514e90d780153d28690e3b57e2c7941ed4113614 2026-07-23T21:26:09-06:00 2026-07-23T21:26:09-06:00 docs(phase-29): SESSION-14 closing checkpoint β€” cap gated de-duplication not coverage; next lever is fresh cracks +0874 8223bfc3a4618a4871295e00117e96aa4dcce4c6 2026-07-23T21:30:25-06:00 2026-07-23T21:30:25-06:00 docs(phase-29): reconcile the task checklist with the per-task log (4 stale boxes) + a truthful open-work header +0875 d1a1d756e0218a95fa92d4aa5e4f6692f62d705b 2026-07-23T21:35:07-06:00 2026-07-23T21:35:07-06:00 fix(phase-29): PsyQ MATRIX name hazard β€” the true 32B layout now owns the canonical name (R22 140/140) +0876 ba0cfb751e6aae5ef066fa4cfa5cc02b2a33b6ee 2026-07-23T22:38:10-06:00 2026-07-23T22:38:10-06:00 fix(workflow): wave_binary drafters MUST copy the winner back to draftDir/.c (a wave's 24 winners were written under scratch names and recovered only from agent transcripts) +0877 e9c950a30c9d06953a1fca3677c20143abd1a8bb 2026-07-23T22:44:58-06:00 2026-07-23T22:44:58-06:00 feat(phase-29): fresh-crack wave s14 β€” 6 reach-138 cores banked Γ—1 in ov_SC07_006 (R22 140/140) +0878 8ea520213507458491eb4a7688eda283dbf01a60 2026-07-23T22:58:47-06:00 2026-07-23T22:58:47-06:00 feat(phase-29): propagate 1 fresh core Γ—138 + the session's FIRST distinct-code gain +0879 daba4bd5b4154a357f3bcfc5a4f4aa25554a6e89 2026-07-23T23:10:00-06:00 2026-07-23T23:10:00-06:00 docs(phase-29): wave s14 close β€” 6 fresh cores (first distinct-code gain); Β§63 fix_header_decl is fleet-blind (recovery pass reverted, byte-gate saved it) +0880 e9c533b2dc0ccddd41fd8001eca720a9cc1c44a1 2026-07-23T23:10:39-06:00 2026-07-23T23:10:39-06:00 docs(phase-29): SESSION-14 ultracode checkpoint β€” first distinct-code gain via fresh cracks; next = more waves +0881 be89c4536cae4c28f21a4976e21bde9e5bd49d22 2026-07-23T23:20:04-06:00 2026-07-23T23:20:04-06:00 docs(phase-29): remaining-work map + reach-based targeting (153 shared cores left, then a 9,084-fn unique tail); grinder running +0882 46ea678bc65d617145691753414bcebed42a667d 2026-07-24T00:27:13-06:00 2026-07-24T00:27:13-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0883 272bd55099988897d8cd9db98a4b7c746f673a25 2026-07-24T01:03:46-06:00 2026-07-24T01:03:46-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0884 0aff898d2b11282a1a68a18b5913186a7d4d4155 2026-07-24T01:04:20-06:00 2026-07-24T01:04:20-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0885 a10f70f091cc2dd190c194597e96439dc26de655 2026-07-24T01:41:28-06:00 2026-07-24T01:41:28-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0886 3bfcc117bc670393a34a43053ec0f3df0511bc6f 2026-07-24T02:03:25-06:00 2026-07-24T02:03:25-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0887 a5166af62528d01ae01d1fc98733d8b910e80315 2026-07-24T02:03:59-06:00 2026-07-24T02:03:59-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0888 088bcb5cf9c4bce33b67a23b5e70722f7f59b5b2 2026-07-24T02:04:33-06:00 2026-07-24T02:04:33-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0889 0f9fb03c5731a0d489d1f2261b5144dcc57626bc 2026-07-24T02:05:07-06:00 2026-07-24T02:05:07-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0890 eb2cbd486f2b98504aea49e35a0b6a8730141165 2026-07-24T02:05:41-06:00 2026-07-24T02:05:41-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0891 74036d89968528563dcc4cdd4a97e66b5a66e1d1 2026-07-24T02:06:14-06:00 2026-07-24T02:06:14-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0892 0c6fd1366a194c1e652cc3a646c547500012def4 2026-07-24T02:15:03-06:00 2026-07-24T02:15:03-06:00 feat(decomp): grinder gate β€” +2 fns x0 propagated (fleet None%) +0893 68b9c54a8fd2214d6264f7376ad94607b240bdf5 2026-07-24T02:15:37-06:00 2026-07-24T02:15:37-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0894 be7d0919350302122aa7fc240aa74a9281e3787c 2026-07-24T02:16:12-06:00 2026-07-24T02:16:12-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0895 48662b0526ed30e9ff4030d27207327ff0c477e2 2026-07-24T02:16:46-06:00 2026-07-24T02:16:46-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0896 231692b3776bb5dc325473f8ebf4efdf216caaca 2026-07-24T02:17:20-06:00 2026-07-24T02:17:20-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0897 8d8afe6b44e1771c19f8af48dcc8d7ebdd923576 2026-07-24T02:17:54-06:00 2026-07-24T02:17:54-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0898 2348d64f6a7016f7c59518ba67b7aed740a743fa 2026-07-24T02:18:28-06:00 2026-07-24T02:18:28-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0899 7a9315497d65f139f4615d429304f5922787ff02 2026-07-24T02:45:51-06:00 2026-07-24T02:45:51-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0900 e59bbb778bdf745555d4cb47387b0ce9a6fc5e07 2026-07-24T02:46:24-06:00 2026-07-24T02:46:24-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0901 2de617c8ce8ad3eb26f4d01e173de407f7270346 2026-07-24T02:46:59-06:00 2026-07-24T02:46:59-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0902 30ce33fe735a75b22af0bdf27333dcf748a4d294 2026-07-24T02:47:33-06:00 2026-07-24T02:47:33-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0903 73d6bd9d5868c81e36d5df077a5b45be71d041c0 2026-07-24T02:48:07-06:00 2026-07-24T02:48:07-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0904 2cdc63af231d9b46fdf9dc8e9c7d0d0397ffa0ce 2026-07-24T03:13:23-06:00 2026-07-24T03:13:23-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0905 ee13e284078d3f20fdfa1f9d9f28f0c444361c3e 2026-07-24T03:13:57-06:00 2026-07-24T03:13:57-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0906 085dc43037d7f4293e3884dcb01279d95557ddeb 2026-07-24T03:14:31-06:00 2026-07-24T03:14:31-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0907 4e90a814e353cf24aa7af053052d28da4c2cd3d6 2026-07-24T04:51:02-06:00 2026-07-24T04:51:02-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0908 d7c5b40bbb4b2b29269cdb2ef0fb5271ba233a6f 2026-07-24T06:07:59-06:00 2026-07-24T06:07:59-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0909 323280ae1a8dc688caf5469f560bea4b872bdc0a 2026-07-24T06:08:33-06:00 2026-07-24T06:08:33-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet None%) +0910 af8ec58288e03562514398210601e93867b321b5 2026-07-24T09:28:26-06:00 2026-07-24T09:28:26-06:00 docs(phase-29): grinder overnight harvest β€” backlog/progress digests +0911 f1fd8993bfa1251db43078b63237ba384306563c 2026-07-24T09:39:07-06:00 2026-07-24T09:39:07-06:00 feat(phase-29): permuter overnight harvest β€” 29 fresh cores banked + distinct-code 64837->64854 +0912 6253238c43c65ef44a2f8be1fe930abf61173a60 2026-07-24T11:07:11-06:00 2026-07-24T11:07:11-06:00 feat(phase-29): s15 fresh-crack wave β€” 6 more reach-138 cores banked (R22 140/140) +0913 bf307f28278487e5e4179dda04e70105ab176714 2026-07-24T11:17:05-06:00 2026-07-24T11:17:05-06:00 feat(phase-29): s15 propagation (5 cores Γ—138) + crack-wave efficiency audit +0914 ef85803b1fb10aefd9f95e4d4fcbd532ef69a590 2026-07-24T11:36:54-06:00 2026-07-24T11:36:54-06:00 feat(phase-29): backlog prune β€” compact the append-only near-miss log + wire into make report +0915 bb6268d9de5ec250dd056802ddefd0c0accf963f 2026-07-24T11:40:04-06:00 2026-07-24T11:40:04-06:00 docs(phase-29): SESSION-15 checkpoint β€” waves+permuter (+28 distinct-code), backlog pruned, efficiency audit; next = integration-recovery tool +0916 1ea54fa594aeee0c359db59f7d4c129b23d6ee6e 2026-07-24T14:01:57-06:00 2026-07-24T14:01:57-06:00 feat(phase-29): T16.1 β€” the two-oracle blocker probe (read-only); rtu_match full-stderr + multi-line //@EDIT +0917 09fb069cf2c994ad6fbf7dee93fd83cda3c6a60a 2026-07-24T14:11:58-06:00 2026-07-24T14:11:58-06:00 feat(phase-29): T16.2 β€” GATE A passed on measured numbers; the Β§20 DEF-conflict doctrine refuted per-overlay; func_8012CC88 banked +0918 732128b1f4f5d1a8eaa46d084c2574d0df285258 2026-07-24T14:17:20-06:00 2026-07-24T14:17:20-06:00 feat(phase-29): T16.5 β€” 13 stranded reach-138 drafts recovered and banked via the per-overlay de-macroize (x1) +0919 f1f6238251893881a8638f3b247ba2b3943046fb 2026-07-24T14:25:28-06:00 2026-07-24T14:25:28-06:00 feat(phase-29): T16.6/T16.7 β€” 14th bank via the generalized de-macroize; Β§65 distilled; R21 inventory debt cleared +0920 f4f07068322ee4acaf0f2241e7aa184ba500336f 2026-07-24T14:26:00-06:00 2026-07-24T14:26:00-06:00 docs(phase-29): SESSION-16 checkpoint β€” integration-recovery measured (14 banks, ~2.3x not 3.7x); Β§20 DEF-conflict wall refuted per-overlay; next = the driver (T4) +0921 9137d3b7841a3197818146b502f0927474559271 2026-07-24T14:37:59-06:00 2026-07-24T14:37:59-06:00 feat(phase-29): T16.4 β€” encode the recovery recipe in recover_integration.py (tiers ENFORCED, Β§55b trap 4 closed) +0922 d6194365a2855c5dae008a1960e34bf3fdb37e0d 2026-07-24T14:40:05-06:00 2026-07-24T14:40:05-06:00 docs(phase-29): T16.8 β€” normalize_self_decls does NOT recover the self_decl_tu class as-is (reverted, honest negative) +0923 af41994311220dc154fbd44253b9eefd19ca611f 2026-07-24T14:40:25-06:00 2026-07-24T14:40:25-06:00 docs(phase-29): SESSION-16 final checkpoint β€” 14 banks, driver encoded with tiers enforced, self_decl_tu class open +0924 8d198a33c0d23629852396dc63d979d7ed18e33d 2026-07-24T14:40:34-06:00 2026-07-24T14:40:34-06:00 chore(phase-29): regenerated digests after the SESSION-16 recovery batch +0925 1b9ffe1fbbe9100c6fa3a517fb64f6ba3bbca17a 2026-07-24T14:52:28-06:00 2026-07-24T14:52:28-06:00 docs(phase-29): T16.9 β€” the local_type class does NOT recover either (0/4, reverted); Β§65f/Β§65g distilled +0926 3724679abcf6bed3d61a06932119f252133e38d4 2026-07-24T14:53:02-06:00 2026-07-24T14:53:02-06:00 docs(phase-29): SESSION-16 closing checkpoint β€” recovery pass built+proven+encoded, ceiling measured at 14/36; next = resume waves (needs ultracode) +0927 9c85afc53263835b8be0c3805411877f78c27730 2026-07-24T15:03:20-06:00 2026-07-24T15:03:20-06:00 docs(phase-29): SESSION-17 queue β€” small-batch plan (xHigh, no ultracode) + the honest tool-verification status +0928 5c6704f6363b56af855848bbac1c350b4c8aed6b 2026-07-24T15:17:45-06:00 2026-07-24T15:17:45-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +0929 ffca2e4803a264b463c68612f931412485e18981 2026-07-24T15:33:25-06:00 2026-07-24T15:33:25-06:00 feat(phase-29): T16.10 β€” the driver's SUCCESS path verified (free re-bank test); 2 defects fixed +0930 0b068445709e9239197fc316dde79c4536ccfc86 2026-07-24T15:39:39-06:00 2026-07-24T15:39:39-06:00 docs(phase-29): the SESSION-17 wave premise is REFUTED β€” 0 never-attempted cached fuel at live>=100 +0931 465f73ad8bd6efcf83b79668e926c519703a2754 2026-07-24T15:40:08-06:00 2026-07-24T15:40:08-06:00 docs(cookbook): Β§66c β€” verify wave FUEL before a wave; an attempted-set from the wrong dir lies both ways +0932 a795680727d14513fa3f903f5b8e62a8115714a6 2026-07-24T16:02:13-06:00 2026-07-24T16:02:34-06:00 feat(phase-29): T17 probe β€” the permuter DOES ingest pinned giant drafts; func_80177940 5->1 +0933 ff7db159549abcbbdf6f9f8d1993c9d05eb421b6 2026-07-24T16:34:15-06:00 2026-07-24T16:34:15-06:00 feat(phase-29): func_80177940 (101 ins, reach-138) BANKED via the permuter loop β€” R22 140/140 +0934 32de37fff4736243281dfe1f32c8529255b7cddc 2026-07-24T16:41:44-06:00 2026-07-24T16:41:44-06:00 feat(phase-29): propagate func_80177940 x137 β€” 138 overlays byte-identical, R22 140/140 +0935 cfa421eef26f2c853a812b4f5224666f99ea92c6 2026-07-24T16:42:20-06:00 2026-07-24T16:42:20-06:00 docs(cookbook): Β§66d β€” the permuter/reader loop, and what transfers between giants +0936 b7d86356e1f3765e20bdd132ee9f68ea4720d395 2026-07-24T16:42:51-06:00 2026-07-24T16:42:51-06:00 docs(phase-29): SESSION-17 checkpoint β€” driver verified, wave premise refuted, func_80177940 banked x138 +0937 e6354ae82d39746b50ab99321b64a6a5f23e3ea3 2026-07-24T16:45:55-06:00 2026-07-24T16:45:55-06:00 docs(cookbook): Β§66d correction β€” [structural] is a hint, not a veto +0938 3299bad2b82d52810055b0f891006a8983e1bec1 2026-07-24T16:51:01-06:00 2026-07-24T16:51:01-06:00 docs(phase-29): func_8014D820 ILS plateau at 25 + inert Β§17 barrier probe β€” a measured stop +0939 5be57b0ec2951a44190388d37d9d2397b97515c2 2026-07-24T17:17:51-06:00 2026-07-24T17:17:51-06:00 docs(phase-29): func_80140958 ILS 116->59 and still descending β€” continuation launched +0940 ff19fdec5e6f5c99cb20e1784cd78e3de4696428 2026-07-24T17:18:09-06:00 2026-07-24T17:18:09-06:00 docs(cookbook): Β§66d-3 β€” read the ILS per-cycle series, not its final best +0941 8fffb945c80e6bd878d77c4b5f68f34a57fc5e01 2026-07-24T18:28:16-06:00 2026-07-24T18:28:16-06:00 docs(phase-29): SESSION-17 final checkpoint β€” func_80140958 converged 116->56; both giants handed forward as reader seeds +0942 26e613d93af3231ad6b1653587a6f233a6d01296 2026-07-24T19:27:24-06:00 2026-07-24T19:27:24-06:00 docs(phase-29): func_8014D820 β€” the Β§17 toolkit is exhausted (4 moves, all inert or worse); now a justified Fable5 case +0943 5c4325f9cc0af68b770e8d6c35dbf40e818c76c9 2026-07-24T19:32:26-06:00 2026-07-24T19:32:26-06:00 docs(phase-29): SESSION-17 closing checkpoint β€” every giant driven to its permuter floor; 3 seeds preserved +0944 1004668405d6fbed121e40f9025cd6acf6f0bdf3 2026-07-24T19:38:31-06:00 2026-07-24T19:38:31-06:00 chore(phase-29): regenerate the fuel manifest + worklist β€” the decision spine was 9 days stale +0945 a34acfd91f43ed069aabfdf648dd651a7d03c112 2026-07-24T19:39:27-06:00 2026-07-24T19:39:27-06:00 docs(phase-29): func_80176218 271->110 (converged) β€” giant queue complete; the refreshed spine points at integration next +0946 1d225747bab4dc48defd654be8f97d6cd5c55405 2026-07-24T19:52:58-06:00 2026-07-24T19:52:58-06:00 feat(phase-29): 2 stranded reach-138 drafts banked from the refreshed spine β€” R22 140/140 +0947 25a02d6940e09b7c0bb1af6e3107404d99070ff0 2026-07-24T20:01:31-06:00 2026-07-24T20:01:31-06:00 feat(phase-29): propagate 2 integration banks Γ—138 β€” fleet 79.7 -> 79.9% instr, R22 140/140 +0948 f8534a6dbb944d65f97e95187f798f13ef6f205b 2026-07-24T20:02:02-06:00 2026-07-24T20:02:02-06:00 docs(phase-29): SESSION-17 final checkpoint β€” 3 banks Γ—138, driver verified, spine refreshed +0949 04450d75a044676a40c147e841834cbe0b982cf3 2026-07-24T20:25:50-06:00 2026-07-24T20:25:50-06:00 docs(phase-29): the 2 typedef-blocked drafts are Β§65g-class β€” 0/2, blockers stack 3 deep +0950 8940347855e17655f7c76a0f56f0a3711094f468 2026-07-24T20:32:52-06:00 2026-07-24T20:32:52-06:00 docs(phase-29): func_801463A0 β€” the Β§65c root cause found and fixed (invented `_s` symbol aliases) +0951 3d26cef9ad939d92a93ea6df6e992f9ec9dfba36 2026-07-24T20:39:46-06:00 2026-07-24T20:39:57-06:00 docs(phase-29): func_801463A0 driven to standalone MATCH; one named blocker left (Β§H antidote) +0952 75f56b16b8c2ee50d86665309b0d5aba4cc28ba8 2026-07-24T20:41:17-06:00 2026-07-24T20:41:27-06:00 docs(phase-29): func_801463A0 β€” both Β§H antidotes inert (2 byte-recorded negatives) +0953 11e6895e5274a76d2cc2ec6b99bef7d36b8800de 2026-07-24T20:47:48-06:00 2026-07-24T20:47:48-06:00 docs(phase-29): the Ghidra-C prefetch is measurably spent β€” 0.51pp ceiling across 87 overlays +0954 76d5d5437d6e6f4ec1701c29f6dca3c3dc0c9e5c 2026-07-24T20:55:30-06:00 2026-07-24T20:55:30-06:00 docs(phase-29): SESSION-17 closing checkpoint β€” next session starts on the giants (full handoff) +0955 34417179df39f8b90881301ffe4fc99d1cc62700 2026-07-24T21:27:14-06:00 2026-07-24T21:27:14-06:00 docs(phase-29): func_8014D820 25->14 by reading β€” the Β§67 arg-copy PLACEMENT lever +0956 b8e7250c785d759826f8e6ef29be09d502b92e4e 2026-07-24T21:30:08-06:00 2026-07-24T21:30:08-06:00 feat(phase-29): tools/symcheck.py β€” the pre-gate symbol-set guard (Β§67a) +0957 3f0c31a1c26aece7b777dad5932d5ff515dbf62b 2026-07-24T21:32:38-06:00 2026-07-24T21:32:38-06:00 docs(phase-29): func_8014D820 16->14->12 (weight-varied ILS); the block-reorder dead end recorded +0958 4e0bc0ab92263c29ade4c6cd2692ddef6f7bcc88 2026-07-24T21:35:23-06:00 2026-07-24T21:35:23-06:00 docs(phase-29): pre-clear func_8014D820's banking path (blocker_probe before the match) +0959 aa7ec6749678363f28be7f5c77c54bab5eb17886 2026-07-24T21:38:12-06:00 2026-07-24T21:38:12-06:00 docs(phase-29): func_8014D820 12->10 (cse) ->9 (reader fix of a permuter regression) +0960 b5a51863614cdcd84d9987feae1d81a56359604b 2026-07-24T21:39:01-06:00 2026-07-24T21:39:01-06:00 docs(phase-29): Β§67 β€” stale pins are dead weight; the func_8014D820 seed is now pin-free +0961 e9f27c09877eb604dbb1dd1afebb4dafc4b03154 2026-07-24T21:39:12-06:00 2026-07-24T21:39:12-06:00 docs(phase-29): correct Β§67 β€” the a2 $7 pin is still load-bearing, not pin-free +0962 d67a6cd49281c26c5374608641cd3cf0d8c06f3c 2026-07-24T21:40:34-06:00 2026-07-24T21:40:34-06:00 docs(phase-29): SESSION-18 checkpoint β€” func_8014D820 25->9, Β§67 + the profile round-robin finding +0963 16cfc33839fd5d90b8e17dad65d4c08c54f1a4c5 2026-07-24T21:41:02-06:00 2026-07-24T21:41:02-06:00 docs(phase-29): cookbook Β§66d-4 β€” amend the 'permuter floor' rule (profile-relative, not absolute) +0964 edc9ae92e1e8b03c0f17ca29166369ebb1bb8b6c 2026-07-24T21:41:29-06:00 2026-07-24T21:41:29-06:00 docs(phase-29): Β§66d-4 β€” measured, a REPEATED profile yields nothing (lever is profile diversity) +0965 3ca322402ffca232c26e81df6f3e88c4a56134ae 2026-07-24T21:42:43-06:00 2026-07-24T21:42:43-06:00 docs(phase-29): the 84-98 block is provably search-only (11 attempts); round-robin measured both ways +0966 686aec359c8089e6a92bff61cacc0bd713280781 2026-07-24T21:46:40-06:00 2026-07-24T21:46:40-06:00 docs(phase-29): cookbook Β§66d-5 β€” 'structural' is not a permuter veto (measured counterexample) +0967 b7107d7bccee02c6f0491281c3ab790bd4941ce9 2026-07-24T21:47:37-06:00 2026-07-24T21:47:37-06:00 docs(phase-29): the structural-bucket mis-route + an honestly-sized backlog re-check for P30 +0968 a3ef424b9f75ae50d1268cb9771975123925d99c 2026-07-24T21:48:21-06:00 2026-07-24T21:48:21-06:00 docs(phase-29): func_80176734 β€” confirm the dual-width load diagnosis, name the C idiom +0969 8399599dba389e10f610e503bb94bc1014c9b6f3 2026-07-24T21:50:30-06:00 2026-07-24T21:50:30-06:00 docs(phase-29): func_8014D820 close=9 is a 3-profile MEASURED floor; backlog updated 25->9 +0970 83c96f6c6caf96eaecb2a16cf4269f1a92ceada3 2026-07-24T21:51:46-06:00 2026-07-24T21:51:46-06:00 docs(phase-29): func_80176734 β€” dual-width idiom is necessary but not sufficient (+2 ins, frame cascade) +0971 fe53cfba8211946d21b4c5318a7ddcf871c95023 2026-07-24T21:53:28-06:00 2026-07-24T21:53:28-06:00 docs(phase-29): func_80176218 β€” hoist closed (indexed-global idiom); residual now -2 ins +0972 2bf82c5708d0b34230e4728dc063a9f6ffde8f69 2026-07-24T22:06:11-06:00 2026-07-24T22:06:11-06:00 docs(phase-29): note the ILS-watcher anti-pattern (tail -f monitors stay armed after the result) +0973 c937f494c6a4318cee25d2a77f37a6bb8d6269b4 2026-07-24T22:06:56-06:00 2026-07-24T22:06:56-06:00 docs(phase-29): qualify Β§66d-4 β€” profile diversity is a lottery ticket (0-for-1 on func_80140958) +0974 d9a602e49e06eac6a852d22045c4ed699e299d16 2026-07-24T22:07:15-06:00 2026-07-24T22:07:15-06:00 docs(phase-29): correct the SESSION-18 checkpoint's round-robin claim in place +0975 dcab9c68b02393fb6c03eb2c06f001dd0b1d3c53 2026-07-24T22:07:44-06:00 2026-07-24T22:07:44-06:00 docs(phase-29): fix the recorded waiter recipe β€” pgrep -f self-matches, use a captured PID +0976 16089c765917db8b8806c0f478a6dbf01c5bab9e 2026-07-24T23:38:41-06:00 2026-07-24T23:38:41-06:00 docs(phase-29): wave batch 1 β€” sig-targeted drafting works (MATCH in 55s/32k); blocker walked to the Β§30#2 macro-widen +0977 ab67b6980e60c709c8930accfe8e1e8ff8029d1c 2026-07-24T23:42:08-06:00 2026-07-24T23:42:08-06:00 docs(phase-29): func_80174CB0 banked β€” the Β§65g verdict was a wrong signature, not a missing transform +0978 af59d8a630d452ee4d43e4d05d1434ee2fa08df9 2026-07-24T23:43:15-06:00 2026-07-24T23:43:15-06:00 feat(phase-29): bank func_80174CB0 (123 ins) β€” the Β§65g verdict was a wrong SIGNATURE +0979 00b6448f4ecc135a57ab787d2c7a0bdf51dbb10b 2026-07-24T23:50:38-06:00 2026-07-24T23:50:38-06:00 fix(phase-29): dedup_propagate β€” the "overlay-local TYPE (the real cap)" skip was a MISLABEL +0980 e6053357b83db2296c60e632a504477595dd4e9c 2026-07-25T00:00:41-06:00 2026-07-25T00:00:41-06:00 docs(phase-29): cookbook Β§68 β€” the comment-halted extern scan + the mislabel that hid it for 4 phases +0981 f109b55441696ec07c9efaa21b12fe9ddb1124cf 2026-07-25T00:10:25-06:00 2026-07-25T00:10:25-06:00 docs(phase-29): func_8014F3E8 MATCH + the Β§30#2 widen recipe (15 header + 3349 src decls, all-spellings trap) +0982 ceff685a8c4a62ff750cbd341a6e085341579718 2026-07-25T00:13:53-06:00 2026-07-25T00:13:53-06:00 docs(phase-29): the carry fix banks x3 not x138 β€” carried externs must be reconciled per-target-TU +0983 e112eff601297c22e4702be0f236ae82a3e65290 2026-07-25T00:17:08-06:00 2026-07-25T00:17:08-06:00 fix(phase-29): find_site β€” a comment-only line halted the extern scan (Β§68); func_80174CB0 x1 -> x3 +0984 a8872fa1691e81beaf09b8e823185c70e34c0421 2026-07-25T00:33:06-06:00 2026-07-25T00:33:06-06:00 docs(phase-29): cookbook Β§69 β€” behemoth recon (func_80183814, 5122 ins): map it, don't draft it +0985 c31b1ad0b317d9ce8313fc68f9d7977b656d3e78 2026-07-25T00:39:58-06:00 2026-07-25T00:39:58-06:00 docs(phase-29): cookbook Β§70 β€” the giv-init base register lever (walk the param, not a copy) +0986 ba35785ec4692d5d6a75b85984642dfcba9ac467 2026-07-25T00:49:04-06:00 2026-07-25T00:49:04-06:00 feat(phase-29): bank func_801777BC (59 ins) x138 β€” the giv-init base-register lever (Β§70) +0987 28d10601aef8d76142ed4987f0c9d9209e54acdd 2026-07-25T01:18:00-06:00 2026-07-25T01:18:00-06:00 docs(phase-29): cookbook Β§71 β€” behemoth #2 to 3334/3338; the adjacent-sibling lever; Β§69 partly REFUTED +0988 8e18bb3df62040ace0c9c85ade8d5e12e449cede 2026-07-25T01:22:36-06:00 2026-07-25T01:22:36-06:00 chore(phase-29): preserve the remaining behemoth-2 analysis tools (b2_cmp/dump/map/marks/side) +0989 1de9a1a2e9554f8f1aee5361c151c3e37137ed8b 2026-07-25T01:26:06-06:00 2026-07-25T01:26:06-06:00 docs(phase-29): Β§71 corrected β€” fingerprint a giant's family by CALLEE SET, not adjacency or h_seq +0990 dfa366c7c6aa24be0c028de50ce38a71d13aa350 2026-07-25T02:05:40-06:00 2026-07-25T02:05:40-06:00 docs(phase-29): cookbook Β§72 β€” behemoth #3 to 1511/1511; a register pin is a PREFERENCE, not a reservation +0991 5d19a4823681a1cd496200c46e076bc921ce80b5 2026-07-25T12:00:36-06:00 2026-07-25T12:00:36-06:00 docs(phase-29): SESSION-18 CLOSING CHECKPOINT β€” supersedes the stale mid-session block +0992 1c0d29d91d5576efe5f6d4316df41cfd0059b17c 2026-07-25T12:24:30-06:00 2026-07-25T12:24:30-06:00 feat(phase-29): Β§30#2 widen batch β€” func_8014F3E8 + func_8014D4C0 banked; Β§73 (the two axes) +0993 6f9860c46a5ed206afe9307eec78ee25772bb1b5 2026-07-25T12:28:14-06:00 2026-07-25T12:28:14-06:00 docs(phase-29): Β§74 β€” pin-safety audit; the 5-pin behemoth draft is SAFE (open action #3) +0994 10ea5ff653abdb44fd103e92c80aff961f3a13e4 2026-07-25T12:42:24-06:00 2026-07-25T12:42:24-06:00 feat(phase-29): propagate the widen batch β€” func_8014D4C0 Γ—138; func_8014F3E8 Γ—4 (cause measured) +0995 2fcb8de6bf7ebd9d55750405f39345e27b3250a7 2026-07-25T12:45:11-06:00 2026-07-25T12:45:11-06:00 fix(phase-29): normalize func_8014F468 to the fleet-canonical s32 (unblocks the Γ—138 reach) + Β§75 +0996 39127535daf32f91c286b62672826a320c4e71f9 2026-07-25T13:00:00-06:00 2026-07-25T13:00:00-06:00 feat(phase-29): func_8014F3E8 Γ—4 -> Γ—138 via dedup_extend; Β§75a enumerates the exclusion classes +0997 1f9289f7903eabab4d9c6366afeeb56594ed995b 2026-07-25T13:01:05-06:00 2026-07-25T13:01:05-06:00 docs(phase-29): SESSION-19 CLOSING CHECKPOINT β€” supersedes the SESSION-18 block +0998 364ddd7055e3826ade1c57daaa773983b48edbcb 2026-07-25T13:04:15-06:00 2026-07-25T13:04:15-06:00 fix(phase-29): ENGINE_SHB β€” the carried-#define gap that capped func_80165CA0 at Γ—3 +0999 3bbfe21596a1489a6bf16f79c114cf43bbd86045 2026-07-25T13:18:36-06:00 2026-07-25T13:18:36-06:00 feat(phase-29): func_80165CA0 Γ—3 -> Γ—135 via ENGINE_SHB; +22 fns Γ—1; Β§75b (the carried-#define gap) +1000 8f63c1a8e0270202c449f628465baddad06309a8 2026-07-25T13:19:20-06:00 2026-07-25T13:19:20-06:00 probe(phase-29): Β§75a class-B β€” K&R () for the carried func_8012F14C decl (func_80174CB0) +1001 9924b26968d39bc6f85bcc661a204a38cf3102fe 2026-07-25T13:27:07-06:00 2026-07-25T13:27:07-06:00 fix(phase-29): dedup_extend stripped a load-bearing include on a 0-banked run (Β§61 class) +1002 398e653c9290be918215cc912961015e01c268c7 2026-07-25T13:34:53-06:00 2026-07-25T13:34:53-06:00 fix(phase-29): Β§75a class-B remedy is the FULL Β§17a-1 pair β€” decl AND call-site cast +1003 a999f0badde14ee942737c2a51214f64dc9bc7e4 2026-07-25T13:37:53-06:00 2026-07-25T13:37:53-06:00 docs(phase-29): REFRESH the SESSION-19 checkpoint (it had gone stale mid-session) +1004 6e9cbda9260595c005e4cd899ec96222ff57bade 2026-07-25T13:44:24-06:00 2026-07-25T13:44:24-06:00 feat(phase-29): func_80174CB0 Γ—3 -> Γ—135 (Β§75c pair); the census predicted the residual exactly +1005 216b53b9bc0a41b7eef6081a12bb6630d74c1c9f 2026-07-25T13:44:55-06:00 2026-07-25T13:44:55-06:00 docs(phase-29): reconcile the SESSION-19 checkpoint to the final state +1006 a3582209fc5b4025a576773917ad77f8b0d74a38 2026-07-25T13:53:43-06:00 2026-07-25T13:53:43-06:00 docs(phase-29): record the running behemoth agent in the checkpoint +1007 3ffff74f5be058bc9e1065c78b98c22d8bac21ad 2026-07-25T14:41:08-06:00 2026-07-25T14:41:08-06:00 feat(phase-29): BEHEMOTH #3 func_8017F510 CRACKED β€” 97 -> MATCH (1,511 ins), pin-free +1008 e3b51454bd5e8d545e08bf31d449e3f762da6fed 2026-07-25T14:41:26-06:00 2026-07-25T14:41:26-06:00 docs(phase-29): reconcile checkpoint β€” behemoth #3 banked, no job running +1009 130b9407b198b4337222ba779473e4c4a4b991dc 2026-07-25T15:02:37-06:00 2026-07-25T15:02:37-06:00 feat(phase-29): func_8017F5B4 (1,511 ins) banked MECHANICALLY off behemoth #3 β€” ~0 agent tokens +1010 d8c96a51640c4095a3b374d4fd96881ac54765da 2026-07-25T15:02:57-06:00 2026-07-25T15:02:57-06:00 docs(phase-29): reconcile checkpoint β€” 2 behemoths banked, +3,022 distinct-code +1011 a5954802bf2ce1b661e88b750d56ff2392b1c42e 2026-07-25T15:15:26-06:00 2026-07-25T15:15:26-06:00 docs(phase-29): record the behemoth #2 agent run in the checkpoint +1012 f9a2de3edd20507b272e7900287f84832a3ea0b6 2026-07-25T15:48:54-06:00 2026-07-25T15:48:54-06:00 feat(phase-29): BEHEMOTH #2 func_8017D960 CRACKED (1806 -> 0) + its 5-member family = 16,690 ins +1013 95684f9807eff394ff5d681cb4a6c421833569bb 2026-07-25T15:49:22-06:00 2026-07-25T15:49:22-06:00 docs(phase-29): reconcile checkpoint β€” 3 behemoths + a 5-member family banked +1014 a1f1a948afdad1b44f4f1f72ae5dcaff5f83d036 2026-07-25T16:11:38-06:00 2026-07-25T16:11:38-06:00 feat(phase-29): h_norm-remappable pool β€” +4,919 ins banked, no cracking, no agent +1015 f5f8dec5ee56cd40415e78acb882a53f2e4cd68e 2026-07-25T17:08:02-06:00 2026-07-25T17:08:02-06:00 docs(phase-29): the cold-start experiment β€” func_8017BF14 to 45/4763; Β§79; full R22 discharged +1016 bd768d8a4e96d9bf94094fedb95df05c6a5fa0ff 2026-07-25T17:13:53-06:00 2026-07-25T17:13:53-06:00 docs(phase-29): record the func_8017BF14 round-2 agent in the checkpoint +1017 8b828f1ea6246b7252ca6c4cd7a8d033746229d8 2026-07-25T20:29:10-06:00 2026-07-25T20:29:10-06:00 feat(phase-29): BEHEMOTH func_8017BF14 CLOSED β€” 45 -> 0 (4,763 ins, the largest match yet) +1018 da5b32ac4cbe20187c7370bf903610cdd4489977 2026-07-25T20:29:34-06:00 2026-07-25T20:29:34-06:00 docs(phase-29): reconcile checkpoint β€” 4 behemoths banked, +29,394 distinct-code +1019 9b4b027f0e15b8c6dbd2988ef8249f68e450af87 2026-07-25T20:40:57-06:00 2026-07-25T20:40:57-06:00 docs(phase-29): record the func_8017C954 agent + the fingerprinting method trap +1020 fa51d30d3ee2f45986494089c8dd0b0b2990f27a 2026-07-25T21:39:50-06:00 2026-07-25T21:39:50-06:00 feat(phase-29): func_8017C954 MATCHED (1,194 ins) β€” banking blocked on a NAMED 3-deep infra chain +1021 faf4547345c350688a0af75d5edd421a0c482b03 2026-07-25T21:58:04-06:00 2026-07-25T21:58:04-06:00 feat(phase-29): func_8017C954 BANKED β€” jr carve chain cleared; a shared type was PRESENT but INVISIBLE +1022 0907a35cf5ea980eeaaf5d9b3935555668b55c82 2026-07-25T21:58:28-06:00 2026-07-25T21:58:28-06:00 docs(phase-29): reconcile checkpoint β€” 5 behemoths banked, +30,588 distinct-code +1023 c41acdc473c540d854bc782792e0e2a4219e54c3 2026-07-25T22:00:52-06:00 2026-07-25T22:00:52-06:00 docs(phase-29): record the func_8017C730 agent in the checkpoint +1024 109ce6a2c364b8bf553a0e209e4ac9fe9811fd6c 2026-07-25T23:24:11-06:00 2026-07-25T23:24:11-06:00 feat(phase-29): BEHEMOTH #6 func_8017C730 BANKED (1,061 ins) + Β§82 two source-shape oracles +1025 9d04c0d6dfbfba17be722cb8abf298c046842e6a 2026-07-25T23:27:17-06:00 2026-07-25T23:27:33-06:00 docs(phase-29): func_8017C730 @ ov_SC03_013 β€” standalone MATCH, not banked (Β§77 4th variant) +1026 22798c28095bd83bd0c889e13dcf355ecf5d8e4f 2026-07-25T23:28:37-06:00 2026-07-25T23:28:37-06:00 docs(phase-29): SESSION-19 FINAL CLOSING CHECKPOINT +1027 2199c7119262a71de1aaed7dc6957c8412348770 2026-07-26T11:19:05-06:00 2026-07-26T11:19:05-06:00 docs(phase-29): Β§77 β€” add the 5th measured variant (static helper) + the minimal-closure corollary +1028 cf570ec75cdb73886a95b72b5af549262dd6aff3 2026-07-26T11:19:29-06:00 2026-07-26T11:19:29-06:00 docs(phase-29): checkpoint β€” reflect Β§77's 5th variant now folded into the cookbook +1029 3b3728b19d70949cb9891f93eb7400915177601b 2026-07-26T11:26:29-06:00 2026-07-26T11:26:29-06:00 docs(phase-29): checkpoint β€” an explicit START HERE NEXT SESSION block +1030 661f5aa7515e365b79b8325473fb7d8b711170d8 2026-07-26T11:57:17-06:00 2026-07-26T11:57:17-06:00 feat(phase-29): bank func_8017C730 x ov_SC03_013 (+1,061 ins) via the Β§81 carve chain +1031 5873bd9cc8eba5153e67492d2c6bc2720359caae 2026-07-26T12:19:08-06:00 2026-07-26T12:19:08-06:00 docs(phase-29): record the absolute-include portability defect as a PhaseEnd carry item (Drew: handle later) +1032 4a8e8f7e362e1352f08cda227bbd51e12d52bf5a 2026-07-26T12:42:10-06:00 2026-07-26T12:42:10-06:00 docs(phase-29): the Drew-approved measured-order plan (T0 discovery-first) + the roadmap-to-100 gaps +1033 57ee715f3c5311e7f074cc859adfb82708ca43e9 2026-07-26T12:46:34-06:00 2026-07-26T12:46:34-06:00 feat(phase-29): T0.1 frontier survey re-run (138 ovs) β€” the family lever is ALIVE; a 224,410-ins zero-crack FREE pool +1034 1fe48501360683bc3ad8a2718712bf7fc735c844 2026-07-26T13:02:58-06:00 2026-07-26T13:02:58-06:00 feat(phase-29): T1.1 func_80183814 round 1 β€” 99.3% structural, named lever; cookbook Β§83 +1035 d3e6d6a7025c0780251bb24b4bfc3158da5843f0 2026-07-26T13:12:09-06:00 2026-07-26T13:12:09-06:00 feat(phase-29): T0.2 gate probe β€” the FREE pool is PLUMBING-blocked, not wall-blocked (4 banked) +1036 6676ed8406d56876f6aba80e77e13ad639c62250 2026-07-26T13:12:28-06:00 2026-07-26T13:12:28-06:00 chore(phase-29): preserve the func_80183814 round-1 deliverables (R20) +1037 bce8cf3248dedc0f2108a24f72309a7613c93618 2026-07-26T13:15:39-06:00 2026-07-26T13:16:01-06:00 feat(phase-29): T0.2b + T0.3 β€” two levers eliminated for ~0 tokens; the backlog is current but 92% unclassified +1038 adafeb13d6f071d60b2a09129cf25a5d14bf0c11 2026-07-26T13:25:29-06:00 2026-07-26T13:25:29-06:00 feat(phase-29): T0.3b autopsy β€” 44% of the "near-miss backlog" are not near-misses; 315 are plumbing-blocked MATCHes +1039 1d44ce25f3d809eebcc21e9f916cc2bae32e311f 2026-07-26T13:29:45-06:00 2026-07-26T13:29:45-06:00 docs(phase-29): CORRECTION β€” the T0.1 "zero-crack pool" is NOT banked (4 of 1,073 members = 0.4%) +1040 b6bb04ecffc1a7de837026101cc031d656c10dbb 2026-07-26T13:47:06-06:00 2026-07-26T13:47:06-06:00 feat(phase-29): CRACK THE PLUMBING FAILURE β€” the derived-offset remap bug (cookbook Β§84); func_8013D53C banked +1041 772b5c4e029c31fe518e58f1f9e73b15a0adb1c5 2026-07-26T15:22:21-06:00 2026-07-26T15:22:21-06:00 feat(phase-29): the RETURN-axis fleet widen β€” 2 more families unlocked (cookbook Β§85); 140/140 +1042 c6b17f3056ae2824ff79be367ed0337521225179 2026-07-26T15:22:57-06:00 2026-07-26T15:22:57-06:00 docs(phase-29): SESSION-20 checkpoint β€” 4 causes diagnosed, 3 banked, the unlock identified but not yet harvested +1043 9d9cd580280324d81c0fd5a4b2c992689503cf4a 2026-07-26T15:36:06-06:00 2026-07-26T15:36:06-06:00 feat(phase-29): T0.4 harvest β€” 272 return-axis members banked (+26,928 ins) + the Β§84 recompute in family_remap +1044 015ebff536b8a22f16b2b880a681a6dd2c02db7b 2026-07-26T16:48:56-06:00 2026-07-26T16:48:56-06:00 feat(phase-29): Β§84 family fully harvested β€” 123/123 members, 0 failed (+29,280 ins, +27,840 distinct) +1045 57e63730dc95a9892ad6d757fbc087c6843db7b8 2026-07-26T16:49:29-06:00 2026-07-26T16:49:29-06:00 docs(phase-29): SESSION-20 final checkpoint β€” 395 members harvested from two tooling bugs, ~56,200 ins, zero tokens +1046 52e6522f1b9af1363196031924831990570959cd 2026-07-26T18:32:09-06:00 2026-07-26T18:32:09-06:00 feat(phase-29): T0.5 β€” FREE-subset sweep, 3 families fully banked (389 members, +37,713 ins) +1047 c2566010f24d80001bf5fce2c26c69d51e3bdcb5 2026-07-26T20:23:28-06:00 2026-07-26T20:23:28-06:00 feat(phase-29): --allow-pins sweep β€” 268 banked; pin templatability is PER-FAMILY (cookbook Β§86) +1048 454a0d2a02614409de20b603d03021c80c22987b 2026-07-26T20:24:01-06:00 2026-07-26T20:24:01-06:00 docs(phase-29): SESSION-20 closing checkpoint β€” ~1,070 members from five tooling root causes; 81.5/69.0/89.49 +1049 1eb36504f60dbe1341876de25f2d133b95e07151 2026-07-26T20:48:54-06:00 2026-07-26T20:48:54-06:00 docs(phase-29): Β§87 β€” match_one never LINKS, so the 315 'integration' entries are not bankable +1050 09b19930596ed3105c134a5e7f5b864dcd67cac2 2026-07-26T22:02:37-06:00 2026-07-26T22:02:37-06:00 feat(phase-29): T0.7 sweep (104 members) + BEHEMOTH func_8017D2DC banked (1,586 ins) +1051 d2a79deff2423d42cec987e1529f2da9f1bd9267 2026-07-26T22:16:48-06:00 2026-07-26T22:16:48-06:00 feat(phase-29): ALL THREE BEHEMOTHS BANKED β€” func_80183814 (5,122), func_8017DC1C (1,518), func_8017D2DC (1,586) +1052 890dd08e6fabb567d04280928d976be4e76cc2d5 2026-07-26T22:52:22-06:00 2026-07-26T22:52:22-06:00 docs(phase-29): Β§88 β€” the behemoth close-out laws (cross_jump/call, slti literal-position + its equality false-positive, banking order, the reloc gate) +1053 1748eabe629a8c303b23af65ed244c7bad1d9fa4 2026-07-26T23:08:07-06:00 2026-07-26T23:08:07-06:00 feat(phase-29): tools/blast_radius.py β€” MEASURE the write set, enforce the Β§63 tier (step 1) +1054 6ce2e8963f7186d187fc60915590b473f19cceb9 2026-07-26T23:08:33-06:00 2026-07-26T23:08:33-06:00 chore(phase-29): preserve the behemoth close-out artifacts (R20) +1055 5c422e842623e362e0ca9459a9791b437e7ada81 2026-07-26T23:10:06-06:00 2026-07-26T23:10:06-06:00 feat(phase-29): tools/sweep_parallel.py + Β§89 β€” the parallel gate farm, reachable from the family path (step 2) +1056 2d2c01f046ea4e8afb9f0960faaa9168f0c432a0 2026-07-26T23:15:28-06:00 2026-07-26T23:15:28-06:00 docs(phase-29): SESSION-20 FINAL CHECKPOINT β€” behemoths done, the measured endgame map, Β§84-Β§89, the new throughput sequence +1057 2b38c68333c5f378c943df7e64162b3a9684ed35 2026-07-26T23:37:35-06:00 2026-07-26T23:37:35-06:00 feat(phase-29): SESSION-21 T1-T3 β€” the frontier measured, the family-exemplar wave, 3 tool fixes +1058 ccbc65e9c322217e1587abbe42dee78d755d346f 2026-07-26T23:41:40-06:00 2026-07-26T23:41:40-06:00 fix(phase-29): progress.linked_subsegs fails closed (R32) + the main-EXE bucket re-measured +1059 d0322d473c19dd9eb59b72180030ce5a3c38b171 2026-07-27T00:06:01-06:00 2026-07-27T00:06:01-06:00 feat(phase-29): promote tools/reloc_verify.py β€” resolve every relocation before paying a gate cycle +1060 181ba8c4e6e2684b22f3be147427e0b5a6939843 2026-07-27T09:21:21-06:00 2026-07-27T09:21:21-06:00 docs(phase-29): SESSION-21 wave 1 first half β€” 8/8 match_one MATCH, 6 of 8 blocked on ONE lever +1061 87b02b044fabdd892273dd768f23fbd436a436bb 2026-07-27T09:28:08-06:00 2026-07-27T09:28:08-06:00 fix(phase-29): jtbl_carve β€” repair the SPLIT-TABLE undercount, gated on the function's own sltiu +1062 0be781efdf22fb65b5e37c9315161a52c2a7cafc 2026-07-27T09:29:12-06:00 2026-07-27T09:29:12-06:00 docs(phase-29): cookbook Β§90 β€” five tool-integrity laws from SESSION-21 (R16/R30) +1063 2ce6c5fadea7c7d69119c83408dd84410910c3ff 2026-07-27T09:58:17-06:00 2026-07-27T09:58:17-06:00 feat(phase-29): SESSION-21 β€” 3 family exemplars banked + the Β§85 return-axis widen (R22 140/140) +1064 5be4c21480055ac239ce2022b875661af3911fbb 2026-07-27T10:08:19-06:00 2026-07-27T10:08:19-06:00 feat(phase-29): SESSION-21 β€” the Γ—138 member sweep: 274 members from 3 exemplar cracks (R22 140/140) +1065 d3a40f2aa04393f8aa3e29d163b1c140de8edfe0 2026-07-27T10:08:48-06:00 2026-07-27T10:08:48-06:00 docs(phase-29): SESSION-21 checkpoint β€” 277 banked, wave resumable, 8 jtbl drafts ready +1066 2cc49d0310dea1fb7d477b3b359ed0975fc578c3 2026-07-27T10:38:10-06:00 2026-07-27T10:38:10-06:00 feat(phase-29): SESSION-21 β€” func_8012AAAC banked via the Β§81 carve chain (R22 140/140) +1067 7c6810ba2f8c37bcba9672e6471bfbd71bed2efa 2026-07-27T10:39:35-06:00 2026-07-27T10:39:35-06:00 docs(phase-29): SESSION-21 β€” func_8012AAAC chain recorded; Γ—137 sweep 0/3 open for diagnosis +1068 c1d2adab296fcaa48d628efc1618d2e6cf8dc505 2026-07-27T10:42:32-06:00 2026-07-27T10:42:32-06:00 fix(phase-29): cast the 137 sibling 0-arg call sites of func_8012AAAC (byte-neutral, R22 140/140) +1069 1f0f33b1652545e339fa141106ebe622010bbdd7 2026-07-27T10:44:11-06:00 2026-07-27T10:44:11-06:00 docs(phase-29): name the Γ—137 sweep blocker β€” exemplar span structure does not transfer (Β§8e table-count drift) +1070 3ef1ea08c04cb538ed0438438c0d0ed9bb4e0888 2026-07-27T10:44:40-06:00 2026-07-27T10:44:40-06:00 docs(phase-29): SESSION-21 final checkpoint β€” 278 banked, jtbl chain proven, sweep blocker named +1071 a5e5ea45ef67efb94d98193ce54fd5d3d04fb23a 2026-07-27T11:01:59-06:00 2026-07-27T11:01:59-06:00 fix(phase-29): jtbl_carve β€” guard the --like role-transfer; the Γ—137 sweep goes 0/3 -> 3/3 +1072 ab3ac83a41a10483c263c09461ca2f7d3fa8a266 2026-07-27T11:25:42-06:00 2026-07-27T11:25:42-06:00 feat(phase-29): func_8012AAAC family swept 137/137 β€” the --like guard unblocked the whole class +1073 13812fa50ca93d8ca5c6463e423ece4daf34aa4e 2026-07-27T11:26:04-06:00 2026-07-27T11:26:04-06:00 docs(phase-29): SESSION-21 T8 β€” span-derivation fix + func_8012AAAC 137/137; routing rule shown both ways +1074 7c1640888fc03b4c4acb38cb9e5496dc49b8b5d8 2026-07-27T11:42:32-06:00 2026-07-27T11:42:32-06:00 feat(phase-29): func_8016AE5C banked + tools/conform_decls.py; a 138-binary break R22 caught +1075 1a55d1163a2dd845b0e7a6c09dc799b40de395e1 2026-07-27T11:44:45-06:00 2026-07-27T11:44:45-06:00 docs(phase-29): SESSION-21 closing checkpoint β€” 416 banked, 82.0% instr, next steps named +1076 f459f53083cd6db5ece130ffad528c74e99b78a5 2026-07-27T11:56:23-06:00 2026-07-27T11:56:23-06:00 feat(phase-29): func_8015B950 banked β€” ONE cast unlocked the 925-site axis that broke 138 binaries +1077 8b52bdb30b0e7c8e62b83c22e9e77ded6c6bf798 2026-07-27T11:57:26-06:00 2026-07-27T11:57:26-06:00 feat(phase-29): func_8015B950 family probe 3/3 banked (each whole-binary gated) +1078 d4c4a4d563d6f2b9ca4ced156bb5e7fb210d057d 2026-07-27T12:21:07-06:00 2026-07-27T12:21:07-06:00 feat(phase-29): func_8015B950 family swept 137/137 (R22 140/140) +1079 7804d752302679d19dc2e84d7acef46d5ef56424 2026-07-27T12:21:57-06:00 2026-07-27T12:21:57-06:00 feat(phase-29): func_8016AE5C family probe 3/3 banked +1080 6b9e2b7f3336c4abd3657545bbc5d7b8db160a1a 2026-07-27T12:45:20-06:00 2026-07-27T12:45:20-06:00 feat(phase-29): func_8016AE5C family swept 136/137 (R22 140/140) +1081 2985f306d9c76f37539cc03b9288b0591fbc5031 2026-07-27T12:47:44-06:00 2026-07-27T12:47:44-06:00 feat(phase-29): func_80179B74 banked β€” conform_decls cleared it as pointer-type-only (R22 140/140) +1082 e721452526428668a4347d0568c9e07f406975dd 2026-07-27T12:54:00-06:00 2026-07-27T12:54:00-06:00 feat(phase-29): 3 more exemplars banked + 3 family sweeps; conform_decls extern-optional fix +1083 5ec8aa77af980a549bb401ddcfe2e7ec384b2f4a 2026-07-27T13:39:41-06:00 2026-07-27T13:39:41-06:00 feat(phase-29): func_80179B74 family probe 3/3 banked +1084 acc8d762a0b8f89ca23d9e03c60292dc05275414 2026-07-27T14:02:30-06:00 2026-07-27T14:02:30-06:00 feat(phase-29): func_80179B74 family swept 137/137 (R22 140/140) +1085 42e9eaba550e93579ecd287502f29c855dc34e41 2026-07-27T14:02:46-06:00 2026-07-27T14:02:46-06:00 docs(phase-29): T11 β€” func_80179B74 137/137; paused for the effort toggle before the wave +1086 7d9dd6deca34526fe0f4e1acc1036a4a7fdd124b 2026-07-27T15:38:15-06:00 2026-07-27T15:38:15-06:00 feat(phase-29): func_8014D820 banked (41,952 ins) + conform_decls scalar-narrowing guard +1087 b659ed6da2ce446aa98c3ee5bb1fcba4a8b7c87e 2026-07-27T15:48:47-06:00 2026-07-27T15:48:47-06:00 feat(phase-29): func_8014D820 family swept 137/137 (0 failed) +1088 553949d157692b62dee9d8b57c153703733a9bdd 2026-07-27T16:03:14-06:00 2026-07-27T16:03:14-06:00 docs(phase-29): SESSION-21 final checkpoint + cookbook Β§92/Β§93 (the doc gap Drew caught) +1089 1670fe293c71f962910b34b3d4dd777a3dae9656 2026-07-27T16:26:26-06:00 2026-07-27T16:26:26-06:00 feat(phase-29): func_8016B6BC 0/137 -> 137/137 β€” it was a TYPE-CARRY failure, not a wall +1090 db620d4b8d070e62dd089d4c2429c5d18dc50211 2026-07-27T16:33:52-06:00 2026-07-27T16:33:52-06:00 fix(phase-29): reconcile_tu dropped the sibling declarators of a multi-symbol extern line +1091 8c36ede849f86ba738e8ae5e175e432b9e166064 2026-07-27T16:55:02-06:00 2026-07-27T16:55:02-06:00 feat(phase-29): func_80176218 banked (45,126 templ ins) + reconcile_tu span/R32 fix +1092 ea1d6587d69198eed7fca8f2351cc06c465dd4c7 2026-07-27T17:07:03-06:00 2026-07-27T17:07:03-06:00 feat(phase-29): func_80176218 family swept 133/137 (R22 140/140) +1093 97cd2739b52358fccf8a2dafdc0b52a550e88282 2026-07-27T17:17:54-06:00 2026-07-27T17:17:54-06:00 fix(phase-29): the gate manufactured 3 false CC1-FAIL verdicts β€” carve-refusal, tree hygiene, R32 (Β§97) +1094 ad57c16e61d33b2d75b807582d532160b6e9645f 2026-07-27T17:47:57-06:00 2026-07-27T17:47:57-06:00 feat(phase-29): func_8014CF04 + func_8015D1B8 banked; conform_decls had 3 defects R22 caught (Β§98) +1095 34a37ef0eaebba4340ea56f9b69970c3f79e70c2 2026-07-27T17:48:52-06:00 2026-07-27T17:48:52-06:00 docs(phase-29): SESSION-22 checkpoint β€” 136 functions banked, 4 tool defects fixed (Β§96/Β§97/Β§98) +1096 a776d3248b93d7a5edb727342ffee1eb0d25d125 2026-07-27T17:56:18-06:00 2026-07-27T17:56:18-06:00 feat(phase-29): func_8014CF04 + func_8015D1B8 families swept 273/273 (R22 140/140) +1097 e44bc787ebb232c090aaa00c595555ca95ce2bfc 2026-07-27T18:37:55-06:00 2026-07-27T18:37:55-06:00 feat(phase-29): func_80135EB0 banked (289 ins) β€” 418-site pointer-shape decl axis, R22 140/140 +1098 e47d68c075382aa43d3b91932e3c44b3d9239d83 2026-07-27T18:59:58-06:00 2026-07-27T18:59:58-06:00 feat(phase-29): func_80135EB0 family banked 137/137 via jtbl_family_bank (R22 140/140) +1099 ee55bd5caecda68411224655fd40d7725f585162 2026-07-27T19:14:53-06:00 2026-07-27T19:14:53-06:00 feat(phase-29): func_801330E0 banked β€” conform_decls taught to read K&R definitions +1100 8f85c5b96740f5a95227fd351f770cecb628fb70 2026-07-27T19:20:21-06:00 2026-07-27T19:20:21-06:00 feat(phase-29): func_801330E0 family swept 137/137 (R22 140/140) β€” fn-count crosses 90% +1101 66aa55fb26c34e893b7aecb0be3f724c5a8a90ec 2026-07-27T19:37:35-06:00 2026-07-27T19:37:35-06:00 docs(phase-29): func_8013BD74 time-boxed β€” body MATCHes (rtu 198 ins), blocked in the carve; exact next step recorded +1102 2f1aa8659d5c1d22860d78ce37a7728f6a0b71b7 2026-07-27T19:45:18-06:00 2026-07-27T19:45:18-06:00 feat(phase-29): func_801789AC banked β€” conform_decls can now FIX the arity precondition it diagnoses +1103 05cd7a58086cc7095618d7e3235de7b2fa3ecdde 2026-07-27T19:46:04-06:00 2026-07-27T19:46:04-06:00 fix(phase-29): commit the jtbl carve config that belonged with func_801789AC's bank +1104 445b1492793d4659344a7d38f9b6199c5bdd4c83 2026-07-27T20:25:26-06:00 2026-07-27T20:25:26-06:00 perf(phase-29): -j16 on jtbl_family_bank's make calls β€” measured 16s -> 14s per sibling (12%) +1105 fa2880470c1078d6b65a811acbc7bcb1269d715a 2026-07-27T21:09:57-06:00 2026-07-27T21:09:57-06:00 docs(phase-29): log psxport as evaluated + parked for Gen3 (no Gen1/Gen2 value; R31) +1106 3d01aaea8ced55b3150d2f5889d925c472291643 2026-07-27T21:16:39-06:00 2026-07-27T21:16:39-06:00 feat(phase-29): func_801789AC family banked 137/137 β€” fleet crosses 84% instr +1107 5f1fc5b5ebbaea33f00db1ca0f6c9736cafad46d 2026-07-27T21:27:24-06:00 2026-07-27T21:27:24-06:00 feat(phase-29): caller pair banked (57,822 templ ins) via K&R defs β€” Β§92's remedy corrected (Β§99) +1108 a884d5f5d664dfc0fa9f5ad74867f00bf47890a3 2026-07-27T21:35:11-06:00 2026-07-27T21:35:11-06:00 feat(phase-29): func_80175AB8 swept 133/137 via --allow-pins β€” a STALE GUARD was skipping them +1109 ab065b1646f52a0083308465aa108e4c8824508e 2026-07-27T21:37:26-06:00 2026-07-27T21:37:26-06:00 fix(phase-29): sweep pinned exemplars BY DEFAULT β€” the Β§42e guard's cause was removed in Phase 27 +1110 2863acb83c321285b73ec75e2685fa99df51390b 2026-07-27T21:43:20-06:00 2026-07-27T21:43:20-06:00 feat(phase-29): func_80175DA8 0/137 -> 137/137 by moving ONE typedef into the body (Β§100) +1111 ee4bd50a3cf64d64f74e55f896d723a1baa32447 2026-07-27T21:47:58-06:00 2026-07-27T21:47:58-06:00 docs(phase-29): SESSION-22 final checkpoint + cookbook Β§101 (the stale-default class) +1112 bb2195b97ef304c1fbc30a56faad8b8a86e952ea 2026-07-27T21:57:13-06:00 2026-07-27T21:57:13-06:00 docs(phase-29): Β§102 β€” a PLUMBING verdict can mask a DIFF; K&R byte-neutrality must be measured +1113 5f6af56c2befd4ff3169e0ff841c4e962455b135 2026-07-27T21:58:58-06:00 2026-07-27T21:58:58-06:00 docs(phase-29): items 1+2 diagnosed β€” func_8016EC0C is permuter fuel behind a masking PLUMBING verdict; func_8013BD74's Error 1 is the Β§59(3) pad-spec drift +1114 55cd89402465db70321bdde2ec6d225f520ba09e 2026-07-27T22:00:56-06:00 2026-07-27T22:00:56-06:00 perf(phase-29): family_sweep gates groups in PARALLEL by default (the SESSION-20 adapter, finally wired) +1115 01bfa24a40a299653fef8eacf97f748b835ed8a2 2026-07-27T22:09:13-06:00 2026-07-27T22:09:13-06:00 docs(phase-29): func_8013BD74 root-caused β€” _o0 has no tables= record, needs the --span-tables archaeology +1116 cd0f595bbd5892d46de88a8cf4337e4df9f77042 2026-07-27T22:10:30-06:00 2026-07-27T22:10:30-06:00 docs(phase-29): item 3 β€” PLUMBING census re-verdicted; 7/10 banked, 3 true verdicts measured (Β§102 confirmed twice) +1117 1300f07a82f960cac93615ea237f5ef3f6c8b13b 2026-07-27T22:34:53-06:00 2026-07-27T22:34:53-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet 84.4%) +1118 5e701049d6ea796d2e520d56b9c36755139802db 2026-07-27T22:35:30-06:00 2026-07-27T22:35:30-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet 84.4%) +1119 d109f591f96ea5be468008dd07a6fc49e42cf53b 2026-07-27T22:39:34-06:00 2026-07-27T22:39:34-06:00 docs(phase-29): item 1 β€” grinder 4 wins/2 banked (reach-1, R22 140/140); its targeting census is the real result +1120 daec0e9f54a540aefac34bfafe57dcdc8eee5311 2026-07-27T22:45:00-06:00 2026-07-27T22:45:00-06:00 docs(phase-29): --span-tables archaeology solved T26's blocker; _o0 table starts reconstructed (0x801D82FC/0x801D836C), residual is Β§8e layout +1121 58d191f93452bb3111516b950446b60bf31406bb 2026-07-27T22:46:34-06:00 2026-07-27T22:46:34-06:00 docs(phase-29): item 4 β€” SC07 quartet is a type-IDENTITY collision (same type NAME, distinct types), fix is to drop the draft's redundant decl +1122 8479c4491e39e4cb29bda54b9e0d9ce23eae6ee9 2026-07-27T22:52:48-06:00 2026-07-27T22:52:48-06:00 fix(phase-29): scope_data_externs DROPS a data extern the TU already declares (SC07 type-identity blocker) +1123 599a33c056f15a7a300beda26c8ca531e1197e31 2026-07-28T00:16:08-06:00 2026-07-28T00:16:08-06:00 feat(phase-29): wave22 β€” 5 exemplars banked from an 18-target Ultracode wave (R22 140/140) +1124 687d761bdeb5800800c858b49e2e4657386d08f8 2026-07-28T00:22:00-06:00 2026-07-28T00:22:00-06:00 feat(phase-29): wave22 families swept 548/548 (R22 140/140) β€” parallel gating proven at scale +1125 a8c0f835289412068d731b78f1ac747c4c84c65c 2026-07-28T00:23:28-06:00 2026-07-28T00:23:28-06:00 fix(phase-29): commit func_80171B4C's carve config β€” SECOND incomplete change set today +1126 75bed1569746e9fa02dcacc1bd200c3c7d916b5e 2026-07-28T01:03:33-06:00 2026-07-28T01:03:33-06:00 feat(phase-29): func_80171B4C family banked 137/137 β€” wave22 complete (690 functions) +1127 26c6f50c52964c623a1b85c22ad3aaed342a1953 2026-07-28T01:04:13-06:00 2026-07-28T01:04:13-06:00 docs(phase-29): SESSION-22 final checkpoint β€” wave22 complete, 1,787 functions banked, fleet 84.8% instr +1128 72e6a096ca5c7f8e73d2d35120d9c83bebec5864 2026-07-28T10:05:29-06:00 2026-07-28T10:05:29-06:00 chore(phase-29): preserve the wave22 unbanked drafts + the regenerated family map +1129 e6e059a286a5f1e51b6582ae1886ad2fe120c3d2 2026-07-28T10:23:27-06:00 2026-07-28T10:23:27-06:00 docs(phase-29): T31 β€” the 6 wave NEAR measured; 2 improved, 0 banked; the ADDRESSING route is the finding +1130 05430eb26e575bb8f9f3edad259132df276abb63 2026-07-28T11:28:59-06:00 2026-07-28T11:28:59-06:00 feat(phase-29): T32 β€” NEAR-6 crack wave banks 4 reach-138 cores Γ—1; R22 140/140 +1131 46870139bdce95696fee777dc3b380d4011574e7 2026-07-28T11:36:33-06:00 2026-07-28T11:36:33-06:00 feat(phase-29): T33 β€” 548/548 family members banked (0 failed); fleet 84.8 -> 85.3% instr +1132 79c327b2a2090889a2fe3c0b24e1c72c67469f89 2026-07-28T12:07:06-06:00 2026-07-28T12:07:06-06:00 docs(phase-29): T34 β€” regalloc.md re-derived vs real gcc-2.7.2; 7 corrections, 14 false alarms caught +1133 7acd0c4e2a1d991b3b03fd8d20316751d1b42576 2026-07-28T12:07:27-06:00 2026-07-28T12:07:27-06:00 feat(phase-29): tools/verify_map_findings.py β€” the codegen-map audit fabrication check (R3) +1134 ce8f7629ae3a965baf60bd98e0cafe1cf76e7259 2026-07-28T12:43:06-06:00 2026-07-28T12:43:06-06:00 docs(phase-29): T35 β€” the last 4 codegen-map files audited vs real gcc-2.7.2 +1135 86caa7dfdbba38eadcffe24cb02bdc76b9a43006 2026-07-28T13:20:27-06:00 2026-07-28T13:20:27-06:00 fix(phase-29): T36/T37 β€” my checker had a FORM-FEED bug; the "12 fabricated" were mine, not the agents' +1136 b885acf6767117144d31d28a795dc953ff10b844 2026-07-28T13:25:12-06:00 2026-07-28T13:25:12-06:00 docs(phase-29): T38 β€” fix expr.c:5535 (and the second wrong cite beside it) +1137 c06f5f1e4ed472a4dc68da12e882773659626ac7 2026-07-28T13:43:10-06:00 2026-07-28T13:43:10-06:00 feat(phase-29): T39 β€” items 1-4; 4 reach-138 cores banked, the bare gate beats the ladder +1138 37e5a195586602786c768fffe8c6a4d3dced5c76 2026-07-28T13:50:28-06:00 2026-07-28T13:50:28-06:00 feat(phase-29): T40 β€” sweep 143/548; the 405 failures are one named class (Β§99 K&R-vs-prototype) +1139 59785974f06f03df609d8168602f1a9e67cc4999 2026-07-28T14:05:42-06:00 2026-07-28T14:05:42-06:00 feat(phase-29): T41 β€” Β§99 conform_decls: func_80177DA8 family 4/137 -> 137/137 (0 failed) +1140 6fad5d19c881d01d5f312781c16527f7ad5a7f02 2026-07-28T14:17:50-06:00 2026-07-28T14:17:50-06:00 feat(phase-29): T43 β€” func_80140D68 banked + swept 137/137; the Β§94 extract_unit CARRY GAP characterized +1141 4133a208bf7fdead4ccb8fc18c3c651a8d8c86a1 2026-07-28T14:32:28-06:00 2026-07-28T14:32:28-06:00 docs(phase-29): T44 + SESSION-23 final checkpoint +1142 c23afcc6c3230cbc995d7e061bca2cfd51078eb9 2026-07-28T14:33:01-06:00 2026-07-28T14:33:01-06:00 fix(phase-29): SESSION-23 checkpoint β€” session total is 970, not 418 +1143 5ae6409640ef14b6d5421d3287fd433c51e29091 2026-07-28T14:46:03-06:00 2026-07-28T14:46:03-06:00 docs(phase-29): T45 β€” data-axis probe is a CLEAN NEGATIVE (0 of 3); the blocker is codegen +1144 ce7780b91f4254e19e021e4e71b0677879c37842 2026-07-28T14:53:47-06:00 2026-07-28T14:53:47-06:00 feat(phase-29): T46 β€” reg_renumber-swap oracle built + validated; it REFUTES the func_80176734 framing +1145 3371e57ed0af375c2b446bdd013f3007995af0dd 2026-07-28T15:02:51-06:00 2026-07-28T15:02:51-06:00 docs(phase-29): regalloc.md Β§H β€” the swap oracle's two unstated PRECONDITIONS +1146 5d9616739a98c23dc3359741102fbbf1a610a043 2026-07-28T15:06:36-06:00 2026-07-28T15:06:36-06:00 docs(phase-29): T47 β€” func_80176734 grind; cluster B SOLVED but anti-correlated with cluster A +1147 efea7473f5932e01de864726d7e4f25c7a339807 2026-07-28T15:06:51-06:00 2026-07-28T15:06:51-06:00 chore(phase-29): preserve the T42/T43 and T47 draft ladders +1148 d6bd7bed9e6df7e56be21753d3acb4c611e19d3c 2026-07-28T15:15:27-06:00 2026-07-28T15:16:38-06:00 feat(phase-29): T48 β€” func_80135260 BANKED; a file-scope extern is a TU-WIDE constraint on later functions +1149 f3e8317bd17dfa40bc349c196d0a83fb3c5e2ec3 2026-07-28T15:47:52-06:00 2026-07-28T15:47:52-06:00 feat(phase-29): T49 β€” func_80135260 x4 siblings + the 3,744-site decl conform +1150 69dee1d4298ddc7143a6dc53a8ba0d0a2c77e288 2026-07-28T16:16:42-06:00 2026-07-28T16:16:42-06:00 docs(phase-29): T50 + SESSION-23 REVISED final checkpoint +1151 a524142eb5d98d4fcaf693e07fe7a605c2f886e6 2026-07-28T16:44:46-06:00 2026-07-28T16:44:46-06:00 feat(phase-29): T51 β€” the fleet-wide decl-scoping tool; func_80135260's 132 siblings unblocked +1152 7b896a2627757ff0797703d0b554dd7f74cd260c 2026-07-28T17:04:09-06:00 2026-07-28T17:04:09-06:00 feat(phase-29): T52 sample β€” func_80135260 8/8 banked; the T51 lever is validated +1153 d4dc533f540bc4b081a420a0c3a36eac48280105 2026-07-28T17:27:20-06:00 2026-07-28T17:27:20-06:00 feat(phase-29): T52 β€” func_80135260 swept 132/132 (0 failed); the family goes 4/137 -> 137/137 +1154 f285de46e807d4e0e827714f5da7e638b0e1c534 2026-07-28T19:26:38-06:00 2026-07-28T19:26:38-06:00 feat(phase-29): T53 β€” fold the T51 lever into the gate; kill gather_externs' false positive; close a revert gap +1155 f72e2344a6e9bcfbf13243626eeed189d46eed4e 2026-07-28T19:34:00-06:00 2026-07-28T19:34:00-06:00 fix(phase-29): T54 β€” correct the ADDRESSING route, and fix the reason changing it was inert +1156 bcd44badc93b5f2dd0e077cdf8a120fd9f0e6cb4 2026-07-28T19:56:19-06:00 2026-07-28T19:56:19-06:00 fix(phase-29): T55 β€” frontier re-mapped; 2 families swept, 0 banked, both blockers diagnosed to the line +1157 56e2d808abed46f4a9c768a4620ac975b99dc138 2026-07-28T20:15:11-06:00 2026-07-28T20:15:11-06:00 feat(phase-29): T56 β€” wire the tu-scope lever into family_sweep; func_80144090 0/136 -> 136/136 +1158 cbc5665fd818d243ab9cd55fa2687eb3065a49c5 2026-07-28T20:37:06-06:00 2026-07-28T20:37:06-06:00 feat(phase-29): T57 β€” func_80133AB0 132/132 (+18,084 ins); a SECOND opt-in lever found; fleet 86.0% instr +1159 2d7694ba2d719add48668e1cb06e5c2895df881a 2026-07-28T20:55:35-06:00 2026-07-28T20:55:35-06:00 feat(phase-29): T58 β€” 8-family batch: 1 of 6 banked (func_8012A1BC 137/137, +10,686 ins) +1160 fa6d9c88e6953e2cf1c55e9abd32c20e2d39e5d2 2026-07-28T20:56:17-06:00 2026-07-28T20:56:17-06:00 docs(phase-29): SESSION-24 final checkpoint β€” 537 functions banked, fleet 86.0% instr +1161 28ef237c35eb5019b904b2c5665b0e89889ece80 2026-07-28T21:04:40-06:00 2026-07-28T21:04:40-06:00 docs(phase-29): T59 β€” the five T58 zero families diagnosed: four causes, one wall +1162 50a108b5a8821ce07b6ecbb92fe7d989c2fef2f0 2026-07-28T21:11:44-06:00 2026-07-28T21:11:44-06:00 fix(phase-29): T60 β€” reconcile_def_sig name bug fixed (verdicts moved); 0 banked, three causes separated +1163 51bac9f3e63f1f4a61db977aaa1010b895418aa0 2026-07-28T21:30:41-06:00 2026-07-28T21:30:41-06:00 fix(phase-29): engine_core.h β€” DEFINE_func_80155FF8 declares func_80156044 void, not int +1164 610a13c21ca09396bdf90dbc9cec0019542258b0 2026-07-28T21:34:56-06:00 2026-07-28T21:34:56-06:00 fix(phase-29): T61/T62 β€” items 1-4; all three families converge on one root cause (the shared header) +1165 2d91ed54fbbc7921045078d94f14c7e92273ee27 2026-07-28T21:37:58-06:00 2026-07-28T21:37:58-06:00 fix(phase-29): engine_core.h β€” func_8016163C declared s32(s32,u32), not void(void*,s32) +1166 a850255572580c9b5081893eb68433b53b312cc8 2026-07-28T21:50:19-06:00 2026-07-28T21:50:19-06:00 feat(phase-29): T63 β€” func_8016163C swept 137/137 after the header correction (+10,686 ins) +1167 3c380fec83133370b8eb107584a85e168c8c42d6 2026-07-28T21:52:38-06:00 2026-07-28T21:52:38-06:00 fix(phase-29): engine_core.h β€” func_8014D610 declared s32(s32,s32,u16*), not void(s32,void*,void*) +1168 60f9ac40f349ea1802ecfc25c8aff778e662b741 2026-07-28T22:10:10-06:00 2026-07-28T22:10:10-06:00 feat(phase-29): T64 β€” func_8014D610 swept 137/137 after the header correction (+10,138 ins) +1169 ec34c31b6892df3d51359872834f070577736cbf 2026-07-28T22:29:56-06:00 2026-07-28T22:29:56-06:00 feat(phase-29): T65 β€” extract_unit definition-detection fixed; func_80156044 137/137 (+10,138 ins) +1170 350cc1c34c20b3c33e93504cfb91fa9e4fca39d3 2026-07-28T22:30:44-06:00 2026-07-28T22:30:44-06:00 docs(phase-29): T63-T65 + SESSION-24 REVISED checkpoint β€” 948 banked, fleet 86.3% instr +1171 a6f6ccf5459c3ea07d1a6217bcf706e69e95c259 2026-07-28T22:41:46-06:00 2026-07-28T22:41:46-06:00 docs(phase-29): T66 β€” item 4: the distinct-code anomaly modelled and closed (it was never a bug) +1172 0c5df25faf45aab12382465fb0dde090d5f03a10 2026-07-28T23:00:55-06:00 2026-07-28T23:00:55-06:00 feat(phase-29): T67 β€” audit_header_sigs.py; 61 header decls contradict byte truth, 6 corrected +1173 f59ae302b8cb34fdb6347fd276aedc33f070071b 2026-07-28T23:16:08-06:00 2026-07-28T23:16:08-06:00 feat(phase-29): T68 β€” 6 header corrections sweep 685 members (+33,565 ins); fleet 86.5% instr +1174 a6e5abfd390072da99deba1c2205c4fe6852e8c4 2026-07-28T23:26:02-06:00 2026-07-28T23:26:02-06:00 fix(phase-29): T69 β€” audit preconditions computed, not discovered; validated against known outcomes +1175 283937ed8eb2fb46cb1b616bb96b220137b3e51d 2026-07-28T23:47:22-06:00 2026-07-28T23:47:22-06:00 feat(phase-29): T70 β€” byte-variant families sweep 1 of 10 (138 banked, +130 distinct) +1176 2962b01ec1887ad7b61325935b9f68a2cf6cc357 2026-07-28T23:47:58-06:00 2026-07-28T23:47:58-06:00 docs(phase-29): SESSION-24 REVISED-2 checkpoint β€” 1,771 banked, fleet 86.6% instr +1177 3233ff3f817a2ece808197dddf18d125cac32421 2026-07-29T00:15:06-06:00 2026-07-29T00:15:06-06:00 docs(phase-29): T71 β€” the byte-variant stall is an AUDIT GAP, not an immediate-engine limit +1178 df86fcce5078a190360c8f26d9b256da01aab1f0 2026-07-29T00:23:14-06:00 2026-07-29T00:23:14-06:00 fix(phase-29): engine_core.h β€” func_80144B14 declared int(int), not void(void) +1179 ed95cad42817bea2583386aa900ae65d83d8187d 2026-07-29T00:34:12-06:00 2026-07-29T00:34:12-06:00 feat(phase-29): T72 β€” ARITY probe banks 137/137; most of the class was never an arity problem (Β§113) +1180 86c315ec08d77cdb58c47d6af32820761e3b0382 2026-07-29T00:39:22-06:00 2026-07-29T00:39:22-06:00 fix(phase-29): engine_core.h β€” Β§99 no-prototype for the three CALLED ARITY functions +1181 3e6c364cd8096af86339b867488c665c7ac11010 2026-07-29T00:42:40-06:00 2026-07-29T00:42:40-06:00 feat(phase-29): T73 β€” items 1+2: ARITY class resolved, audit learns Β§113; DECLS is the last value +1182 14bc520c9667336060c8b536d04d949b1ec8e91a 2026-07-29T00:47:01-06:00 2026-07-29T00:47:01-06:00 fix(phase-29): engine_core.h β€” Β§99 no-prototype for func_80147364 (sidesteps a 4,021-site conform) +1183 862e31df105e65406702a6b717611cbf844f6b60 2026-07-29T00:51:01-06:00 2026-07-29T00:51:01-06:00 fix(phase-29): T75 β€” reconcile_def_sig no-prototype regression; func_80147364 is the narrow-param wall +1184 d9f1ccad4543423107745bb4d8df7aa06dc69c47 2026-07-29T20:17:00-06:00 2026-07-29T20:17:00-06:00 docs(phase-29): T76 β€” byte-identical families bank 0 of 682; my recommendation was wrong +1185 970559423dbe160f0bd9b7263f8cd7d59853fbe3 2026-07-29T20:34:09-06:00 2026-07-29T20:34:09-06:00 feat(phase-29): T77 β€” wire the callee-decl lever into family_sweep; func_80173A60 0/135 -> 135/135 +1186 611622c9e7b217f94f85cfb6623c615da1db0500 2026-07-29T20:57:11-06:00 2026-07-29T20:57:11-06:00 feat(phase-29): T78 β€” PsyQ-symbol widening: func_8012F40C 0/137 -> 137/137 (three places, not one) +1187 47d7137a30e273bab6ae5d695793a8f128d931dc 2026-07-29T20:59:48-06:00 2026-07-29T20:59:48-06:00 docs(phase-29): SESSION-24 REVISED-3 checkpoint β€” 2,180 banked, fleet 86.7% instr +1188 774592c45212cc8074b65f4e75ecd3e9967bbf57 2026-07-29T22:36:09-06:00 2026-07-29T22:36:09-06:00 feat(phase-29): T79 β€” byte-VARIANT re-sweep: 641 banked; T70's "1 of 10" was a pre-lever measurement +1189 90a644fb806a384141e846be8ea21066e46596f3 2026-07-29T22:49:28-06:00 2026-07-29T22:49:28-06:00 docs(phase-29): T80/T81 β€” two 0/N diagnoses + the SESSION-25 checkpoint +1190 28dc3785f545b12f60f01ce80a8b0ef51d640658 2026-07-29T23:08:03-06:00 2026-07-29T23:08:03-06:00 feat(phase-29): T82 β€” symbol-KIND fix in symbol_map: func_80174784 2/255 -> 251/251 (Β§117) +1191 9d0ce200157712b7165d2b817cd145187e115de0 2026-07-29T23:35:45-06:00 2026-07-29T23:35:45-06:00 feat(phase-29): T83 β€” the Β§117 blast radius: 821 members, 138 families zero -> complete +1192 3cb0e68fe46159bcd232802ed24f3ccad25f0ba8 2026-07-29T23:36:25-06:00 2026-07-29T23:36:25-06:00 docs(phase-29): SESSION-25 final checkpoint β€” 1,713 banked, fleet 87.2% instr / 77.8% distinct +1193 dcbeebaf49aa1f605bd94bd96e6f06f91bd2f6e6 2026-07-30T09:51:02-06:00 2026-07-30T09:51:02-06:00 feat(phase-29): T84/T85 β€” 0x80161c98 137/138 + func_801457A4 133/133 (+270 members) +1194 1175849d0151e928e361f0113662b658c8c9744d 2026-07-30T09:53:01-06:00 2026-07-30T09:53:01-06:00 docs(phase-29): T86 β€” items 3/5/6 resolved; item 6 was 8 eligible not 126 (my error) +1195 48a5bc358eaa5be57fb5bc42ea2372bebe70411f 2026-07-30T09:53:35-06:00 2026-07-30T09:53:35-06:00 docs(phase-29): SESSION-25 final checkpoint v2 β€” 1,983 banked, fleet 87.3% instr / 77.9% distinct +1196 bf71232d0b8d1306332ca1c4b97d45dac39f796f 2026-07-30T10:26:26-06:00 2026-07-30T10:26:26-06:00 feat(phase-29): T87/T88 β€” ordinal immediate resolution (Β§118): 158 banked +1197 a9c7f09775017dc35b5c2b8641d60a7ee9e411ce 2026-07-30T10:27:01-06:00 2026-07-30T10:27:01-06:00 docs(phase-29): SESSION-25 final checkpoint v3 β€” 2,141 banked, fleet 87.3% instr / 78.0% distinct +1198 f7c6d2eb2fbcd83aa62e13a0d03a57b239b704b3 2026-07-30T10:54:06-06:00 2026-07-30T10:54:06-06:00 feat(phase-29): T89/T90 β€” 0x80161c98 138/138 via the flag off-diagonal (Β§119) + a T84 correction +1199 cc277018631240eea00722c6028328bbdd5d816c 2026-07-30T10:54:40-06:00 2026-07-30T10:54:40-06:00 docs(phase-29): SESSION-25 final checkpoint v4 β€” 2,302 banked, fleet 87.3% instr / 78.0% distinct +1200 dac90f0fa13542a9bdd8d04c818a56423ec47832 2026-07-30T11:29:15-06:00 2026-07-30T11:29:15-06:00 docs(phase-29): T91 β€” Β§119 matrix exhausted; still-zero blocker is a typedef redefinition +1201 f09c80e8a9168df96741cedab1169b6ec69c5ba5 2026-07-30T11:29:46-06:00 2026-07-30T11:29:46-06:00 docs(phase-29): SESSION-25 final checkpoint v5 β€” typedef-redefinition blocker named, Β§119 matrix exhausted +1202 2b76b73f73e704d2d58bc311c1fb42ff6ebde85f 2026-07-30T12:14:54-06:00 2026-07-30T12:14:54-06:00 docs(phase-29): T92 β€” typedef blocker confirmed by experiment; a SECOND blocker behind it +1203 9f1f2e94b61ede8eab8465273c4301b2c44bbcd5 2026-07-30T12:15:29-06:00 2026-07-30T12:15:29-06:00 docs(phase-29): SESSION-25 final checkpoint v6 β€” 3-step recipe for the stacked blocker +1204 9a1507462ffaf598b840f9a200f8f94e09831db9 2026-07-30T12:57:32-06:00 2026-07-30T12:57:32-06:00 feat(phase-29): T93/T94 β€” func_801759D8 137/137 via type-uniquify (Β§120) + two T92 corrections +1205 7e32da8f64ca7d65713a680f7a84d31afdf2b898 2026-07-30T13:13:06-06:00 2026-07-30T13:13:06-06:00 feat(phase-29): T95/T96 β€” func_80142B2C 136/136 (Β§121); all 3 byte-identical stragglers closed +1206 bd3c207088019c3287965d409ddf76a8cfe25dfb 2026-07-30T13:13:40-06:00 2026-07-30T13:13:40-06:00 docs(phase-29): SESSION-25 final checkpoint v7 β€” 2,575 banked, all 3 byte-identical stragglers closed +1207 ceae8bb4cdd48bd217f05969ae1850b0f0bf9046 2026-07-30T13:44:22-06:00 2026-07-30T13:44:22-06:00 feat(phase-29): T97 β€” func_80151944 138/138; the "three-edit job" was ONE edit +1208 7460a80d6fcb268bca1910f18056e5e5e49abc70 2026-07-30T13:44:58-06:00 2026-07-30T13:44:58-06:00 docs(phase-29): SESSION-25 final checkpoint v8 β€” 2,713 banked, 92.00% fn-count, every named blocker closed +1209 4115279990a2e7a70609148e07ff72cf13c76fb6 2026-07-30T14:22:23-06:00 2026-07-30T14:22:23-06:00 docs(phase-29): T98 β€” residue characterised: 29 all-STRUCT (refused by design) + 51 gate-failing families +1210 0e5d6495680d1a0fac924125f8733804e589cbe3 2026-07-30T14:22:56-06:00 2026-07-30T14:22:56-06:00 docs(phase-29): SESSION-25 final checkpoint v9 β€” residue characterised, ROI decision surfaced +1211 f382a8180ad7f91fafa794047400f6208f335c06 2026-07-30T16:01:10-06:00 2026-07-30T16:01:10-06:00 docs(phase-29): T99/Task-7 β€” burn-down derived from digest history; ROI close recommended; frontier β†’ roadmap v2 +1212 8c7395027064c7eff79852ec8d49395c1b1d0253 2026-07-30T16:06:08-06:00 2026-07-30T16:06:08-06:00 docs(phase-29): roadmap-to-100 v2 β€” the owed re-baseline; P30-P33 rechartered on 2026-07-30 measured reality +1213 0acd4cc5d4abbe00e959defcee597dbeee6f90c0 2026-07-30T16:14:22-06:00 2026-07-30T16:14:22-06:00 (Phase 29 landed as 552 commits commit:0661..commit:1212 + this PhaseEnd. Fleet 68.9 -> 87.5% instr / 49.5 -> 78.0% distinct / 83.94 -> 92.00% fn-count; 140/140 byte-identical throughout; 0 NON_MATCHING. The granular trail -> logs/Phase29.md.) +1214 b5a28edae83fc3d96a17db26f089a82f842b8fdf 2026-07-30T16:31:01-06:00 2026-07-30T16:31:01-06:00 feat(phase-30): T0a β€” gate_stage stage-0 raw gate + fix_arity_callers per-edit journal undo (Β§122) +1215 53b30962ee0878ee1e64001f2c8935c480fae1c1 2026-07-30T16:32:37-06:00 2026-07-30T16:32:37-06:00 feat(phase-30): T0b β€” rtu_match FAIL verdicts surface the real cc1 error (filtered, first-15) instead of a warning tail +1216 de7b347f6f94d1b33ce461d8d2364793ac615153 2026-07-30T16:35:59-06:00 2026-07-30T16:35:59-06:00 feat(phase-30): T0c β€” the family_hseq/progress 'gap' was a cross-date+scope misread; digests now self-stamp (scope+HEAD+oracle) +1217 e03494dc1f9cb59cf1a6eea4e7223df3ccb6a212 2026-07-30T16:39:05-06:00 2026-07-30T16:39:05-06:00 feat(phase-30): T0d β€” backlog _open_stubs derives from corpus.stubs (STUB_RE deleted, R33); ledger verified already-clean +1218 407ff8f85cbaf665688a7797d3a5ab831e1ffd1b 2026-07-30T16:42:03-06:00 2026-07-30T16:42:03-06:00 fix(phase-30): T0e-1 β€” the 21-file absolute-include portability defect: /home/musashi paths -> ../shared/ relative (R22 140/140) +1219 93d2851ab2162591cfd6f3540cc58fb7dafd1f47 2026-07-30T16:45:09-06:00 2026-07-30T16:45:09-06:00 feat(phase-30): T0e2+T0f β€” autopsy refreshed (108 stranded MATCHes); frontier regenerated; the three populations PINNED (docs/frontier-p30.md) +1220 19766a6dc39c2730b394e64664b5b8200b1ba5b5 2026-07-30T16:49:08-06:00 2026-07-30T16:49:08-06:00 feat(phase-30): T0.5 β€” prefetch_fleet.py, the fleet Ghidra-C batch orchestrator (+ SETUP row, R21; fuel manifest ride-along) +1221 bd76f2373cd4718adebaa3d29cf66073c6570d3d 2026-07-30T16:52:05-06:00 2026-07-30T16:52:05-06:00 fix(phase-30): T0.5 β€” import trigger matches Ghidra's actual 'not found' phrase (probe caught +0/371 silent no-fire); probe findings logged +1222 e02fd383587bf180bd00a375492221726cf942af 2026-07-30T17:01:53-06:00 2026-07-30T17:01:53-06:00 feat(phase-30): T0.5 β€” DefineFunctions completion pass wired into the batch (define missing stubs from splat truth, re-decompile) +1223 fe8095a24d88fb0a16055ebdb0cad458d82f0cfc 2026-07-30T17:05:50-06:00 2026-07-30T17:05:50-06:00 feat(phase-30): T2 β€” rollout_o0.py (generalized o0b driver) + x1 probe verdict: append route REFUTED for the remaining cluster (R14 correction) +1224 41a19efc001971d1da1be14d396dedadfb230e49 2026-07-30T17:09:06-06:00 2026-07-30T17:09:06-06:00 docs(phase-30): T2 finding 2 (fleet is jr-carved; -O0 range inside _jr_80135D20 β€” carve-within-a-carve arc scoped) + in-flight session checkpoint +1225 cb0d3c185be428f4f2d98dd4c158fbe7a8f76c25 2026-07-30T17:10:09-06:00 2026-07-30T17:10:09-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1226 b4b298278ed87de56e89783847e4b6cfcb176740 2026-07-30T17:12:31-06:00 2026-07-30T17:12:31-06:00 feat(decomp): t6-recover gate β€” +2 fns x0 propagated (fleet None%) +1227 ab467e21966b174b9ace443f4f3fda0e8a223aca 2026-07-30T17:15:24-06:00 2026-07-30T17:15:24-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1228 a74e21631dd27a63975f2534fde0f4086d6451b0 2026-07-30T17:16:21-06:00 2026-07-30T17:16:21-06:00 feat(decomp): t6-recover gate β€” +2 fns x0 propagated (fleet None%) +1229 e277701267ddd886ed85d59824d77d7bf189ab8a 2026-07-30T17:20:17-06:00 2026-07-30T17:20:17-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1230 9398f3b5cfbb5da0ece41d5da1dc51da475e9ac1 2026-07-30T17:21:47-06:00 2026-07-30T17:21:47-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1231 11da706745b97f7d9331efa14bbf7079b719612f 2026-07-30T17:22:36-06:00 2026-07-30T17:22:36-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1232 9713f1ede0bd6abca8774c0ece6c812a0532cc7f 2026-07-30T17:23:54-06:00 2026-07-30T17:23:54-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1233 6e9cd5e4496b5f624c06a9ac00747ce669338a03 2026-07-30T17:24:43-06:00 2026-07-30T17:24:43-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1234 d750cef221f14ae70f9deb30d76b31d8b663b984 2026-07-30T17:25:31-06:00 2026-07-30T17:25:31-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1235 fb6e5266ba44d3750d6c3ff24bc9c21fb9e81051 2026-07-30T17:26:18-06:00 2026-07-30T17:26:18-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1236 ec19886be478d62bb89d4b9654c44a7edb248e66 2026-07-30T17:28:08-06:00 2026-07-30T17:28:08-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1237 1754aa7e55d2df4f6eee5d57ebbd29b8fa80bb57 2026-07-30T17:29:57-06:00 2026-07-30T17:29:57-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1238 03359b85b7c1d26d5767bde8466666995114fa27 2026-07-30T17:30:47-06:00 2026-07-30T17:30:47-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1239 52b37da1895a5366ecae86c1a18d3d5b0c0b134a 2026-07-30T17:33:05-06:00 2026-07-30T17:33:05-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1240 2bfb8d4f5228d7221e0f34dadafa7f350f2cd9cf 2026-07-30T17:36:03-06:00 2026-07-30T17:36:03-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet None%) +1241 fa1f6d0bf21f772983960df9eb99c5fe6118da7d 2026-07-30T17:44:17-06:00 2026-07-30T17:44:17-06:00 docs(phase-30): T1a close-out β€” +18 banked (+12 unique), R22 140/140, stored-draft question CLOSED (report point #2) +1242 ce38cfbcda57ced9045fa1a3690b56b646553e38 2026-07-30T17:45:03-06:00 2026-07-30T17:45:03-06:00 fix(phase-30): T3 pre-work β€” gate_stage commit stages NEW jr-carve files + overlays.mk + the binary's yaml (T1a found the -u gap); bounded failed-prep hazard documented +1243 71133942e40a92861c3f8a9e4a834452275fd21c 2026-07-30T19:22:25-06:00 2026-07-30T19:22:25-06:00 fix(phase-30): T3 β€” gate_stage propagation timeout scales with bank count AND is caught (wave-1 incident: 3600s x8 banks killed the driver mid-fleet-write, 124/140, reverted clean) +1244 159317d3fe21e0c6d92acb8a1cbcb4f0087b43fb 2026-07-30T19:57:54-06:00 2026-07-30T19:57:54-06:00 feat(phase-30): T3 wave-1 β€” 8 cores banked + 4 propagated fleet-wide; R22 140/140 (fn-count 92.00 -> 92.16%) +1245 5d4167bb3c72742b004515b6d1a17bc5237cbeed 2026-07-30T20:07:41-06:00 2026-07-30T20:07:41-06:00 feat(phase-30): T3 wave-1 h_seq sweep β€” 548 members banked across 4 families; R22 140/140 (fn-count 92.16 -> 92.32%, distinct 78.0 -> 78.3%) +1246 4570a5854b4f579da8aa9a4af1bc9e164f4756ee 2026-07-30T20:12:07-06:00 2026-07-30T20:12:07-06:00 feat(phase-30): cookbook-index β€” a SYMPTOM-keyed index (226 sections, derived + coverage-asserted, in tools-health) +1247 4d5bee0be88d3aaca477ee03f5038f3e541a2f30 2026-07-30T20:17:15-06:00 2026-07-30T20:17:15-06:00 fix(phase-30): T4 β€” 2 'Phase-22 grinder bugs' verified STALE (already fixed); real fixes: asm_subdir_for derives from corpus (R33), --fix-def-sig help carries the Β§119 warning +1248 c14f15a09f407c80d58ce5554880f008d7bae3fc 2026-07-30T20:45:02-06:00 2026-07-30T20:45:02-06:00 fix(phase-30): cookbook-index β€” 226 -> 324 sections (the unnumbered idiom headers) + curated symptom hints from wave-2 agent feedback +1249 cd5ee4609491d7f90cc609f1614f01b3133698c7 2026-07-30T21:03:11-06:00 2026-07-30T21:03:11-06:00 docs(phase-30): behemoth wave β€” 7/10 CONFIRMED byte-matches at 700-970 ins (0 disputed); 3 NEAR incl. a 969-ins fn at closeness 2 +1250 ed2b0f8c2a5dbb4a61a18e76f66f253f9d08213b 2026-07-30T21:28:00-06:00 2026-07-30T21:28:00-06:00 fix(phase-30): gate_stage CLI exposes --verified-out/--failed-out, defaulting PER-BINARY (parallel-gate safety) +1251 f3ec6ef588ccf48871bb3de3c217d85b98a605d4 2026-07-30T22:00:32-06:00 2026-07-30T22:00:32-06:00 fix(phase-30): treelock.sh β€” an flock MUTEX for tree-writing campaigns (incident 2: a poll is not a mutex) +1252 471314da5470b21e5d84ec4daf8a630ef58e7c99 2026-07-30T22:22:35-06:00 2026-07-30T22:22:35-06:00 feat(phase-30): T3 waves 2+3 + 4 behemoths β€” 52 cores banked, 911 members propagated; R22 140/140 +1253 6a20b3db48920261fc03a9e35e74bf4dab0d217b 2026-07-30T22:22:56-06:00 2026-07-30T22:22:56-06:00 docs(phase-30): redo results + R14 correction (the per-binary 'cliff' was a corruption artifact) +1254 c0407e7a86bf6c9fd405c733a67f63b219df3ad9 2026-07-30T22:37:58-06:00 2026-07-30T22:37:58-06:00 docs(phase-30): T0.5 COMPLETE β€” fleet prefetch 124/124 programs, 7,716 files; 95.2% of crack-needing families + 100% of main/resident now seeded +1255 6a5edf53ad749cf7fbde5231a67ec04daede6879 2026-07-30T23:05:04-06:00 2026-07-30T23:05:04-06:00 docs(phase-30): SESSION-26 checkpoint β€” wave-4 58/70 returned (all MATCH), 12 unfinished scheduled for resume at 00:49 +1256 29cd4d4c3976a711e9abbb4d72db02f17a57192c 2026-07-31T00:49:40-06:00 2026-07-31T00:49:40-06:00 feat(phase-30): T3 wave-4 β€” 60/68 drafts banked across 14 binaries (parallel gate); R22 140/140 +1257 d79d8f235630769287e1774373bfc2b92d406360 2026-07-31T01:12:02-06:00 2026-07-31T01:12:02-06:00 feat(phase-30): cookbook-index β€” 9 curated symptom lines from wave-4 agent feedback (10/10 MATCH, 9/10 index hits) +1258 0130fb340a25be788e3acc6e9cfe1a596c848e01 2026-07-31T07:25:47-06:00 2026-07-31T07:25:47-06:00 feat(phase-30): wave-4 resumed 10/10 MATCH banked + h_exact leg (14 propagated); R22 140/140 +1259 703b8e686350e069e509c4cf2ce7b8af57eae24e 2026-07-31T07:26:43-06:00 2026-07-31T07:26:43-06:00 docs(phase-30): SESSION-27 checkpoint β€” fleet 92.67/88.3/78.7, R22 140/140, nothing running, resume list ordered +1260 e99c823cb436f4268c8ec5841b45a835517444b6 2026-07-31T07:47:47-06:00 2026-07-31T07:47:47-06:00 fix(phase-30): extract_unit was blind to the asm-label ALIAS definition form (the 137 "no matched unit") +1261 9a30466de4626424a4257aa5cf45075ff010f737 2026-07-31T07:52:37-06:00 2026-07-31T07:52:37-06:00 feat(phase-30): the "137 no matched unit" family banked 137/137 (func_8016191C x137) +1262 a293eeeb6a914415d21f8835a6d956a889eef693 2026-07-31T07:56:22-06:00 2026-07-31T07:56:22-06:00 docs(phase-30): SESSION-28 checkpoint + cookbook Β§124/Β§124a (the asm-label alias blind spot) +1263 8451f349c0263d3a61894260a21754fdcc30279d 2026-07-31T08:03:08-06:00 2026-07-31T08:03:08-06:00 feat(phase-30): jr behemoth func_80181CDC (769 ins) banked via the SS81 carve chain; 2 byte-refused +1264 c95b61063fb1a2c12f913805743183c364099e1f 2026-07-31T08:08:45-06:00 2026-07-31T08:08:45-06:00 docs(phase-30): SS125 split the CARVE from the BODY; 3 jr residues ledgered by STAGE +1265 8d4f2a38cba2ea6aa738e4cdff7cb5187e477e96 2026-07-31T08:20:29-06:00 2026-07-31T08:20:29-06:00 fix(phase-30): RETRACT 2 of 3 jr wall verdicts β€” SS125 rewritten; my measurement was the defect +1266 45d26cc413447b7d4e3ab37660a2aa3e3b5caedb 2026-07-31T08:36:42-06:00 2026-07-31T08:36:42-06:00 feat(phase-30): T2 carve-within-a-carve PROVEN end-to-end; Arm-A does not bite; 3 -O0 fns banked +1267 d2b48b7680b46e3301dcad664d724ce6d3ee60f4 2026-07-31T08:41:54-06:00 2026-07-31T08:41:54-06:00 feat(phase-30): tools/o0_subsplit.py β€” the T2 carve-within-a-carve driver; +3 banked in ov_SC03_015 +1268 803d73bb97b302c349578de34f83ed9bb96017ca 2026-07-31T08:44:31-06:00 2026-07-31T08:44:31-06:00 docs(phase-30): SESSION-28 checkpoint β€” T2 proven + tooled; fleet 92.71/88.3/78.7, R22 140/140 +1269 ae42d261c315d556eb8b0a2657e6b4471c629d0c 2026-07-31T08:45:15-06:00 2026-07-31T08:45:15-06:00 docs(phase-30): checklist reconciled with reality β€” T0.5 ticked, T2 marked part-done with its deviation +1270 b297c781933d31f7016eb8485e9d6fe0f6e5cb69 2026-07-31T10:13:44-06:00 2026-07-31T10:13:44-06:00 feat(phase-30): T2 sweep β€” the -O0 cluster ROUTED fleet-wide (135 overlays, 2,200 stubs), R22 140/140 +1271 bbd51be24af57eef54c8b14b861ba38895c790b8 2026-07-31T10:14:30-06:00 2026-07-31T10:14:30-06:00 docs(phase-30): SS126a β€” a bare `except` around a coverage oracle re-creates the silent skip +1272 88aaa7d59f99b9bcbbbaddf305c646b668965709 2026-07-31T10:14:58-06:00 2026-07-31T10:14:58-06:00 docs(phase-30): T2 marked COMPLETE β€” route proven, tooled, swept fleet-wide (report point #3) +1273 b5362c7b7ffcd1e1e31c5e4ca32bf6e24110f6f9 2026-07-31T11:00:42-06:00 2026-07-31T11:00:42-06:00 feat(phase-30): the -O0 cluster HARVEST β€” 1,364 banks for ZERO agent tokens; fleet 92.71->93.09% fn / 88.3->88.6% instr / 78.7->79.3% distinct +1274 4ae54004f33f79f14815e8987c0a40e3ddf44c5c 2026-07-31T11:01:00-06:00 2026-07-31T11:01:00-06:00 docs(phase-30): SESSION-28 checkpoint β€” the -O0 harvest (1,364 banks, 0 agent tokens); fleet 93.09/88.6/79.3, R22 140/140 +1275 5d1e2ac36fb45f0fd0b11465af97ac256296cb1b 2026-07-31T11:20:10-06:00 2026-07-31T11:20:10-06:00 feat(phase-30): jr cluster family func_8013C0F8 swept 137/137 (154 ins x137), R22 140/140 +1276 e1b0cd9acd9feab95bc5c12b9f2265ee2cb7809c 2026-07-31T11:36:31-06:00 2026-07-31T11:36:31-06:00 feat(phase-30): jr cluster family func_8013C414 swept 137/137 (329 ins x137), R22 140/140 +1277 f87810a3be4fdab2e57e671f8fedb6dda1e92721 2026-07-31T11:38:40-06:00 2026-07-31T11:38:40-06:00 docs(phase-30): SESSION-28 checkpoint β€” cluster harvest complete (1,638 banks, 0 agent tokens); fleet 93.17/89.1/80.4, distinct crosses 80% +1278 e91a6deb3278148cd633aaea107c7587c06badea 2026-07-31T11:38:47-06:00 2026-07-31T11:38:47-06:00 docs(phase-30): regenerate progress.fleet.md digest (93.17/89.1/80.4) +1279 feb32ed23e607a973b8d95498f40e5f1a3547ad1 2026-07-31T12:26:03-06:00 2026-07-31T12:26:03-06:00 feat(phase-30): T4 β€” grinder ILS warm-restart wired in; SS119 posture audited + a stale doc hazard struck +1280 19fa20430589f826cd9d420faeb58baf403d95ae 2026-07-31T12:26:30-06:00 2026-07-31T12:26:30-06:00 docs(phase-30): T4 ticked β€” posture audit + grinder ILS wiring (yield unproven, flagged) +1281 74d7f93c8ac0c6580f403b0ec882d709ab58d624 2026-07-31T14:02:55-06:00 2026-07-31T14:02:55-06:00 feat(phase-30): T3 -O0 crack wave β€” 15 drafted / 15 rtu-confirmed / 12 BANKED, R22 140/140 +1282 a98d138c731ba5d111fb62a3587f6a34b82edf36 2026-07-31T14:05:56-06:00 2026-07-31T14:05:56-06:00 docs(phase-30): SS127 the -O0 idiom set + SESSION-28 wave checkpoint (honest ROI) +1283 d2c2d2de5843fe15dd7a51c23f05ae5c483d18a7 2026-07-31T14:06:10-06:00 2026-07-31T14:06:10-06:00 docs(phase-30): regenerate backlog digest +1284 05f6293067556ac670f453c6a70a70109e8bc4f3 2026-07-31T14:18:11-06:00 2026-07-31T14:18:11-06:00 fix(phase-30): 137 tracked C sources held a raw NUL that made grep SILENTLY SKIP them +1285 2ab945035a6657899f503a1017edcf23a4ed8661 2026-07-31T14:18:47-06:00 2026-07-31T14:18:47-06:00 docs(phase-30): SS128/SS128a β€” a raw NUL makes grep silently skip a C source (137 files); negative controls use scratch copies +1286 197004fb5be4535ec1dd8626323c1660795d102f 2026-07-31T14:34:40-06:00 2026-07-31T14:34:40-06:00 feat(phase-30): func_8013C08C 0/137 -> 137/137 β€” the type-carry failure was a MULTI-LINE typedef at file scope +1287 fc08b12df64ae21691e1a7f5dccb0484d50ceb0d 2026-07-31T14:37:47-06:00 2026-07-31T14:37:47-06:00 chore(phase-30): jtbl carve for func_8013BD74 in ov_SC01_077 (byte-neutral, R22 140/140) +1288 f5af36c9554fe763c429b6dc1ec5ad2ae01b3d8d 2026-07-31T14:40:36-06:00 2026-07-31T14:40:36-06:00 Revert "chore(phase-30): jtbl carve for func_8013BD74 in ov_SC01_077 (byte-neutral, R22 140/140)" +1289 7281e0af5722df891ec9fb4578bdf21fd0cc384f 2026-07-31T14:45:28-06:00 2026-07-31T14:45:28-06:00 docs(phase-30): SS129 (two jr traps) + checkpoint β€” 1 of 3 reach-138 targets banked, 2 ledgered +1290 8d40d55c7a3bfef17372652496db652a49ee6ef8 2026-07-31T18:47:00-06:00 2026-07-31T18:47:00-06:00 docs(phase-30): SS130 β€” an INCREMENTAL build reported BYTE-IDENTICAL for a change the CLEAN build cannot LINK +1291 6f6dc6db58f99e5ab2d607ebba79d25cbc3f9840 2026-07-31T18:51:22-06:00 2026-07-31T18:51:22-06:00 feat(phase-30): 0x8013BC7C 133/133 β€” the sweep residue was TWO declaration-environment blockers +1292 20e970a928ab772a98a07b1c3f9cf35fc1fb3ba7 2026-07-31T18:54:30-06:00 2026-07-31T18:54:30-06:00 docs(phase-30): SESSION-28 CHECKPOINT β€” fresh-session handoff for T1/T3, Max prompt for #9 +1293 0958120006c46eebd2588955d76c5fd48f4eb1f6 2026-07-31T20:02:55-06:00 2026-07-31T20:02:55-06:00 fix(phase-30): jtbl_carve OVER-SPAN clamp β€” the one real instrument failure, root-caused and fixed; behemoth func_80191C50 (710 ins) banked +1294 b58fd820686dd7907d3ed26a2fd4bcb754de3a3e 2026-07-31T20:05:44-06:00 2026-07-31T20:05:44-06:00 docs(phase-30): SS131 the jtbl OVER-SPAN + checkpoint β€” #9 SOLVED, JTBL-CARVE-BREAKS-BYTES retired +1295 b9efe66f914b28919e91244778d9881ebfb6e98b 2026-07-31T23:35:14-06:00 2026-07-31T23:35:14-06:00 fix(phase-30): the JR-PAIR "wall" was TWO instrument defects β€” pair banked, class retired +1296 b9a68b51f9dc746085c0f3ad579de36f6ea99811 2026-07-31T23:39:38-06:00 2026-07-31T23:39:38-06:00 fix(phase-30): Β§100 draft-local types for func_8013BD74 β€” a file-scope typedef is an exemplar-only bank +1297 8cd0c50f6de20829bc2c1473700d1b489f3c435c 2026-07-31T23:40:18-06:00 2026-07-31T23:40:18-06:00 feat(phase-30): func_8013BD74 Γ—1 (ov_SC01_000) β€” the 1-sibling sweep probe banks +1298 5ea269af84a113c79207294ffb661562f1961bfd 2026-07-31T23:55:22-06:00 2026-07-31T23:55:22-06:00 feat(phase-30): func_8013BD74 sibling sweep β€” jtbl_family_bank Γ—N (see log) +1299 bfabf0906dbd44ca714fc05813f12df1f2ac064f 2026-08-01T00:08:50-06:00 2026-08-01T00:08:50-06:00 feat(phase-30): func_8013B83C sibling sweep β€” jtbl_family_bank Γ—N (see log) +1300 bd92809da6bc0e0d6c471d8abd156afe7b117dcb 2026-08-01T00:11:14-06:00 2026-08-01T00:11:14-06:00 feat(phase-30): func_8013BD74 ov_SC07_010 β€” the --like over-transfer guard unblocks the last sibling +1301 73570a5089013de1aed0f1d794c3c1335224ab46 2026-08-01T00:11:35-06:00 2026-08-01T00:11:35-06:00 feat(phase-30): func_8013B83C ov_SC07_010 + the --like over-transfer guard (Β§132a) +1302 fc307418a51f07236f7525328e1a867d920dcaf9 2026-08-01T00:15:15-06:00 2026-08-01T00:15:15-06:00 docs(phase-30): the jr-pair sweep landed 137/137 Γ—2 β€” Β§132a --like over-transfer + fleet 89.6% instr +1303 34c667cc26e75796173afc140942e0e6f0238ad5 2026-08-01T00:24:32-06:00 2026-08-01T00:24:32-06:00 docs(phase-30): T5 pre-close β€” P7 checkbox walk (T1/T3 closed with measured verdicts) + fresh frontier +1304 5316c8aa7a537d064beee5c3776f314608798e8a 2026-08-01T00:25:18-06:00 2026-08-01T00:25:18-06:00 docs(phase-30): SESSION-29 CHECKPOINT β€” at gate 2, awaiting Drew's milestone branch decision +1305 e64b3cbe41ec4c29aac8423c48b6f061e3947f51 2026-08-01T08:20:41-06:00 2026-08-01T08:20:41-06:00 docs(phase-30): T6 approved β€” P30 stays open; the measured-frontier continuation (S1-S5) +1306 10dc6d3635c2b178de691425787441cda65abe1e 2026-08-01T08:26:30-06:00 2026-08-01T08:26:30-06:00 feat(phase-30 S1): --span-rel unblocks the zero-crack head; func_8014032C Γ—1 probe banks (Β§132b) +1307 7c5d308c499097d317b1e1c2396adfd6b871ae41 2026-08-01T08:42:12-06:00 2026-08-01T08:42:12-06:00 feat(phase-30 S1): func_8014032C sibling sweep β€” 183 ins x137 (see log) +1308 b96352e9ecde68866400ed3448edeb0434a0c337 2026-08-01T08:45:39-06:00 2026-08-01T08:45:39-06:00 feat(phase-30 S1): func_8014032C retry without --span-rel β€” the spans that hold only the NEW tables +1309 bdb0b0f60a28e0c7bdbc3fe6a30118da769f24bd 2026-08-01T08:50:12-06:00 2026-08-01T08:50:12-06:00 docs(phase-30 S1): digests after func_8014032C x137 β€” fleet 89.8% instr / 82.0% distinct (R22 140/140) +1310 da5090ee03fc84ed3e6d56247ec621c19580466a 2026-08-01T08:51:48-06:00 2026-08-01T08:51:48-06:00 feat(phase-30 S1): func_8017BEBC zero-crack sweep (952 ins) +1311 79b896caacd01dc349c3b0f4dd1e8688dcc387b9 2026-08-01T08:54:07-06:00 2026-08-01T08:54:07-06:00 feat(phase-30 S1): func_8015A3C8 zero-crack sweep (493 ins) +1312 8f837f619658493a0758ff6b23da196b4c104377 2026-08-01T08:54:33-06:00 2026-08-01T08:54:33-06:00 feat(phase-30 S1): func_8015AE2C zero-crack sweep (562 ins) +1313 91973fb2f7b0e3125fec20825fb70510e5ecab3f 2026-08-01T08:55:01-06:00 2026-08-01T08:55:01-06:00 feat(phase-30 S1): func_8017A4AC zero-crack sweep (536 ins) +1314 c373e5a2dd66423ddde98a661ee5a03552d78966 2026-08-01T08:56:08-06:00 2026-08-01T08:56:08-06:00 feat(phase-30 S1): func_8013FFD8 zero-crack sweep (213 ins) +1315 e845a3ab48f6a3fb070db7d572bcc51353d8b302 2026-08-01T08:58:30-06:00 2026-08-01T08:58:30-06:00 feat(phase-30 S1): func_8015444C zero-crack sweep (363 ins) +1316 0367bde898ef5296173ca83fb3465d3a96493152 2026-08-01T09:00:17-06:00 2026-08-01T09:00:17-06:00 feat(phase-30 S1): func_80159C84 zero-crack sweep (337 ins) +1317 3ffd9e5419d907ce3866b2b57a4cd1433f4824b3 2026-08-01T09:06:50-06:00 2026-08-01T09:06:50-06:00 feat(phase-30 S1): func_8017AE2C zero-crack sweep (174 ins) +1318 98775dd1d5464c764434f6d3744f50c441b2084f 2026-08-01T09:06:58-06:00 2026-08-01T09:06:58-06:00 feat(phase-30 S1): func_80135260 zero-crack sweep (136 ins) +1319 6123d9e200d6ffe60cd82397641f1ede596e8d99 2026-08-01T09:10:20-06:00 2026-08-01T09:10:20-06:00 feat(phase-26): h_seq family sweep β€” 3 member-matches banked via remap_hseq +1320 56210fdadd734ef6ba9a4700c2c21c19678c1e21 2026-08-01T09:14:46-06:00 2026-08-01T09:14:46-06:00 feat(phase-30 S1): zero-crack tier β€” 186 members banked; fleet crosses 90% instr +1321 d05274039d0f629cf34cf1b53df6a091c54e0969 2026-08-01T09:16:42-06:00 2026-08-01T09:16:42-06:00 feat(phase-30 S2): func_8016EC0C banked in ov_SC01_077 β€” the void-return delay-slot idiom +1322 8cd0bd3db97c27a78d7fdd10042ce2664ef2466f 2026-08-01T09:21:39-06:00 2026-08-01T09:21:39-06:00 fix(phase-30 S2): Β§100 draft-local type for func_8016EC0C β€” the second exemplar-only bank today +1323 9d2e4171cfd611e1f923ce883d7730a2d59bd49f 2026-08-01T09:26:41-06:00 2026-08-01T09:26:41-06:00 feat(phase-30 S2): func_8016EC0C sibling sweep β€” 88 ins x137 (void-flip edit + h_seq remap) +1324 4a23c82a33c15cac61595a11ab3b35c8d7ab26f5 2026-08-01T09:43:30-06:00 2026-08-01T09:43:30-06:00 feat(phase-30 S2): func_8016EC0C x138 complete β€” 137/137 siblings, fleet 90.1% instr (R22 140/140) +1325 d9586392a6f9edf77fdf31d8a42c0ca2520253e9 2026-08-01T09:46:22-06:00 2026-08-01T09:46:22-06:00 feat(phase-30 S3): func_801754A8 banked (37 ins x138 head) β€” plain gate +1326 4d3d8e5e017be49fc61e0dc78c26fdaebb58547e 2026-08-01T09:50:21-06:00 2026-08-01T09:50:38-06:00 docs(phase-30 S3): the stored-draft pass measured β€” 77% of drafts have DECAYED +1327 cb5d02d9d9e366bb6d00fd3bea83b2c7eb062258 2026-08-01T10:34:09-06:00 2026-08-01T10:34:09-06:00 feat(phase-30 UC): wave-1 first 5 banked x138 heads (24,702 templatable ins) +1328 3b3accd5a26376485fdb85cc782ce18e898c554f 2026-08-01T10:35:22-06:00 2026-08-01T10:35:22-06:00 feat(phase-30 UC): func_80163764 banked via targeted decl reconcile (compiler-named edits only) +1329 6dab5a446b6fc1d47e6890388c4910444c4492e8 2026-08-01T10:37:24-06:00 2026-08-01T10:37:24-06:00 feat(phase-30 UC): func_80159A20 + func_80139BE0 banked via gate_stage ladder (13,386 ins) +1330 facd998d1baa69eda11eba8c5064c2d50190d91a 2026-08-01T10:37:44-06:00 2026-08-01T10:37:44-06:00 feat(phase-30 UC): func_80159a20 jr sibling sweep +1331 1653a8be5314c8d1ce71d5b323f1535d0941dec4 2026-08-01T10:51:45-06:00 2026-08-01T10:51:45-06:00 feat(phase-30 UC): func_801549f8 jr sibling sweep +1332 7180d6c0d3c8ee8e20ab5a6470ee8a488bdb649f 2026-08-01T10:52:47-06:00 2026-08-01T10:52:47-06:00 feat(phase-30 S2): func_80176734 BANKED β€” 371 ins, the largest single item in the frontier +1333 3e03f8b29058ed921cfa6d235ea39dc64df294e1 2026-08-01T11:01:56-06:00 2026-08-01T11:01:56-06:00 feat(phase-26): h_seq family sweep β€” 1096 member-matches banked via remap_hseq +1334 1b27550fdf8bd227458c7d16e3c0ab1ed4212f5a 2026-08-01T11:15:43-06:00 2026-08-01T11:15:43-06:00 feat(phase-30 UC): func_80159A20 jr sibling sweep +1335 1a1463b1c60f421f3c7aedf79419d4761ac70799 2026-08-01T11:19:28-06:00 2026-08-01T11:19:28-06:00 feat(phase-30 UC): wave-1 propagation β€” 1,370 member instances, fleet 90.9% instr (R22 140/140) +1336 553e2ed26a5bb2e30f78266069ce31296f89d30b 2026-08-01T11:20:02-06:00 2026-08-01T11:20:02-06:00 docs(phase-30): SESSION-29 CHECKPOINT refreshed β€” fleet 90.9% instr, T6 wave-2 handoff +1337 8b4951f002645a66fadda192fd736797353553a8 2026-08-01T11:45:22-06:00 2026-08-01T11:45:22-06:00 feat(phase-30 UC w2): 8 banked β€” the RECONCILE lane went 6/6 with no header edits +1338 53a374ed216b75d936e0e7799499431207459ed6 2026-08-01T11:50:56-06:00 2026-08-01T11:50:56-06:00 feat(phase-30 UC w3): 11/11 reconciled and banked β€” wave 2 closes at 19/19 heads +1339 9d346f1afa36f2cf95a91fe1cc711ac77804a843 2026-08-01T12:07:54-06:00 2026-08-01T12:07:54-06:00 feat(phase-26): h_seq family sweep β€” 2192 member-matches banked via remap_hseq +1340 21ccb171acbf10c4dd1a1b57a281a0ca09f8122a 2026-08-01T12:11:23-06:00 2026-08-01T12:11:23-06:00 feat(phase-30 UC): wave-2 propagation β€” 2,192 members, fleet 91.4% instr (R22 140/140) +1341 c579e12315393a08285e514901233009d3936fa1 2026-08-01T12:12:10-06:00 2026-08-01T12:12:10-06:00 docs(phase-30): checkpoint β€” UC waves complete, 33 heads / ~3,560 members, fleet 91.4% instr +1342 7e0caf3d252f0e924f5a3c8cedaed9c10e6af8ea 2026-08-01T14:02:25-06:00 2026-08-01T14:02:25-06:00 docs(phase-30): post-wave frontier re-derived + TWO pricing corrections (Β§133 both ways) +1343 8a519addf780243ea8ef69e2c7cd4696fe0a56a7 2026-08-01T16:42:21-06:00 2026-08-01T16:42:21-06:00 feat(phase-30 S6a): source-agnostic zero-crack sweep β€” 842 members banked (R22 140/140) +1344 39558b299118fae48f0c5fa18577d2f8b2a13401 2026-08-01T17:28:06-06:00 2026-08-01T17:28:06-06:00 fix(phase-30 S6b): MULTI-LINE BLINDNESS in family_remap β€” 4 faces, 3 fixed; +740 members (R22 140/140) +1345 aa600c56effbf73a62401f1e4601099b9d0959b6 2026-08-01T18:31:55-06:00 2026-08-01T18:31:55-06:00 fix(phase-30 S6e): family_sweep snapshotted TUs it never edited β€” the self-decl lever measures 0, honestly +1346 381cd56d4057ea01b10c1bc521426da38fdd2cf5 2026-08-01T18:43:14-06:00 2026-08-01T18:43:14-06:00 feat(phase-30 B): the x138 era was NOT over β€” 2 tiny cracks -> 268 members (R22 140/140) +1347 e6cec30736519041c63a712d1f8cc91564ae807a 2026-08-01T18:53:53-06:00 2026-08-01T18:53:53-06:00 feat(phase-30 S6f): calibrate the B-shaped vein β€” 3/3 one-shot by hand, +65 members (R22 140/140) +1348 6e181db77169de5e7c9665b624265de1098ee04e 2026-08-01T19:17:18-06:00 2026-08-01T19:17:18-06:00 feat(phase-30 S6f): B-shaped wave β€” Haiku drafts, Opus closes, +544 members (R22 140/140) +1349 372dc62d35de5e84707fd2d80df022b865c920b5 2026-08-01T19:35:24-06:00 2026-08-01T19:35:24-06:00 feat(phase-30 S6g): wave 2 β€” 93% bank rate (was 83%), all 4 reconciles closed, +342 members (R22 140/140) +1350 5f687b6e3f43500e1d193ac586356296952122b0 2026-08-01T19:36:47-06:00 2026-08-01T19:36:47-06:00 docs(phase-30): SESSION-30 checkpoint β€” S6 complete through wave 2, ~2,800 members, and the T5 trigger refuted +1351 6fe9b66f2df75cfd9d3925315305f1e9dacff0c7 2026-08-01T20:28:44-06:00 2026-08-01T20:28:44-06:00 feat(phase-30 S6h): wave 3 β€” 34/38 banked, +639 members, reconcile lane now 12/12 (R22 140/140) +1352 bfbcb86b3df2938d9896b6a2151c0cfcf42287c4 2026-08-01T20:29:35-06:00 2026-08-01T20:29:35-06:00 docs(cookbook Β§135): six byte-verified gcc-2.7.2 idioms + the two-lane wave shape (P30 S6f-h) +1353 443279e25ad1eaa1b379b35fdc3167c35f615afe 2026-08-01T20:47:52-06:00 2026-08-01T20:47:52-06:00 docs(phase-30): SESSION-30 checkpoint refreshed β€” S6 through wave 3, queue re-derived at HEAD +1354 0ffb2c04d7d64244d87b01a90c616379b6a84380 2026-08-01T20:48:10-06:00 2026-08-01T20:48:10-06:00 docs: regenerate family-hseq digest at HEAD (the checkpoint's queue is derived from it) +1355 09d96b15314e3ecaa14a38aa82524e52908511a4 2026-08-03T08:57:16-06:00 2026-08-03T08:57:16-06:00 feat(phase-30 S7): wave 4a β€” 23 heads + 251 members banked Γ—N; cookbook Β§136 (the local-variable lever) +1356 ed4680f3a6bb638f226d77d2b44f3823d5f363df 2026-08-03T09:09:45-06:00 2026-08-03T09:09:45-06:00 feat(phase-30 S6c): jr family bank (pre-func_80178D40) +1357 4ed1c8cd2bd6a6ee7a924b92cc15de5a61e4c752 2026-08-03T09:12:03-06:00 2026-08-03T09:12:03-06:00 feat(phase-30 S6c): jr family bank (pre-func_8012ACE0) +1358 9603d2589673c79be288fd435e90138b8284bfb9 2026-08-03T09:12:14-06:00 2026-08-03T09:12:14-06:00 feat(phase-30 S6c): jr family bank (pre-func_8016AE5C) +1359 8554e8589f85ffa1b9731f294af7a7cdc11e22a8 2026-08-03T09:24:04-06:00 2026-08-03T09:24:04-06:00 feat(phase-30 S6c): jr family bank (pre-func_801734BC rest) +1360 cb1dcaa5aa14b9aa7ca9975396e3a662ccf1eb50 2026-08-03T09:24:21-06:00 2026-08-03T09:24:21-06:00 feat(phase-30 S6c): jr family bank (pre-func_8012ACE0 rest) +1361 d74f63a74b37cd061e43a6f05b6b78650bb530f5 2026-08-03T09:25:09-06:00 2026-08-03T09:25:09-06:00 feat(phase-30 S6c): jr family bank β€” func_8012ACE0 rest (ov_SC07_007/010/011) +1362 fdb5813fc199f503d3cde87b896fa557fa6b62b2 2026-08-03T09:32:36-06:00 2026-08-03T09:32:36-06:00 docs(phase-30 S7): S6c banked Γ—12 (all in the P27 SC07 quartet); blockers classified 7/3; Β§136a +1363 d00dfe363b426cb4663a2983e54dd51e7e03f447 2026-08-03T09:47:45-06:00 2026-08-03T09:47:45-06:00 feat(phase-30 S7): reconcile lane 7/7 β€” wave 4a closes at 30/33 (91%), +76 members +1364 cc3c49d7afb5223d552f8e29e4c971174b773dce 2026-08-03T10:29:21-06:00 2026-08-03T10:29:21-06:00 feat(phase-30 S7): wave 4b batch 1 β€” 32 heads + 365 members; Β§136b (a DIFF verdict is not evidence) +1365 7f70b6850a4d2335d709e7c8195d0b098ba4416a 2026-08-03T11:19:28-06:00 2026-08-03T11:19:28-06:00 feat(phase-30 S7): batch 2 + reconcile + redraft β€” 41 heads + 431 members; Β§136b closes 8/8 +1366 a6ba678658e0a7f8be967dfb7f63a315770003ee 2026-08-03T11:21:08-06:00 2026-08-03T11:21:08-06:00 docs(phase-30 S7): refresh SESSION-31 checkpoint β€” 1,238 instances, 103/107 banked, the 5 Β§136 findings +1367 b61d805b8b9fa549c5692936580eb699c413219f 2026-08-03T12:34:53-06:00 2026-08-03T12:34:53-06:00 feat(phase-30 S7): wave 4b batch 3 β€” 35 heads + 305 members; the 144-family B-shape queue is worked +1368 1b8f26113ce52668abf5d5baa5b5b18575b581b9 2026-08-03T13:02:29-06:00 2026-08-03T13:02:29-06:00 feat(phase-30 S7): close the B-shape queue β€” 144/144 drafts banked; Β§136b closes 9/9 +1369 2210ff6509e6952e61eacb86ba96d79969fe4159 2026-08-03T13:03:13-06:00 2026-08-03T13:03:13-06:00 docs(phase-30 S7): checkpoint β€” B-shape queue closed 144/144; the zero-crack pool refills itself (120->147 families) +1370 e8a57b13fad690db9410b0225b6c5c226d170150 2026-08-03T13:29:33-06:00 2026-08-03T13:29:33-06:00 docs(phase-30 S8): CORRECTION Β§136h β€” the zero-crack pool is residue, not a lever (1 bank / 1,781); my R37 violation +1371 18fc50d0f80a483ee3a987292f553f622a7941c7 2026-08-03T14:28:30-06:00 2026-08-03T14:28:30-06:00 docs(phase-30): Β§136i β€” insert SONNET between Haiku and Opus in the drafter ladder (Drew 2026-08-03) +1372 a4bc49a23d6f09991df2dfff4be9bd5bab77528a 2026-08-03T16:25:06-06:00 2026-08-03T16:25:06-06:00 feat(phase-30 S8): the x10-99 band closes 23/23; Β§137 makes REGALLOC-PERM arithmetic, not a permuter job +1373 1f9c1be858c89d319cf66cb5688fe7709e30b2ef 2026-08-03T16:25:29-06:00 2026-08-03T16:25:29-06:00 docs(phase-30 S8): checkpoint β€” 167/167 banked, every high-multiplier lane spent; T5 is the next decision +1374 cf10d284592391d8891482ddfa01eeb191f7123f 2026-08-03T19:06:02-06:00 2026-08-03T19:06:02-06:00 feat(phase-30 S9): x2-9 calibration wave β€” 22/25 banked + 67 members; the grind rate is MEASURED +1375 1859266d6036305624187887a2caf6e3c1e8de94 2026-08-03T22:27:19-06:00 2026-08-03T22:27:19-06:00 feat(phase-30 S10): Sonnet wave β€” 13 heads + 57 members; the Β§136i ~120 boundary is too LOW +1376 ef1d8c9faba3e98915649687425d237f0a03a3fa 2026-08-03T22:28:16-06:00 2026-08-03T22:28:16-06:00 docs(phase-30): SESSION-31/32 checkpoint β€” fresh-session safe; Sonnet finding, 3 live lanes, stale P32 ledger flagged +1377 eb2e72328bbbab3187eb55336d9a2d989504ff31 2026-08-03T22:49:58-06:00 2026-08-03T22:49:58-06:00 fix(phase-30 T6): byte-neutral decl conforms unblock the SC07 EXTEND lane +1378 16a1dabc798db0eefe5d07de3bf0bf7b5a9d8f8d 2026-08-03T22:57:51-06:00 2026-08-03T22:57:51-06:00 feat(phase-30 T6): SC07 EXTEND lane 0/36 -> 15 banked; the 4 "DIFF"s are a volatile decl +1379 c7ad41c8a3724bdec3a77dc32cfa487c3aec3f22 2026-08-03T23:41:34-06:00 2026-08-03T23:41:34-06:00 feat(phase-30 T6/S11): the propagation lag β€” EXTEND 31/36, and the PROPAGATE head measured +1380 62042f65caffbeda0ea31821b7c27d5b37cb77b2 2026-08-03T23:53:50-06:00 2026-08-03T23:53:50-06:00 fix(phase-30 S11): multi-line-comment blindness in dedup_propagate; func_8012A598 x138 +1381 3daa647bb35b094e35c4b2788e16faebe15cb8dc 2026-08-03T23:55:53-06:00 2026-08-03T23:55:53-06:00 docs(phase-30 S11): cookbook Β§138 + SESSION-33 checkpoint +1382 7a6a09379f8d2ab2b551832cb055e9e5ec56e827 2026-08-04T00:11:42-06:00 2026-08-04T00:11:42-06:00 fix(phase-30 S33b): relax all 42 func_80146C3C decls β€” the PROPAGATE remainder is the SAME symbol +1383 356373efabb08b6470aad01ea43951a69b09ac79 2026-08-04T00:16:23-06:00 2026-08-04T00:16:23-06:00 fix(phase-30 S33b): the PAIR rule β€” my 42-decl relax did NOT unblock the lane; the mirror form did +1384 4f6b0e8de134a7836af884eb2ae7146ae1a38abf 2026-08-04T00:30:56-06:00 2026-08-04T00:30:56-06:00 feat(phase-30 S33b): PROPAGATE head 82% banked β€” 15,257 of 18,545 ins, four levers +1385 b497ee164918620fd25e6c4b78475f2455089e2b 2026-08-04T00:44:33-06:00 2026-08-04T00:44:33-06:00 feat(phase-30 S33c): PROPAGATE head COMPLETE β€” func_801466F0 x137 took three fixes + a type-lift +1386 0bdc7f44a04c44c3c217f5739d2daadee3a0e314 2026-08-04T03:27:54-06:00 2026-08-04T03:27:54-06:00 feat(phase-30 S33d): Sonnet wave β€” 13 heads + 65 members banked (78 instances) +1387 138e21c7d4f5335871a6715183763ea0aa8f0fa9 2026-08-04T03:34:51-06:00 2026-08-04T03:34:51-06:00 feat(phase-30 S33e): both gate-refused drafts reconciled β€” the lane is 18/18 lifetime +1388 7a4abddbfa5a7f899199c1b831ef52d08d9c2c7d 2026-08-04T07:14:28-06:00 2026-08-04T07:14:28-06:00 feat(phase-30 S34): wave 2 β€” 10 heads + 18 members; the search order had a cross-overlay hole +1389 6b30335eb7fc0559e76453c30f3ec85b5638b7ce 2026-08-04T07:16:55-06:00 2026-08-04T07:16:55-06:00 docs(phase-30): SESSION-33/34/35 checkpoint β€” fresh-session safe; 5 distilled rules, the h_seq ceiling re-confirmed by probe +1390 cbf0bce26ce5c708771948cb6632f5cf29e501da 2026-08-04T09:42:58-06:00 2026-08-04T09:42:58-06:00 feat(phase-30 S35): wave 3 banks 13/13 β€” the flywheel paid off one wave later +1391 906484075764fcce024c0a4485f00646a83ba5f1 2026-08-04T12:05:32-06:00 2026-08-04T12:05:32-06:00 feat(phase-30 S36): wave 4 banks 14/14 + 26 members β€” step 0 is now the agents' default move +1392 3f51101ca9d8cc7acb9d1cce63e65136d0581a7f 2026-08-04T13:29:51-06:00 2026-08-04T13:29:51-06:00 docs(phase-30): SESSION-33..37 checkpoint β€” PAUSED; 16 ungated wave-5 drafts preserved in git +1393 af16c38a626ead5527ef7d91e14ac12391936b3c 2026-08-04T13:42:58-06:00 2026-08-04T13:42:58-06:00 feat(phase-30 S37): wave 5 banks 16/16 with ZERO reconcile + 26 members; wave metrics logged +1394 b42b1885ae0cb12b5301362e105d5ad26d192084 2026-08-04T13:43:53-06:00 2026-08-04T13:43:53-06:00 docs(phase-30): SESSION-33..37 checkpoint β€” wave 5 banked, nothing owed; wave-metrics findings reordered +1395 bd097a901005756129abb1355db0021ae8efe54d 2026-08-04T13:47:42-06:00 2026-08-04T13:47:42-06:00 docs(phase-30): checkpoint β€” name the code commit correctly + add a staleness self-check +1396 139e21118bbf1e43a46478bc5590d7a1a929e3ca 2026-08-04T16:13:14-06:00 2026-08-04T16:13:14-06:00 docs(phase-30 S38): wave 6 launched β€” pool derivation is a script now, + 2 derive-don't-assert fixes +1397 e5380ff6fbd1f8c8afad8883e33b4bb400f82fd4 2026-08-04T16:14:13-06:00 2026-08-04T16:14:13-06:00 fix(tools): family_hseq's stdout claimed "fleet" for an OVERLAYS-ONLY number +1398 fd1bdd4b2fc53e0b854d274148a8868671a6f5b0 2026-08-04T17:24:04-06:00 2026-08-04T17:24:04-06:00 chore(phase-30 S38): preserve wave-6 drafts before gating (5.2M agent tokens) +1399 73321fe2c2820d8e94bb90bc9fc7b7121de812f4 2026-08-04T17:41:43-06:00 2026-08-04T17:41:43-06:00 fix(phase-30 S38): the gate was booking CRASHES as silence β€” 10 of wave 6's 16 drafts vanished +1400 e977205bb88f4dbabec2f48ec4f017e5f46e587e 2026-08-04T17:50:05-06:00 2026-08-04T17:50:05-06:00 docs(cookbook): Β§139 β€” a gate that greps for verdicts must assert 1:1 accounting +1401 ba87a9b2561c29b433b69589499f15aa0d4bed4a 2026-08-04T17:50:05-06:00 2026-08-04T17:50:05-06:00 feat(phase-30 S38): wave-6 propagation family 1 β€” func_8017FEE0 x15 siblings +1402 65f0184f7d3ea4ae6d0c67a662e190b18be9f3b9 2026-08-04T17:50:35-06:00 2026-08-04T17:50:35-06:00 chore: regenerate docs/family-hseq.md after the wave-6 banks +1403 c44b980fe49f57b975a1e2875ec864ffc438b07e 2026-08-04T17:52:14-06:00 2026-08-04T17:52:14-06:00 feat(phase-30 S38): wave-6 propagation β€” func_80181CE4 x6 sibling slots +1404 8f3d8662b6cb11aaf9687e9e116229a19004846d 2026-08-04T17:53:33-06:00 2026-08-04T17:53:33-06:00 feat(phase-30 S38): wave-6 propagation β€” func_80183AE0 x6 sibling slots +1405 81c5cc559a74bbc778e93cfeebc43256491f003f 2026-08-04T17:54:54-06:00 2026-08-04T17:54:54-06:00 feat(phase-30 S38): wave-6 propagation β€” func_80184C74 x5 sibling slots +1406 7247c68b60dbce8da495a3e2bf2ef4d5894e4858 2026-08-04T17:55:31-06:00 2026-08-04T17:55:31-06:00 feat(phase-30 S38): wave-6 propagation β€” func_8017EA84 x2 sibling slots +1407 6b21af6a140394d0a0cba24056d0c0fdd3a0d107 2026-08-04T17:55:51-06:00 2026-08-04T17:55:51-06:00 fix(tools): classify_fail truncated its diagnostic from the LEFT, severing the symbol name +1408 bc04f655628844de9b9ec54b94bfe4099f726c71 2026-08-04T18:10:19-06:00 2026-08-04T18:10:19-06:00 docs(phase-30 S38): checkpoint β€” wave 6 banked (+10,616 ins), the gate defect fixed, 9 drafts diagnosed +1409 805770940794a2309784ba71b4b9d3c1794d87e2 2026-08-04T18:12:18-06:00 2026-08-04T18:12:18-06:00 fix(.run/w6_pool.py): "attempted" must mean a wave that RAN, not a manifest that exists +1410 c21a310cce5e3ad06ed76b70102682ad827dea09 2026-08-04T18:20:12-06:00 2026-08-04T18:20:12-06:00 docs(phase-30 S38): measure the family frontier β€” the x138 era is over; the free-sweep lane is 0/0 UNDIAGNOSED +1411 2483fc902a1a8d9e2b138a069916f33487da30ae 2026-08-04T18:30:01-06:00 2026-08-04T18:30:01-06:00 fix(tools): jr_isolate_all was SILENTLY DELETING asm-label-alias definitions during a repartition +1412 91bb3ac76be423eadeef8b86c89bd92130c658e1 2026-08-04T18:36:04-06:00 2026-08-04T18:36:04-06:00 feat(phase-30 S38): the free-sweep "wall" was a TYPE-SCOPE parse error β€” 0/6 becomes 6/6 +1413 d053d71a2729fe1c666931793da940a916346b94 2026-08-04T18:36:51-06:00 2026-08-04T18:36:51-06:00 docs(phase-30 S38): STRIKE my "x138 era is over" reading β€” the base rate is 5:1 PLUMBING, not codegen +1414 97a68646772f9685901e5a342de787b1be7638b5 2026-08-04T18:40:14-06:00 2026-08-04T18:40:14-06:00 docs(phase-30): adopt the Fable-5 frontier plan as T7 + persist the report +1415 c57860db4e702604b60350f4f18b3303acdd0647 2026-08-04T18:46:30-06:00 2026-08-04T18:46:30-06:00 feat(phase-30 S38/S1a): lift 895 local types to engine_types.h β€” kills the type-scope sweep class +1416 be2eaa184235b90a5accc240d3d2b0c7a252ff08 2026-08-04T19:04:56-06:00 2026-08-04T19:04:56-06:00 feat(phase-30 S38/S1c): re-sweep the matched-exemplar families after the type lift β€” 97 members banked +1417 df99a71732be1f8d4ca46f3110ba8c7711a87e94 2026-08-04T19:31:33-06:00 2026-08-04T19:31:33-06:00 fix(tools): jtbl_family_bank reported "gate-fail" with no reason β€” the third missing-payload defect today +1418 2ab4aa3571d3d56db0d2085b7b940e2eaf2c077a 2026-08-04T19:33:14-06:00 2026-08-04T19:33:14-06:00 feat(phase-30 S38/S2): jr-family sweep β€” func_80181CE4 x3 sibling slots +1419 5e301868475ac4c7d88887fa1dfca208212d25a3 2026-08-04T19:35:45-06:00 2026-08-04T19:35:45-06:00 feat(phase-30 S38/S2): jr-family sweep β€” func_801380E0 x3 sibling slots +1420 ec7345217f902d975e375d7e99ec247e716f6c72 2026-08-04T19:37:24-06:00 2026-08-04T19:37:24-06:00 feat(phase-30 S38/S2): jr-family sweep β€” func_8017FEE0 x4 sibling slots +1421 b410df3517bfdd4c0fc3796b5ec51d547461393f 2026-08-04T19:40:33-06:00 2026-08-04T19:40:33-06:00 feat(phase-30 S38/S2): jr-family sweep β€” func_80183AE0 x3 sibling slots +1422 f9eaa671b7a6f22156dc0a561c97f85cb8b52328 2026-08-04T19:44:31-06:00 2026-08-04T19:44:31-06:00 docs(phase-30 S38): checkpoint v2 β€” S1/S2 landed; the residue is TWO symbols, not a missing tool +1423 3f7534c10a8e5ce8e31a6f932a008ce093374f11 2026-08-04T19:50:11-06:00 2026-08-04T19:50:11-06:00 fix(tools): the alias scanner I added this morning had the Β§134 defect I documented this morning +1424 15f936e2ea568627ef4faa4bf7db96a3789561dc 2026-08-04T20:09:10-06:00 2026-08-04T20:09:10-06:00 feat(phase-30 S38/S3): the whale banks in 3 of the 4 SC07 overlays β€” 137/138, not 138/138 +1425 a5c5526a8ab2cec2c63a3c1612b535906be757da 2026-08-04T20:10:11-06:00 2026-08-04T20:10:11-06:00 docs(phase-30 S38): checkpoint v3 β€” S3 lands at 137/138, and the session's one R22 failure +1426 10f9546272c631e86b03d783c15a005803e5fcde 2026-08-04T20:10:23-06:00 2026-08-04T20:10:23-06:00 chore: regenerate the fleet digest + backlog after S1/S2/S3 +1427 a5e97739fb0ea34b7297d55717602ab5a2858847 2026-08-04T20:43:14-06:00 2026-08-04T20:43:14-06:00 feat(phase-30 S38/S1d): the def-side asm-label alias cracks the 208-conflict class β€” 138/138 banked +1428 936cd07b58991b5c52e9ff1cf4cee1f27529cead 2026-08-04T21:13:19-06:00 2026-08-04T21:13:19-06:00 feat(phase-30 S38/S1d): generalised alias harvest β€” R22 140/140, but distinct-code DROPPED (unexplained) +1429 d8016c49c88be1414321e210b70591047f9f6f16 2026-08-04T21:25:18-06:00 2026-08-04T21:25:18-06:00 docs(phase-30 S38): checkpoint v4 β€” POST-S1d, fresh-session safe +1430 15765702714954baef95fc2aa95f72c598bf7424 2026-08-04T21:48:57-06:00 2026-08-04T21:48:57-06:00 fix(phase-30 S1e): the distinct-code "regression" was a STALE DIGEST β€” alias lever ungated +1431 3c0f60861d5194a118752196a8bc9edca8ac47d8 2026-08-04T21:58:53-06:00 2026-08-04T21:58:53-06:00 feat(phase-30 S39): the whale is 138/138 β€” ov_SC07_010 carved + banked (+770 ins, R22 140/140) +1432 f2696653efc7c5c7f7e2ac365db27d716f6d047f 2026-08-04T22:10:49-06:00 2026-08-04T22:10:49-06:00 feat(phase-30 S39/S4): 4 wave-6 drafts bank UNCHANGED β€” the block was our tooling, not the code (+1,905 ins) +1433 a2a50635b3debc7c0e9eb61dd3a0432c29d7a0f4 2026-08-04T22:16:33-06:00 2026-08-04T22:16:33-06:00 feat(phase-30 S39/S4): func_801878E8 family 4/4 siblings banked Γ—N (+2,052 ins, ~0 agent tokens) +1434 819a4c53178711c42c9a3bb75ee92cf7fd596ab1 2026-08-04T22:17:31-06:00 2026-08-04T22:17:31-06:00 docs(phase-30 S39): session checkpoint β€” stale-digest finding, 4 instrument fixes, +4,727 ins, fresh-session safe +1435 7b5eda04249ae787bb9fa108d45a2143675c6836 2026-08-04T22:42:54-06:00 2026-08-04T22:42:54-06:00 feat(phase-30 S39/S4): re-gate probe β€” A10 broadly stands; 4 banked from the reverted overlays (+146 ins) +1436 957dada2f827ea280f5c8094288385acc0971cd4 2026-08-04T22:43:28-06:00 2026-08-04T22:43:28-06:00 docs(phase-30 S39): decision-log β€” MASTER_REMAINING proposal: adopt the goal (denominator completeness + a reconciliation gate), reject the maintained list (R33) +1437 9e5ff203e762d4c56829cac473afc251d29e86f9 2026-08-04T22:44:07-06:00 2026-08-04T22:44:07-06:00 docs(phase-30 S39): refresh checkpoint β€” final fleet numbers, re-gate rates, the reconciliation-gate item +1438 04141712377872ea49c80c18b9632e7ebbead337 2026-08-04T23:22:42-06:00 2026-08-04T23:22:42-06:00 feat(phase-30 S39/S4): 8/35 draft-exemplar heads re-gate and bank (+474 ins, 4 gate cycles, 0 agent tokens) +1439 0f73618fa82876e81ca7b015dfabc0dbc242f94c 2026-08-04T23:29:28-06:00 2026-08-04T23:29:28-06:00 feat(phase-30 S39/S4): propagate func_801820DC family (94 ins x 2 members) - R22 140/140 +1440 99ff84ed8b56f8bd2de51ca5e228e8ac85277e28 2026-08-04T23:33:17-06:00 2026-08-04T23:33:17-06:00 feat(phase-30 S39/S4): propagate func_80182E7C family (85 ins x 2 members) - R22 140/140 +1441 55332bfc42e18792baafcb2cb10cccfce67b4e4f 2026-08-04T23:36:34-06:00 2026-08-04T23:36:34-06:00 feat(phase-30 S39/S4): propagate func_8018281C family (76 ins x 2 members) - R22 140/140 +1442 a1d6ea300225fb8e0e54c06677095e3f094ac3c5 2026-08-04T23:40:16-06:00 2026-08-04T23:40:16-06:00 feat(phase-30 S39/S4): propagate func_80183CF4 family (57 ins x 2 members) - R22 140/140 +1443 a216cb1b57688fa6ec7cd5bbac023fda6c4cfbec 2026-08-04T23:43:56-06:00 2026-08-04T23:43:56-06:00 feat(phase-30 S39/S4): propagate func_80183AF0 family (47 ins x 2 members) - R22 140/140 +1444 c3bf1c988d773e37edb626f0dd17215d69dd120b 2026-08-04T23:56:15-06:00 2026-08-04T23:56:15-06:00 feat(phase-30 S39): func_801758FC propagated x137 (+7,535 ins) β€” the largest free h_exact class +1445 ff4bc60e09205e44aff2caca637afbe129ddeb11 2026-08-05T00:00:20-06:00 2026-08-05T00:00:20-06:00 feat(phase-30 S39): propagate free h_exact class 0x8017bee0 (10 ins x 6) - R22 140/140 +1446 638f97dbbb26a84cf6e44665a33f1b57f04435e3 2026-08-05T00:09:28-06:00 2026-08-05T00:09:28-06:00 feat(phase-30 S39): propagate free h_exact class 0x80176144 (53 ins x 1) - R22 140/140 +1447 e88eccac608e069d660254cd18ebe1530cc269c4 2026-08-05T00:13:15-06:00 2026-08-05T00:13:15-06:00 feat(phase-30 S39): propagate free h_exact class 0x8018625c (19 ins x 1) - R22 140/140 +1448 8059ac8a53530a6754627016396e1f9ddb18573a 2026-08-05T00:17:59-06:00 2026-08-05T00:17:59-06:00 feat(phase-30 S39): propagate free h_exact class 0x80182bd4 (10 ins x 1) - R22 140/140 +1449 c07ee022828b0799734a6b2bbda94f5d1ccf83c6 2026-08-05T00:21:32-06:00 2026-08-05T00:21:32-06:00 feat(phase-30 S39): propagate free h_exact class 0x80182bb0 (9 ins x 1) - R22 140/140 +1450 7604e294f2db0cdb77d27dda5caeea361ea5ef9d 2026-08-05T00:25:22-06:00 2026-08-05T00:25:22-06:00 feat(phase-30 S39): propagate free h_exact class 0x80188f90 (8 ins x 1) - R22 140/140 +1451 49a3efa14dc135343b4057920f9fa792d2013360 2026-08-05T00:28:41-06:00 2026-08-05T00:28:41-06:00 feat(phase-30 S39): propagate free h_exact class 0x801880f8 (8 ins x 1) - R22 140/140 +1452 85519f1e32177e7970a105abca6ab087f4d188a2 2026-08-05T00:32:32-06:00 2026-08-05T00:32:32-06:00 feat(phase-30 S39): propagate free h_exact class 0x8017d174 (8 ins x 1) - R22 140/140 +1453 e9c66a67209cf6aa7f8736c9ef6457e3592c8671 2026-08-05T00:37:59-06:00 2026-08-05T00:37:59-06:00 fix(phase-30 S39): close the Β§134 class β€” the last two line-shape scanners route through cdecl._mask +1454 e6e05d727a60953b8c7e170583e8695579516e70 2026-08-05T00:41:54-06:00 2026-08-05T00:41:54-06:00 fix(phase-30 S39/S7): regenerate main's 7-week-stale Ghidra sig β€” honest denominator, metrics re-baselined +1455 c8bf4a1e92c637589d62f5ba2495d4c3ff9158c0 2026-08-05T00:44:42-06:00 2026-08-05T00:44:42-06:00 docs(phase-30 S39): checkpoint v2 β€” +13,767 ins, the free-h_exact finding, honest denominator, grinder running +1456 a0e499d8f101efe615ac7c9e9584e1784e6b2764 2026-08-05T00:47:15-06:00 2026-08-05T00:47:15-06:00 feat(phase-30 S39): make audit-frontier β€” the reconciliation gate (Drew's MASTER_REMAINING, derived form) +1457 6d684ac6500a05735872f453808dc5aec89333df 2026-08-05T00:47:56-06:00 2026-08-05T00:47:56-06:00 docs(phase-30 S39): cookbook Β§142 β€” the free h_exact pool; propagate the matched body, don't gate a draft +1458 b9a7eddef826610937e4dffdae8c30fbfe23bd27 2026-08-05T00:49:07-06:00 2026-08-05T00:49:07-06:00 docs(phase-30 S39): measured frontier snapshot β€” main is now the single largest open target (10.7%) +1459 070687d8faeb95dd6fbe7e472047b4b34af9369c 2026-08-05T00:50:01-06:00 2026-08-05T00:50:01-06:00 docs(phase-30 S39): burn-down for T5 prep β€” with the -0.14pp last row annotated as a denominator correction +1460 4f6e82ba13c40fd1f4057a1ac8b668088a7977e1 2026-08-05T00:50:48-06:00 2026-08-05T00:50:48-06:00 docs(phase-30 S39): checkpoint v3 β€” overnight deliverables, grinder caveat, morning actions +1461 6e0b1605c614bb4ffe05ef6678d5696bcf017e9f 2026-08-05T11:05:35-06:00 2026-08-05T11:05:35-06:00 fix(phase-30 S40): cast_call_sites read a RETURN as a prototype and deleted it β€” 0/39 sweep becomes 18/39 +1462 64ad8a1c7a8c2b6c1440c72347e66c4e0b614c83 2026-08-05T11:08:26-06:00 2026-08-05T11:08:26-06:00 docs(phase-30 S40): checkpoint β€” the cast_call_sites bug, wave 1 (5/8 banked + 24/24 propagated), pool verified +1463 84d1193f21243a4a5e36ecf1dc2a005ddb714bd1 2026-08-05T11:15:15-06:00 2026-08-05T11:15:15-06:00 docs(phase-30 S40): cookbook Β§144 (literal spelling = immediate encoding) + wave-metrics S40-1 (8/8 after recovery, 0 codegen walls) +1464 443a3e3afe78050b1c09cd8d79fc88cffea59807 2026-08-05T11:47:31-06:00 2026-08-05T11:47:31-06:00 feat(phase-30 S40): waves 1+2 bank 24/24 after recovery β€” ZERO codegen walls; +5,479 ins +1465 669367dab0609fbbaa9be138497acfe5c4b11c2f 2026-08-05T11:53:05-06:00 2026-08-05T11:53:05-06:00 feat(phase-30 S40): propagate the 19 wave exemplars β€” 61/87 members banked (+7,087 ins), R22 140/140 +1466 350423d1df9f8fdc6880cd9a8200cf1a267b4a58 2026-08-05T11:53:41-06:00 2026-08-05T11:53:41-06:00 docs(phase-30 S40): checkpoint β€” the cast_call_sites bug, 24/24 waves with zero codegen walls, Β§144/Β§145, next-session fuel +1467 9f61cd33c57e9ec0a3d5df82cd89ae8f6041a112 2026-08-05T12:51:06-06:00 2026-08-05T12:51:06-06:00 feat(phase-30 S6): BOTH GIANT WALLS CRACKED Γ—138 (+50,094 ins) β€” the verdicts were stale, not wrong +1468 4aa7dbdfa435d4e8eabf358e8fc56da80dd8efdb 2026-08-05T12:51:46-06:00 2026-08-05T12:51:46-06:00 docs(phase-30 S6): cookbook Β§146 β€” re-measure a wall before respecting it; both giants fell to stored drafts +1469 461979449e507c30df15e977557386cda76b18d7 2026-08-05T12:52:07-06:00 2026-08-05T12:52:07-06:00 docs(phase-30 S6): checkpoint β€” both giant walls cracked Γ—138 (+50,094 ins); roadmap 'permanent walls' line retired +1470 e879ec6da2be470d9becaf0057747c5a89a36292 2026-08-05T13:11:10-06:00 2026-08-05T13:11:10-06:00 feat(phase-30 S4-redo): SCAN don't SAMPLE β€” 14 matches found on disk, 7 banked (+1,338 ins) +1471 801062d75fc49fd49b7cfc9a11fd722ee19c1013 2026-08-05T13:35:17-06:00 2026-08-05T13:35:17-06:00 docs(phase-30): decision-log β€” the definitive disc audit; assert a PARTITION over the disc, not a longer list of code +1472 bcdf6750bdf11dfd3f3bf962cce4d24e49198a36 2026-08-05T13:53:23-06:00 2026-08-05T13:53:23-06:00 docs(phase-30 S42): cookbook Β§147 β€” the three-stratum frame law + four stop-searching verdicts (from the serial func_8017C294 run) +1473 427f4615d89ee1ad7bd5ef179ecb9c23c8f6e391 2026-08-05T14:08:51-06:00 2026-08-05T14:08:51-06:00 docs(phase-30 S39-S42): full fresh-session checkpoint β€” the agreed disc-audit plan, both giants, the cast_call_sites bug, serial queue state +1474 de141dc221e4ca977418076ef2f8cb6a5b1f26c8 2026-08-05T14:48:26-06:00 2026-08-05T14:48:26-06:00 docs(phase-30 S42): cookbook Β§148 β€” the loop.c hoisting threshold arithmetic, the MIN_EXPR clamp fold, the allocno-priority slider; and the x16 claim corrected +1475 b155c7f78957f95d9f4b0e52f67cc3fd4d088195 2026-08-05T14:48:42-06:00 2026-08-05T14:48:42-06:00 docs(phase-30 S42): checkpoint β€” serial #2 result NEAR(63), the x16 claim corrected, demacroize-for-permuter as next move +1476 35d00fe3ec9250671923d800dcbe248d475ee4c6 2026-08-05T14:54:59-06:00 2026-08-05T14:54:59-06:00 chore(phase-30 S42): PRESERVE the two serial NEAR drafts + log them; flag a draft-less ledger row +1477 aacc681ac164b11408afe9835d76906e48873a0d 2026-08-05T14:58:44-06:00 2026-08-05T14:58:44-06:00 docs(phase-30 S42): checkpoint β€” serial drafts preserved + allowlisted; flag the artifact-less backlog row that outranks them +1478 63d029b56365d80599993e91a7b62cdb2e56ee9b 2026-08-05T15:59:27-06:00 2026-08-05T15:59:27-06:00 fix(phase-30 S43): the Β§148 "GTE macro wall" is a SILENT CPP FALLBACK β€” permuter lane was dead on 63 drafts +1479 fa122cf62f77d7e5db753b5f3ddee28dddf66c01 2026-08-05T16:06:16-06:00 2026-08-05T16:06:16-06:00 fix(phase-30 S43): permuter takes func_8017C6F4 63->42; the "rumour row" was an ADDRESS COLLISION +1480 50c6f61056f9331b0176aa9aefc0d098afb3d676 2026-08-05T16:09:52-06:00 2026-08-05T16:09:52-06:00 fix(phase-30 S43): the CC1-FAIL label named MAKE, not the compiler (~3,000 content-free labels) +1481 b20b397a5d2bd7779d5c0a2ef8bd7b7bfde44d5b 2026-08-05T16:16:37-06:00 2026-08-05T16:16:37-06:00 docs(phase-30 S43): the "26 unpropagated members = cheapest fuel" is REFUTED β€” 0 of 31 templatable +1482 e75ed7adcc3989f0865b5ae9acd3bcfe807aac65 2026-08-05T16:18:12-06:00 2026-08-05T16:18:12-06:00 docs(phase-30 S43): checkpoint β€” the permuter takes 63->41 and plateaus; evidence preserved +1483 f5ea22b4f5fe0ef1eadc0a45806a1dcf035d718d 2026-08-05T16:39:37-06:00 2026-08-05T16:39:37-06:00 feat(phase-30 S43): serial queue β€” func_8017EF68 is at 2 of 969, and was scanned against the WRONG BODY +1484 25402b2eb469f21da0ff69df0803ef90c35ab013 2026-08-05T17:07:41-06:00 2026-08-05T17:07:41-06:00 feat(phase-30 S43): FABLE5 CRACKS func_8017C6F4 pin-free β€” banked Γ—4 (~3,788 ins) [R22 PENDING] +1485 01d7d3276ca686a51c027d85e5201fd4ae1821e6 2026-08-05T17:21:47-06:00 2026-08-05T17:21:47-06:00 feat(phase-30 S43): FABLE5 CRACKS func_8017EF68 (the 2-of-969 wedge); R22 CONFIRMS ALL FIVE BANKS 140/140 +1486 f5498c3c66c8456538fd3c938be2130b788c925a 2026-08-05T17:40:27-06:00 2026-08-05T17:40:27-06:00 feat(phase-30 S43): the 0xECC family β€” ONE crack banks 12 overlays / 11,364 ins [R22 PENDING] +1487 dee33412dbfe246c69c80135faa958b88e6aae71 2026-08-05T18:23:54-06:00 2026-08-05T18:23:54-06:00 feat(phase-30 S43): func_8018D98C banked (710 ins) + Β§153 the address-rematerialisation launder [R22 PENDING] +1488 37c60a5ff3b0f860a828926105a93129d4da6917 2026-08-05T18:54:07-06:00 2026-08-05T18:54:07-06:00 feat(phase-30 S43): R22 CONFIRMS ALL 18 BANKS 140/140 β€” fleet 94.99% instr; Β§147 refuted by the bytes +1489 5c84ad5adadcb1478d18b33aca230eadf11f9689 2026-08-05T21:15:06-06:00 2026-08-05T21:15:06-06:00 feat(phase-30 S43): the 263x5 cluster BANKED 5/5 (+1,315 ins) β€” the SWEEP was corrupting correct drafts +1490 41a3de342d998a235ce6339bdcbc09d29ec0e64f 2026-08-05T23:50:40-06:00 2026-08-05T23:50:40-06:00 fix(phase-30 S43): family_remap now carries TYPEDEFS (transitive, brace-aware) β€” the Β§146/Β§152 gap closed +1491 03794d91cdc98cefb2874ee77de6569e75cb0421 2026-08-05T23:55:29-06:00 2026-08-05T23:55:29-06:00 feat(phase-30 S43): make audit-disc β€” the disc PARTITION holds at residue 0; 34 UNCLAIMED code payloads +1492 964afdba4e321f26c0d67dca50ab834c27c1a43f 2026-08-06T09:48:16-06:00 2026-08-06T09:48:16-06:00 feat(phase-30 S43): L2 second oracle β€” it found TWO L1 defects; unclaimed code 1.70 -> 3.56 MB +1493 74736408384d8d7c12c03e9e5f52d7c4c1f4502b 2026-08-06T09:51:39-06:00 2026-08-06T09:51:39-06:00 fix(phase-30 S43): audit-disc listed only L1's code β€” the real backlog is 78 payloads, not 39 +1494 c697746462edb960fcbb04d25665d262be14214b 2026-08-06T10:52:07-06:00 2026-08-06T10:52:07-06:00 docs(phase-30 S44 I.0): the static loader routing table + the full tool audit β€” knowledge captured +1495 9ae1c9a7430642436811a2da7e9bafd32a7de604 2026-08-06T10:53:44-06:00 2026-08-06T10:53:44-06:00 fix(phase-30 S44 I.1a): family_remap derives vram per-alias from the splat config (R33) +1496 ec1a80576640c1b4a3ff55a40f7bac353925fc0d 2026-08-06T10:54:38-06:00 2026-08-06T10:54:38-06:00 feat(phase-30 S44 I.1b): Makefile learns the module class β€” modules.mk + sig-modules +1497 1826033fb0016ae8bfca8fea5a94171cff0b1c2a 2026-08-06T10:55:38-06:00 2026-08-06T10:55:38-06:00 fix(phase-30 S44 I.1c): the R36 citizenship gate is no longer blind to non-ov_ binary classes +1498 369dd14f4f90c1feada41d64f603f8e257a6067c 2026-08-06T10:57:17-06:00 2026-08-06T10:57:17-06:00 fix(phase-30 S44 I.1d): the module class reaches every enumerating consumer +1499 f5ea0fdd496bb0899eda777f511871c4ab342e65 2026-08-06T10:59:03-06:00 2026-08-06T10:59:03-06:00 feat(phase-30 S44 I.1e): tools/new_binary.sh β€” one onboarder for every flat-blob class +1500 f6bbe7272a1c7221973fa9e8ae0189ca51d1d68d 2026-08-06T11:12:19-06:00 2026-08-06T11:12:19-06:00 feat(phase-30 S44 I.2a): the big 3 onboarded BYTE-IDENTICAL β€” ov_MAIN_012, ov_SC02_037, ov_SC03_107 +1501 ae62b743aba819fd3d5c23aa0f481007c5c60125 2026-08-06T11:59:38-06:00 2026-08-06T11:59:38-06:00 feat(phase-30 S44 I.2c): dedup-bank β€” 4,836 h_exact members extended into the big 3 +1502 c1d5670f36cbdde1a7a44503623fb4083c390cee 2026-08-06T12:05:48-06:00 2026-08-06T12:05:48-06:00 feat(phase-30 S44 I.2c2): the h_norm/template tier β€” +290 members banked into the new binaries +1503 41ff2ba127a1b298e36d7f370ab9edb716be4b05 2026-08-06T12:10:25-06:00 2026-08-06T12:10:25-06:00 docs(phase-30 S44 I.3): checkpoint β€” Part I complete; fresh session resumes at Part II +1504 85b526cdddf6863ae7d57ade202d0e52cbbe9456 2026-08-06T12:36:49-06:00 2026-08-06T12:36:49-06:00 feat(phase-30 S45 II.1a): all 38 MAIN modules onboarded byte-identical at the Β§S44 static addresses +1505 b15dae107784de43cd74ae7747784e667ae72938 2026-08-06T12:37:24-06:00 2026-08-06T12:37:24-06:00 feat(phase-30 S45 II.1b): SC07 module pair onboarded byte-identical at 0x801A00D8 +1506 b1dbfcb5727fec11e353b29c5d507c71a6af1d0e 2026-08-06T12:43:19-06:00 2026-08-06T12:43:19-06:00 fix(phase-30 S45): family_sweep --hseq stub map derives ov_*+md_*+resident (R32) +1507 4cadac4e11fa2b91b72b09bc8d170c076f7e21e2 2026-08-06T13:13:54-06:00 2026-08-06T13:14:03-06:00 feat(phase-30 S45 II.1c): module batch dedup-banked + verified β€” 408 banks, R22 183/183, audit-disc 75->34 (parked-only) +1508 a0f07d629e349ac91a43016edd458c44e69938bc 2026-08-06T13:34:50-06:00 2026-08-06T13:34:50-06:00 chore(phase-30 S45 II.2): retirements (R33) + SETUP module recipe +1509 14b115d8ba0dea098a17a2a658f7bce25c616ff5 2026-08-06T13:36:34-06:00 2026-08-06T13:36:34-06:00 docs(phase-30 S45 II.3): metrics re-baseline + roadmap contract delta + decision-log (R31) +1510 ae9d0833bafd8413c6ffef583201bff497d09968 2026-08-06T13:37:13-06:00 2026-08-06T13:37:13-06:00 docs(phase-30 S45): checkpoint β€” Part II delivered through II.3; frontier + L3 handoff +1511 fa7b9d4c71d20f68083396abc8d7ff91221e60b4 2026-08-07T14:03:43-06:00 2026-08-07T14:03:51-06:00 feat(phase-30 S45 L3): the emulator tour β€” all 28 script modules + MAIN/3 onboarded; fleet 212, R22 212/212 +1512 788f33d5233b6ad46d9378c4547a5d6afb847e2b 2026-08-07T15:07:55-06:00 2026-08-07T15:07:55-06:00 feat(phase-30 S45 L3-p3): SC02/9 = the Steam Knight boss module β€” decoded, captured, retro-verified, onboarded; parked = 5 +1513 7e9394f691df5ba1bfdfd603288c8d840bebeda1 2026-08-07T15:13:50-06:00 2026-08-07T15:13:50-06:00 fix(phase-30 S45 p4): R14 correction β€” the MAIN/7/SC03-trio 'loader fn' leads were scanner phantoms +1514 a3976d73e55e7c3e0f7b469985792a990cc5ebdb 2026-08-07T15:34:13-06:00 2026-08-07T15:34:13-06:00 docs(phase-30 S45 p5): the resourceIdMap branch is REFUTED for all 5 parked payloads +1515 0bd334c30d2620aa9236024ff1e59cce92e7f17d 2026-08-07T15:45:56-06:00 2026-08-07T15:45:56-06:00 docs(phase-30 S45 p5): MAIN/7+9 identified as the OPDEMO modules; 3 base oracles refuted; the event-module region is runtime-allocated +1516 f5c73c51f9a4bd033be5d268ed2625ceefc7b007 2026-08-07T15:46:40-06:00 2026-08-07T15:46:40-06:00 chore(phase-30 S45 p5): checkpoint β€” the last 5 are static-unresolvable (proven); OPDEMO identified +1517 0499c1ec88e49b43b46fda75a4b3d958d7bce62a 2026-08-07T16:08:08-06:00 2026-08-07T16:08:08-06:00 docs(phase-30 S45 p5): exclusion proof needs a consumer-side instrument; 4th value-scan refuted +1518 0f409249ba09282a2290619166f310ae44acad04 2026-08-07T16:33:39-06:00 2026-08-07T16:33:39-06:00 chore(phase-30 S45 p6): wave-1 banked 0 β€” the frontier DEFINITION was the bug; cookbook 155b +1519 dcc76228b38ab19f385cda945fcaeba9080bac41 2026-08-07T18:03:17-06:00 2026-08-07T18:03:17-06:00 feat(phase-30 S45 p6): 29 novel functions banked from cheap-tier waves; R22 213/213 +1520 0d05d912934f25675b7214fb6c4715d4e01bd341 2026-08-07T18:04:26-06:00 2026-08-07T18:04:26-06:00 docs(phase-30 S45 p7): F1 confirmed live (cookbook 156) + the cheap-tier size cliff (157) + wave_snapshot +1521 fe946595fd56dfcfa7407d663638fde216cc1fe5 2026-08-07T18:49:34-06:00 2026-08-07T18:49:56-06:00 fix(phase-30 S45p7): dedup_propagate leaves no orphaned reconcile on failure + func_8015C030 propagated x7 +1522 0ef53c7b225bfbf82f7b4cf5c6dfbd27cf68a429 2026-08-07T18:50:29-06:00 2026-08-07T18:50:29-06:00 test(phase-30 S45p7): prove the reconcile-ledger undo β€” the owed negative control +1523 a0236b22206ae806023b095b040b0bf7b4684fbc 2026-08-07T18:51:10-06:00 2026-08-07T18:51:10-06:00 docs(phase-30 S45p7): correct the F1 misattribution β€” the cause was an orphaned reconcile +1524 e0eaa16741940208915d5ee8fc40fe5e6259678c 2026-08-07T18:57:10-06:00 2026-08-07T18:57:10-06:00 feat(phase-30 S45p7): Stage 1 complete β€” shared-state RW lock + 15 more banks (wave-3 revived) +1525 fe399b45501c5e3ccd458c62f645e9f09d16123f 2026-08-07T19:06:15-06:00 2026-08-07T19:06:15-06:00 feat(phase-30 S45p7): Stage 2 β€” verify_worktree, a COMMIT-COMPLETENESS checker (not a concurrency device) +1526 bac3155abc28df4ecc12b7f5c23c155b1036cca7 2026-08-07T19:07:20-06:00 2026-08-07T19:07:20-06:00 fix(phase-30 S45p7): wave_snapshot must carry the GENERATED includes too +1527 de02dc750cca0aecb84ddd3c1a839f3d50947121 2026-08-07T20:36:04-06:00 2026-08-07T20:36:04-06:00 feat(phase-30 S45p6): tools/cdtrace.py β€” a runtime CD-load oracle; 7 routing-table addresses confirmed live +1528 537bd90a9a99200d3601adf5bb6e24f1170fd421 2026-08-07T20:41:18-06:00 2026-08-07T20:41:18-06:00 feat(phase-30 S45p6): SOLVED β€” the SC03 trio are ov_SC03_001's script modules (static decode) +1529 97adcee709c552764f4cc8ce558ea6b05cdd57d7 2026-08-07T20:46:23-06:00 2026-08-07T20:46:23-06:00 chore(phase-30 S45p8): checkpoint β€” SC03 trio solved; Stage 1+2 landed; master-IDXTAB-map queued +1530 e86e45320a4d0a0a3bc59f82cc1fd5a7e42a3d7b 2026-08-07T21:08:25-06:00 2026-08-07T21:08:25-06:00 chore(phase-30 S45p9): session close β€” 32-way parallel gate in dedup_propagate; banking deferred on a tool bug +1531 5c61e001992b41ccfc0da9f3fde88cfe11d1baed 2026-08-07T21:11:19-06:00 2026-08-07T21:11:19-06:00 chore(phase-30 S45p9): track the two irreplaceable live load-maps +1532 91c64ce92c0591878b2203bc336ce7ab7d5c0255 2026-08-07T21:26:03-06:00 2026-08-07T21:26:03-06:00 fix(phase-30 S46-1): dedup_propagate β€” no silent skips, no unproven REVERTs +1533 9351b17f483ae7d2d92c46f0414b0aa1507f75e4 2026-08-07T22:09:05-06:00 2026-08-07T22:09:05-06:00 feat(phase-30 S46-2): the master IDXTAB/DESTPTR load map β€” and the tracker blind spot that hid it +1534 b0053121279f18a7765b6e5bac4fbfbbd36cbb39 2026-08-07T22:24:35-06:00 2026-08-07T22:24:35-06:00 feat(phase-30 S46-3): propagation banked β€” 29 fns / +2,815 member-instances; R22 213/213 +1535 f6e48b60c54bdb3038f36a8b2b6d2afdece17f13 2026-08-07T23:14:15-06:00 2026-08-07T23:14:15-06:00 perf(phase-30 S46-4): parallelise the propagation β€” 24min -> 11.4min, and +62 MORE instances +1536 6f9649f26eb83bcd076af799898041cde7c5477c 2026-08-07T23:15:05-06:00 2026-08-07T23:15:05-06:00 chore(phase-30 S46): session checkpoint β€” blocker closed, load map built, propagation 2.1x + more correct +1537 0b303f7fe85760d229ccefad74dce30bff0c5d1f 2026-08-10T10:22:50-06:00 2026-08-10T10:22:50-06:00 feat(phase-30 S46-5): crack wave batch 1 β€” 14 functions / 27 sites banked; R22 213/213 +1538 d54d0a899e4bfc5df8d1334bd4089ee6dd5c6c2a 2026-08-10T10:43:44-06:00 2026-08-10T10:43:44-06:00 feat(phase-30 S46-6): recovery ladder banks +6; wire gate_stage into dedup_extend +1539 4db662d1aa7af216dbd47964cf6e1d2ae775b8de 2026-08-10T11:05:23-06:00 2026-08-10T11:05:23-06:00 chore(phase-30 S46-7): record the 0/129 refutation β€” the ladder fixes drafts, the conflict is target-side +1540 094bc4c2dac94392bbe32f9acba15c24e07b2c96 2026-08-10T13:04:23-06:00 2026-08-10T13:04:23-06:00 chore(phase-30 S46-8/9): cascade findings + the family map + a corrected resume path +1541 b0c1e14fdab7b34228b3f92540b04e1c3cdf2408 2026-08-10T14:16:19-06:00 2026-08-10T14:16:19-06:00 feat(phase-30 S46-final): 400+ cascade banked (11) + waste-prevention gate; B re-scoped, C blocked +1542 9ab9120e044939f1c7d62b46d5cd2a0a7f786252 2026-08-10T16:01:49-06:00 2026-08-10T16:01:49-06:00 feat(phase-30 S47-B): conform 8 declaration axes (~10,930 sites); 3 guard defects fixed; 213/213 +1543 e92ba1402852424d9d2deb57e8c25d7b2efdc1d8 2026-08-10T16:35:57-06:00 2026-08-10T16:35:57-06:00 feat(phase-30 S47-C): dedup_extend banks 62/129 (first non-zero); gate_stage verified-out fix +1544 5f001a9392922afabcce119c5021e6265257c195 2026-08-10T16:48:49-06:00 2026-08-10T16:48:49-06:00 chore(phase-30 S47): refresh derived frontier docs at HEAD commit:1543 +1545 57e345fcce1e6f57202a35fac3862180dddd68c2 2026-08-10T17:59:35-06:00 2026-08-10T17:59:35-06:00 feat(phase-30 S47-P): propagation sweep banks 1,419 member-matches for ~0 agent tokens +1546 efec1b9b7115c3e69a4feb0d0b23b15bce290c4a 2026-08-10T18:50:48-06:00 2026-08-10T18:50:48-06:00 fix(phase-30 S47-A1): asm-label aliases must never be dropped by Β§8d; +148 members +1547 f68188a73ce7480086be614f9c87b13abafb7b8b 2026-08-10T18:59:45-06:00 2026-08-10T18:59:45-06:00 feat(phase-30 S47-A3): jtbl family func_8018A564 β€” 21/22 siblings banked +1548 7adaddd0c99fc01b02c5added184aa138ee6a712 2026-08-10T19:00:27-06:00 2026-08-10T19:00:27-06:00 feat(phase-30 S47-A3): jtbl family func_80178D40 β€” 2/3 siblings banked +1549 0a5be43765b0365ca0f3219ec7022081f52a900a 2026-08-10T19:03:17-06:00 2026-08-10T19:03:17-06:00 feat(phase-30 S47-A3): jtbl family func_801884D8 β€” 15/15 siblings banked +1550 4878432f0c8ec2c9b45ad2a6b5ff038cb1e2d4b0 2026-08-10T19:11:20-06:00 2026-08-10T19:11:20-06:00 feat(phase-30 S47-A3): jtbl family func_80180B04 β€” 2/5 siblings banked +1551 0a5ee2de7d6e4ffa3bc68e95d462224d870a7430 2026-08-10T19:14:37-06:00 2026-08-10T19:14:37-06:00 feat(phase-30 S47-A3): jtbl family func_80184C74 β€” 3/3 siblings banked +1552 1358cc7075a5985ff57c3081b3bd5771eae7f93f 2026-08-10T19:19:23-06:00 2026-08-10T19:19:23-06:00 feat(phase-30 S47-A3): jtbl family func_8017AE2C β€” 1/3 siblings banked +1553 850db32dfc3a87ee6c4d4a75067df077f596d90a 2026-08-10T19:27:29-06:00 2026-08-10T19:27:29-06:00 feat(phase-30 S47-A3): jtbl family func_80179B74 β€” 2/3 siblings banked +1554 4d84052723f22d4889a07a60b02c55cf83345c38 2026-08-10T19:29:35-06:00 2026-08-10T19:29:35-06:00 feat(phase-30 S47-A3): jtbl family func_8017FEE0 β€” 1/1 siblings banked +1555 80459b7720975f04eb84fee9a2316e4dd069c05f 2026-08-10T19:30:02-06:00 2026-08-10T19:30:02-06:00 feat(phase-30 S47-A3): jtbl family func_801789AC β€” 2/3 siblings banked +1556 ab9d2f48d5e05acb796a34c826139ff2ec184334 2026-08-10T19:32:29-06:00 2026-08-10T19:32:29-06:00 feat(phase-30 S47-A3): jtbl family func_80183BAC β€” 5/5 siblings banked +1557 ba04cc3e0b703b2dd34f1a4541ac6f392ef54a75 2026-08-10T19:35:11-06:00 2026-08-10T19:35:11-06:00 feat(phase-30 S47-A3): jtbl family func_80180B64 β€” 2/2 siblings banked +1558 713b093845e28294d5e11bc48fe1f2a2ed0ef025 2026-08-10T20:08:53-06:00 2026-08-10T20:08:53-06:00 fix(phase-30 S47): three splitter defects blocking the monolithic-overlay carve +1559 320a14921c13a6573557c5c0eda64afa88e2d141 2026-08-10T20:36:33-06:00 2026-08-10T20:36:33-06:00 fix(phase-30 S47): CdFileLoc_80128C98 aliases CdFileLoc β€” clears 136 sweep conflicts +1560 dbed0942b131f776191c84efcf272fa17ddf0344 2026-08-10T20:59:06-06:00 2026-08-10T20:59:06-06:00 feat(phase-30 S47-A4): cdFileLocTable typedef alias banks 138 members; R22 213/213 +1561 b9033851cf7c783830a0c2bdc08258ab74bb2a3a 2026-08-10T21:28:00-06:00 2026-08-10T21:28:00-06:00 fix(phase-30 S47-F1): classify diagnostics by position, not vocabulary β€” 93 unknowns all named +1562 d4d35ec738c596f79f1070cdae6caac987d426de 2026-08-10T21:56:31-06:00 2026-08-10T21:56:31-06:00 feat(phase-30 S47-F2): auto-alias conflicting data externs (partial: 2/44); real cause recorded +1563 3e0028c2edf7ad78700661ee76991212012fc80c 2026-08-10T22:24:13-06:00 2026-08-10T22:24:13-06:00 feat(phase-30 S47-F2b): group-level draft-vs-draft data aliasing (83 aliased, 5 banked) +1564 974401668f58da05579f10846d2e7fb791bd9830 2026-08-10T22:39:13-06:00 2026-08-10T22:39:13-06:00 feat(phase-30 S47-F4a): cpp-derived TU type map clears the data-conflict class (+31) +1565 206b279ffc7774d566990c3bbcd01eba4a16c504 2026-08-10T22:53:22-06:00 2026-08-10T22:53:22-06:00 feat(phase-30 S47-F4): canonicalize the 2 incompatible memcpy decls (+29); the feared class was 2 lines +1566 f212ebcc286020b03ba4e27d010fb6d1d66d4c82 2026-08-10T22:55:36-06:00 2026-08-10T22:55:36-06:00 chore(phase-30 S47): refresh frontier docs at HEAD commit:1565 +1567 49f50ec7d2825afd5c60964a40012c8e76771fcb 2026-08-11T11:33:42-06:00 2026-08-11T11:33:42-06:00 feat(phase-30 S47-W1): reach-15 crack wave β€” 10 exemplars banked, 191 member-slots unlocked +1568 ff11fc556c3e9735e989c8b3ded5a9414d5fe4c9 2026-08-11T11:41:13-06:00 2026-08-11T11:41:13-06:00 feat(phase-30 S47-W1s): the reach-15 wave templates to 140 members (81% conversion) +1569 d806766eef5bc863e9540f1b1115b523af49dfbb 2026-08-11T12:05:24-06:00 2026-08-11T12:05:24-06:00 feat(phase-30 S47-W1c): crack the reach-57 exemplar; fix the instrument that called it a wall +1570 c98bb519952e28d5bd5d8479acf02a3b22dbd63e 2026-08-11T12:08:43-06:00 2026-08-11T12:08:43-06:00 chore(phase-30 S47): record the data-bundled family class β€” reach-57 banked, 56 siblings blocked +1571 cc3cb6e5c6954494454e695dc93013d6020bebd6 2026-08-11T12:22:00-06:00 2026-08-11T12:22:00-06:00 feat(phase-30 S47-W1d): jr family func_80185D70 banks 9/9 via jtbl_family_bank +1572 d3f3d8ba22e5f60ac9fe60d0fee9c59f314dd849 2026-08-11T12:31:16-06:00 2026-08-11T12:31:16-06:00 feat(phase-30 S47-W1b/G2): 3 retries banked, 2 new rules; main signed for the first time +1573 c0cbad1b2edb62deab8946cc67bb2b1cd3a1dea3 2026-08-11T13:16:33-06:00 2026-08-11T13:16:33-06:00 docs(phase-30 S47): adopt the Fable frontier plan + the reach-ordered sibling loop +1574 d5fbd2630fb7e8dc0c3695e7ed6c64f30635a7b3 2026-08-11T13:42:40-06:00 2026-08-11T13:42:40-06:00 fix(phase-30 S47): family_hseq derives its own SCOPE, not just its own count; + a zero-crack glossary +1575 fd80bd7007cfc99088d30fe65ad4114a6740905c 2026-08-11T14:02:38-06:00 2026-08-11T14:02:38-06:00 feat(phase-30 S47-0a.1): the symbol-KIND fix banks 205 members; the residue crosses over to DIFF +1576 ce85242084250c3ad64632c5d7171fdbaa6b9c89 2026-08-11T14:15:01-06:00 2026-08-11T14:15:01-06:00 fix(phase-30 S47-0a.2): conform func_80175414 β€” 1,845 decls / 1,061 files; R22 213/213 +1577 20a7cc59ee5840ae6f67a0111b3f45fd0011a979 2026-08-11T14:46:29-06:00 2026-08-11T14:46:29-06:00 chore(phase-30 S47): FINAL session checkpoint β€” 2,197 banked, the residue crosses over to DIFF +1578 ec749fa584cbc2cde3eb77502716c58f38214726 2026-08-11T15:31:57-06:00 2026-08-11T15:31:57-06:00 fix(phase-30 S48-0b): JTBL_PADS follows its span through jr isolation +1579 f6c9867fbc4cd16b837108034fb8de341e75a380 2026-08-11T15:33:32-06:00 2026-08-11T15:33:32-06:00 feat(phase-30 S48-0b): jtbl family func_8015AE2C β€” 1/3 blocked-binary siblings banked +1580 374791d4bed552d7cfeec431fc3c0cc29d842dda 2026-08-11T15:34:14-06:00 2026-08-11T15:34:14-06:00 feat(phase-30 S48-0b): jtbl family func_8017A4AC β€” 2/3 blocked-binary siblings banked +1581 30f80d8a180cbc8d5b39993335ff574305a9d65b 2026-08-11T15:35:04-06:00 2026-08-11T15:35:04-06:00 feat(phase-30 S48-0b): jtbl family func_8015A3C8 β€” 3/3 blocked-binary siblings banked +1582 bb385208da0b5cacd131bc4986689c16c73e1bc8 2026-08-11T15:35:52-06:00 2026-08-11T15:35:52-06:00 feat(phase-30 S48-0b): jtbl family func_8013F350 β€” 3/3 blocked-binary siblings banked +1583 9bf7c632e22dd4118d8ff7562606fe0cc0fd833b 2026-08-11T15:36:47-06:00 2026-08-11T15:36:47-06:00 feat(phase-30 S48-0b): jtbl family func_801380E0 β€” 3/3 blocked-binary siblings banked +1584 782186e5983f6fd4ea4f43982f67419dd518e727 2026-08-11T15:37:38-06:00 2026-08-11T15:37:38-06:00 feat(phase-30 S48-0b): jtbl family func_80131340 β€” 3/3 blocked-binary siblings banked +1585 7e9c6d53a496d6cddf8bc060a06358ec920d12fb 2026-08-11T15:39:11-06:00 2026-08-11T15:39:11-06:00 feat(phase-30 S48-0b): jtbl family func_80159C84 β€” 3/3 blocked-binary siblings banked +1586 44afe27544be736c0867ba8950d7cf89bf74e57f 2026-08-11T15:40:54-06:00 2026-08-11T15:40:54-06:00 feat(phase-30 S48-0b): jtbl family func_80135EB0 β€” 3/3 blocked-binary siblings banked +1587 332ea1133c83d898e32d39e48889fd5b0f65dd30 2026-08-11T15:41:12-06:00 2026-08-11T15:41:12-06:00 feat(phase-30 S48-0b): jtbl family func_8013FFD8 β€” 3/3 blocked-binary siblings banked +1588 b3e379faf4e41dce244ff75ee667fc2bb9dfe9ee 2026-08-11T15:42:15-06:00 2026-08-11T15:42:15-06:00 feat(phase-30 S48-0b): jtbl family func_8015B950 β€” 1/3 blocked-binary siblings banked +1589 7db73d89a0af88892efb1d00e647b213ca714f7c 2026-08-11T15:42:44-06:00 2026-08-11T15:42:44-06:00 feat(phase-30 S48-0b): jtbl family func_8015C32C β€” 1/3 blocked-binary siblings banked +1590 45d08f208f40d7919d1387441071365725de0056 2026-08-11T15:43:58-06:00 2026-08-11T15:43:58-06:00 feat(phase-30 S48-0b): jtbl family func_8014032C β€” 3/3 blocked-binary siblings banked +1591 e14e0053c9808ef551f01b29ee5b1b873260bc89 2026-08-11T15:44:44-06:00 2026-08-11T15:44:44-06:00 feat(phase-30 S48-0b): jtbl family func_80135A4C β€” 3/3 blocked-binary siblings banked +1592 2edb23a535934f96cb41584e60e322ce9c5afff7 2026-08-11T15:45:47-06:00 2026-08-11T15:45:47-06:00 feat(phase-30 S48-0b): jtbl family func_801299C8 β€” 3/3 blocked-binary siblings banked +1593 60a3b3c6e9efaa525b5c923082f3d383a7444601 2026-08-11T15:47:05-06:00 2026-08-11T15:47:05-06:00 feat(phase-30 S48-0b): jtbl family func_80135260 β€” 3/3 blocked-binary siblings banked +1594 bda1adcd6e92fec8f4de98f9df084b03bf4b7138 2026-08-11T15:47:52-06:00 2026-08-11T15:47:52-06:00 feat(phase-30 S48-0b): jtbl family func_801555F4 β€” 3/3 blocked-binary siblings banked +1595 b80ccb2012fc8e3cfee97ea400e8d629a33fecd9 2026-08-11T15:48:09-06:00 2026-08-11T15:48:09-06:00 feat(phase-30 S48-0b): jtbl family func_8012AAAC β€” 3/3 blocked-binary siblings banked +1596 7259ad3d1711cc9136f69629270d8a0292206936 2026-08-11T15:48:28-06:00 2026-08-11T15:48:28-06:00 feat(phase-30 S48-0b): jtbl family func_80140608 β€” 3/3 blocked-binary siblings banked +1597 aa2088c183e83df9afcf4997ada4f7962153e051 2026-08-11T15:49:53-06:00 2026-08-11T15:49:53-06:00 feat(phase-30 S48-0b): jtbl family func_80135888 β€” 3/3 blocked-binary siblings banked +1598 a1221881a00682dd58339ff5fd38bc68fefdec26 2026-08-11T15:50:47-06:00 2026-08-11T15:50:47-06:00 feat(phase-30 S48-0b): jtbl family func_80135D20 β€” 3/3 blocked-binary siblings banked +1599 d4c6e3b2fc03cd6631e06c05996f57611a40de6b 2026-08-11T15:53:22-06:00 2026-08-11T15:53:22-06:00 feat(phase-30 S48-0b): jtbl family func_801549F8 β€” 3/3 blocked-binary siblings banked +1600 98d834ebf7f9a95c7684531f7f13f3dd18497e09 2026-08-11T15:53:39-06:00 2026-08-11T15:53:39-06:00 feat(phase-30 S48-0b): jtbl family func_8012ACE0 β€” 3/3 blocked-binary siblings banked +1601 dda26a3ea9e0690fce84124976323c4e7d74edf0 2026-08-11T15:53:52-06:00 2026-08-11T15:53:52-06:00 feat(phase-30 S48-0b): jtbl family func_8017AE2C β€” 2/2 blocked-binary siblings banked +1602 4ae63e7f6eadd7b9771855c94a495d37055a3314 2026-08-11T15:54:02-06:00 2026-08-11T15:54:02-06:00 feat(phase-30 S48-0b): jtbl family func_80178D40 β€” 1/1 blocked-binary siblings banked +1603 a8bca8cf2188c9f237284b809b44a6f84dfc2e9d 2026-08-11T15:54:09-06:00 2026-08-11T15:54:09-06:00 feat(phase-30 S48-0b): jtbl family func_80181CE4 β€” 1/1 blocked-binary siblings banked +1604 e4dd3175722a121a471448b76c26a3e213c75600 2026-08-11T15:54:17-06:00 2026-08-11T15:54:17-06:00 feat(phase-30 S48-0b): jtbl family func_80179B74 β€” 1/1 blocked-binary siblings banked +1605 5a42473c6e0ceaa5e1d700c9e88e296898d90c48 2026-08-11T15:54:24-06:00 2026-08-11T15:54:24-06:00 feat(phase-30 S48-0b): jtbl family func_80182BCC β€” 1/1 blocked-binary siblings banked +1606 dba6defb10d6ae5a1549061b3f487f00eb7a8cae 2026-08-11T15:58:25-06:00 2026-08-11T15:58:25-06:00 fix(phase-30 S48-0b): a def item can OPEN inside a block comment +1607 6eea1ac6a4b5e0628a46111155916d8f109d6b8f 2026-08-11T16:00:02-06:00 2026-08-11T16:00:02-06:00 fix(phase-30 S48-0b): _carry_typedefs' already-carried test was line-oriented +1608 58a2339f5452f8905a752fabfbf617e6560481be 2026-08-11T16:04:25-06:00 2026-08-11T16:04:25-06:00 feat(phase-30 S48-0b): jtbl family func_80154C24 β€” 3/3 blocked-binary siblings banked +1609 63aa207c1521bf0eaf019d5218ded49489676157 2026-08-11T16:06:41-06:00 2026-08-11T16:06:41-06:00 feat(phase-30 S48-0b): jtbl family func_8016AE5C β€” 3/3 blocked-binary siblings banked +1610 c679a406b0387832e524a31b3a7fa8138c549364 2026-08-11T16:07:30-06:00 2026-08-11T16:07:30-06:00 feat(phase-30 S48-0b): jtbl family func_801594E8 β€” 3/3 blocked-binary siblings banked +1611 d8b84b75de8092bb9a7146f9a5ed470d47b2aa91 2026-08-11T16:08:19-06:00 2026-08-11T16:08:19-06:00 feat(phase-30 S48-0b): jtbl family func_80171B4C β€” 3/3 blocked-binary siblings banked +1612 f0ecebd81fa0fe9d61eb29c7462b315cf72782ef 2026-08-11T16:08:39-06:00 2026-08-11T16:08:39-06:00 feat(phase-30 S48-0b): jtbl family func_80159A20 β€” 3/3 blocked-binary siblings banked +1613 d84e4f84ae989b2dd8c673fa5e7781f5f54ac576 2026-08-11T16:08:57-06:00 2026-08-11T16:08:57-06:00 feat(phase-30 S48-0b): jtbl family func_801734BC β€” 3/3 blocked-binary siblings banked +1614 ef31c895b65d5f33c01e07369496d86f955b7681 2026-08-11T16:09:08-06:00 2026-08-11T16:09:08-06:00 feat(phase-30 S48-0b): jtbl family func_8015AE2C β€” 2/2 blocked-binary siblings banked +1615 19fee49f56e7c14c7835ab0ab5a6d654b3830709 2026-08-11T16:09:23-06:00 2026-08-11T16:09:23-06:00 feat(phase-30 S48-0b): jtbl family func_8015B950 β€” 2/2 blocked-binary siblings banked +1616 58b1d7aeeaeae1a45079b372c9bd369d0a76bc36 2026-08-11T16:09:34-06:00 2026-08-11T16:09:34-06:00 feat(phase-30 S48-0b): jtbl family func_8015C32C β€” 2/2 blocked-binary siblings banked +1617 4913ac6a2cb2ca4c2a17b23cc1db1072ee37bcd7 2026-08-11T16:09:43-06:00 2026-08-11T16:09:43-06:00 feat(phase-30 S48-0b): jtbl family func_8017A4AC β€” 1/1 blocked-binary siblings banked +1618 0498fc3627efaf6eb907bb642bbbd4b30127f660 2026-08-11T16:13:31-06:00 2026-08-11T16:13:31-06:00 chore(phase-30 S48): stage 0b closed β€” 91 banked (stub oracle 13,345 -> 13,254), R22 213/213 clean +1619 b83babbff5b5e4b23dfe800250677e422dd6d486 2026-08-11T18:09:02-06:00 2026-08-11T18:09:02-06:00 feat(phase-30 S48-T6): Stage-1 probe wave β€” 8 exemplars banked, R22 213/213 +1620 0c5d6fa9094a6d7862b750ea612c69935f53da30 2026-08-11T18:31:18-06:00 2026-08-11T18:31:18-06:00 docs(phase-30 S48): Β§162 β€” the wave-1 idiom harvest, deduped by a skeptic pass +1621 65204c205ada3d47e18f9e414317c42ac8305f8a 2026-08-11T18:34:44-06:00 2026-08-11T18:34:44-06:00 feat(phase-30 S48-T6): propagate func_80186270 to its zero-crack siblings +1622 c824c19a3dd1f76c0d75f9f8ffbeb7e2965fb956 2026-08-11T18:35:20-06:00 2026-08-11T18:35:20-06:00 feat(phase-30 S48-T6): propagate func_80185F58 to its zero-crack siblings +1623 b1f03be9eabb1f60b46d61d010e0b7f23a71d31a 2026-08-11T18:36:23-06:00 2026-08-11T18:36:23-06:00 feat(phase-30 S48-T6): propagate func_80187AEC to its zero-crack siblings +1624 e4471fd039eff5eea878fd9fd964ac52e53a3218 2026-08-11T18:38:06-06:00 2026-08-11T18:38:06-06:00 feat(phase-30 S48-T6): propagate func_80188E1C to its zero-crack siblings +1625 551239bd3c7888320590c542897ff2fe3b299121 2026-08-11T18:42:30-06:00 2026-08-11T18:42:30-06:00 chore(phase-30 S48): checkpoint β€” 117 banked (13,345 -> 13,228), R22 213/213 +1626 ba1fead353517b0fcac00986ddd5b2a6cc806803 2026-08-11T19:07:07-06:00 2026-08-11T19:07:07-06:00 fix(phase-30 S48): scope_data_externs spliced carried externs INTO a comment +1627 ec1f388d162d25ddffb657c9af638c25f712d8b7 2026-08-11T19:16:26-06:00 2026-08-11T19:16:26-06:00 fix(phase-30 S48): name the Β§154-A leading-island wall instead of mis-blaming the carve +1628 0ec7d4c0525a89380d64a7e754fa23609caa6585 2026-08-11T20:37:35-06:00 2026-08-11T20:37:35-06:00 feat(phase-30 S48-T6): wave 2 β€” 5 exemplars banked; 21 verified drafts LOST to a harness defect +1629 95909749bbc4d025db58d5e4cb563cf27b4930aa 2026-08-11T20:56:31-06:00 2026-08-11T20:56:31-06:00 feat(phase-30 S48-T6): recover all 21 "lost" wave-2 drafts from the transcripts β€” 17 more banked +1630 64c47c4f5e93f4f4d46845528f5dda6c1a96f30d 2026-08-11T20:58:05-06:00 2026-08-11T20:58:05-06:00 feat(phase-30 S48-T6): propagate func_801EFC94 to its zero-crack siblings +1631 1bc5589588a06339d31447c4b7d5b62ff5dea5db 2026-08-11T20:58:17-06:00 2026-08-11T20:58:17-06:00 feat(phase-30 S48-T6): propagate func_80187180 to its zero-crack siblings +1632 b7e9d2f2ee2e99ba7aa555c5872833be8bad0f4e 2026-08-11T20:58:26-06:00 2026-08-11T20:58:26-06:00 feat(phase-30 S48-T6): propagate func_80187B80 to its zero-crack siblings +1633 de29f43036d3cb4a9ca5070d0ccd88b726aac766 2026-08-11T20:58:39-06:00 2026-08-11T20:58:39-06:00 feat(phase-30 S48-T6): propagate func_80180000 to its zero-crack siblings +1634 2d8e6890deea571947913e4ed67ef018caac9f72 2026-08-11T20:58:59-06:00 2026-08-11T20:58:59-06:00 feat(phase-30 S48-T6): propagate func_8017C6A0 to its zero-crack siblings +1635 641c7086a55d890a973cc4d88a4e6859f0622b1f 2026-08-11T20:59:08-06:00 2026-08-11T20:59:08-06:00 feat(phase-30 S48-T6): propagate func_8017D1E0 to its zero-crack siblings +1636 b7e1db7779e6e519d8ee00fe5c4703a713c63879 2026-08-11T20:59:19-06:00 2026-08-11T20:59:19-06:00 feat(phase-30 S48-T6): propagate func_80183F50 to its zero-crack siblings +1637 ab4b227eb2ceb9a85c5801a3e250c8f57b628859 2026-08-11T20:59:30-06:00 2026-08-11T20:59:30-06:00 feat(phase-30 S48-T6): propagate func_801814D8 to its zero-crack siblings +1638 db506c6f2464979df0d558b2821247bd3f314646 2026-08-11T20:59:38-06:00 2026-08-11T20:59:38-06:00 feat(phase-30 S48-T6): propagate func_80185C2C to its zero-crack siblings +1639 124d5198ef768d9f7e679543684098c07f896d4d 2026-08-11T20:59:47-06:00 2026-08-11T20:59:47-06:00 feat(phase-30 S48-T6): propagate func_8018DE60 to its zero-crack siblings +1640 116cf96877f4002d3b09260148d385bbb0f69789 2026-08-11T20:59:56-06:00 2026-08-11T20:59:56-06:00 feat(phase-30 S48-T6): propagate func_801850F4 to its zero-crack siblings +1641 5e0968b82078c7754028a3fe8dbff0373018c241 2026-08-11T21:00:06-06:00 2026-08-11T21:00:06-06:00 feat(phase-30 S48-T6): propagate func_801857CC to its zero-crack siblings +1642 e898129e7a669dedb3543855ad73a90db497d10d 2026-08-11T21:00:16-06:00 2026-08-11T21:00:16-06:00 feat(phase-30 S48-T6): propagate func_801880C4 to its zero-crack siblings +1643 8dc98070741291e41084af7e312ec636b7d57e63 2026-08-11T21:00:25-06:00 2026-08-11T21:00:25-06:00 feat(phase-30 S48-T6): propagate func_80185DD8 to its zero-crack siblings +1644 62758e231e3c1a5627d45282ac8263f1c7d79451 2026-08-11T21:01:53-06:00 2026-08-11T21:01:53-06:00 feat(phase-30 S48-T6): propagate func_8017ED5C to its zero-crack siblings +1645 cb5921a669d3b32f016e422ebe284980cead81a9 2026-08-11T21:02:01-06:00 2026-08-11T21:02:01-06:00 feat(phase-30 S48-T6): propagate func_8017DEFC to its zero-crack siblings +1646 2c05b5a66dfe8e910919540a28f0d10ffb243821 2026-08-11T21:02:36-06:00 2026-08-11T21:02:36-06:00 feat(phase-30 S48-T6): propagate func_801818F0 to its zero-crack siblings +1647 4f2657786ac87b569585f4b439b68772b1f3515f 2026-08-11T21:02:44-06:00 2026-08-11T21:02:44-06:00 feat(phase-30 S48-T6): propagate func_8018171C to its zero-crack siblings +1648 b68486dfd06a88f39a9b9e23be99c87b85165cbc 2026-08-11T21:03:21-06:00 2026-08-11T21:03:21-06:00 feat(phase-30 S48-T6): propagate func_80188B84 to its zero-crack siblings +1649 35d7b11d03fa4f6ce94aa8775b90b9cc2c1bd8d9 2026-08-11T21:08:06-06:00 2026-08-11T21:08:06-06:00 chore(phase-30 S48): checkpoint β€” 233 banked (13,345 -> 13,112), R22 213/213 +1650 c0e64f48b68f213f2e84c870e71ebac53d6f199c 2026-08-11T21:12:44-06:00 2026-08-11T21:12:44-06:00 feat(phase-30 S48): tools/recover_drafts.py β€” the transcript IS the backup +1651 a67c82d340b548c52db53df085fa9dea7df536b1 2026-08-11T21:14:46-06:00 2026-08-11T21:14:46-06:00 fix(phase-30 S48): bank func_80187960 β€” Β§161c decl agreement, not a codegen wall +1652 50dd6b3c3f595aec369505fcf4571b79a3822f25 2026-08-11T22:51:32-06:00 2026-08-11T22:51:32-06:00 feat(phase-30 S48-T6): wave 3 β€” 27 exemplars banked, 0 drafts lost +1653 dedbb6f28b8b2ddbffc7964b15ac2897eeeec28d 2026-08-11T22:52:47-06:00 2026-08-11T22:52:47-06:00 feat(phase-30 S48-T6): propagate func_80180128 to its zero-crack siblings +1654 583a408d0f676207a43e3426c91360315acbb3dd 2026-08-11T22:53:02-06:00 2026-08-11T22:53:02-06:00 feat(phase-30 S48-T6): propagate func_801823E8 to its zero-crack siblings +1655 6c9afdd468de51d0f182c3aec72a249a399c96d1 2026-08-11T22:53:16-06:00 2026-08-11T22:53:16-06:00 feat(phase-30 S48-T6): propagate func_80183DA4 to its zero-crack siblings +1656 6fb1c66ce30c0ea133d8acc8c67ea18eb27cb595 2026-08-11T22:53:22-06:00 2026-08-11T22:53:22-06:00 feat(phase-30 S48-T6): propagate func_8017DF40 to its zero-crack siblings +1657 4fe07faf0bb2f6e43779a5e882b5313515ee70ed 2026-08-11T22:54:54-06:00 2026-08-11T22:54:54-06:00 feat(phase-30 S48-T6): propagate func_8017EB44 to its zero-crack siblings +1658 8b38b70caac121e3007adb3edaf5cfeabba26814 2026-08-11T22:56:13-06:00 2026-08-11T22:56:13-06:00 feat(phase-30 S48-T6): propagate func_8017DDC4 to its zero-crack siblings +1659 29054bb581d3b4c94288db825229b4a1b21a3e34 2026-08-11T22:56:23-06:00 2026-08-11T22:56:23-06:00 feat(phase-30 S48-T6): propagate func_80182044 to its zero-crack siblings +1660 7753d12f0d517bbbb3797f2d18114ff3b0af3ac3 2026-08-11T22:56:33-06:00 2026-08-11T22:56:33-06:00 feat(phase-30 S48-T6): propagate func_8017D7C0 to its zero-crack siblings +1661 526d512497c20e45e8757eecca82e76accaca50a 2026-08-11T22:57:07-06:00 2026-08-11T22:57:07-06:00 feat(phase-30 S48-T6): propagate func_801844C8 to its zero-crack siblings +1662 e93922ffce1abf599ed9fc82c838819ebb56ae1c 2026-08-11T22:58:05-06:00 2026-08-11T22:58:05-06:00 feat(phase-30 S48-T6): propagate func_8017F83C to its zero-crack siblings +1663 d5fb0561ca267a421c0bff3cbf0e0e051ca50930 2026-08-11T22:58:18-06:00 2026-08-11T22:58:18-06:00 feat(phase-30 S48-T6): propagate func_80181A30 to its zero-crack siblings +1664 5a97bbdc2a9cfa935b363278ceee910dc39ab050 2026-08-11T22:59:47-06:00 2026-08-11T22:59:47-06:00 feat(phase-30 S48-T6): propagate func_80183324 to its zero-crack siblings +1665 a80b09ba1bb147ab31a010a3080b3df45f31c26f 2026-08-11T22:59:57-06:00 2026-08-11T22:59:57-06:00 feat(phase-30 S48-T6): propagate func_8018E9BC to its zero-crack siblings +1666 d54407a53b5d8a743b77929f5803574777dd0920 2026-08-11T23:00:03-06:00 2026-08-11T23:00:03-06:00 feat(phase-30 S48-T6): propagate func_80192B60 to its zero-crack siblings +1667 077cd0cda74794a869f4d94aca0ab6dce87bb701 2026-08-11T23:00:39-06:00 2026-08-11T23:00:39-06:00 feat(phase-30 S48-T6): propagate func_8018FF98 to its zero-crack siblings +1668 a0a122cbe20a53d2bcf0165aa1d706a560a27e3e 2026-08-11T23:00:56-06:00 2026-08-11T23:00:56-06:00 feat(phase-30 S48-T6): propagate func_80191320 to its zero-crack siblings +1669 4b824b8c9d9d37264227ae25dc82524c6b5e4efe 2026-08-11T23:01:01-06:00 2026-08-11T23:01:01-06:00 feat(phase-30 S48-T6): propagate func_80192768 to its zero-crack siblings +1670 92b18b67726f8e28e8971129141f45c8cfa4769b 2026-08-11T23:01:06-06:00 2026-08-11T23:01:06-06:00 feat(phase-30 S48-T6): propagate func_80181B00 to its zero-crack siblings +1671 de2ca38440702ec1f30cc5f9b7a1bb60e49df83d 2026-08-11T23:01:18-06:00 2026-08-11T23:01:18-06:00 feat(phase-30 S48-T6): propagate func_80185EF8 to its zero-crack siblings +1672 7821f3258fe672cc7a6e9722f450717e03c7f0e0 2026-08-11T23:01:22-06:00 2026-08-11T23:01:22-06:00 feat(phase-30 S48-T6): propagate func_80186C4C to its zero-crack siblings +1673 5ea17c2f8eb47d34f63be2901b330bb10cdf6314 2026-08-11T23:01:29-06:00 2026-08-11T23:01:29-06:00 feat(phase-30 S48-T6): propagate func_80184938 to its zero-crack siblings +1674 72932899d56e436fc593db396cb0ed95bdce641c 2026-08-11T23:04:08-06:00 2026-08-11T23:04:08-06:00 chore(phase-30 S48): checkpoint β€” 317 banked (13,345 -> 13,028), R22 213/213 +1675 57cef6325a7fb10c1962d738072176c2ce6497a6 2026-08-12T10:03:31-06:00 2026-08-12T10:03:31-06:00 docs(phase-30 S48): Β§163 β€” the five vetted laws from waves 2-3 +1676 480780c602f338f798e3a91dec08301cf66435d3 2026-08-12T10:03:47-06:00 2026-08-12T10:03:47-06:00 chore(phase-30 S48): mark the idiom harvest partially done (Β§163a-e banked, Β§163z unvetted) +1677 137a8540b5ce38ce19e21cba5d27c314241dd6d7 2026-08-12T10:40:28-06:00 2026-08-12T10:40:28-06:00 docs(phase-30 S48): Β§164 β€” 190 claims vetted by 34 skeptics, 82 banked, 28 refuted +1678 043532b47583f9bf2e6ff92c52663c3f4a197ff7 2026-08-12T12:25:20-06:00 2026-08-12T12:25:20-06:00 feat(phase-30 S48-T6): wave 4 β€” 18 exemplars banked; + a 4th comment-blindness fix +1679 63dd763b9e72ce8556503a608aea87c2894de23c 2026-08-12T12:49:39-06:00 2026-08-12T12:49:39-06:00 feat(phase-30 S48-T6): wave 4 tail β€” 9 more banked once the tree was clean +1680 a443612e6d873ea0e7d0e7e53f80b46c68f72371 2026-08-12T12:52:16-06:00 2026-08-12T12:52:16-06:00 feat(phase-30 S48-T6): propagate func_8017F8CC to its zero-crack siblings +1681 c4836a4abf055922c9b27b717cdbdc70bef8909b 2026-08-12T12:52:39-06:00 2026-08-12T12:52:39-06:00 feat(phase-30 S48-T6): propagate func_8017CE90 to its zero-crack siblings +1682 b7956de9fdf916b30e5c3e91c31728605d4b338b 2026-08-12T12:53:05-06:00 2026-08-12T12:53:05-06:00 feat(phase-30 S48-T6): propagate func_80185064 to its zero-crack siblings +1683 b21e30b83438489a9caadc6d92973202c70faae5 2026-08-12T12:53:26-06:00 2026-08-12T12:53:26-06:00 feat(phase-30 S48-T6): propagate func_80183BF4 to its zero-crack siblings +1684 f77c859fcd7e02dbc1c77b1d527ef64803c894e3 2026-08-12T12:53:43-06:00 2026-08-12T12:53:43-06:00 feat(phase-30 S48-T6): propagate func_80188A80 to its zero-crack siblings +1685 7e4b117259e948021d9bcbd2db6488cbb32b6fdf 2026-08-12T12:54:03-06:00 2026-08-12T12:54:03-06:00 feat(phase-30 S48-T6): propagate func_8018A974 to its zero-crack siblings +1686 b82fcc3066702a65ef2d89a5b17673d831283814 2026-08-12T12:54:26-06:00 2026-08-12T12:54:26-06:00 feat(phase-30 S48-T6): propagate func_80184944 to its zero-crack siblings +1687 2e6ab8002710a7fa9aaed7b957820e8d556412be 2026-08-12T12:54:42-06:00 2026-08-12T12:54:42-06:00 feat(phase-30 S48-T6): propagate func_80184370 to its zero-crack siblings +1688 f9ad3a2c98e68a6937f79e2ddd74f7d62c9293b4 2026-08-12T12:55:01-06:00 2026-08-12T12:55:01-06:00 feat(phase-30 S48-T6): propagate func_8017EDA4 to its zero-crack siblings +1689 e2d6851f9678e660934aea912c1b31b365dcf9c9 2026-08-12T12:55:19-06:00 2026-08-12T12:55:19-06:00 feat(phase-30 S48-T6): propagate func_80181470 to its zero-crack siblings +1690 3e359953f8efa8ad88028bc175b7335a0329053b 2026-08-12T12:55:36-06:00 2026-08-12T12:55:36-06:00 feat(phase-30 S48-T6): propagate func_8018CC9C to its zero-crack siblings +1691 2f5063a707ce0fb78546280bcffd89f7d733866e 2026-08-12T12:55:53-06:00 2026-08-12T12:55:53-06:00 feat(phase-30 S48-T6): propagate func_80183560 to its zero-crack siblings +1692 e766ed4d71d25ea5646ec094be3a2bc66ef7f993 2026-08-12T12:56:05-06:00 2026-08-12T12:56:05-06:00 feat(phase-30 S48-T6): propagate func_80182784 to its zero-crack siblings +1693 680f090c19e5b96abf468c7e7299d5898d48fae3 2026-08-12T12:56:18-06:00 2026-08-12T12:56:18-06:00 feat(phase-30 S48-T6): propagate func_80181E18 to its zero-crack siblings +1694 7f5c9685205c34e4f68c5b4a31678047f492c9b0 2026-08-12T12:56:33-06:00 2026-08-12T12:56:33-06:00 feat(phase-30 S48-T6): propagate func_8017D5C8 to its zero-crack siblings +1695 edf6023471684da089efb32edf3bc5b58827bb3a 2026-08-12T12:56:45-06:00 2026-08-12T12:56:45-06:00 feat(phase-30 S48-T6): propagate func_801843D8 to its zero-crack siblings +1696 9ea4d976059aca9f238e65367425e00d14123f76 2026-08-12T12:56:56-06:00 2026-08-12T12:56:56-06:00 feat(phase-30 S48-T6): propagate func_8018E8A0 to its zero-crack siblings +1697 729f51eb768fdf9034f66ea610004a67ab16bd4f 2026-08-12T12:57:08-06:00 2026-08-12T12:57:08-06:00 feat(phase-30 S48-T6): propagate func_8018EDB8 to its zero-crack siblings +1698 2980e90a704d4e975d9779adf02d0519c28ae6e9 2026-08-12T12:57:27-06:00 2026-08-12T12:57:27-06:00 feat(phase-30 S48-T6): propagate func_8018308C to its zero-crack siblings +1699 6cfd04e604b6c4ed33d34317fac0277304338ae3 2026-08-12T12:57:42-06:00 2026-08-12T12:57:42-06:00 feat(phase-30 S48-T6): propagate func_80180C40 to its zero-crack siblings +1700 43e9e6bc9b8ae91975278d76e813b0dd307d2f3d 2026-08-12T12:58:09-06:00 2026-08-12T12:58:09-06:00 feat(phase-30 S48-T6): propagate func_80180C90 to its zero-crack siblings +1701 c85127f23e6f6c24c2f710ede018b17bc3507d50 2026-08-12T12:58:22-06:00 2026-08-12T12:58:22-06:00 feat(phase-30 S48-T6): propagate func_8017FDF8 to its zero-crack siblings +1702 3003d1bc79d4c12f2829b271cf2dac6d48321947 2026-08-12T12:58:33-06:00 2026-08-12T12:58:33-06:00 feat(phase-30 S48-T6): propagate func_80189340 to its zero-crack siblings +1703 54de1bf245a61ec95d70e80c0e0fcf5bf8656bbf 2026-08-12T12:58:47-06:00 2026-08-12T12:58:47-06:00 feat(phase-30 S48): check the crack-wave harness into tools/wave +1704 2a28813659dff0b67794db29d1a1d3aa110a01ee 2026-08-12T12:58:58-06:00 2026-08-12T12:58:58-06:00 feat(phase-30 S48-T6): propagate func_80183D68 to its zero-crack siblings +1705 2b48de1c6feb918f36378f533181953a2d83b2f7 2026-08-12T12:59:27-06:00 2026-08-12T12:59:27-06:00 feat(phase-30 S48-T6): propagate func_80187400 to its zero-crack siblings +1706 317bde54037953c1cc5e2cc7d17a6f08f6df8cc7 2026-08-12T12:59:49-06:00 2026-08-12T12:59:49-06:00 feat(phase-30 S48-T6): propagate func_80185B44 to its zero-crack siblings +1707 0108200cef4f0c5fcc2381be322b6598f219f275 2026-08-12T13:00:17-06:00 2026-08-12T13:00:17-06:00 feat(phase-30 S48-T6): propagate func_80184F90 to its zero-crack siblings +1708 19a138c31877d4701d1ca3f0795dfd805c265e5e 2026-08-12T13:05:21-06:00 2026-08-12T13:05:21-06:00 chore(phase-30 S48): checkpoint β€” 422 banked (13,345 -> 12,923), R22 213/213 +1709 a2362e67113e20511083a05546e039b04d498c39 2026-08-12T13:21:58-06:00 2026-08-12T13:21:58-06:00 docs(phase-30 S48): Β§165 β€” wave-4 harvest banked the same day the wave landed +1710 165e2a3e8268178677749c721ec94c396acdcd31 2026-08-12T13:31:05-06:00 2026-08-12T13:31:05-06:00 chore(phase-30 S48): wave harness cites Β§165 (129 vetted laws, 48 refutations) +1711 c666450df4fbd2006753edc17f7da6f9ada6bc82 2026-08-12T13:33:28-06:00 2026-08-12T13:33:28-06:00 fix(phase-30 S48): wave harness β€” backticks in the Β§165 citation broke the template literal +1712 0000000000000000000000000000000000000000 2026-08-12T15:13:16-06:00 2026-08-12T15:13:16-06:00 session archive update +1713 874f942fed9a918cd8c812ac7a172593f6f66c0a 2026-08-12T16:13:05-06:00 2026-08-12T16:13:05-06:00 feat(phase-30 S48-T6): wave 5 β€” 29 exemplars banked (73%) +1714 261604d44ca25df5628ca92a97a23fb006f27d18 2026-08-12T16:14:17-06:00 2026-08-12T16:14:17-06:00 feat(phase-30 S48-T6): propagate func_80182CA4 to its zero-crack siblings +1715 9b7454732d05c9f082235f2f980f0978d21fc73d 2026-08-12T16:14:35-06:00 2026-08-12T16:14:35-06:00 feat(phase-30 S48-T6): propagate func_80187D0C to its zero-crack siblings +1716 06552fd7ac90df774a04edd9cc2609a6eb06c3d3 2026-08-12T16:14:50-06:00 2026-08-12T16:14:50-06:00 feat(phase-30 S48-T6): propagate func_80182EA0 to its zero-crack siblings +1717 6b1c7200350b8eb9019f5f790a42d74ead75a8c5 2026-08-12T16:15:05-06:00 2026-08-12T16:15:05-06:00 feat(phase-30 S48-T6): propagate func_801884E8 to its zero-crack siblings +1718 18ef92c482ab7723bb61eed70bb5fef787130bdf 2026-08-12T16:15:19-06:00 2026-08-12T16:15:19-06:00 feat(phase-30 S48-T6): propagate func_80187968 to its zero-crack siblings +1719 2d61baa9e9db59be90f5321a694872ec1bfb1aa3 2026-08-12T16:15:34-06:00 2026-08-12T16:15:34-06:00 feat(phase-30 S48-T6): propagate func_80187F2C to its zero-crack siblings +1720 ea99a445b2611e8f1906d17f7425dbaf1f12cce4 2026-08-12T16:15:51-06:00 2026-08-12T16:15:51-06:00 feat(phase-30 S48-T6): propagate func_8017CD10 to its zero-crack siblings +1721 b4f6bbe8d3f1debecbd57853d7325864398068e7 2026-08-12T16:16:08-06:00 2026-08-12T16:16:08-06:00 feat(phase-30 S48-T6): propagate func_80183340 to its zero-crack siblings +1722 e0cd14bac690afb42ab1b05c9150e3a199490abe 2026-08-12T16:16:23-06:00 2026-08-12T16:16:23-06:00 feat(phase-30 S48-T6): propagate func_80180450 to its zero-crack siblings +1723 f49e5197ca0207468989c537ade496e0e92c03d0 2026-08-12T16:16:37-06:00 2026-08-12T16:16:37-06:00 feat(phase-30 S48-T6): propagate func_80183924 to its zero-crack siblings +1724 7625155a09c2ca13088a808a789a25d252626ff3 2026-08-12T16:16:52-06:00 2026-08-12T16:16:52-06:00 feat(phase-30 S48-T6): propagate func_80183A20 to its zero-crack siblings +1725 ac855eb9fce8f360cfc584fb927bd58274cb3291 2026-08-12T16:17:10-06:00 2026-08-12T16:17:10-06:00 feat(phase-30 S48-T6): propagate func_8018AB78 to its zero-crack siblings +1726 836edc57149a77bbd7ac2d527ea7e75e013d7253 2026-08-12T16:17:25-06:00 2026-08-12T16:17:25-06:00 feat(phase-30 S48-T6): propagate func_80186D80 to its zero-crack siblings +1727 528f07eaade294a5d5422797190342da7414485c 2026-08-12T16:17:39-06:00 2026-08-12T16:17:39-06:00 feat(phase-30 S48-T6): propagate func_801841E0 to its zero-crack siblings +1728 31efb1b92522f8dbe23c0b54043cb15b4912d0da 2026-08-12T16:17:53-06:00 2026-08-12T16:17:53-06:00 feat(phase-30 S48-T6): propagate func_80189C28 to its zero-crack siblings +1729 9cd29e3a671e54034a4178977e0e1a3a84b8366c 2026-08-12T16:18:07-06:00 2026-08-12T16:18:07-06:00 feat(phase-30 S48-T6): propagate func_80188554 to its zero-crack siblings +1730 dce3d4c235dea595aa78281e21c4b573f6fb6e5f 2026-08-12T16:18:20-06:00 2026-08-12T16:18:20-06:00 feat(phase-30 S48-T6): propagate func_801876BC to its zero-crack siblings +1731 2cf997f27875fbd81b90d30a6437a5df7ef40fca 2026-08-12T16:18:34-06:00 2026-08-12T16:18:34-06:00 feat(phase-30 S48-T6): propagate func_80187130 to its zero-crack siblings +1732 2520571a734ed16df070f78711f204a27b653a72 2026-08-12T16:18:47-06:00 2026-08-12T16:18:47-06:00 feat(phase-30 S48-T6): propagate func_8018A77C to its zero-crack siblings +1733 8012577a90a0ba55caccc35c48c7f14442e65c1b 2026-08-12T16:19:13-06:00 2026-08-12T16:19:13-06:00 feat(phase-30 S48-T6): propagate func_80183CE8 to its zero-crack siblings +1734 acd7ef0a2aa6f7b44d0e5313c8ba5872f89279a1 2026-08-12T16:19:25-06:00 2026-08-12T16:19:25-06:00 feat(phase-30 S48-T6): propagate func_801887DC to its zero-crack siblings +1735 0be51bfa429607f21fd3183f1a0ecc4b223de0d8 2026-08-12T16:19:39-06:00 2026-08-12T16:19:39-06:00 feat(phase-30 S48-T6): propagate func_80183BC8 to its zero-crack siblings +1736 97eb84927adf739d3cd0a659f4e041c58d73c82d 2026-08-12T16:19:52-06:00 2026-08-12T16:19:52-06:00 feat(phase-30 S48-T6): propagate func_8017F76C to its zero-crack siblings +1737 c36ae5f6bcf45e1ee6a3628a7d9e72c77ba1f53f 2026-08-12T16:20:01-06:00 2026-08-12T16:20:01-06:00 feat(phase-30 S48-T6): propagate func_801874C0 to its zero-crack siblings +1738 c07d081cabb71882ac5309c4ef44fe9e00fdacc1 2026-08-12T16:20:13-06:00 2026-08-12T16:20:13-06:00 feat(phase-30 S48-T6): propagate func_8017FE38 to its zero-crack siblings +1739 a8ca52cfd9feb8fed60f5ee7554b6d9574e4dc6a 2026-08-12T16:20:23-06:00 2026-08-12T16:20:23-06:00 feat(phase-30 S48-T6): propagate func_8018C3F8 to its zero-crack siblings +1740 142c0cf8c2f2c5ff48d9ed3519d38638b2c1db90 2026-08-12T16:20:35-06:00 2026-08-12T16:20:35-06:00 feat(phase-30 S48-T6): propagate func_801812B0 to its zero-crack siblings +1741 48965d5f27d8c80423ea85e06724bddb369e6838 2026-08-12T16:20:48-06:00 2026-08-12T16:20:48-06:00 feat(phase-30 S48-T6): propagate func_80188F60 to its zero-crack siblings +1742 a867deab688831bf87cbcafa65c672dee78a4c98 2026-08-12T16:21:33-06:00 2026-08-12T16:21:33-06:00 fix(phase-30 S48): wave harness β€” a DEAD ORACLE is not a negative verdict +1743 4181b865f2a5b067c1d9dc7f3cb52945e0a4a10e 2026-08-12T16:23:37-06:00 2026-08-12T16:23:37-06:00 chore(phase-30 S48): checkpoint β€” 574 banked, FLEET CROSSED 95% instr, R22 213/213 +1744 8d261f0c4f4230519389d7803e27fdd591790826 2026-08-12T16:45:15-06:00 2026-08-12T16:45:15-06:00 feat(phase-30 S48): wave harness β€” in-situ TU gating for gate-refused repeats +1745 67b0d704933fe999f37de48a5a1e821bffe7ad71 2026-08-12T16:45:35-06:00 2026-08-12T16:45:35-06:00 fix(phase-30 S48): parameterize the wave output dir (it was hardcoded to wave4) +1746 4162c32d6e3cbd3b15d84b3b27c0f081786e5b1d 2026-08-12T16:46:51-06:00 2026-08-12T16:46:51-06:00 fix(phase-30 S48): unescaped backtick in the wave prompt (2nd occurrence) + a guard note +1747 c55ad64614c465aa5669a579e06677aa44838872 2026-08-12T18:13:19-06:00 2026-08-12T18:13:19-06:00 feat(phase-30 S48-T6): wave 6 β€” 24 exemplars banked; the gate-refusal ROOT CAUSE found +1748 80f3ee7397dbd6e6bb63b3ef9f621862d0a403a9 2026-08-12T18:14:21-06:00 2026-08-12T18:14:21-06:00 fix(phase-30 S48): Β§166 β€” the destination-TU oracle, and stop printing a guess as a finding +1749 90f8f3aff99d04f9c9a5c4987f79855b253b2937 2026-08-12T18:22:49-06:00 2026-08-12T18:22:49-06:00 feat(phase-30 S48-T6): propagate func_80188348 to its zero-crack siblings +1750 1276105f06983e7b04b85f511af786bc1a7129c8 2026-08-12T18:23:13-06:00 2026-08-12T18:23:13-06:00 feat(phase-30 S48-T6): propagate func_801807D0 to its zero-crack siblings +1751 440b244c18c9f898f42b03d8ab4b57c1ea140a87 2026-08-12T18:23:30-06:00 2026-08-12T18:23:30-06:00 feat(phase-30 S48-T6): propagate func_80184E4C to its zero-crack siblings +1752 e807e1d5710f00d881f35df5dbdfd64dc1ec33ae 2026-08-12T18:23:49-06:00 2026-08-12T18:23:49-06:00 feat(phase-30 S48-T6): propagate func_80183658 to its zero-crack siblings +1753 9dc9d6e07b667872a7f3c62fdc04dace22c6a60e 2026-08-12T18:24:05-06:00 2026-08-12T18:24:05-06:00 feat(phase-30 S48-T6): propagate func_8017FE28 to its zero-crack siblings +1754 3d627b97a96b9c8fbb1a7c6d352d6f49aaccb0d2 2026-08-12T18:24:23-06:00 2026-08-12T18:24:23-06:00 feat(phase-30 S48-T6): propagate func_8017C814 to its zero-crack siblings +1755 78fe17bd525eda5e45a8d3d86db0f6a7c0d15d47 2026-08-12T18:24:37-06:00 2026-08-12T18:24:37-06:00 feat(phase-30 S48-T6): propagate func_8017D678 to its zero-crack siblings +1756 1ce9125d8ca52bd2257093a35eb29cc4e4999fc7 2026-08-12T18:24:54-06:00 2026-08-12T18:24:54-06:00 feat(phase-30 S48-T6): propagate func_8018B19C to its zero-crack siblings +1757 ab63aa0411596b340dd9611fb04337052181818b 2026-08-12T18:25:11-06:00 2026-08-12T18:25:11-06:00 feat(phase-30 S48-T6): propagate func_80184AFC to its zero-crack siblings +1758 96fe3198b954f40da8f7c522d21a4b33eb8aadbf 2026-08-12T18:25:28-06:00 2026-08-12T18:25:28-06:00 feat(phase-30 S48-T6): propagate func_8018291C to its zero-crack siblings +1759 fc58acbf3b40bbc8b6ff995f78ab8f874a86f719 2026-08-12T18:25:43-06:00 2026-08-12T18:25:43-06:00 feat(phase-30 S48-T6): propagate func_8017F398 to its zero-crack siblings +1760 97877acd0a213e5afb9d94817bb1fbd0fca85c50 2026-08-12T18:25:57-06:00 2026-08-12T18:25:57-06:00 feat(phase-30 S48-T6): propagate func_80181C78 to its zero-crack siblings +1761 3962c03150aaa6be63dceeea08a39a365e792bc5 2026-08-12T18:26:07-06:00 2026-08-12T18:26:07-06:00 feat(phase-30 S48-T6): propagate func_801EFF54 to its zero-crack siblings +1762 c2374589c4c926a3612f0bf2e94f7fbc0cb844ef 2026-08-12T18:26:22-06:00 2026-08-12T18:26:22-06:00 feat(phase-30 S48-T6): propagate func_80182D80 to its zero-crack siblings +1763 db2f5fefb3a8e4e027e17675a372be2f52b07943 2026-08-12T18:26:34-06:00 2026-08-12T18:26:34-06:00 feat(phase-30 S48-T6): propagate func_8017F570 to its zero-crack siblings +1764 79be5b1ed91c497a79634dbd8c70741e4a950385 2026-08-12T18:26:45-06:00 2026-08-12T18:26:45-06:00 feat(phase-30 S48-T6): propagate func_8017BEF8 to its zero-crack siblings +1765 9066ffcd06660cf02dca9a0a480264fad0e89fba 2026-08-12T18:26:59-06:00 2026-08-12T18:26:59-06:00 feat(phase-30 S48-T6): propagate func_80184380 to its zero-crack siblings +1766 a4fafab85eeafdbaae039a82ca149d8d405cd3e6 2026-08-12T18:27:17-06:00 2026-08-12T18:27:17-06:00 feat(phase-30 S48-T6): propagate func_80183834 to its zero-crack siblings +1767 62081315aba74ec7a87ce2799b9722cca6ab70e4 2026-08-12T18:27:42-06:00 2026-08-12T18:27:42-06:00 feat(phase-30 S48-T6): propagate func_8017F17C to its zero-crack siblings +1768 46a2bf56af1c5abd953d26176102bcc609ff3a54 2026-08-12T18:28:00-06:00 2026-08-12T18:28:00-06:00 feat(phase-30 S48-T6): propagate func_80181948 to its zero-crack siblings +1769 1117e3a3a994e0cfddc7ff17ddfb4e1e90be4f53 2026-08-12T18:28:14-06:00 2026-08-12T18:28:14-06:00 feat(phase-30 S48-T6): propagate func_8017C004 to its zero-crack siblings +1770 ab4fe5eab04c6753a251d2d5dc96bc5a608f757b 2026-08-12T18:28:24-06:00 2026-08-12T18:28:24-06:00 feat(phase-30 S48-T6): propagate func_80181500 to its zero-crack siblings +1771 471e573ce023b2f697874655f6481f6f8487a96d 2026-08-12T18:28:34-06:00 2026-08-12T18:28:34-06:00 feat(phase-30 S48-T6): propagate func_8017FB9C to its zero-crack siblings +1772 4144eabc74595d4ddaae8525fcd83f895e52a853 2026-08-12T18:31:30-06:00 2026-08-12T18:31:30-06:00 chore(phase-30 S48): checkpoint β€” 684 banked (13,345 -> 12,661), R22 213/213 +1773 0fc297184ca65e4ff3dfd2cef8fb151c7aab0694 2026-08-12T18:34:40-06:00 2026-08-12T18:34:40-06:00 fix(phase-30 S48): Β§166a β€” strike the causal claim I did not verify (R14) +1774 57ff04c1ac539ec1dbacf78962d1ea9ea5c03b0b 2026-08-12T18:55:05-06:00 2026-08-12T18:55:05-06:00 docs(phase-30 S48): Β§167 β€” wave-5/6 harvest, and the saturation signal +1775 4cf5847da321cd69646ceb32e19426fda669136b 2026-08-12T18:55:35-06:00 2026-08-12T18:55:35-06:00 chore(phase-30 S48): FINAL session checkpoint β€” 684 banked, 95.1% instr, R22 213/213 +1776 b3713cc3ca7fc8b16a157e3852481c926f0e8906 2026-08-12T20:53:40-06:00 2026-08-12T20:53:40-06:00 feat(phase-30 S49): the cousin tier β€” family_cousins.py similarity map + seeded wave-7 slate (Β§168) +1777 4cee2160fe7139773d5c2c53d74d009cc9d6e41d 2026-08-12T20:59:31-06:00 2026-08-12T20:59:31-06:00 feat(phase-26): h_seq family sweep β€” 4 member-matches banked via remap_hseq +1778 9c2db69fc83b3336ba216ed9dcde65feb257b00f 2026-08-12T21:07:48-06:00 2026-08-12T21:07:48-06:00 feat(phase-26): h_seq family sweep β€” 26 member-matches banked via remap_hseq +1779 24b866789b2703060efb1687455e0e11c0ac5ce7 2026-08-12T21:13:46-06:00 2026-08-12T21:13:46-06:00 feat(phase-30 S49): jr lane β€” func_8018cc40 banked Γ—9 via jtbl_family_bank +1780 f93ad8cd2f0d75cb433c6b574e2dc14e868cb1a3 2026-08-12T21:16:23-06:00 2026-08-12T21:16:23-06:00 feat(phase-30 S49): jr lane β€” func_80189030 banked via jtbl_family_bank (lane-A re-sweep) +1781 a194268e01ef067be147ae777edfc9c6d87ed436 2026-08-12T21:21:29-06:00 2026-08-12T21:21:29-06:00 feat(phase-30 S49): jr lane β€” func_80180b04 banked via jtbl_family_bank (lane-A re-sweep) +1782 dfd6be8b38d0bd0c2a0e2cf7dad6f858efaaaccc 2026-08-12T21:24:24-06:00 2026-08-12T21:24:24-06:00 feat(phase-30 S49): jr lane β€” func_80185440 banked via jtbl_family_bank (lane-A re-sweep) +1783 ebc2da001a1a02bad2b9cfb93d07b2617daf140f 2026-08-12T21:25:02-06:00 2026-08-12T21:25:02-06:00 feat(phase-30 S49): jr lane β€” func_80183bac banked via jtbl_family_bank (lane-A re-sweep) +1784 ea94fece6fbb0b5db4cfcd67c0bd9cfbb1a97f36 2026-08-12T21:30:51-06:00 2026-08-12T21:30:51-06:00 chore(phase-30 S49): checkpoint β€” lane-A re-sweep 48 banked, R22 213/213, fresh honest ledger +1785 dcba5d0f4f6bc18c711757ca18b044f8c48afa61 2026-08-12T22:03:04-06:00 2026-08-12T22:03:04-06:00 feat(phase-30 S49): the micro-adapt lane β€” adapt cards + adapt_wave.js (wave 7a) +1786 432fdf681f16b4e88019dc97261706b5a5804f19 2026-08-12T22:07:32-06:00 2026-08-12T22:07:32-06:00 fix(phase-30 S49): adapt cards β€” hex-case-robust .s resolver (R35) +1787 019fd518838cc553ccdd68ebac04c812413cb132 2026-08-12T22:22:06-06:00 2026-08-12T22:22:06-06:00 feat(decomp): worker gate β€” +1 fns x9 propagated (fleet 95.1%) +1788 4de7fd7faa5f9d8e8548b7446f5f6ca47f41f667 2026-08-12T22:23:22-06:00 2026-08-12T22:23:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1789 38ae150fa153783ba4bf67cdf40f1ecc8fceea9f 2026-08-12T22:24:24-06:00 2026-08-12T22:24:24-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1790 63bb8f89597253d5dc8c2db6c86366bf3cdc7bfc 2026-08-12T22:47:24-06:00 2026-08-12T22:47:24-06:00 feat(decomp): worker gate β€” +1 fns x36 propagated (fleet 95.1%) +1791 527c7ffa7d93c0333f9afa5175b7df6446ed3034 2026-08-12T22:51:00-06:00 2026-08-12T22:51:00-06:00 feat(decomp): worker gate β€” +1 fns x1 propagated (fleet 95.1%) +1792 49cf2dc15a39ae0d533b0ce25ffa58b0194b6b68 2026-08-12T22:56:40-06:00 2026-08-12T22:56:40-06:00 feat(decomp): worker gate β€” +1 fns x17 propagated (fleet 95.1%) +1793 f605184930a3837e00d2c4d1fe82f4750d9ecc35 2026-08-12T23:00:27-06:00 2026-08-12T23:00:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1794 7f82d954687a47a076f2359fa467a98799b31241 2026-08-13T04:34:15-06:00 2026-08-13T04:34:15-06:00 feat(decomp): worker gate β€” +1 fns x8 propagated (fleet 95.1%) +1795 ad7ffe5e6e0660fb50a201fca3a9b6b6ea06dad6 2026-08-13T04:36:57-06:00 2026-08-13T04:36:57-06:00 feat(decomp): worker gate β€” +1 fns x7 propagated (fleet 95.1%) +1796 76bdaeafb93d324c15f3fae72c5ae74e33f12d04 2026-08-13T04:39:48-06:00 2026-08-13T04:39:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1797 befc635a5944a0f23c60f9230596463885e741fb 2026-08-13T06:49:42-06:00 2026-08-13T06:49:42-06:00 feat(decomp): worker gate β€” +5 fns x0 propagated (fleet 95.1%) +1798 e9c90c1e0255c88245195dc63594367c466071d1 2026-08-13T06:50:38-06:00 2026-08-13T06:50:38-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1799 6a18328d0eb92663f02db23c33625362244ac630 2026-08-13T06:51:31-06:00 2026-08-13T06:51:31-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1800 a27518e73059a707be5d53096a06e600da8a4255 2026-08-13T06:52:27-06:00 2026-08-13T06:52:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.1%) +1801 dabd2d4cb79c2a1f676a1bdd7a8e6ec06e6d47b9 2026-08-13T06:52:50-06:00 2026-08-13T06:52:50-06:00 feat(phase-30 S49): propagate func_80183838 to its cousins (wave 7a) +1802 5fc7f16978ba168246f79762046b934e19a60f16 2026-08-13T06:53:52-06:00 2026-08-13T06:53:52-06:00 feat(phase-30 S49): propagate func_8018B388 to its cousins (wave 7a) +1803 44b49ed715c30b7d7ef300c98243d40bca657200 2026-08-13T06:59:46-06:00 2026-08-13T06:59:46-06:00 chore(phase-30 S49): wave 7a checkpoint β€” micro-adapt lane measured (83% MATCH / 64% bank), Β§169 +1804 a24b4958535d96c8ff3bf8c3cb9418a60f75e135 2026-08-13T10:56:10-06:00 2026-08-13T10:56:10-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.1%) +1805 71ca623bf09869f58a5737aadc2164e1787cdcf3 2026-08-13T10:57:33-06:00 2026-08-13T10:57:33-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1806 76405fbdc239f3aeb727ccda356001be07b5a71d 2026-08-13T10:58:46-06:00 2026-08-13T10:58:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1807 e1103fd17310c1c583228c6438af3b556cb86e33 2026-08-13T10:59:49-06:00 2026-08-13T10:59:49-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1808 060a4246d6fadf216e25a71af1ed1306f8d3d9ef 2026-08-13T11:00:46-06:00 2026-08-13T11:00:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1809 c3dc3a02c4697f107a473f1491d78e2c98268619 2026-08-13T11:01:48-06:00 2026-08-13T11:01:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1810 4292f9c1fa8625688254d4a5574a268b80c8c515 2026-08-13T11:02:50-06:00 2026-08-13T11:02:50-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1811 6f4454969397f400d8c8f411f4bf5c6540ab0f4b 2026-08-13T11:03:52-06:00 2026-08-13T11:03:52-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1812 271de778d6cae04fb2a733b01ca897657c5ec22c 2026-08-13T11:06:23-06:00 2026-08-13T11:06:23-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1813 03b8856db2eb0dd7137f03f2b72fd9e80ca6f6a0 2026-08-13T11:07:29-06:00 2026-08-13T11:07:29-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1814 67b069e0164581638f2caec938efaae0e270530f 2026-08-13T11:08:45-06:00 2026-08-13T11:08:45-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1815 221312f8f8283192e9cc0c5f0793d66e9ae79ba9 2026-08-13T11:10:05-06:00 2026-08-13T11:10:05-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1816 a104492ee828b3ffbb6808e5f0ce84e61fe965d9 2026-08-13T11:11:17-06:00 2026-08-13T11:11:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1817 5bc8bfde4fd1752fa46b3119317c190ab3fe7b9b 2026-08-13T11:12:28-06:00 2026-08-13T11:12:28-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1818 eb92cf64b0fa9c1234fb4954031a7efa2c7731aa 2026-08-13T11:13:43-06:00 2026-08-13T11:13:43-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1819 78cbe5fce0480c0333a3ce4f7910a908742cda69 2026-08-13T11:14:46-06:00 2026-08-13T11:14:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1820 18cc66a59b1a1a9bd831fe26ab398a236ffaab47 2026-08-13T11:15:57-06:00 2026-08-13T11:15:57-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1821 1e24faeb9e01800cd000e566f3fb89cf9a5291f2 2026-08-13T11:17:18-06:00 2026-08-13T11:17:18-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1822 a046e6da71e62ceec4d7f9c19a734d6c2de2cbd9 2026-08-13T11:18:22-06:00 2026-08-13T11:18:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1823 b8b3b66f84577b5d89e1d84a002631117391b41e 2026-08-13T11:19:27-06:00 2026-08-13T11:19:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1824 5968226e9f7b7f65ec97b53e42dd72ef7fcf70dc 2026-08-13T11:20:41-06:00 2026-08-13T11:20:41-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1825 385e7559a6d10c154b497ec1480857c6b7ceb839 2026-08-13T11:22:09-06:00 2026-08-13T11:22:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1826 3b77a0261beb7c6ef1af931b77d2a516a91452bd 2026-08-13T11:23:29-06:00 2026-08-13T11:23:29-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1827 25f8b48d9d61c99c03b6009fbbbfb21ba6f625e3 2026-08-13T11:25:09-06:00 2026-08-13T11:25:09-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +1828 08640105c2661283afac87950d9d9ea8139d64df 2026-08-13T11:26:24-06:00 2026-08-13T11:26:24-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1829 c3f71e706956008aec7182136632a1929895c18b 2026-08-13T11:27:36-06:00 2026-08-13T11:27:36-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1830 891e09f91059d2347a6b877964542f32c07bfdc1 2026-08-13T11:28:41-06:00 2026-08-13T11:28:41-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1831 a3d642a12a2fb7b9140fc45ebb52fd7f3fed3778 2026-08-13T11:29:45-06:00 2026-08-13T11:29:45-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1832 435e989834d691aebe9b3c2c41376b695795fcba 2026-08-13T11:30:39-06:00 2026-08-13T11:30:39-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1833 8d585260032996c550807c7eee6db89822787bf4 2026-08-13T11:31:41-06:00 2026-08-13T11:31:41-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1834 41c2d3b6a1051e9df3a164b4c7ba5e9aa198c38d 2026-08-13T11:32:36-06:00 2026-08-13T11:32:36-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1835 605ac51ab191b2a3af5da2c51e9893e1bd60d1ed 2026-08-13T11:33:32-06:00 2026-08-13T11:33:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1836 aee796d08c19d40c8afbd89c208f4f83ac3de980 2026-08-13T11:35:36-06:00 2026-08-13T11:35:36-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1837 ba8bc922209d75cebb3a232da091d0b8d176f15e 2026-08-13T11:39:55-06:00 2026-08-13T11:39:55-06:00 feat(phase-30 S49): propagate func_8017DBC4 (adapt lane) +1838 c85fc8853b356627b14bdef573ba01c73ffc66e0 2026-08-13T11:40:37-06:00 2026-08-13T11:40:37-06:00 feat(phase-30 S49): propagate func_80188748 (adapt lane) +1839 5205be4118d4eb3a3fbc267f58fc15fadc0e63e0 2026-08-13T11:40:56-06:00 2026-08-13T11:40:56-06:00 feat(phase-30 S49): propagate func_80188990 (adapt lane) +1840 b4b578e52d373d95537560186cb6bebc21f4cfae 2026-08-13T11:41:29-06:00 2026-08-13T11:41:29-06:00 feat(phase-30 S49): propagate func_8018042C (adapt lane) +1841 9ae5c5b334f443cc392057a676f474e3796953e2 2026-08-13T11:41:39-06:00 2026-08-13T11:41:39-06:00 feat(phase-30 S49): propagate func_80182C24 (adapt lane) +1842 3a5397c52996e7e8678ec48802e57c18247b3429 2026-08-13T11:42:04-06:00 2026-08-13T11:42:04-06:00 feat(phase-30 S49): propagate func_80180954 (adapt lane) +1843 79b7ff2cbf7f30b1bd44000a58a053c9a223b9f3 2026-08-13T11:50:04-06:00 2026-08-13T11:50:04-06:00 chore(phase-30 S49): wave 7b β€” adapt lane scaled, 44 banked (92% MATCH->bank); the TU-spread law +1844 442fb7c460a2d9557772341ee626ebc7ca85cffa 2026-08-13T16:36:12-06:00 2026-08-13T16:36:12-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1845 a5fd58e834ec3e2ed7e93df266dc92b2fa5d970a 2026-08-13T16:37:02-06:00 2026-08-13T16:37:02-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +1846 c60c16bb503c34d4efdc867a61ba8dfa8bb1486c 2026-08-13T16:37:51-06:00 2026-08-13T16:37:51-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +1847 343c884ba91cc231eb25484558fe8c427b53f3d2 2026-08-13T16:38:40-06:00 2026-08-13T16:38:40-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1848 7a8b2c7335fde0fa2174a427f2df4531e6bba52a 2026-08-13T16:39:28-06:00 2026-08-13T16:39:28-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1849 a74f0013a4dee43999e4ea70754b581f9440c1f0 2026-08-13T16:40:17-06:00 2026-08-13T16:40:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1850 7346f67c2217f3ab5f21e974c9af041236d5f186 2026-08-13T16:41:06-06:00 2026-08-13T16:41:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1851 8a609f7fbc607a038642f52f460d0152c1d9ed59 2026-08-13T16:41:55-06:00 2026-08-13T16:41:55-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1852 569edd5799278b2d4c265d9033ef159520a8ad37 2026-08-13T16:42:44-06:00 2026-08-13T16:42:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1853 d21fb49088816b72bc4b10c30f30fbf7efbd0065 2026-08-13T16:43:33-06:00 2026-08-13T16:43:33-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1854 bc0c6af5cdc168de8ee37e9db95131cf68629094 2026-08-13T16:44:22-06:00 2026-08-13T16:44:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1855 c3f87ecff6bee7c4132578cbf947d55111bf4fc5 2026-08-13T16:45:22-06:00 2026-08-13T16:45:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1856 e233b0bc06387799ea4e3ccce5023da9c812f277 2026-08-13T16:46:22-06:00 2026-08-13T16:46:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1857 606018cadb4691b174d5410b277acbb5a2031f24 2026-08-13T16:47:17-06:00 2026-08-13T16:47:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1858 c75648a1b8ce17b6c7bc40aeff1c9e37dd5dac67 2026-08-13T16:49:17-06:00 2026-08-13T16:49:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1859 f3df4dd069ccb878ea984839f256a0065967aed6 2026-08-13T16:50:14-06:00 2026-08-13T16:50:14-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1860 972a4e88e5c2ebbc8ac2336db4687327dc97bfaf 2026-08-13T16:51:09-06:00 2026-08-13T16:51:09-06:00 feat(decomp): worker gate β€” +5 fns x0 propagated (fleet 95.2%) +1861 7a79a0084af6240599604b56a4a8f7c0d429f2c9 2026-08-13T16:55:06-06:00 2026-08-13T16:55:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1862 0d5e0b0a5e6366c32af02412ffeaf8c0a9ef13fb 2026-08-13T16:56:06-06:00 2026-08-13T16:56:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1863 8dd49cc695ee8f86e226fc6edb346f49942e7193 2026-08-13T16:58:07-06:00 2026-08-13T16:58:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1864 0857c2c6f031df8d13c8b90ec442b8a491595e27 2026-08-13T16:58:57-06:00 2026-08-13T16:58:57-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1865 070422ab83357f7f5208449cf8146ec554a66df1 2026-08-13T16:59:57-06:00 2026-08-13T16:59:57-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1866 e57fd1192f69552c37faa349e84ccabf052f9da9 2026-08-13T17:00:47-06:00 2026-08-13T17:00:47-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1867 37e8ded92f66bcfbbac4c79a7ce040d2f596b302 2026-08-13T17:01:48-06:00 2026-08-13T17:01:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1868 34a2849b39ca617b7755419f05ff37c26c7382ca 2026-08-13T17:02:37-06:00 2026-08-13T17:02:37-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1869 038fab0e4cbaebf216cb1437a00534e5ec5fa09d 2026-08-13T17:03:31-06:00 2026-08-13T17:03:31-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1870 c2a02f84040f38cee8c9cd2a9ddaf6abe148fc21 2026-08-13T17:04:24-06:00 2026-08-13T17:04:24-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1871 8314b29a06b3fbf1ed272afe814e771ceb003b86 2026-08-13T17:05:18-06:00 2026-08-13T17:05:18-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1872 96cc08544896ea543dd8ab291f28d262971a0b7f 2026-08-13T17:06:11-06:00 2026-08-13T17:06:11-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1873 934803b9555e36c729e021f053333f8378d2c7d3 2026-08-13T17:07:05-06:00 2026-08-13T17:07:05-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1874 969ac3bf7ba2a71fea078e5041ac4fd3ef97435e 2026-08-13T17:08:01-06:00 2026-08-13T17:08:01-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1875 5c04622e751a4f35bdbe12fc4a3bf7f5b40640bb 2026-08-13T17:14:35-06:00 2026-08-13T17:14:35-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1876 25099b21cc27fb88f5507828855a2101749163c7 2026-08-13T17:15:29-06:00 2026-08-13T17:15:29-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1877 2f1aad80f4d615b9b373192f93de331cae525445 2026-08-13T17:18:26-06:00 2026-08-13T17:18:26-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1878 0524ae551bd0b77ea6c08005b34e846ed909a816 2026-08-13T17:19:25-06:00 2026-08-13T17:19:25-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1879 21d9c789b89a529dc7f8668324bc59a1e399d515 2026-08-13T17:20:25-06:00 2026-08-13T17:20:25-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1880 063ef9972877a914f86de4863c982182031df085 2026-08-13T17:22:22-06:00 2026-08-13T17:22:22-06:00 feat(decomp): worker gate β€” +5 fns x0 propagated (fleet 95.2%) +1881 6e6a17fbd11aeeaa9a989fc01ae762c76a67e457 2026-08-13T17:24:20-06:00 2026-08-13T17:24:20-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1882 8f79f054e70d401d748726d4f172fb8f288c5f17 2026-08-13T17:25:21-06:00 2026-08-13T17:25:21-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1883 ce64886855f26e3b9972429274a3fe1f3b1364dd 2026-08-13T17:29:26-06:00 2026-08-13T17:29:26-06:00 feat(phase-30 S49): propagate func_801EF964 (adapt lane) +1884 77bb2039c8152d1fcec3226cf103ad0aecab1dea 2026-08-13T17:31:57-06:00 2026-08-13T17:31:57-06:00 feat(phase-30 S49): propagate func_801E2AF4 (adapt lane) +1885 c23bc5ef8f356d449440cfe1578308db11236702 2026-08-13T17:34:36-06:00 2026-08-13T17:34:36-06:00 feat(phase-30 S49): propagate func_80181538 (adapt lane) +1886 60f54c33da77cd6b02868b6783f697a1a6f08dc8 2026-08-13T17:37:54-06:00 2026-08-13T17:37:54-06:00 feat(phase-30 S49): propagate func_80180190 (adapt lane) +1887 894b51e0aec451b548d2336915db0179308f7af4 2026-08-13T17:38:03-06:00 2026-08-13T17:38:03-06:00 feat(phase-30 S49): propagate func_801811F4 (adapt lane) +1888 4c13e9b37965825f6b9a3f6f5a44ebf605b05a55 2026-08-13T17:38:13-06:00 2026-08-13T17:38:13-06:00 feat(phase-30 S49): propagate func_80182A7C (adapt lane) +1889 596afa1385e7bd3ea50de4d43a85c2f6d1672b91 2026-08-13T17:38:23-06:00 2026-08-13T17:38:23-06:00 feat(phase-30 S49): propagate func_80183890 (adapt lane) +1890 a3d748faa5f1fbb586c254c5b72d6a5f7c36dcb4 2026-08-13T17:38:33-06:00 2026-08-13T17:38:33-06:00 feat(phase-30 S49): propagate func_80184374 (adapt lane) +1891 bcc3130eb4a27328d0216cd767b6483b134012cf 2026-08-13T17:44:20-06:00 2026-08-13T17:44:20-06:00 feat(phase-30 S49): the A-prop word-diff card + aprop_wave β€” 56 banked from the >=16 head (Β§170) +1892 0189445b9a9ce4efcc3ddc61f6cb40ad4a0ab23b 2026-08-13T17:58:26-06:00 2026-08-13T17:58:26-06:00 chore(phase-30 S49): FINAL session checkpoint β€” 177 banked, 95.2% instr, R22 213/213 +1893 94818c30c2a80fda17aaafd29a44ffae8c4bb60a 2026-08-13T23:28:25-06:00 2026-08-13T23:28:25-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1894 dc6bbf5983e59a7843ffc9af1c579edc9090f89f 2026-08-13T23:32:27-06:00 2026-08-13T23:32:27-06:00 feat(decomp): worker gate β€” +12 fns x0 propagated (fleet 95.2%) +1895 e3aadd9150573d9eac12d291698ded9b5df314b7 2026-08-13T23:33:39-06:00 2026-08-13T23:33:39-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 95.2%) +1896 2f7e06564b9d14ecbc41b096dcf3c1959a9fa2e6 2026-08-13T23:41:36-06:00 2026-08-13T23:41:36-06:00 feat(phase-30 S50): the stale seed symbol β€” A-prop's 57% was ours, not the lane's (Β§171) +1897 5e8db6a2c6513b2682cfad62a0dcecd8fb534fac 2026-08-14T00:15:46-06:00 2026-08-14T00:15:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1898 84afd361c1c699b5a74661e206e33163a1517219 2026-08-14T00:16:37-06:00 2026-08-14T00:16:37-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1899 8a19b5c06504a7b7ca67c7c49f88aa534b39320d 2026-08-14T00:17:27-06:00 2026-08-14T00:17:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1900 d02b460bbb71c46386902fff8967297944950d8c 2026-08-14T00:18:16-06:00 2026-08-14T00:18:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1901 895bb6a239bbc5ae843d967009a3914dd5c22495 2026-08-14T00:23:32-06:00 2026-08-14T00:23:32-06:00 feat(phase-30 S50): clear the func_801EDC18 carry blocker β€” 4/4 banked, and re-priced +1902 7549b61b882c59c6b747fd7c118d8e12ced456ca 2026-08-14T00:29:23-06:00 2026-08-14T00:29:23-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1903 36224fdda79ff92225f08bc166f85e291295e2cb 2026-08-14T00:33:27-06:00 2026-08-14T00:33:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1904 1d6410238287ba7fec7887f0eb5da299c357878d 2026-08-14T00:34:16-06:00 2026-08-14T00:34:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1905 906d04ad8863d0c328d012843f14a79afc5b1c37 2026-08-14T00:35:06-06:00 2026-08-14T00:35:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1906 e057b6a0cc0359e17da3a71b32ff933615ed709b 2026-08-14T00:35:56-06:00 2026-08-14T00:35:56-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1907 307a74b3d6453ebdcdc968c7428daba3373d469b 2026-08-14T00:36:46-06:00 2026-08-14T00:36:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1908 a25e101663fcd35167ed0062fad4d03d9efefc66 2026-08-14T00:37:36-06:00 2026-08-14T00:37:36-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1909 265b2424dc2ceb9d8e38317c7bdd959f963c8295 2026-08-14T00:38:26-06:00 2026-08-14T00:38:26-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1910 5335a914af235198e59e6bd9a2847e170d1c2af8 2026-08-14T00:39:16-06:00 2026-08-14T00:39:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1911 39bf80b75921a1ceb6e6d20d1d1c8931a20d4d7b 2026-08-14T00:40:16-06:00 2026-08-14T00:40:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1912 f3c509f7e15a09f9044e8856acf4db605f4e8d0a 2026-08-14T00:50:55-06:00 2026-08-14T00:50:55-06:00 feat(phase-30 S50): aprop_autodraft β€” mechanical A-prop drafts at zero token cost (Β§171a) +1913 4e44032e94c900b08d5fda6a61b94d4ec11f5f03 2026-08-14T00:57:44-06:00 2026-08-14T00:57:44-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1914 357afb29c703348f9351a3c05680856914b78705 2026-08-14T00:58:35-06:00 2026-08-14T00:58:35-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1915 8cddbef8316f40db3c41e88f0d80062dd0259fc9 2026-08-14T00:59:28-06:00 2026-08-14T00:59:28-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1916 c6853c1d454c33d712d453953f6ef7cf344e24d6 2026-08-14T01:00:20-06:00 2026-08-14T01:00:20-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1917 b3143ce42252587be46ebc2d886db15c71e5271b 2026-08-14T01:01:13-06:00 2026-08-14T01:01:13-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1918 78d5259293788e9ac4817b993974461e1a56adcd 2026-08-14T01:02:09-06:00 2026-08-14T01:02:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1919 c74a9ef02577cd1a78dd32cdbc4519b8299a5039 2026-08-14T01:26:32-06:00 2026-08-14T01:26:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1920 a00747dc35114917a78635c24a1009dfe978416a 2026-08-14T01:29:10-06:00 2026-08-14T01:29:10-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1921 0e8f0e5ddb24706aee4cf6d1d98af8e5905f033c 2026-08-14T01:31:49-06:00 2026-08-14T01:31:49-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1922 ad2917f463275b29177c9a8067a8ff8b020d6a69 2026-08-14T01:35:38-06:00 2026-08-14T01:35:38-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1923 d9c7fddf410b51fa009cc54ec70c3493bb52bb0f 2026-08-14T01:36:31-06:00 2026-08-14T01:36:31-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1924 05f924e9f2add7f51a0cf001e006809373e61e79 2026-08-14T01:37:37-06:00 2026-08-14T01:37:37-06:00 feat(phase-30 S49): propagate func_8017DEA0 (adapt lane) +1925 4fc14796d6befdc229bc93b9cb7370c38f2cce39 2026-08-14T01:39:16-06:00 2026-08-14T01:39:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1926 5fd8979864c27f296ead08f0ed762e06cabb2622 2026-08-14T01:40:05-06:00 2026-08-14T01:40:05-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1927 e6e806aebd49be615128cb109593861465807739 2026-08-14T01:40:54-06:00 2026-08-14T01:40:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1928 9b6175f4ba5da34d445288e0df08457cc20513b8 2026-08-14T01:41:43-06:00 2026-08-14T01:41:43-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1929 7cfc35e1f54e15b8a748c95c87a495ab341796eb 2026-08-14T01:45:00-06:00 2026-08-14T01:45:00-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1930 8a75972e0edbd655184c6b965637188a2a7c69bc 2026-08-14T01:45:51-06:00 2026-08-14T01:45:51-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1931 fdfde401363622b3f6156df7cb48e12770620226 2026-08-14T01:46:39-06:00 2026-08-14T01:46:39-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1932 af11b6bceeeb3fa0d6c0dd1e3030ed287311f771 2026-08-14T01:47:28-06:00 2026-08-14T01:47:28-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1933 624c5fc731be6e9421309b7d390c4abcd669c960 2026-08-14T01:48:17-06:00 2026-08-14T01:48:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1934 85fb289db582d842fc41dc059fa187bb992e76ea 2026-08-14T01:49:06-06:00 2026-08-14T01:49:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1935 fc794966a68017e7f4e7d23bebc42e350cc8c8b2 2026-08-14T01:49:54-06:00 2026-08-14T01:49:54-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1936 7e282919ca61b6b89ae2b37a09e4431d94ed0f15 2026-08-14T01:50:43-06:00 2026-08-14T01:50:43-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1937 fe2cb7d070ec475c31db80af8810e3fadf17f6e2 2026-08-14T01:51:32-06:00 2026-08-14T01:51:32-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1938 6e3fe903d1e507429dca92729594aba2d3864623 2026-08-14T01:52:21-06:00 2026-08-14T01:52:21-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1939 6487910502eeb581001108f22eaa17637f3c698a 2026-08-14T01:53:11-06:00 2026-08-14T01:53:11-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1940 46f8a661940e4b7c1aec3c50c04962e6d846d4be 2026-08-14T01:54:01-06:00 2026-08-14T01:54:01-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1941 a1b288765c5cae40f845c2744309a93497486dd9 2026-08-14T01:54:50-06:00 2026-08-14T01:54:50-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1942 b665e05f2998ab5898b84930ba0f833f0848b082 2026-08-14T01:55:39-06:00 2026-08-14T01:55:39-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1943 491bfc4e9805b69ddafedbcec4e9a9bad084f826 2026-08-14T01:56:27-06:00 2026-08-14T01:56:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1944 728cecdf853942f1c6124833d184be338bf264d8 2026-08-14T01:57:16-06:00 2026-08-14T01:57:16-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1945 a2e04d30fc2bd3580ac5ccd46cab9947316a680a 2026-08-14T01:58:04-06:00 2026-08-14T01:58:04-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1946 7271687eeedf943e0c0c2903d4f8ab312ceff4da 2026-08-14T01:58:53-06:00 2026-08-14T01:58:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1947 9fc77ff6c30650b9e197f05127c1044efbfcb06b 2026-08-14T01:59:42-06:00 2026-08-14T01:59:42-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1948 ec02ef71e2b98b7f779b73b34bfba8e4ba5abbf2 2026-08-14T02:00:31-06:00 2026-08-14T02:00:31-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1949 d889f85dc3511e3258793d57117a5000cb3275f8 2026-08-14T02:01:19-06:00 2026-08-14T02:01:19-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1950 3414d7295929c698d9936f7ad13475e428ac1d4b 2026-08-14T02:02:08-06:00 2026-08-14T02:02:08-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1951 6f975634c67678edf67a2df3f1f62161816a2562 2026-08-14T02:02:57-06:00 2026-08-14T02:02:57-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1952 bf15795e841258832b4ca06041d393df6042dfbb 2026-08-14T02:07:17-06:00 2026-08-14T02:07:17-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1953 59ff096768cf33bc3368d94bb93ed050d3aa6641 2026-08-14T02:15:17-06:00 2026-08-14T02:15:17-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1954 5008edb28817136b889472ad4cb242f9e21c0bd9 2026-08-14T02:16:10-06:00 2026-08-14T02:16:10-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1955 83d080142d24c2803aa26da5b435f0c84efd00af 2026-08-14T02:18:13-06:00 2026-08-14T02:18:13-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1956 067a85f7ac70f55dbafb2bd2decc24d6d7906c81 2026-08-14T02:19:07-06:00 2026-08-14T02:19:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1957 4cb8410bfed9864b8727c344db2a7e476e5caec8 2026-08-14T02:23:27-06:00 2026-08-14T02:23:27-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1958 2e0d36d95a19fc0fa9161ffe5a82c20a6444f2a6 2026-08-14T02:28:03-06:00 2026-08-14T02:28:03-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1959 669be2539412d4aff82cbc6c7a2cadd31a457af8 2026-08-14T02:29:06-06:00 2026-08-14T02:29:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1960 058e675e00fb9fb160903c7218f2cf74502062df 2026-08-14T02:30:19-06:00 2026-08-14T02:30:19-06:00 feat(decomp): worker gate β€” +11 fns x0 propagated (fleet 95.2%) +1961 7bf55fe55d245b991e24ff4e111b54c963eebe17 2026-08-14T02:33:17-06:00 2026-08-14T02:33:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1962 3216880f7da183aa9009c75f555ceec38bb51d4c 2026-08-14T02:34:19-06:00 2026-08-14T02:34:19-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +1963 de9f5088abc8ed503c031c96ba95898466330368 2026-08-14T02:35:13-06:00 2026-08-14T02:35:13-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1964 5a7ca7d80a72ce306151ac87aff80b71f5ec8a0f 2026-08-14T02:36:02-06:00 2026-08-14T02:36:02-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1965 bdd2d1826ef6527f509907b240028b1be8de5395 2026-08-14T02:36:56-06:00 2026-08-14T02:36:56-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1966 5336c9c96f822510af628bb4d87fc9e66f942559 2026-08-14T02:37:49-06:00 2026-08-14T02:37:49-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1967 d1840d84926619338f0bc531ece11712178179d8 2026-08-14T02:39:53-06:00 2026-08-14T02:39:53-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1968 11844841f8edab03592b7ae6f4ef3003ce009475 2026-08-14T02:40:47-06:00 2026-08-14T02:40:47-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1969 66741d3b703e47b2056a2a68c4e45c2f996574cf 2026-08-14T02:41:44-06:00 2026-08-14T02:41:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1970 ad8430ab1560662383b4fb5f52a1575282ddb3f8 2026-08-14T02:42:44-06:00 2026-08-14T02:42:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1971 39006bcc3e7ea0ec024c13684692233646a96ce6 2026-08-14T02:43:46-06:00 2026-08-14T02:43:46-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1972 70763e968c6f810d822b4fd8af941ba3c75e229b 2026-08-14T02:44:50-06:00 2026-08-14T02:44:50-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1973 eca42b7f1839a09a8385f07dd009d6d4e02e56e4 2026-08-14T02:45:43-06:00 2026-08-14T02:45:43-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1974 8b14d4ce3a2a8dee8903cc938ccf62c81115259a 2026-08-14T02:47:44-06:00 2026-08-14T02:47:44-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1975 96559642b83d815c6594c8a263314e808c825a87 2026-08-14T02:48:38-06:00 2026-08-14T02:48:38-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1976 70e66f6f5e4f0ee7641e49f485093414afbc3434 2026-08-14T02:49:32-06:00 2026-08-14T02:49:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1977 28008eea67b9f4b4d4a4bc4f4a1e4e66f3450658 2026-08-14T02:50:26-06:00 2026-08-14T02:50:26-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1978 b27afbbf25937b5d5f5d3c48e4de1411ab32f00e 2026-08-14T02:51:16-06:00 2026-08-14T02:51:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1979 af2f6f58d5295d229cd88b368cc44fd7e872b1cc 2026-08-14T02:52:09-06:00 2026-08-14T02:52:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1980 e6e462c6d11eb8226b125c6bb51231e365f9addb 2026-08-14T02:53:03-06:00 2026-08-14T02:53:03-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1981 501d6badc02a1d8892563c7a88f7adee74c4ee0e 2026-08-14T02:54:03-06:00 2026-08-14T02:54:03-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1982 4751f0673c4b920a6f553ce8e34fc2ad37f01f70 2026-08-14T02:55:04-06:00 2026-08-14T02:55:04-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1983 4421eb8c442685f5395de3ae0cfced1792e402d0 2026-08-14T02:55:58-06:00 2026-08-14T02:55:58-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1984 5a4295f462c997d5dfc46857db08c22303107e28 2026-08-14T02:56:59-06:00 2026-08-14T02:56:59-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1985 e4b96d9bc70d1d2740f8b6f862d6f633fb76d820 2026-08-14T02:58:55-06:00 2026-08-14T02:58:55-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1986 dd6e1f242529baaca423516b70c023bcba76043e 2026-08-14T02:59:53-06:00 2026-08-14T02:59:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1987 029ad2fb7a353d4a5ef7404af05f97194bbe320b 2026-08-14T03:00:54-06:00 2026-08-14T03:00:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1988 65bae195e6cbbc08cd110dc900de86c9acda59c1 2026-08-14T03:05:12-06:00 2026-08-14T03:05:12-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1989 a3a7043e09301c7a4cf29a699c635e3d5cdc5869 2026-08-14T03:09:30-06:00 2026-08-14T03:09:30-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +1990 f02687a1320e9f7a66285c453874f3af7b1421e2 2026-08-14T03:10:24-06:00 2026-08-14T03:10:24-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1991 5d7854f6688660021bc61b866b254659770f01d1 2026-08-14T03:12:17-06:00 2026-08-14T03:12:17-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +1992 c8016ad863ff618c062c24b46e54866037d2ecc0 2026-08-14T03:13:11-06:00 2026-08-14T03:13:11-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1993 4e0aafab80e867c1b3af11f0a9c881c1905da957 2026-08-14T03:14:14-06:00 2026-08-14T03:14:14-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1994 7f35c59701b59a4c7f40e3d3b259bc1049985b30 2026-08-14T03:15:03-06:00 2026-08-14T03:15:03-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1995 a6c8d3c0fa56f180305977430f676cf2177c0b82 2026-08-14T03:15:57-06:00 2026-08-14T03:15:57-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1996 f911c42b8bcebfd9a4eebed7eafe421d92708579 2026-08-14T03:16:56-06:00 2026-08-14T03:16:56-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1997 3ebc8ea3f7341e682d38ab96b7d947943b237dc6 2026-08-14T03:17:50-06:00 2026-08-14T03:17:50-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +1998 ebac9431a273bde28375a66e0949538be47f20a6 2026-08-14T03:18:39-06:00 2026-08-14T03:18:39-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +1999 85f2e712590f66feabb8c9b446ae2106bdacd8ef 2026-08-14T03:19:42-06:00 2026-08-14T03:19:42-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +2000 e604708e710a360099151ff6432b702eb7fdfc76 2026-08-14T03:20:49-06:00 2026-08-14T03:20:49-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2001 8631936e52d3c71c9b2b29dc6f7ac2f5f066aa6d 2026-08-14T03:21:53-06:00 2026-08-14T03:21:53-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +2002 29ca19be7ef0a65d46942a12d8aa13bd292415cd 2026-08-14T03:23:00-06:00 2026-08-14T03:23:00-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2003 930d9739e30300e0d66eeeb054124bf39dfd172a 2026-08-14T03:23:53-06:00 2026-08-14T03:23:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2004 88a5dacc65f6f904ba6898dfa4ea2af9fbee293b 2026-08-14T03:24:47-06:00 2026-08-14T03:24:47-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2005 92c2335acf22de7db785db3becd03d9d5465dcdb 2026-08-14T03:25:36-06:00 2026-08-14T03:25:36-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2006 3e6e7cafd58c0a7fe040827dcda59b94f0af71ba 2026-08-14T03:27:33-06:00 2026-08-14T03:27:33-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2007 251d5d87e912106e2e3711c3c8ab48e9404fac3d 2026-08-14T03:29:29-06:00 2026-08-14T03:29:29-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2008 ec741e2b463a3b53f17bf941d58e3831e8dca587 2026-08-14T03:30:22-06:00 2026-08-14T03:30:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2009 4c5fe72a718190c924205b583d6a44b2c158e177 2026-08-14T03:31:16-06:00 2026-08-14T03:31:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2010 794063d6d5e91d319c6ac99388c6120fbc8af8ad 2026-08-14T03:32:14-06:00 2026-08-14T03:32:14-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2011 a4509a73064bc544af557afbddc6ca5599ffaea4 2026-08-14T03:33:07-06:00 2026-08-14T03:33:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2012 8ef3a7324395ce389ee5e964b487baa479f8f8b3 2026-08-14T03:34:09-06:00 2026-08-14T03:34:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2013 09ace9b2be98c239a6b473b3a8b29ced9a7681a7 2026-08-14T03:36:00-06:00 2026-08-14T03:36:00-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2014 7c741d84d29be1be370a7d27f6ee8badb0c38b2c 2026-08-14T03:37:02-06:00 2026-08-14T03:37:02-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2015 44bfc596abb778759fc88456256fdd6728b5f8f4 2026-08-14T03:39:04-06:00 2026-08-14T03:39:04-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 95.2%) +2016 bbc3ccc7c3edcbe110f0857a49d3cd77c575b3b7 2026-08-14T03:41:02-06:00 2026-08-14T03:41:02-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2017 66f901d243d3748feaf75130e8fe058c369f81af 2026-08-14T03:42:56-06:00 2026-08-14T03:42:56-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2018 0c7812f712ee0dbaa1faeb8e8ac0813c7e097452 2026-08-14T03:44:59-06:00 2026-08-14T03:44:59-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2019 47818696f85b4d9242ff3cbc119ae77b0d4db929 2026-08-14T03:46:00-06:00 2026-08-14T03:46:00-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2020 1da74441d8e5abc513cf6bb6aad900c5858078f0 2026-08-14T03:47:49-06:00 2026-08-14T03:47:49-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2021 3ba00c4ff35e47214f5ebf651376b2be6336fcf8 2026-08-14T03:49:48-06:00 2026-08-14T03:49:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2022 a83fc48238311f869700dff32aacaf4e2c5162c6 2026-08-14T03:50:49-06:00 2026-08-14T03:50:49-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2023 f9a555d5cd9907afdf271b8c271b25df3135b5c5 2026-08-14T03:51:58-06:00 2026-08-14T03:51:58-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 95.2%) +2024 b8500524ddfa721df0a8684dd99582126fa554eb 2026-08-14T03:52:48-06:00 2026-08-14T03:52:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2025 657bdc15c0a5503f13b29b1e08928767fce43e57 2026-08-14T03:54:45-06:00 2026-08-14T03:54:45-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2026 2616998bb7b80df8ee2f05db6ec80c5c74f85063 2026-08-14T03:56:40-06:00 2026-08-14T03:56:40-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2027 92ee9a26bf1527c91e6b8060cc6efa5abf24c4eb 2026-08-14T03:57:45-06:00 2026-08-14T03:57:45-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +2028 c143d3eb3df1ed9716636fccec661073b24682f5 2026-08-14T03:58:39-06:00 2026-08-14T03:58:39-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2029 959c682f740c86ff6ea856de64563a5bb25c77d9 2026-08-14T03:59:32-06:00 2026-08-14T03:59:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2030 023800a6fecd73e7f8978e03d635ece75dc43137 2026-08-14T04:01:40-06:00 2026-08-14T04:01:40-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.2%) +2031 dd3c408921c78cbea79e56d376d0533304407234 2026-08-14T04:03:40-06:00 2026-08-14T04:03:40-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2032 0997d8e08d541c6bb0559051ab2464188dbdb604 2026-08-14T04:04:31-06:00 2026-08-14T04:04:31-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2033 eb84de0c52b16617cb5d3710b43dbff023ccf7b0 2026-08-14T04:05:20-06:00 2026-08-14T04:05:20-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2034 8f1bbc2da97b11a932efab7e8a9e43b97c509e16 2026-08-14T04:06:14-06:00 2026-08-14T04:06:14-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2035 e2007a95747ee9759dbad28d80e39a1e112fd99d 2026-08-14T04:07:03-06:00 2026-08-14T04:07:03-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2036 9d320df76bb642509edccc8bd0c737369a5b2457 2026-08-14T04:07:52-06:00 2026-08-14T04:07:52-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +2037 41b7ade109faed81af55c0788852afd140c4d125 2026-08-14T04:08:46-06:00 2026-08-14T04:08:46-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2038 41eccd062e5cbce6389ad37f4d5b45a01d6c3877 2026-08-14T04:10:32-06:00 2026-08-14T04:10:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2039 4651e70e1e45d97cd37eaf983dc2922be9f54b7b 2026-08-14T04:11:28-06:00 2026-08-14T04:11:28-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2040 f5f2e80cc1fb72d3e5c81b1111b6d8291103ab04 2026-08-14T04:14:21-06:00 2026-08-14T04:14:21-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2041 3539b3940018827e037509384547e54a568b5fb5 2026-08-14T04:15:15-06:00 2026-08-14T04:15:15-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.2%) +2042 907b68675dcaee6c653856a6ff0721a703eb8aba 2026-08-14T04:16:12-06:00 2026-08-14T04:16:12-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.2%) +2043 203d1e055f536f610f15ed76a807fe7c52936079 2026-08-14T04:17:02-06:00 2026-08-14T04:17:02-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.2%) +2044 6d95f2cb5d48dcbaf8a2c285ba495c333dac5d72 2026-08-14T04:18:08-06:00 2026-08-14T04:18:08-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.3%) +2045 8c8afef35e7f149060a72bf8982ce4800764ac97 2026-08-14T04:20:10-06:00 2026-08-14T04:20:10-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.3%) +2046 3cd67880ecc2341631d6f465d44f9d443ed7d930 2026-08-14T04:21:00-06:00 2026-08-14T04:21:00-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2047 91872aee1ee3831237618e3e0689174922be1d9c 2026-08-14T04:21:57-06:00 2026-08-14T04:21:57-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2048 8ec9fe2d6aabcc96af1752e2e57172ba244d3f85 2026-08-14T04:32:51-06:00 2026-08-14T04:32:51-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.3%) +2049 7e90ad4c4f1ed308612359439f734b738f4318f2 2026-08-14T04:54:22-06:00 2026-08-14T04:54:22-06:00 feat(phase-30 S49): propagate func_8017E0C0 (adapt lane) +2050 0e94ba2f5c49e8a9c257d77713b563c9b6d1321c 2026-08-14T04:56:38-06:00 2026-08-14T04:56:38-06:00 feat(phase-30 S49): propagate func_8017DDBC (adapt lane) +2051 8b1354907e4db839408863b4eca29ca610420f22 2026-08-14T04:56:59-06:00 2026-08-14T04:56:59-06:00 feat(phase-30 S49): propagate func_80180B20 (adapt lane) +2052 e65d990b139838f60e44f0bbb1171b831eab9117 2026-08-14T04:57:13-06:00 2026-08-14T04:57:13-06:00 feat(phase-30 S49): propagate func_801894BC (adapt lane) +2053 028d9a496a0b1d835dbad3270e9e6734529aa62c 2026-08-14T05:00:21-06:00 2026-08-14T05:00:21-06:00 feat(phase-30 S49): propagate func_8017DCD8 (adapt lane) +2054 2ab342e3d90cc16b8ded2fc6bca3e0366341545a 2026-08-14T05:01:49-06:00 2026-08-14T05:01:49-06:00 feat(phase-30 S49): propagate func_8017CCF8 (adapt lane) +2055 972dfbc886edfd51fb2fee08125c69153d99880e 2026-08-14T05:05:56-06:00 2026-08-14T05:05:56-06:00 feat(phase-30 S49): propagate func_8017F4F8 (adapt lane) +2056 16b2c1fbf23a05a759f9432c6c73166003ca0705 2026-08-14T05:06:15-06:00 2026-08-14T05:06:15-06:00 feat(phase-30 S49): propagate func_8017F8A8 (adapt lane) +2057 bd885fee053780b3bbba8035037f2d31b6b7554d 2026-08-14T05:07:36-06:00 2026-08-14T05:07:36-06:00 feat(phase-30 S49): propagate func_801817FC (adapt lane) +2058 9e92c39957ec3ad19c784f2c07aee397c87c2b53 2026-08-14T05:07:57-06:00 2026-08-14T05:07:57-06:00 feat(phase-30 S49): propagate func_80188074 (adapt lane) +2059 5b9ceafa8b58183f7b9592f0f3bcb36b0d355e0a 2026-08-14T05:10:22-06:00 2026-08-14T05:10:22-06:00 feat(phase-30 S49): propagate func_80183A08 (adapt lane) +2060 8cc08a7686e81e834ed44d2362dfb99d8ec597b6 2026-08-14T05:10:32-06:00 2026-08-14T05:10:32-06:00 feat(phase-30 S49): propagate func_80182120 (adapt lane) +2061 62341f4a48162117db5532b24bfa939b7e338721 2026-08-14T05:14:31-06:00 2026-08-14T05:14:31-06:00 feat(phase-30 S49): propagate func_8017D964 (adapt lane) +2062 b064d2b869b6637447e83ec2273e164705f8031a 2026-08-14T05:19:22-06:00 2026-08-14T05:19:22-06:00 feat(phase-30 S49): propagate func_80182D0C (adapt lane) +2063 4fde6e3e81c4aba2d8ac44fad9adcb5fed12a3c3 2026-08-14T05:25:17-06:00 2026-08-14T05:25:17-06:00 feat(phase-30 S49): propagate func_8017F390 (adapt lane) +2064 9a3e438ed9d930ceff10b64ae5523562ccb98295 2026-08-14T05:28:40-06:00 2026-08-14T05:28:40-06:00 fix(phase-30 S50): macro seeds carry only the DEFINITION, not the macro's decl layer +2065 91b4e4969eef4fbfe8ac2e5be954247e34a49bcd 2026-08-14T06:03:15-06:00 2026-08-14T06:03:15-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2066 bad8efd27f2e8f78f42c38ff35735ce4bc631f9f 2026-08-14T06:05:44-06:00 2026-08-14T06:05:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2067 8640827993f4084b1d5ebf2ca4bba6873a112b46 2026-08-14T06:06:33-06:00 2026-08-14T06:06:33-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2068 302e6ca8b8f0ce5665c76f95e9ed2ca03e0f571d 2026-08-14T06:07:22-06:00 2026-08-14T06:07:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2069 ef4863e6484f7b98be05807ebf4f6b9cabe9df0c 2026-08-14T06:08:11-06:00 2026-08-14T06:08:11-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2070 ad9fb98223bbb4338f7c55be004bbc8867167b96 2026-08-14T06:24:11-06:00 2026-08-14T06:24:11-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2071 bfda13fa3873256b2626987e2881c9931ce29a11 2026-08-14T06:25:16-06:00 2026-08-14T06:25:16-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2072 7f83f5d38f3ee1e2db6a4a5adc45649e613d7e4d 2026-08-14T06:29:14-06:00 2026-08-14T06:29:14-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2073 ca8e0bc5fd9b210a3b0bf029e2b394c5d50b412f 2026-08-14T06:50:30-06:00 2026-08-14T06:50:30-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2074 af6f262fe03dd82fba8964fc2a6f0b37e1f46daf 2026-08-14T06:55:19-06:00 2026-08-14T06:55:19-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2075 6b915b1ec5cc89ac4a0f22cc8475ccd14959a225 2026-08-14T06:56:13-06:00 2026-08-14T06:56:13-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2076 6b08b0a335ffdb2fe099e32ec12d06b6ba044218 2026-08-14T06:57:07-06:00 2026-08-14T06:57:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2077 1f2059ed9a673c59552d71aa3714205ec7237f5d 2026-08-14T06:58:07-06:00 2026-08-14T06:58:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2078 6df5e58f754f2754c1db2281254d59c9c1da973d 2026-08-14T06:59:01-06:00 2026-08-14T06:59:01-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2079 a7abad3b2994b6480f7be65e16b12a5dcbb5ed67 2026-08-14T07:00:54-06:00 2026-08-14T07:00:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2080 7f3e35256ae44aa467a7e8c5131bd9d55797fb06 2026-08-14T07:01:56-06:00 2026-08-14T07:01:56-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.3%) +2081 868805387e3874ef0a7d758ca2f7aca56b48c2ac 2026-08-14T07:03:05-06:00 2026-08-14T07:03:05-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2082 55175f589eb73502490961e79d21ad2d2efebf9f 2026-08-14T07:05:09-06:00 2026-08-14T07:05:09-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2083 2ac16f96c32b71a51d4b57d591db5189dd564b48 2026-08-14T07:12:19-06:00 2026-08-14T07:12:19-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2084 295e9dd54d8b4f740fc0e9a6785d55a12563b814 2026-08-14T07:30:30-06:00 2026-08-14T07:30:30-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2085 b2f932314ce4ef0e7cf9919ff77b1c3f1c427980 2026-08-14T07:31:24-06:00 2026-08-14T07:31:24-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 95.3%) +2086 c9f693d68acbc7cacb6a7405dbe1d33ad5d0110b 2026-08-14T07:35:33-06:00 2026-08-14T07:35:33-06:00 feat(phase-30 S49): propagate func_8017CE0C (adapt lane) +2087 f398dce9bf706e87bd4555bbc8ba0256f603985b 2026-08-14T07:35:48-06:00 2026-08-14T07:35:48-06:00 feat(phase-30 S49): propagate func_8017CF5C (adapt lane) +2088 e903713b710ff89c09467beea396da0793f96fd5 2026-08-14T07:42:19-06:00 2026-08-14T07:42:19-06:00 feat(phase-30 S50): the mechanical A-prop draft β€” 256 members banked with no agent in the loop +2089 a94973c5b83f4dbf88f51ba99628599f0dc3ae9f 2026-08-14T08:28:52-06:00 2026-08-14T08:28:52-06:00 chore(phase-30 S50): refresh the fleet digest after the S50 banks (tools-health green) +2090 456076617c093f74917162667a884a06a61ef141 2026-08-14T10:32:00-06:00 2026-08-14T10:32:00-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2091 6cf4494d11592635c7ea4fecb04a54952086067a 2026-08-14T10:32:52-06:00 2026-08-14T10:32:52-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2092 25ed3749774617516959a5fe64bb83da537ec434 2026-08-14T10:33:55-06:00 2026-08-14T10:33:55-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2093 cd68e8298c64c5b5a8b057120fe0546082babfd9 2026-08-14T10:34:53-06:00 2026-08-14T10:34:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2094 b7416aed5630617b910447333401604877d164c6 2026-08-14T10:35:46-06:00 2026-08-14T10:35:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2095 37ba5f02535488a224e38ced778851225c345ab7 2026-08-14T10:36:37-06:00 2026-08-14T10:36:37-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2096 b6ef08c290fc812791ead0f49c5bf59183583a99 2026-08-14T10:37:28-06:00 2026-08-14T10:37:28-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2097 70bc5ceb89dc5b7aa8d57e186647f35c65cdef67 2026-08-14T10:38:20-06:00 2026-08-14T10:38:20-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2098 9b75767de2ec80faf7dcad35cc8d4fbe072ade6c 2026-08-14T10:39:12-06:00 2026-08-14T10:39:12-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2099 f3265900dad4ebf72ad59d98c8b82ce682e9c526 2026-08-14T10:40:06-06:00 2026-08-14T10:40:06-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2100 e266685aa71b7c4a142ffcbcd3d9b52fd65313df 2026-08-14T10:41:00-06:00 2026-08-14T10:41:00-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2101 8e004ccf4a9a633fc4f2a4dd461c9a4e1c9d527d 2026-08-14T10:41:52-06:00 2026-08-14T10:41:52-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2102 1c5a79667407d8777daf6328b47667c37af2d516 2026-08-14T10:42:46-06:00 2026-08-14T10:42:46-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2103 8c688e53dd6761461d490043de96d3340d65c440 2026-08-14T10:43:40-06:00 2026-08-14T10:43:40-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2104 627231f58b233dce8c63596c2a2afaabea19da5f 2026-08-14T10:44:33-06:00 2026-08-14T10:44:33-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2105 4d83beee4bc52e147d2d472e34d56cc80fa4af2f 2026-08-14T10:45:26-06:00 2026-08-14T10:45:26-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2106 2d14f3848469c76fddbc54d81069d69b0c7a2467 2026-08-14T10:46:20-06:00 2026-08-14T10:46:20-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2107 72cba64bab4284cd45f2bab0bf4891256745ac81 2026-08-14T10:47:16-06:00 2026-08-14T10:47:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2108 e11e89a9457f8bc66e23e4f7de1149b606e2f326 2026-08-14T10:48:08-06:00 2026-08-14T10:48:08-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2109 ca59138a40d1b9aed33ea85b1fbd466b5f909542 2026-08-14T10:49:00-06:00 2026-08-14T10:49:00-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2110 a4253f394ab459e1b7263b72a32a63f2e57c227e 2026-08-14T10:49:52-06:00 2026-08-14T10:49:52-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2111 9e8f1f65d32e48f09f1ebd1b9550bfcef43bf403 2026-08-14T10:50:45-06:00 2026-08-14T10:50:45-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2112 c40a7560238a0164a549b7289a939b3cee7628b2 2026-08-14T10:51:37-06:00 2026-08-14T10:51:37-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2113 0294728f23770215b9c207c5e3368e8f5af9e6bd 2026-08-14T10:52:32-06:00 2026-08-14T10:52:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2114 e08612bcf5a983ef93c56fc439590580b4bfe8c1 2026-08-14T11:02:45-06:00 2026-08-14T11:02:45-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2115 46e8d7c9885944aadcc3119c9b5f693dd9c14917 2026-08-14T11:04:04-06:00 2026-08-14T11:04:04-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2116 398f9ca40d1a23e15534d7864e8c2f6c852a3ec4 2026-08-14T11:05:29-06:00 2026-08-14T11:05:29-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2117 7bd62faeb3b6e34e19b4670f9e6bc418cedcf587 2026-08-14T11:06:54-06:00 2026-08-14T11:06:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2118 6c3e63c5e9f7215ae7d3608e53430f812f110e9c 2026-08-14T11:08:15-06:00 2026-08-14T11:08:15-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2119 d89958b34117d8521ca93d3d797e911904bc4ff1 2026-08-14T11:08:47-06:00 2026-08-14T11:08:47-06:00 feat(phase-30 S49): propagate func_8017D808 (adapt lane) +2120 aa1b44498e42561b9043d2f43690338e48cf3edb 2026-08-14T11:12:50-06:00 2026-08-14T11:12:50-06:00 feat(phase-30 S49): propagate func_801E7DB4 (adapt lane) +2121 26f04b9b612c3a5ecca59e979d58471d4a76c3e7 2026-08-14T11:14:03-06:00 2026-08-14T11:14:03-06:00 feat(phase-30 S49): propagate func_801E7ED8 (adapt lane) +2122 9f188674dfee0e4064f9f6dc100875284f3b467f 2026-08-14T11:15:17-06:00 2026-08-14T11:15:17-06:00 feat(phase-30 S49): propagate func_801E7DA0 (adapt lane) +2123 9c16d8a8b8d8e55490639006f24c0c53574fb9dd 2026-08-14T11:16:31-06:00 2026-08-14T11:16:31-06:00 feat(phase-30 S49): propagate func_801E7EC4 (adapt lane) +2124 e7d61e823d271547db210e147f66a96eb4bd0e1e 2026-08-14T11:23:26-06:00 2026-08-14T11:23:26-06:00 feat(phase-30 S50): bank the top-reach families 0x801F1CD8 (41/41) and 0x8017D290 (9/9) +2125 d242877065e250166f5934a38e67277c50c10937 2026-08-14T12:08:50-06:00 2026-08-14T12:08:50-06:00 feat(phase-30 S50): func_8017C294 frame residual decoded to the instruction level (Β§172) β€” crack REFUTED across the reachable space, wall documented +2126 4fbe7687987e118f0026a86f61cb0b24c57685b7 2026-08-14T12:38:14-06:00 2026-08-14T12:38:14-06:00 docs(phase-30 S50-Max): func_8017C294 β€” the ordered Max finish: five new axes opened, all byte-refuted; Β§172 rewritten v2 + Β§172a tells (the idiom deliverable) +2127 fe1a0730e1c81bcced43b920faa0b0a9c874bc79 2026-08-14T12:44:25-06:00 2026-08-14T12:44:25-06:00 docs(phase-30 S50-Max): Β§172b β€” three more tells banked from the gcc read (sll/sra-16 register-promotion tell; swapped-arm select tell; ?: accumulator-order tell; div sign-correction reuse) +2128 fc33766950588bf25660a20a05a2a6594fc600dd 2026-08-14T13:00:07-06:00 2026-08-14T13:00:07-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 95.3%) +2129 c8628967f79f44de6950f38dec0cdfa5b1fc718c 2026-08-14T13:09:02-06:00 2026-08-14T13:09:02-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2130 f54d3d5a5c8b46e8e715ca35cb8c09e40b72801a 2026-08-14T13:16:42-06:00 2026-08-14T13:16:42-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2131 52898e3ff2867b49a2a5923dd82d17a796bec5a0 2026-08-14T13:17:41-06:00 2026-08-14T13:17:41-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2132 ca1c64f2828ff4235e44f13c5ddfb8e70702236b 2026-08-14T13:18:49-06:00 2026-08-14T13:18:49-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.3%) +2133 1cf47e8ef9824735e63a853bbb6cbd8fb71b469b 2026-08-14T13:19:58-06:00 2026-08-14T13:19:58-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2134 b5729d28aa333cd92c792dc5b080c88f32ee091d 2026-08-14T13:22:57-06:00 2026-08-14T13:22:57-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.3%) +2135 95351593e27970f6abf94fbd5750fa71d9241b47 2026-08-14T13:23:53-06:00 2026-08-14T13:23:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2136 6dabd41e424c629414dabf884dda2da2e19b4977 2026-08-14T13:28:46-06:00 2026-08-14T13:28:46-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2137 78699450251e3318a79a159727ab2fc576ab5c82 2026-08-14T13:29:42-06:00 2026-08-14T13:29:42-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2138 7eb62a8c5cbe262de9693af4cb08d571db5587d0 2026-08-14T13:30:38-06:00 2026-08-14T13:30:38-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2139 7590d2ecf3af04975a20c514e8514d914f0fd667 2026-08-14T13:31:33-06:00 2026-08-14T13:31:33-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2140 9e80e8183ec5ef753a518dd116057e6ebff6038d 2026-08-14T13:37:08-06:00 2026-08-14T13:37:08-06:00 feat(decomp): worker gate β€” +7 fns x0 propagated (fleet 95.3%) +2141 bc43e1cf80a2d32334cb0f85a055c6bd9ad1edac 2026-08-14T13:44:42-06:00 2026-08-14T13:44:42-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2142 2eb37df127d614720eb00b5de7b5b114b0cf67d9 2026-08-14T14:03:52-06:00 2026-08-14T14:03:52-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2143 561e985c75c6a83c94979fabd30c5a4c41addfac 2026-08-14T14:04:54-06:00 2026-08-14T14:04:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2144 82ef8d23ec1a2da5e944398b9287d752eba2fe76 2026-08-14T14:06:09-06:00 2026-08-14T14:06:09-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2145 38eebd85c76488ccea6d6ef694718004c16d7c86 2026-08-14T14:07:18-06:00 2026-08-14T14:07:18-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2146 63eba96a50feea6f631232a98b62bd3eecdce178 2026-08-14T14:08:39-06:00 2026-08-14T14:08:39-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2147 129d64bcd4a2686cc7517195230e7c048c4a821c 2026-08-14T14:09:48-06:00 2026-08-14T14:09:48-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2148 a9395eca42707e2a9656e7fe87d7a7fe03a6f219 2026-08-14T14:11:09-06:00 2026-08-14T14:11:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2149 2749e51d7eb9e03011d0c9c89924cfe92c1cf950 2026-08-14T14:12:27-06:00 2026-08-14T14:12:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2150 9a4a9f08ac1c4545f057c5aead86dc7ef51a412f 2026-08-14T14:13:36-06:00 2026-08-14T14:13:36-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2151 98ba99f615f434f381270c7bf6e782132161757e 2026-08-14T14:14:47-06:00 2026-08-14T14:14:47-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2152 6f5c59f7c7b2f7abcb4604d090d48772ef538c5e 2026-08-14T14:16:02-06:00 2026-08-14T14:16:02-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2153 81ce171f3d1f0c9b5ee7017b14e8d007d59c6783 2026-08-14T14:17:09-06:00 2026-08-14T14:17:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2154 274459b211be4d8906ab90ba2e74a4a680b42ff2 2026-08-14T14:18:11-06:00 2026-08-14T14:18:11-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2155 f2c82650d91cdb4306c6962aa0bd87f13b8b1e40 2026-08-14T14:19:05-06:00 2026-08-14T14:19:05-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2156 7f15ebd3e68871c4cbaaacebc19a4f9f1fe785f3 2026-08-14T14:21:16-06:00 2026-08-14T14:21:16-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2157 d6762b5e7d0d5b68e4f0f3005bf77b8e59bedae6 2026-08-14T14:22:20-06:00 2026-08-14T14:22:20-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2158 c897c4cf28819928e26c19135d169ace816337c8 2026-08-14T14:23:29-06:00 2026-08-14T14:23:29-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2159 40ee73ba757be8ea11862bea201ab9813372f8d0 2026-08-14T14:27:10-06:00 2026-08-14T14:27:10-06:00 feat(phase-30 S49): propagate func_8017E404 (adapt lane) +2160 1c631ff39ffb3075ec8134d1ba0ecd7f6fdc770d 2026-08-14T14:32:48-06:00 2026-08-14T14:32:48-06:00 feat(phase-30 S50-Max): the gcc-read audit β€” +52 banked, R22 213/213 (S50 FINAL v2 checkpoint) +2161 d6b38245e591651c32b91f9e132ea15b5df05fb5 2026-08-14T15:18:00-06:00 2026-08-14T15:18:00-06:00 chore(phase-30): CLOSE β€” overlays at their measured ceiling (95.3% instr / 90.0% distinct / 96.68% fn, 213/213) +2162 d6ade08f3ae403855743a5cd524a4a8778b14de0 2026-08-14T16:40:43-06:00 2026-08-14T16:40:43-06:00 feat(phase-31 T0): pivot log + instrument freshness + hygiene +2163 efc8c0d253892a1839f8602bf7c4961237ebef40 2026-08-14T17:06:12-06:00 2026-08-14T17:06:12-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2164 2d2eafcee2855601a0652d760e0b334c79e39904 2026-08-14T17:07:20-06:00 2026-08-14T17:07:20-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2165 f092ddf1d521717b635fe8e8d9a52703ae6fcc38 2026-08-14T17:15:05-06:00 2026-08-14T17:15:05-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2166 6d5e7d6758277a9eda747ec67add32bf0f2148b7 2026-08-14T17:32:03-06:00 2026-08-14T17:32:03-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2167 428b6ec953a3c8a79ffe552a61b285bfb333ed2a 2026-08-14T17:33:13-06:00 2026-08-14T17:33:13-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2168 f3e55b9859b0f743e72422318e3d3b1343d726ee 2026-08-14T17:34:22-06:00 2026-08-14T17:34:22-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2169 fbe66370eee1024c07e2527c23e9366609dde433 2026-08-14T17:37:27-06:00 2026-08-14T17:37:27-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2170 2a0ac5ab8de7c0e74c9f4f47122bccfe6b25f132 2026-08-14T17:40:28-06:00 2026-08-14T17:40:38-06:00 feat(phase-31 T1): integration quick-bank sweep β€” 8 banked, 0 agent tokens; symfix STALE-DELTA +2171 fa425f89a50552515782a6373087f2f6c331bbbf 2026-08-14T17:44:32-06:00 2026-08-14T17:44:32-06:00 feat(phase-31 T2): reference expansion β€” PsyQ SDK sample source extracted + gcc-2.7.2 completed +2172 22eed7d78ac0a30c2d236556e942d839dee58e12 2026-08-14T17:48:51-06:00 2026-08-14T17:48:51-06:00 feat(phase-31 T3): main enablement β€” sig-main at splat-true lengths + main streams +2173 636809714d2e734c354552fa79631182133a3aaf 2026-08-14T17:54:18-06:00 2026-08-14T17:54:18-06:00 feat(phase-31 T4): atlas_features.py β€” per-fn feature layer for the Frontier Atlas +2174 e18738c48e7114a0857e646ad9cd90d4c70bf96b 2026-08-14T18:06:46-06:00 2026-08-14T18:06:46-06:00 feat(phase-31 T5): THE FRONTIER ATLAS β€” 5,139 lever-labeled crack groups over all 12,058 open fns +2175 6e22d640a4f4199fb99fa1ea1c722f565a38784d 2026-08-14T18:32:42-06:00 2026-08-14T18:32:42-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2176 6ee1ef68e860c43183741ccaba22818d1190d0c9 2026-08-14T18:33:52-06:00 2026-08-14T18:33:52-06:00 feat(phase-31): t6-recover gate β€” +1 fns x0 propagated (fleet 95.3%) +2177 a159ccdaaf618f10c4e96e18d732198f9d8dce88 2026-08-14T18:36:12-06:00 2026-08-14T18:36:12-06:00 feat(phase-31): t6-recover gate β€” +7 fns x0 propagated (fleet 95.3%) +2178 1a8cda6c546ff7990e3cc19d0715c6d6595fc75e 2026-08-14T19:42:50-06:00 2026-08-14T19:42:55-06:00 feat(phase-31 T6): PLUMBING campaign β€” +9 banked (64% probe); recipe + 3 laws (Β§173) +2179 682d0fa1fdfddce878cc48f51e9a30da55919056 2026-08-14T19:49:22-06:00 2026-08-14T19:49:22-06:00 feat(phase-31 T7): family_align β€” aligned classifier + imm engine, NC'd; mechanical-cousin lane refuted by probe +2180 0840eda5bbface970efd8ef67cd6551f0d506ce1 2026-08-14T19:54:57-06:00 2026-08-14T19:54:57-06:00 feat(phase-31 T8): LEN+N lane β€” 587 near-misses routed; 345 wrong-drafts reclassified; detectors live +2181 6cd81173cd31c084435a60b15054beb2afb2666a 2026-08-14T19:59:21-06:00 2026-08-14T19:59:21-06:00 feat(phase-31 T9): warmstart feeder + weak-cards β€” the campaign lanes are armed +2182 173d18451458b9c6a752d2408811c005c050b571 2026-08-14T19:59:48-06:00 2026-08-14T19:59:48-06:00 chore(phase-31): refresh session checkpoint (build arc complete) +2183 93ae5eeed4b136eae05c0803191f130a89a1dd38 2026-08-14T20:37:58-06:00 2026-08-14T20:37:58-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2184 6d71385adfabbb01381141e8a3c0086b4b42c0ed 2026-08-14T20:39:40-06:00 2026-08-14T20:39:40-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2185 af2a53bba3aecf631ea81c121ad930ab3ec7a0fe 2026-08-14T20:41:29-06:00 2026-08-14T20:41:29-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2186 51d56418eaf9bb72c02465f5a4b3573d53555de1 2026-08-14T20:45:51-06:00 2026-08-14T20:45:51-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2187 4e9f2607bb0520b09eddf1da81137ff35c243863 2026-08-14T20:50:20-06:00 2026-08-14T20:50:20-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2188 740359a759640e2e3c470cf693e4c7a68bd3a1f1 2026-08-14T20:52:25-06:00 2026-08-14T20:52:25-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2189 d37b1fbee9e6707e4615c4fc15a601ec83c2dc8e 2026-08-14T20:54:15-06:00 2026-08-14T20:54:15-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2190 e8959813cb12f4daac1ba0a3249948669c6a5519 2026-08-14T20:55:29-06:00 2026-08-14T20:55:29-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2191 e0ca64a047dfabf7432963c70c95d131595106da 2026-08-14T20:57:29-06:00 2026-08-14T20:57:29-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2192 3a0e1dad4978725c436c5fbd29a5dbfe9c3ce31a 2026-08-14T20:58:25-06:00 2026-08-14T20:58:25-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2193 f4a92bcb8129e6218d928f847420baa75a4b87a5 2026-08-14T20:59:26-06:00 2026-08-14T20:59:26-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2194 f669f51313a7d4441fc5be09fd9e6c3282127cc1 2026-08-14T21:02:39-06:00 2026-08-14T21:02:39-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2195 bd7e078ed046e34d4c90066f1d07ba34e475ba9e 2026-08-14T21:04:26-06:00 2026-08-14T21:04:26-06:00 feat(phase-31): propagate func_8017C628 (gate lane) +2196 2655585c452e8cdccb1d431c839f95c42dc11332 2026-08-14T21:12:28-06:00 2026-08-14T21:12:28-06:00 feat(phase-31 T10 wave-A): adapt lane opens β€” 12 banked +1 prop (75% draft / 67% gate, ~117k tok/bank); ledger + lessons +2197 2ffe5760c8779fe6dcb4f1e952c6ef7a72d217ec 2026-08-14T21:23:34-06:00 2026-08-14T21:23:34-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2198 0d71ee33ea803ce485792ede943b0296bf4af280 2026-08-14T21:24:26-06:00 2026-08-14T21:24:26-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2199 f9f97f7c4cdae00645fe916717e4859798f7a28a 2026-08-14T21:25:22-06:00 2026-08-14T21:25:22-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2200 11c71252d3eaa72e08c083e902ad940b9f2f1876 2026-08-14T21:26:15-06:00 2026-08-14T21:26:15-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2201 64af697864ed2b497efb9d2aa99f82376c1dc6c8 2026-08-14T21:27:10-06:00 2026-08-14T21:27:10-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2202 f39351fafb0331fe58debedb72fe2713ad82404d 2026-08-14T21:28:14-06:00 2026-08-14T21:28:14-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2203 afde8654c50dc727433a365e5c56c89244fc9920 2026-08-14T21:29:05-06:00 2026-08-14T21:29:05-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2204 348d0b97a42fa2de2c51e859b774c86481ee6dda 2026-08-14T21:30:12-06:00 2026-08-14T21:30:12-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2205 59cf57a2a65640905fbcbf2c9b59ced4d3700f79 2026-08-14T21:31:18-06:00 2026-08-14T21:31:18-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2206 52fd02c6137eae7f3fea8c0886b80d1fef085f66 2026-08-14T21:32:21-06:00 2026-08-14T21:32:21-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2207 01dd3799e9fa5506af52933489c67ca90dda867f 2026-08-14T21:33:16-06:00 2026-08-14T21:33:16-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2208 0896b1122ebe43ebfe876d5e0706ca1911eb0db4 2026-08-14T21:34:18-06:00 2026-08-14T21:34:18-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2209 0bf83587d9134247af536a0433ed83ad3229b0e8 2026-08-14T21:35:13-06:00 2026-08-14T21:35:13-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2210 68e561b6d8bd09ec9703c4c942a24011e3663f3a 2026-08-14T21:36:14-06:00 2026-08-14T21:36:14-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2211 538e10efbf3ebd4f19aa8821eeb0659511221580 2026-08-14T21:37:26-06:00 2026-08-14T21:37:26-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2212 edb3636c2b5f6434108e57c3b2243855c999545e 2026-08-14T21:38:27-06:00 2026-08-14T21:38:27-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2213 a155410364bf45fcd758367065887e9fb2811dac 2026-08-14T21:39:18-06:00 2026-08-14T21:39:18-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2214 59ad0a35bc779a684d424afda164743152a97094 2026-08-14T21:40:18-06:00 2026-08-14T21:40:18-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2215 c7b1fc507a4e8d1564fa2be59cbe8f6cec1fabba 2026-08-14T21:41:13-06:00 2026-08-14T21:41:13-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2216 d78cb617f952dcf5d6660e242f1a69db7f93bf4a 2026-08-14T21:42:15-06:00 2026-08-14T21:42:15-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2217 cc6645d615388ef991fdf0ef85119ab327e5929b 2026-08-14T21:43:10-06:00 2026-08-14T21:43:10-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2218 606cb7ba7b81dc7b103a4dc634caf657ed61a616 2026-08-14T21:44:07-06:00 2026-08-14T21:44:07-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2219 b8c6859f7ed4aa2deff0810573b77426f9b76f16 2026-08-14T21:44:58-06:00 2026-08-14T21:44:58-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2220 10fcd1519ff0b42c88497b84232b38314c10aeb8 2026-08-14T21:45:55-06:00 2026-08-14T21:45:55-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2221 b5ad8ae431f40320e60cab74df739433d43a5862 2026-08-14T21:46:58-06:00 2026-08-14T21:46:58-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2222 ad961bfad913209de334737852c18c74a9fc5ee5 2026-08-14T21:47:57-06:00 2026-08-14T21:47:57-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2223 8c6907442a70d542d49542464d5b7e156ee0535f 2026-08-14T21:50:19-06:00 2026-08-14T21:50:19-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2224 75fd323677dfbb37b9a354f29407e9cb74426f2f 2026-08-14T21:51:23-06:00 2026-08-14T21:51:23-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2225 435f12fbeb40b040e84815a9834caa4fdbbc9d9e 2026-08-14T21:54:19-06:00 2026-08-14T21:54:19-06:00 feat(phase-31): propagate func_8017C1E8 (gate lane) +2226 d8251427a641313741373f25b2af88bfe4144a6a 2026-08-14T21:54:30-06:00 2026-08-14T21:54:30-06:00 feat(phase-31): propagate func_8017BF70 (gate lane) +2227 e0f7f181a53e9d4b30062a42c03850b69f4614d3 2026-08-14T21:54:42-06:00 2026-08-14T21:54:42-06:00 feat(phase-31): propagate func_801810AC (gate lane) +2228 acd8025341a6ccca03b7d2cc037b4a75f20505b2 2026-08-14T21:54:55-06:00 2026-08-14T21:54:55-06:00 feat(phase-31): propagate func_80185F24 (gate lane) +2229 3a9c46f28311ce0b50cf32fb9e52afabc89fc6eb 2026-08-14T21:56:49-06:00 2026-08-14T21:56:49-06:00 feat(phase-31): propagate func_8017DD7C (gate lane) +2230 84d0557829a01051cfd6a35cf3dd47a20e46da30 2026-08-14T21:59:39-06:00 2026-08-14T21:59:39-06:00 feat(phase-31): propagate func_8017E5CC (gate lane) +2231 e0c08e2de07f394e8d69398d1681afe47b6be4f2 2026-08-14T22:00:10-06:00 2026-08-14T22:00:10-06:00 feat(phase-31): propagate func_8018B158 (gate lane) +2232 9fddf15ec9cf79a7566583765f8d4f8239941a56 2026-08-14T22:00:48-06:00 2026-08-14T22:00:48-06:00 feat(phase-31): propagate func_801847FC (gate lane) +2233 e9e3db88de7b0ab4db0a2c8cd92c9fc3be4b0349 2026-08-14T22:03:10-06:00 2026-08-14T22:03:10-06:00 chore(phase-31): SESSION CHECKPOINT β€” campaign mid-flight; 65 banked this session; wave-B 35/37 (95%); resume steps + fuel inventory +2234 496e3757f2033d61f234a7cbc5bfe42f6225b4ac 2026-08-14T22:04:42-06:00 2026-08-14T22:04:42-06:00 docs(phase-31): cookbook Β§174 β€” the adapt-card wave recipe + 3 laws (R30, in-session) +2235 9d1e8e8c385335b997dd1238191eccc1b7c5559d 2026-08-14T22:26:33-06:00 2026-08-14T22:26:33-06:00 chore(phase-31): resume β€” owed R22 banked (213/213) + atlas regen at HEAD (11,994 open); wave-C fuel verified +2236 006495b10045cfbb5ae6016e712efa95a49c30d4 2026-08-14T22:51:21-06:00 2026-08-14T22:51:21-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2237 6afca3d47e64337c7b4ce36a2eb8c12bdce03b85 2026-08-14T22:53:40-06:00 2026-08-14T22:53:40-06:00 feat(phase-31): wave-C probe β€” bank func_80181724 + Β§174 Law 4 (the DEF-side prototype is a wave-prompt law) +2238 3b9719eab346f6aebc149ff6368b23d6766e4174 2026-08-14T23:06:15-06:00 2026-08-14T23:06:15-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2239 80da77f6fcdbd88fbbf297c051208b97fe4eea02 2026-08-14T23:07:11-06:00 2026-08-14T23:07:11-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2240 f31a4233c6d8e14cbb6c4d5e88becec3ec1a5a10 2026-08-14T23:08:03-06:00 2026-08-14T23:08:03-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2241 4d424e25db02d78f4370797d3b02a85705208626 2026-08-14T23:09:28-06:00 2026-08-14T23:09:28-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2242 40cef435a13c32f989c0cc5396dbb1e850af8e2c 2026-08-14T23:10:30-06:00 2026-08-14T23:10:30-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2243 97b286affbe32b1841a1580411bf92855e45edd2 2026-08-14T23:11:29-06:00 2026-08-14T23:11:29-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2244 49cac37c02e293bae89b29c3d21e66a3c77e2102 2026-08-14T23:12:29-06:00 2026-08-14T23:12:29-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2245 facce115f83760fe4eebd6e2fdcd835ce8005124 2026-08-14T23:13:39-06:00 2026-08-14T23:13:39-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2246 6fd9665a937ee5cf09f2a1b701abffff4f71946f 2026-08-14T23:14:47-06:00 2026-08-14T23:14:47-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2247 264ce7867c440c3c00bd241e5cd905f578d75d14 2026-08-14T23:15:51-06:00 2026-08-14T23:15:51-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2248 070d18fe87291c1e9e9f83d448888fe9cb47076f 2026-08-14T23:16:54-06:00 2026-08-14T23:16:54-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2249 1f42f4d18609118e888630783a7b176b6261f031 2026-08-14T23:17:46-06:00 2026-08-14T23:17:46-06:00 feat(phase-31): worker gate β€” +3 fns x0 propagated (fleet 95.3%) +2250 e454a09fd35dead183211dc9aed283b6e15fad16 2026-08-14T23:18:41-06:00 2026-08-14T23:18:41-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2251 a1d61cffa067b577125ee11f15f205cdadb1ca8d 2026-08-14T23:19:36-06:00 2026-08-14T23:19:36-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2252 489c0be5e29ec56252be0dfc12e7227d33e76cd7 2026-08-14T23:20:32-06:00 2026-08-14T23:20:32-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2253 743ee300221733a20587d093dd34cd8c071392cb 2026-08-14T23:21:27-06:00 2026-08-14T23:21:27-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2254 4178cf7f7717e837dce71e8954a6ca70d32e57cb 2026-08-14T23:22:22-06:00 2026-08-14T23:22:22-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2255 b3edb71b73707a679f6536dfd2ce38e132ec6f3c 2026-08-14T23:23:23-06:00 2026-08-14T23:23:23-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2256 013006b77330b6daa5eaab7ea7a5e8aee04b42f8 2026-08-14T23:25:40-06:00 2026-08-14T23:25:40-06:00 feat(phase-31): worker gate β€” +4 fns x0 propagated (fleet 95.3%) +2257 c9d3eeef8b5b98111f500ee2eb83b442a9409911 2026-08-14T23:26:36-06:00 2026-08-14T23:26:36-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2258 1337581c155738030ae4f5d34ab9cbf151cfb2c0 2026-08-14T23:27:32-06:00 2026-08-14T23:27:32-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2259 2685b5496a776aba971754b03399e70a1e7b0a3c 2026-08-14T23:28:37-06:00 2026-08-14T23:28:37-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2260 d4f739c949bed99acc93d3afbb33a70ba210e123 2026-08-14T23:29:33-06:00 2026-08-14T23:29:33-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2261 4ef0c5562203d8a8d7f3862e7327d3bcadb99915 2026-08-14T23:30:30-06:00 2026-08-14T23:30:30-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2262 939ab5576ab756b5d49f1f76e7e6f20497a6a743 2026-08-14T23:31:26-06:00 2026-08-14T23:31:26-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2263 fc6007f981af3360049afb690486fe93e41d915a 2026-08-14T23:32:23-06:00 2026-08-14T23:32:23-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2264 e75bf61c41d148a3882df22340a1a74b47a00e70 2026-08-14T23:32:35-06:00 2026-08-14T23:32:35-06:00 feat(phase-31): propagate func_8017DAAC (gate lane) +2265 fc36789c1530acf3e2278aeb40581044bfd18c22 2026-08-14T23:32:43-06:00 2026-08-14T23:32:43-06:00 feat(phase-31): propagate func_80180D48 (gate lane) +2266 a5677fdeacd675eb297358eb71dbb395c65db016 2026-08-14T23:33:17-06:00 2026-08-14T23:33:17-06:00 feat(phase-31): propagate func_8017DC4C (gate lane) +2267 a6055d001ec54454a68a1e7e9fe6c012083d2c4c 2026-08-14T23:33:33-06:00 2026-08-14T23:33:33-06:00 feat(phase-31): propagate func_8018942C (gate lane) +2268 32eaf37cb8e6bc94bf4a2c19a34583334207e07f 2026-08-14T23:34:29-06:00 2026-08-14T23:34:29-06:00 feat(phase-31): propagate func_801878B8 (gate lane) +2269 f46fce00fb18a8987a76c9a595090d6c60e36793 2026-08-14T23:34:48-06:00 2026-08-14T23:34:48-06:00 feat(phase-31): propagate func_80187E78 (gate lane) +2270 271ab7725c6cadde881714c2a199bfd18ed59b85 2026-08-14T23:35:08-06:00 2026-08-14T23:35:08-06:00 feat(phase-31): propagate func_80188418 (gate lane) +2271 c4308d551626ee6c284d5ae324a1336c3e2898b8 2026-08-14T23:36:23-06:00 2026-08-14T23:36:23-06:00 feat(phase-31): propagate func_8018BA18 (gate lane) +2272 79554d3b83b7c8a9c1ea207fa8586d99cbde1d24 2026-08-14T23:36:34-06:00 2026-08-14T23:36:34-06:00 feat(phase-31): propagate func_8018B7FC (gate lane) +2273 3bd2b7298cf7f5d713ba54687a8a4d599fc30079 2026-08-14T23:36:44-06:00 2026-08-14T23:36:44-06:00 feat(phase-31): propagate func_8018C038 (gate lane) +2274 4443b04cf0bfe88c7518ac8abfea01c743ee3b03 2026-08-14T23:36:55-06:00 2026-08-14T23:36:55-06:00 feat(phase-31): propagate func_8018B0AC (gate lane) +2275 238fdc53fd51cba6de01f92774f6f3344f5a1913 2026-08-14T23:37:05-06:00 2026-08-14T23:37:05-06:00 feat(phase-31): propagate func_80189DDC (gate lane) +2276 540d2cefaa13e65d0bdd93c0052c22d65334612e 2026-08-14T23:44:03-06:00 2026-08-14T23:44:03-06:00 feat(phase-31): wave C banked 32 (R22 213/213) + tools/build_wave.py; 3 instrument defects fixed +2277 dc23ff3626ab267b388b7282bdf8ae1d7c8aab11 2026-08-14T23:47:18-06:00 2026-08-14T23:47:18-06:00 fix(phase-31): gate_lane resolves a stub's home .c from corpus (R33) β€” it was blind to main +2278 aae76158f812e93d036d442ef97e43209951472e 2026-08-14T23:58:24-06:00 2026-08-14T23:58:24-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2279 e754458dd39c91d96b53d8097015e4d39bcf8601 2026-08-14T23:59:18-06:00 2026-08-14T23:59:18-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2280 93a7c7fc2a6ec2b98e8bc634948abd3ead64c6b2 2026-08-15T00:00:12-06:00 2026-08-15T00:00:12-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2281 4fa55f2f9f0ec990320054ee5a75aba6ba2236f3 2026-08-15T00:01:06-06:00 2026-08-15T00:01:06-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2282 01d61132ed6df1599d6b48a4250af68420fd69e3 2026-08-15T00:02:00-06:00 2026-08-15T00:02:00-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2283 99a71a7b3d74598cd7c7d33e3def66eff63db5c4 2026-08-15T00:02:54-06:00 2026-08-15T00:02:54-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2284 ea7609e3925e446a87831936ba1edc66b8c82f17 2026-08-15T00:03:55-06:00 2026-08-15T00:03:55-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2285 13a01a36ee78518f68de108c31024d925d8402ad 2026-08-15T00:04:49-06:00 2026-08-15T00:04:49-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2286 b74ab90a96f6f951d7a666b310fca61ea8f25cf1 2026-08-15T00:05:44-06:00 2026-08-15T00:05:44-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2287 4bc9a0980aabc74d2d8b5829f8a72a1c1996344d 2026-08-15T00:06:40-06:00 2026-08-15T00:06:40-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2288 da3129f6f7dbdb716659b58fd98080235e7a3e10 2026-08-15T00:07:34-06:00 2026-08-15T00:07:34-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2289 0fa386c14dfd5a4e2e65da2c11417bde3e6df86f 2026-08-15T00:08:27-06:00 2026-08-15T00:08:27-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2290 baa488ad94e212765f7b5eaf53ebaa145183b343 2026-08-15T00:09:20-06:00 2026-08-15T00:09:20-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2291 97c1ddf0d3b88e5396f06f3fabed386a20968624 2026-08-15T00:11:19-06:00 2026-08-15T00:11:19-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2292 27a879835ec0706f8a4c87ec165b48dfe8ec9652 2026-08-15T00:12:28-06:00 2026-08-15T00:12:28-06:00 feat(phase-31): worker gate β€” +12 fns x0 propagated (fleet 95.3%) +2293 041ebf31c850e1dec5f46b62c5c943ca83bab55c 2026-08-15T00:13:18-06:00 2026-08-15T00:13:18-06:00 feat(phase-31): worker gate β€” +5 fns x0 propagated (fleet 95.3%) +2294 3f567d55784783485140f2503238fbab8391c0ec 2026-08-15T00:14:12-06:00 2026-08-15T00:14:12-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2295 2ff02e521055272b50519a1b51f76b4e34a742aa 2026-08-15T00:15:11-06:00 2026-08-15T00:15:11-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2296 92f6cdd8aeb2a619ff4b718291df8df117b5b38b 2026-08-15T00:16:04-06:00 2026-08-15T00:16:04-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2297 b9bd116696014ebab62dad98c28c965ae43628ee 2026-08-15T00:16:57-06:00 2026-08-15T00:16:57-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2298 cf1122080710c7e2025d2d871b69c2f95c8bd2b3 2026-08-15T00:17:56-06:00 2026-08-15T00:17:56-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2299 575efd6ef368d8bdcb292f20e55e531be00e0b23 2026-08-15T00:18:55-06:00 2026-08-15T00:18:55-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2300 2fa5515136d844086f7c9f5110a19ff1a1bfe89d 2026-08-15T00:19:06-06:00 2026-08-15T00:19:06-06:00 feat(phase-31): propagate func_8017BFEC (gate lane) +2301 1f997192c33de659377c8898bc95359e6ea47dd4 2026-08-15T00:19:15-06:00 2026-08-15T00:19:15-06:00 feat(phase-31): propagate func_80189898 (gate lane) +2302 0d3bed88aae9cff38586005cfd3ec2daf0bf9a38 2026-08-15T00:19:24-06:00 2026-08-15T00:19:24-06:00 feat(phase-31): propagate func_80182630 (gate lane) +2303 75b01f013337624050d2ea3e4d23a4ea23ce9f63 2026-08-15T00:20:47-06:00 2026-08-15T00:20:47-06:00 feat(phase-31): propagate func_8017EBC8 (gate lane) +2304 3887005068185d3e0e1cfe0b0f904d0252ac0e8a 2026-08-15T00:21:27-06:00 2026-08-15T00:21:27-06:00 feat(phase-31): propagate func_8017DBDC (gate lane) +2305 aeabe3d485078aeec2b4cad4dc1ba03e13afe9bb 2026-08-15T00:21:37-06:00 2026-08-15T00:21:37-06:00 feat(phase-31): propagate func_8017F174 (gate lane) +2306 62b488d706e63f1542280598c8b40d163a116810 2026-08-15T00:21:46-06:00 2026-08-15T00:21:46-06:00 feat(phase-31): propagate func_8017FAAC (gate lane) +2307 b6daf72510e20d3f66b2fc26d91b36c16a5174b0 2026-08-15T00:21:56-06:00 2026-08-15T00:21:56-06:00 feat(phase-31): propagate func_8017FD88 (gate lane) +2308 44e6df94f3ed47d5a2ed9adc20ffb4ca3a06c7a3 2026-08-15T00:22:05-06:00 2026-08-15T00:22:05-06:00 feat(phase-31): propagate func_8017FD28 (gate lane) +2309 78e9a90dd6104727fb0d2c9de69cb9f15754f78f 2026-08-15T00:22:15-06:00 2026-08-15T00:22:15-06:00 feat(phase-31): propagate func_80183604 (gate lane) +2310 da135fb0061c74330c971e4bd072b5cc43da15bf 2026-08-15T00:23:08-06:00 2026-08-15T00:23:08-06:00 feat(phase-31): propagate func_80181648 (gate lane) +2311 ea60d4bf2ab51449fd0def8afe3e32822ac0f024 2026-08-15T00:23:18-06:00 2026-08-15T00:23:18-06:00 feat(phase-31): propagate func_801803BC (gate lane) +2312 26e1017081cf726bc0f091b58d06d9e9e5df2080 2026-08-15T00:23:44-06:00 2026-08-15T00:23:44-06:00 feat(phase-31): propagate func_8018BDA4 (gate lane) +2313 d7c3f880cebff456bf7c1032f271ee2e38306d18 2026-08-15T00:23:53-06:00 2026-08-15T00:23:53-06:00 feat(phase-31): propagate func_8018B660 (gate lane) +2314 e438963a002d262c191b7e2a0ea74a31ae0e3d30 2026-08-15T00:24:03-06:00 2026-08-15T00:24:03-06:00 feat(phase-31): propagate func_8018B614 (gate lane) +2315 00e79e77648465a81ebd3997dc96f887983d5f2f 2026-08-15T00:24:13-06:00 2026-08-15T00:24:13-06:00 feat(phase-31): propagate func_8018C1E0 (gate lane) +2316 1db86c257c9ccd1e127d7b179c10899ad67b6964 2026-08-15T00:24:23-06:00 2026-08-15T00:24:23-06:00 feat(phase-31): propagate func_8018C3F0 (gate lane) +2317 5266f803100a24bc20408fee0a321141b5373bc0 2026-08-15T00:24:48-06:00 2026-08-15T00:24:48-06:00 feat(phase-31): propagate func_8017DAC4 (gate lane) +2318 14fe335537bfd75aba2fd08684a3e47df8abf6c4 2026-08-15T00:27:09-06:00 2026-08-15T00:27:09-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2319 315e317d34ba1fe2992ee0f5565c9729f3afacb0 2026-08-15T00:28:03-06:00 2026-08-15T00:28:03-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2320 b833d8b50bece1c30bf2c251e3809f0f855696ba 2026-08-15T00:28:54-06:00 2026-08-15T00:28:54-06:00 feat(phase-31): worker gate β€” +2 fns x0 propagated (fleet 95.3%) +2321 cdf35c80dbe9ff0b5e4afde67f7a1c44e859bc82 2026-08-15T00:29:46-06:00 2026-08-15T00:29:46-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.3%) +2322 54f7575330c4f155e9924f45ad5cb25696104fc5 2026-08-15T00:30:01-06:00 2026-08-15T00:30:01-06:00 feat(phase-31): propagate func_8017FA58 (gate lane) +2323 587a98cb3237264e94c21b609c0a8044713c7662 2026-08-15T00:30:11-06:00 2026-08-15T00:30:11-06:00 feat(phase-31): propagate func_801815DC (gate lane) +2324 dde7a35ca3ea6bf141eae3bca736641b770061d3 2026-08-15T00:32:03-06:00 2026-08-15T00:32:03-06:00 feat(phase-31): wave D banked 45/48 + main link-blocker diagnosed; selector packs by gate group +2325 1a23d90b31b675615984fb3ed6365d0904bf2729 2026-08-15T00:35:03-06:00 2026-08-15T00:35:03-06:00 chore(phase-31): R22 213/213 after wave D; wave F launched (first TU-packed wave, 60 drafts/1 gate group) +2326 39ca4b70a3f7a2a0284c78a6b8ee490406e91312 2026-08-15T01:15:39-06:00 2026-08-15T01:15:39-06:00 feat(phase-31): worker gate β€” +50 fns x0 propagated (fleet 95.3%) +2327 32ce39bb12b10c948e617a3d35b9d761a646434a 2026-08-15T01:18:03-06:00 2026-08-15T01:18:03-06:00 feat(phase-31): propagate func_801898C8 (gate lane) +2328 ab649794ca83cc833ac6cc7999d484c4be42337c 2026-08-15T01:23:33-06:00 2026-08-15T01:23:33-06:00 feat(phase-31): wave F β€” 50 banked from ONE gate group; the TU-packed mass lane is the campaign shape +2329 a024049279822b38a62c976587bbeac4841e3541 2026-08-15T01:25:06-06:00 2026-08-15T01:25:06-06:00 feat(phase-31): worker gate β€” +6 fns x0 propagated (fleet 95.3%) +2330 e64a803609ba4c0e6facd1bb3995cf8c3e8054c2 2026-08-15T01:32:34-06:00 2026-08-15T01:32:34-06:00 fix(phase-31): aprop_symfix survives curated (non-hex) symbol names +2331 fc01c01bb1703363c32a99ce6e920968a4aa888a 2026-08-15T01:49:32-06:00 2026-08-15T01:49:32-06:00 feat(phase-31): worker gate β€” +32 fns x0 propagated (fleet 95.4%) +2332 efd0dd4ee1f8ee93063881d63ad60f9cd4cbadb7 2026-08-15T01:54:31-06:00 2026-08-15T01:54:31-06:00 feat(phase-31): wave G β€” 36/36 drafted, 32 banked, fleet 95.4%; Β§174 law 1b (PsyQ symbol names) +2333 3d58d596fdeb60adbddc6580c2ae57970b1e64b3 2026-08-15T02:10:09-06:00 2026-08-15T02:10:09-06:00 feat(phase-31): worker gate β€” +3 fns x0 propagated (fleet 95.4%) +2334 cb30f2679949f5c31cd17c35430b4a72ebd2e379 2026-08-15T02:10:46-06:00 2026-08-15T02:10:46-06:00 fix(phase-31): recover 3 falsely-withheld wave-G drafts (3/3 banked); symfix flags are ADVISORY +2335 b398a9d9083a26901efcf1a705d6effcdcdef83f 2026-08-15T02:33:02-06:00 2026-08-15T02:33:02-06:00 docs(phase-31): narrow main's link defect β€” retarget delta == sizeof(.text 800c2.o) == 0x2A0 +2336 b4537b86c0863f9c9168d9cea06fa2c4b0d10229 2026-08-15T02:44:58-06:00 2026-08-15T02:44:58-06:00 feat(phase-31): worker gate β€” +34 fns x0 propagated (fleet 95.4%) +2337 6d09d35b6db830447aaf0448f8801925f3b81ae1 2026-08-15T02:50:57-06:00 2026-08-15T02:50:57-06:00 feat(phase-31): wave H β€” 34 banked (1 gate group); cookbook Β§175 caller-saved pin hazard +2338 b5101909f43afb8fe47573389ab70b555d967576 2026-08-15T02:59:13-06:00 2026-08-15T02:59:13-06:00 CORRECTION(phase-31): main is NOT link-blocked β€” it was a stale-.ld gate path (R22 corollary) +2339 df24dc091eb5a9cf64ad5960f0fe353b0e7061ed 2026-08-15T03:10:28-06:00 2026-08-15T03:10:28-06:00 feat(phase-31): FIRST 4 MAIN-EXE FUNCTIONS BANKED β€” main is not blocked, it needs clean-rebuild gating +2340 f22d4c7e51e283eebc4196dde0411ef1d819999b 2026-08-15T03:20:13-06:00 2026-08-15T03:20:13-06:00 feat(phase-31): wave I β€” 44/44 banked (perfect sweep), R22 213/213 +2341 61806c8a31e51e055e8eac3c7d21986f1f8fe632 2026-08-15T03:33:16-06:00 2026-08-15T03:33:16-06:00 chore(phase-31): checkpoint β€” main open (4 banked), wave I 44/44, tooling debt logged; wave J (main) in flight +2342 b8dbf6f6a712be65488b14dabd39467f3b5c707b 2026-08-15T03:57:50-06:00 2026-08-15T03:57:50-06:00 feat(phase-31): wave J β€” 34 MAIN functions banked (main 4 -> 38), R22 213/213 +2343 c4dd60363d5dbef71324ebfc2f81844b9ed877f5 2026-08-15T04:10:37-06:00 2026-08-15T04:10:37-06:00 feat(phase-31): tools/gate_main.py β€” batch clean-rebuild gate for the main EXE +2344 e05f3e3e835903e8431b361d5805ded8c54b422d 2026-08-15T04:32:23-06:00 2026-08-15T04:32:23-06:00 fix(phase-31): gate_main typesig kept only the prefix β€” u8 D_x and u8 D_x[] compared EQUAL +2345 219fbd7e04e0cb705dfabf03ba8b797450916da9 2026-08-15T05:10:11-06:00 2026-08-15T05:10:11-06:00 fix(phase-31): gate_main FALSE PASS β€” sha() read a stale binary when the build failed +2346 cf36cf6f21c80da63fe6597979b2080354225334 2026-08-15T05:35:59-06:00 2026-08-15T05:35:59-06:00 feat(phase-31): wave K β€” 41 MAIN functions banked, R22 213/213 (main 38 -> 79) +2347 a8529821054377f52d1f02a9df9976cbc1b2c5b2 2026-08-15T06:02:18-06:00 2026-08-15T06:02:18-06:00 feat(phase-31): wave L β€” 42 MAIN functions banked, R22 213/213 (main 133 -> 175) +2348 00e018ee415c5e7c82dc484b123fd0e77c9a52b8 2026-08-15T06:10:09-06:00 2026-08-15T06:10:09-06:00 chore(phase-31): checkpoint β€” overnight result (~408 banked, main 0->175) + the main-lane runbook +2349 093a05ab3601320bc1f7bf6e704cf11b960f9e0b 2026-08-15T06:32:30-06:00 2026-08-15T06:32:30-06:00 feat(phase-31): gate_main strips duplicate typedefs on substitution (the wave-L loss) +2350 69b1ef8606c85d07097d3fd5a0af7dc1e1204907 2026-08-15T06:38:07-06:00 2026-08-15T06:38:07-06:00 feat(phase-31): worker gate β€” +40 fns x0 propagated (fleet 95.4%) +2351 8225ba9d8aa143fbec180246d64e517301c6e305 2026-08-15T06:41:54-06:00 2026-08-15T06:41:54-06:00 feat(phase-31): propagate func_8018AD3C (gate lane) +2352 40ee96738de0af1e0692122bf0a08f61b49d3d60 2026-08-15T06:51:03-06:00 2026-08-15T06:51:03-06:00 feat(phase-31): wave M β€” 40 banked (overlay mass lane, larger band), R22 213/213 +2353 db8deb3558758a606047ce0bb294afa4811b34d8 2026-08-15T07:09:04-06:00 2026-08-15T07:09:04-06:00 chore(phase-31): velocity ledger β€” waves L and M rows (band test + law 1c) +2354 6c12790719439e7e6b06fc586bf52f70d178bbeb 2026-08-15T07:30:48-06:00 2026-08-15T07:30:48-06:00 chore(phase-31): SESSION CHECKPOINT β€” overnight campaign closed; cron cancelled; full handoff +2355 f55032ea560ddb7e540d3b1be287fc59deebfb77 2026-08-15T08:02:45-06:00 2026-08-15T08:02:45-06:00 feat(phase-31): worker gate β€” +42 fns x0 propagated (fleet 95.4%) +2356 c0c19b5c0080c08a7eac588afca41f28d56c1e24 2026-08-15T08:02:56-06:00 2026-08-15T08:02:56-06:00 feat(phase-31): propagate func_80187354 (gate lane) +2357 b5b3072d8854befed06ecd76469dba6151219019 2026-08-15T08:03:06-06:00 2026-08-15T08:03:06-06:00 feat(phase-31): propagate func_80187F30 (gate lane) +2358 dac6fd016e0b746d3c672cde2353fd1c407fab4b 2026-08-15T08:03:16-06:00 2026-08-15T08:03:16-06:00 feat(phase-31): propagate func_8018419C (gate lane) +2359 0e1aa40609b722026efb6e02adb62e2240ecfd22 2026-08-15T08:03:27-06:00 2026-08-15T08:03:27-06:00 feat(phase-31): propagate func_80181C10 (gate lane) +2360 910950423a99308d6946fa17ede8e7759a925e4e 2026-08-15T08:03:37-06:00 2026-08-15T08:03:37-06:00 feat(phase-31): propagate func_801819F4 (gate lane) +2361 229c6fa8dfa9b80c8d88c3e4d5b2a54d8342a07e 2026-08-15T08:03:47-06:00 2026-08-15T08:03:47-06:00 feat(phase-31): propagate func_80182894 (gate lane) +2362 46cc75a5ce760808225e3df72ddf8567da265060 2026-08-15T08:03:57-06:00 2026-08-15T08:03:57-06:00 feat(phase-31): propagate func_80184B14 (gate lane) +2363 84753840a545db79e15f41975a3427c793100ad7 2026-08-15T08:04:08-06:00 2026-08-15T08:04:08-06:00 feat(phase-31): propagate func_801829F8 (gate lane) +2364 597a1a2f4851e53fe509a3b02467cda7b8cc4046 2026-08-15T08:04:18-06:00 2026-08-15T08:04:18-06:00 feat(phase-31): propagate func_80186D88 (gate lane) +2365 90eb6204d6a42cf2d83059b4ad03cb90b2da60e1 2026-08-15T08:04:32-06:00 2026-08-15T08:04:32-06:00 feat(phase-31): propagate func_80186CE8 (gate lane) +2366 ec4c02b1d2b3d9441353853e23820442c6ded9e9 2026-08-15T08:04:42-06:00 2026-08-15T08:04:42-06:00 feat(phase-31): propagate func_80184250 (gate lane) +2367 22878beeeb2ca731a1280598db36b225d024acd8 2026-08-15T08:04:52-06:00 2026-08-15T08:04:52-06:00 feat(phase-31): propagate func_801854CC (gate lane) +2368 82744a4f85b20aa292a3ef55ac946f636518796a 2026-08-15T08:05:05-06:00 2026-08-15T08:05:05-06:00 feat(phase-31): propagate func_80188028 (gate lane) +2369 3344015a1283b42f7be76b12acc394266174912c 2026-08-15T08:05:15-06:00 2026-08-15T08:05:15-06:00 feat(phase-31): propagate func_80188134 (gate lane) +2370 58b0547859caaeefa9c919be571e7dcd5d3e3276 2026-08-15T08:05:26-06:00 2026-08-15T08:05:26-06:00 feat(phase-31): propagate func_80186424 (gate lane) +2371 62bda0dc38205ea9e9988014db43aa5f2ee80695 2026-08-15T08:05:40-06:00 2026-08-15T08:05:40-06:00 feat(phase-31): propagate func_80183814 (gate lane) +2372 303e1ffc4b6d4c57df945c279d826b09ce1cefea 2026-08-15T08:05:58-06:00 2026-08-15T08:05:58-06:00 feat(phase-31): propagate func_8018512C (gate lane) +2373 3f31273793565de2ba723bd37720d0653102ca7d 2026-08-15T08:06:12-06:00 2026-08-15T08:06:12-06:00 feat(phase-31): propagate func_8018825C (gate lane) +2374 ccf48cf090edfc2db8613b062bc073b299064183 2026-08-15T08:06:22-06:00 2026-08-15T08:06:22-06:00 feat(phase-31): propagate func_80188790 (gate lane) +2375 c2cf9f226cb70348c0d069290a17b4cb5cb33ade 2026-08-15T08:06:40-06:00 2026-08-15T08:06:40-06:00 feat(phase-31): propagate func_80181820 (gate lane) +2376 133e3c4e4c78be532ce808bcbbe7a6d676f66e40 2026-08-15T08:06:54-06:00 2026-08-15T08:06:54-06:00 feat(phase-31): propagate func_80181934 (gate lane) +2377 3a708363b58044d7df8e1946f2242ace18e659c7 2026-08-15T08:07:03-06:00 2026-08-15T08:07:03-06:00 feat(phase-31): propagate func_801860E4 (gate lane) +2378 9f695819419a205d4205ec908da1ee52d633337b 2026-08-15T08:07:17-06:00 2026-08-15T08:07:17-06:00 feat(phase-31): propagate func_80183754 (gate lane) +2379 1919009dc4f7485b5a766dea8f6ccad645a19fcb 2026-08-15T08:07:30-06:00 2026-08-15T08:07:30-06:00 feat(phase-31): propagate func_80184A08 (gate lane) +2380 308e59d995fc0bd136b7ec9147bcbb271b31a31c 2026-08-15T08:07:40-06:00 2026-08-15T08:07:40-06:00 feat(phase-31): propagate func_80186E6C (gate lane) +2381 f59b0fdc75c134f6b6e0cb44eb1e6256e53bf930 2026-08-15T08:07:50-06:00 2026-08-15T08:07:50-06:00 feat(phase-31): propagate func_801884FC (gate lane) +2382 0b838da46ca757e02f03bb2072f9046462fdf131 2026-08-15T08:08:00-06:00 2026-08-15T08:08:00-06:00 feat(phase-31): propagate func_80187DB8 (gate lane) +2383 6634db313d8ac08118a1d281320c82bb5276a0c0 2026-08-15T08:08:14-06:00 2026-08-15T08:08:14-06:00 feat(phase-31): propagate func_80187738 (gate lane) +2384 cb93147138aff00f567923f13b38ccbb40bd3782 2026-08-15T08:08:24-06:00 2026-08-15T08:08:24-06:00 feat(phase-31): propagate func_80186764 (gate lane) +2385 b9f2540aa725132f5acd26ba0930d07ce41b315a 2026-08-15T08:08:34-06:00 2026-08-15T08:08:34-06:00 feat(phase-31): propagate func_80181B4C (gate lane) +2386 56fafb0234b3f45416278bc78af254d594ec4ecf 2026-08-15T08:12:28-06:00 2026-08-15T08:12:28-06:00 feat(phase-31): wave N β€” 42 banked (largest band, avg 65 ins), R22 213/213; overnight campaign closed +2387 a0296c262ecd4987006db2257a9cb75b8ec12555 2026-08-15T08:53:52-06:00 2026-08-15T08:53:52-06:00 docs(phase-31): cookbook Β§176a/b/c β€” the verification-layer laws, batch-gating mechanics, main clean-rebuild +2388 e0dee637b17af58f3c141bc6992918c42baeafd8 2026-08-15T09:09:09-06:00 2026-08-15T09:09:09-06:00 docs(phase-31): cookbook Β§176 β€” 7 levers mined from all 14 overnight wave journals (26 novel of 81) +2389 1a36531effb918d043100ba86656e4c6f6e17834 2026-08-15T09:09:32-06:00 2026-08-15T09:09:32-06:00 chore(phase-31): checkpoint records the banked idioms (Β§174-176) β€” nothing left only in commit text +2390 683c44e15bc7d849a5be6363498ebd67f136b54a 2026-08-15T09:09:50-06:00 2026-08-15T09:09:50-06:00 chore(phase-31): regenerate docs/progress.md digest; move a stray 89KB agent-notes dump out of the repo root into .run/ (R12) +2391 fb4c1f03a1b5dab773d1466dbfd39c7438f9e4ec 2026-08-15T09:31:10-06:00 2026-08-15T09:31:10-06:00 fix(phase-31): wave-selector coverage + gate_lane crash-vs-empty (S52-1, S52-8) +2392 02edb37265b05717765795c68c74453dabebbdab 2026-08-15T09:35:26-06:00 2026-08-15T09:35:26-06:00 fix(phase-31): gate_main conflict check reads the destination TU + is per-file (S52-7) +2393 7cbaf1ce9754463578be4f4cb65aba4905a09757 2026-08-15T09:36:12-06:00 2026-08-15T09:36:12-06:00 docs(phase-31): cookbook Β§176d β€” seed the conflict table from the TU, key it per file, and cast the callee through a function pointer +2394 594a87e1732abe7c4ba223cdd2bff998f23a86d2 2026-08-15T09:42:58-06:00 2026-08-15T09:42:58-06:00 feat(phase-31): reloc_identity.py β€” the oracle that disagrees with match_one about SYMBOL IDENTITY (S52) +2395 0487c0c627d1cb8268a24ee820e9036c8e89abdb 2026-08-15T09:46:10-06:00 2026-08-15T09:46:10-06:00 docs(phase-31): cookbook Β§176e β€” symbol identity is COMPUTABLE offline, plus reloc_identity --fix (S52) +2396 fa7204e531bbfebcaa305ba571f96b496758c5a2 2026-08-15T09:46:12-06:00 2026-08-15T09:46:12-06:00 feat(phase-31): worker gate β€” +1 fns x0 propagated (fleet 95.4%) +2397 1149feec2c2ac8f215d7c94a5b392e095d56e220 2026-08-15T09:49:54-06:00 2026-08-15T09:49:54-06:00 feat(phase-31): propagate func_80186C44 (gate lane) +2398 965ae3902eaee2d89396a90e273152fbab93eeb5 2026-08-15T09:50:48-06:00 2026-08-15T09:50:48-06:00 measure(phase-31): the AGREE re-gate lane is a 5% null β€” symbol verification does not rescue stored drafts (S52-12) +2399 279037ece65113dd7361b18bdb1ae8efd4196015 2026-08-15T11:16:43-06:00 2026-08-15T11:16:43-06:00 docs(phase-31): cookbook Β§176f β€” the declaration FORM is a matching lever; reconcile toward the form the match needs (S52) +2400 110570e3fc020373784832becd74872e87d90e81 2026-08-15T14:01:00-06:00 2026-08-15T14:01:19-06:00 feat(phase-31): wave O β€” 46 main functions banked, main EXE byte-identical (S52) +2401 34a4d63d4e581c49f3b3bc7c63c9f58d53f88528 2026-08-15T14:02:43-06:00 2026-08-15T14:02:43-06:00 feat(phase-31): worker gate β€” +4 fns x0 propagated (fleet 95.5%) +2402 0753641d4bf5b88d12b46cde25382a189231b1cb 2026-08-15T14:05:15-06:00 2026-08-15T14:05:15-06:00 feat(phase-31): adopt the 6k-instruction wave doctrine + --target-ins (Drew, 2026-08-15) +2403 ad2aa6173fa1e8a886009c4b965a0253579607a5 2026-08-15T21:55:38-06:00 2026-08-15T21:55:38-06:00 feat(phase-31): wave P β€” 32 main functions banked, main byte-identical (S52) +2404 ec42c2116c667f170008f05a70f36be8cce98928 2026-08-15T21:56:44-06:00 2026-08-15T21:56:44-06:00 feat(phase-31): worker gate β€” +8 fns x0 propagated (fleet 95.5%) +2405 071ce43e1cfa06a21157887966a4fd6ea32e74dd 2026-08-15T21:59:52-06:00 2026-08-15T21:59:52-06:00 docs(phase-31): cookbook Β§176h β€” the batch-substitution hazard map (S52) +2406 207559daad2a6c7bdea80a2088df598e000940fb 2026-08-15T22:03:42-06:00 2026-08-15T22:03:42-06:00 feat(phase-31): tools/pregate_check.py β€” validate a main slate in 0.7s instead of a 5-min rebuild +2407 74a95af4c1baf927a506060ab5c638af84d88b04 2026-08-15T22:11:06-06:00 2026-08-15T22:11:06-06:00 docs+fix(phase-31): reconcile BEFORE the first gate (Β§176h.C2); pregate duplicate-typedef fix +2408 8534c953216598d75f578ce8cc6bd2bc2f900bae 2026-08-15T22:12:32-06:00 2026-08-15T22:12:32-06:00 chore(phase-31): S52 final checkpoint β€” 91 banked, R22 213/213, the UNKNOWN unlock + the 6k doctrine + reconcile-before-gating +2409 df7bca2e6592cfed1b698e44cf2f9d0b8cdef548 2026-08-16T08:36:36-06:00 2026-08-16T08:36:36-06:00 feat(phase-31): tools/reconcile_slate.py β€” drive a slate to 0-dropped BEFORE the first rebuild +2410 b021812c17df0a479743cabd6bfe65c9af7db298 2026-08-16T10:02:22-06:00 2026-08-16T10:02:22-06:00 docs(phase-31): cookbook Β§176i/Β§176j β€” the pre-gate check's real boundary, and the cost of stopping a wave +2411 c70f6d4e34cf5cb133980a7ed148ea05deeff9bb 2026-08-16T10:08:25-06:00 2026-08-16T10:08:25-06:00 chore(phase-31): S52 closed β€” 91 banked, wave Q drafted-but-unbanked with a $0 resume path +2412 4adb559a29467f2dacdaaedede162f4716e33e65 2026-08-16T14:17:09-06:00 2026-08-16T14:17:09-06:00 docs(phase-31): cookbook Β§177 β€” the epilogue return-delay slot is decided by the SAVED-REGISTER SET +2413 49fc465a514b9ba9cad2d3da48bf1a207a5c65d1 2026-08-16T14:23:19-06:00 2026-08-16T14:23:19-06:00 docs(phase-31): cookbook Β§178 + Β§176j-2 + Β§176k β€” mine the wave-P journals, the repair-pass yield, two selector bugs +2414 6bc8bb68948685420f5e29e04ac28389604831f4 2026-08-16T17:21:10-06:00 2026-08-16T17:21:10-06:00 feat(phase-31): wave Q β€” 40 main functions banked; + fragment_check.py and bisect_slate.py +2415 f8bf50d8c0671585d76d1f5b1cee95a5ace0affa 2026-08-16T17:40:06-06:00 2026-08-16T17:40:06-06:00 docs(phase-31): cookbook Β§179 β€” eight idioms mined from the wave P/Q journals (S52 harvest) +2416 9202c5f54e2f2ef00e9a81ad8b9b9243715a98c1 2026-08-16T17:46:01-06:00 2026-08-16T17:46:01-06:00 chore(phase-31): S52 final checkpoint β€” 131 banked, main 293 matched, 5 new tools, cookbook 543->564 +2417 bc669d54079cd071946266ad14d5b4e36ee8a57e 2026-08-16T18:08:46-06:00 2026-08-16T18:08:46-06:00 chore(phase-31): S53 preflight β€” atlas regen, leftover-draft harvest (34 free MATCHes found), wave R launched +2418 472ff5806a80412d5a6ac5608979b1b89bc347b3 2026-08-16T18:11:32-06:00 2026-08-16T18:11:32-06:00 feat(phase-31): tools/scan_leftovers.py β€” re-verify unbanked drafts (found 37 free MATCHes / 3,240 ins); cookbook Β§180 +2419 e960382de7cd8f4ae0c2875b9ea90327dda02f94 2026-08-16T20:03:03-06:00 2026-08-16T20:03:03-06:00 feat(phase-31): wave R β€” 18 main functions banked (EXE 143dbb89 byte-identical) +2420 d27ba537f84ff68dec82b9420de8929309e5387e 2026-08-16T20:04:51-06:00 2026-08-16T20:04:51-06:00 feat(decomp): worker gate β€” +36 fns x0 propagated (fleet 95.6%) +2421 486321996ca0eee921e15299fd9a298db8512a3e 2026-08-16T20:06:04-06:00 2026-08-16T20:06:04-06:00 feat(decomp): propagate func_801808C4 (gate lane) +2422 dc7e62c83496327a6d8b664917f720453dd74b94 2026-08-16T20:16:34-06:00 2026-08-16T20:16:34-06:00 feat(decomp): worker gate β€” +21 fns x0 propagated (fleet 95.6%) +2423 adfa7185c938a10c00a1f3d0ba6dbcd3c4cc48b7 2026-08-16T21:07:03-06:00 2026-08-16T21:07:03-06:00 docs+tools(phase-31): cookbook Β§180d/Β§181/Β§182; fragment_check gains the mirror test (5.7% of main stubs); pregate_check scans masked text +2424 af7ae913d3928bacfe7ace5e98ff1b73b703797e 2026-08-16T21:07:53-06:00 2026-08-16T21:07:53-06:00 chore(phase-31): S53 checkpoint β€” 75 banked / 7,400 ins, fleet 213/213, wave S prepared (not started) +2425 fdbc522cf2afa51a5adf233d83b470669d1d77e3 2026-08-16T21:08:00-06:00 2026-08-16T21:08:00-06:00 chore(phase-31): regenerated family/backlog reports after the S53 atlas + banks +2426 0ceba4f8eeb1049b49289f2f495bea33d64f5ddd 2026-08-16T21:08:05-06:00 2026-08-16T21:08:05-06:00 chore(phase-31): fleet progress report after S53 banks +2427 1ebca23c8780b16c6a0108edb29b8252684940aa 2026-08-16T22:20:56-06:00 2026-08-16T22:20:56-06:00 feat(phase-31): gate_main hoists TU typedefs above the include block (Β§181 class 2); +3 recovered drafts banked +2428 192759f7322dba27f8191e55d5e553b1eae735c0 2026-08-16T22:23:10-06:00 2026-08-16T22:23:10-06:00 fix(phase-31): pregate_check FAILs any return-type disagreement (G4P* under G3P* was rejected by gcc, cost a rebuild) +2429 61f3745193aad375428e13cd91a75559894885d8 2026-08-16T22:38:47-06:00 2026-08-16T22:38:47-06:00 feat(phase-31): S53 recovery β€” 10 more main functions banked (declaration reconciliation; EXE 143dbb89 byte-identical) +2430 b15d195cc0f8e2570f3907ad3165ff041bae66c6 2026-08-16T22:39:34-06:00 2026-08-16T22:39:34-06:00 docs(phase-31): cookbook Β§183 β€” the declaration-reconciliation playbook, the name/shape trap, and why &D_x defeats the cast escape hatch +2431 bbd8a6c8e4d0e490e1bd8309eca5b2053bcaf18e 2026-08-16T22:41:01-06:00 2026-08-16T22:41:01-06:00 feat(phase-31): pregate_check sees brace-bodied externs (the D_80072780 clash that cost a rebuild); Β§183 addendum +2432 c7ef83066f23201438da7f8d498be6520ac40607 2026-08-16T22:45:39-06:00 2026-08-16T22:45:39-06:00 fix(phase-31): two byte-neutral TU declaration corrections β€” func_8001ABBC returns s32; D_80076240 is a Slot16A[] (verified 143dbb89) +2433 8b567a21a81bf6e528edbc8b8ffb4657cb11f9aa 2026-08-16T22:47:31-06:00 2026-08-16T22:47:31-06:00 fix(phase-31): retype D_8007622C to s32[] in the TU (byte-neutral, 143dbb89) β€” unblocks func_80037028 +2434 a6e522a96abcfece817d8ca9f0cda4e82e4a1618 2026-08-16T22:49:05-06:00 2026-08-16T22:49:05-06:00 feat(phase-31): typedef comparison ignores comments (gate_main + reconcile_slate); func_8001ABBC + func_80037028 banked via byte-neutral TU edits +2435 2dbf235efc153618bad59c60857143f14cba99d5 2026-08-16T22:52:39-06:00 2026-08-16T22:52:39-06:00 feat(phase-31): forward-typedef fix unblocks func_8002C8F4 + func_80034314 (EXE 143dbb89 byte-identical) +2436 a670f9d24ddff59d8f71aecc601e320babb55c7d 2026-08-16T22:54:35-06:00 2026-08-16T22:54:35-06:00 docs(phase-31): cookbook Β§184 (comment-blindness as a defect class) + Β§185 (verify-cheap-side; check a TU retype at its use sites) +2437 35803ece9a677da9326281d19e1a19d49c6a09f1 2026-08-16T22:55:19-06:00 2026-08-16T22:55:19-06:00 chore(phase-31): S53 log β€” recovery backlog banked 15, four tool defects fixed, three TU retypes proven +2438 419bfa617422e0b47132b183765bb622f12d0e33 2026-08-17T00:00:57-06:00 2026-08-17T00:00:57-06:00 feat(phase-31): final-lane recoveries banked β€” incl. SYS_OBJ_1DC0 (the byte-wrong redraft) and func_80034C24 (symbol identity); 143dbb89 +2439 a416d3adc3ebb2dfc278c5c631a5f6e37843c50e 2026-08-17T00:01:47-06:00 2026-08-17T00:01:47-06:00 feat(phase-31): func_80030730 + func_80059BFC banked (TU prototype adopted, cast at use) +2440 ef80215dcb84c205b3c082c9e4b93995ef258e62 2026-08-17T00:03:33-06:00 2026-08-17T00:03:33-06:00 feat(phase-31): SIX-WAY FRAGMENT MERGE β€” func_8005B7B0 (184 ins) absorbs 5 splat-carved fragments; 143dbb89 byte-identical +2441 6c51bb89996d1c1b5037f9cb1e5273da80c66ea7 2026-08-17T00:04:08-06:00 2026-08-17T00:04:08-06:00 feat(phase-31): MoveImage absorbs its splat-carved epilogue SYS_OBJ_8F4 (49 ins); 143dbb89 byte-identical +2442 6744fac650eea606ced40f8051e2533b4f7eeee8 2026-08-17T00:07:11-06:00 2026-08-17T00:07:11-06:00 feat(phase-31): gate_main strips a draft's FORWARD typedef instead of renaming it (Β§184b) +2443 fe5208a839b27e55a03849e6d91f31e2f4a188cd 2026-08-17T00:54:31-06:00 2026-08-17T00:54:31-06:00 feat(decomp): worker gate β€” +30 fns x0 propagated (fleet 95.6%) +2444 1b3fae2c1bba446577ba08126434743664cc177e 2026-08-17T00:55:13-06:00 2026-08-17T00:55:13-06:00 feat(decomp): propagate func_80184BAC (gate lane) +2445 81a3b73f2248cedc1d9520f6133c36eb145427b2 2026-08-17T00:58:37-06:00 2026-08-17T00:58:37-06:00 feat(decomp): propagate func_8018A1B4 (gate lane) +2446 001d8e21279b95e7bace78461a4bb0b936aa63c2 2026-08-17T01:02:31-06:00 2026-08-17T01:02:31-06:00 docs(phase-31): cookbook Β§186 β€” cross-jumping runs after sched2 (no barrier reaches it); s16-locals frame signal; local_alloc-vs-global_alloc as a placement lever +2447 b1a91c6b8caedfcc063cfed7925428fa725b74e6 2026-08-17T01:03:22-06:00 2026-08-17T01:03:22-06:00 feat(decomp): worker gate β€” +33 fns x0 propagated (fleet 95.6%) +2448 aaf6898fcab9a576ec749e7281dc29b7975891d0 2026-08-17T01:11:53-06:00 2026-08-17T01:11:53-06:00 docs(phase-31): cookbook Β§187 β€” the libgs link opportunity REFUTED (GTE hazard nops); a mask coarser than the linker's proves nothing +2449 23985e6b511ebc491b66f64fb8701842e77f3f24 2026-08-17T01:15:28-06:00 2026-08-17T01:15:28-06:00 chore(phase-31): S53 FINAL checkpoint β€” 161 banked, fleet 213/213, libgs link refuted (Β§187), 15 cookbook sections +2450 1d2a2f93e10ed6a85429619a258c79662ca2842d 2026-08-17T01:15:40-06:00 2026-08-17T01:15:40-06:00 chore(phase-31): regenerated progress + backlog reports after the S53 fleet verification +2451 d484d8f619ee6b66d5ef9fa38e1bebc9d8695719 2026-08-17T09:55:46-06:00 2026-08-17T09:55:46-06:00 docs(phase-31): S53 journal harvest β€” Β§188 the epilogue tail is an ASSEMBLER artifact (corrects Β§177, answers Β§182), Β§189 five source-cited laws, Β§190 three prescriptions, Β§191 the rejected set; + tools/oracle_reorder.py +2452 6bc778228970544424594c223c856e08a1d5207f 2026-08-17T09:56:05-06:00 2026-08-17T09:56:05-06:00 docs(phase-31): close Β§182's open question with Β§188's answer; correct the wave prompt's Β§177 law +2453 c973d0e80345eb5294d90e19bfff69579f56847d 2026-08-17T09:56:25-06:00 2026-08-17T09:56:25-06:00 chore(phase-31): S53 checkpoint β€” record the journal harvest (10 confirmed / 4 weak / 4 rejected) and the Β§177 correction +2454 034c46bc283e227ac84822896de0b90d6c491e1d 2026-08-17T10:14:41-06:00 2026-08-17T10:14:41-06:00 chore(phase-31): S53 checkpoint rewritten as a clean fresh-session handoff (161 banked, main 20.4%, Β§188 correction, 5-step next-session plan) +2455 85671bc1f75ca805f28d9cd5516ff7a70818124e 2026-08-17T11:00:14-06:00 2026-08-17T11:00:14-06:00 feat(phase-31): S54 β€” wave T selector (--one-per-gid, --rank total) + the pre-gate ladder learns to see overlays (Β§192) +2456 bb34eac42f3e21415b9e29f8673e82f2ab77df5f 2026-08-17T11:20:19-06:00 2026-08-17T11:20:32-06:00 fix(phase-31): S54 β€” four measured over-refusals in the overlay pre-gate path +2457 3d1fd60eb97c6b718d9951211d6e7eeebfa75cd8 2026-08-17T11:21:46-06:00 2026-08-17T11:21:46-06:00 feat(decomp): worker gate β€” +14 fns x0 propagated (fleet 95.7%) +2458 93922b98c761223a37f70a735e57c912f1a30be1 2026-08-17T11:27:27-06:00 2026-08-17T11:27:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.7%) +2459 06365e6f9a55567f5b3930e1e1cf4363563f5116 2026-08-17T11:28:38-06:00 2026-08-17T11:28:38-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.7%) +2460 65ed788eb425db959ae4e8ae826ebfb0cf364bca 2026-08-17T11:28:55-06:00 2026-08-17T11:28:55-06:00 feat(decomp): propagate func_80181170 (gate lane) +2461 85b39b325353c1253fee3db547518093b63f4c00 2026-08-17T12:02:08-06:00 2026-08-17T12:02:08-06:00 feat(decomp): main leftover bank β€” func_800173DC (Β§180 sweep, byte-identical) +2462 cc789d51307273fb189102058405bc1d6e0a9681 2026-08-17T12:03:13-06:00 2026-08-17T12:03:13-06:00 feat(decomp): worker gate β€” +21 fns x0 propagated (fleet 95.7%) +2463 70b572854d9e27695d74233bc46f265c648cd279 2026-08-17T12:08:56-06:00 2026-08-17T12:08:56-06:00 feat(decomp): worker gate β€” +17 fns x0 propagated (fleet 95.7%) +2464 c160e4c5936014e04fd2f620bc59824aa9351566 2026-08-17T12:11:40-06:00 2026-08-17T12:11:40-06:00 feat(decomp): worker gate β€” +14 fns x0 propagated (fleet 95.7%) +2465 de5301b4fff90fde8050210b106340e4a9308805 2026-08-17T12:11:57-06:00 2026-08-17T12:11:57-06:00 feat(decomp): propagate func_80188478 (gate lane) +2466 dada0b1b82cd0b6546837c78f070c7d99db44269 2026-08-17T12:12:18-06:00 2026-08-17T12:12:18-06:00 feat(decomp): propagate func_80187300 (gate lane) +2467 eeff5eeaaa0fd19c78e06ac7ab3df0db9bba0766 2026-08-17T12:12:33-06:00 2026-08-17T12:12:33-06:00 feat(decomp): propagate func_80188828 (gate lane) +2468 a8f15a58cdd4d9d9e25a6a752f24e491729de27c 2026-08-17T12:12:56-06:00 2026-08-17T12:12:56-06:00 feat(decomp): propagate func_801867F8 (gate lane) +2469 99687da19d30521f43ecf838ee88c635a1554048 2026-08-17T12:13:23-06:00 2026-08-17T12:13:23-06:00 feat(decomp): propagate func_80187090 (gate lane) +2470 edcb200d4bda164cde87a235f979570b44ab6649 2026-08-17T12:13:37-06:00 2026-08-17T12:13:37-06:00 feat(decomp): propagate func_80188670 (gate lane) +2471 b87c1792903768933d15c925f04a0a9fde9127b6 2026-08-17T12:13:52-06:00 2026-08-17T12:13:52-06:00 feat(decomp): propagate func_8018655C (gate lane) +2472 6506ef53338e9646982d2a34520d68b64dd8a743 2026-08-17T12:14:59-06:00 2026-08-17T12:14:59-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 95.7%) +2473 d73fe15310c8e96db6c6052543b50fc648fcf111 2026-08-17T12:17:44-06:00 2026-08-17T12:17:44-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 95.7%) +2474 45aad382eafbd3ae31e7bd92d8f0dcf82ca38b7e 2026-08-17T12:25:38-06:00 2026-08-17T12:25:38-06:00 feat(phase-26): h_seq family sweep β€” 43 member-matches banked via remap_hseq +2475 020dc8a27e509dd55b40decbb613a2a092f80cec 2026-08-17T12:26:53-06:00 2026-08-17T12:26:53-06:00 refactor(ov_SC02_005): hoist 3 typedefs above the stubs that need them (byte-neutral, null-control verified) +2476 4792b02bfa526ac324c5c96b33fbb8c1a4d291be 2026-08-17T12:27:53-06:00 2026-08-17T12:27:53-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.7%) +2477 2ae87fc838f44bfb744e75e30ce5c274ecc3632f 2026-08-17T12:30:38-06:00 2026-08-17T12:30:38-06:00 feat(phase-31): S54 wave-T harvest β€” cookbook Β§193 (9 laws) + the card's banked-twin pointer +2478 7928e7940fb96ac6a1783e25ae66a387094f29da 2026-08-17T12:58:45-06:00 2026-08-17T12:58:45-06:00 docs(phase-31): S54 log β€” wave T 70/70 banked, 24 leftovers, 49 mechanical siblings, Β§192/Β§193, R22 213/213 +2479 572d73eb4b9268bc6a78d5638932ed97fdcf69a4 2026-08-17T13:09:51-06:00 2026-08-17T13:09:51-06:00 chore(phase-31): regenerate frontier atlas after the S54 banks (4,787 groups / 11,039 open instances / 550,155 ins) +2480 5df5081fd5d03d4e6a327e1015d0984d77a97d7d 2026-08-17T13:56:28-06:00 2026-08-17T13:56:28-06:00 feat(decomp): worker gate β€” +13 fns x0 propagated (fleet 95.8%) +2481 73b5773d0dc5ec1ddfb1a008f3f4cd5bc0ea8b4b 2026-08-17T13:59:51-06:00 2026-08-17T13:59:51-06:00 feat(decomp): worker gate β€” +11 fns x0 propagated (fleet 95.8%) +2482 def09a34ffe44a0c8e07aa7e05f2e4ce8ea7f076 2026-08-17T14:02:44-06:00 2026-08-17T14:02:44-06:00 feat(decomp): worker gate β€” +12 fns x0 propagated (fleet 95.8%) +2483 a6541fd87ed2f5020030e4193e865078b68c73b3 2026-08-17T14:05:26-06:00 2026-08-17T14:05:26-06:00 feat(decomp): worker gate β€” +16 fns x0 propagated (fleet 95.8%) +2484 cbf9c3faaed7e97acef1ded20309f62abd570dfc 2026-08-17T14:07:04-06:00 2026-08-17T14:07:04-06:00 feat(decomp): propagate func_801860C0 (gate lane) +2485 4b2a9c84583bea68699ed74bb52332d841af0c0d 2026-08-17T14:09:07-06:00 2026-08-17T14:09:07-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 95.8%) +2486 1ae22b45997d5f2b6cead69c65a05a02187fa07c 2026-08-17T14:10:42-06:00 2026-08-17T14:10:42-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 95.8%) +2487 c4f22435985116301b373a88e3be25ade3b9565c 2026-08-17T14:12:59-06:00 2026-08-17T14:12:59-06:00 feat(decomp): worker gate β€” +4 fns x0 propagated (fleet 95.8%) +2488 0bc840ccc2c5bbae14c21aae4446992c3267c04b 2026-08-17T14:14:15-06:00 2026-08-17T14:14:15-06:00 refactor(ov_SC02_017): retype func_80185B5C's two decls void->s32 (unspecified params), byte-neutral null-control verified +2489 c83528461624c7baa9d784f31e369ecbf9929895 2026-08-17T14:15:09-06:00 2026-08-17T14:15:09-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 95.8%) +2490 fe3a723f9d96e31bbc2ebe78136e61f8915bd143 2026-08-17T14:16:16-06:00 2026-08-17T14:16:16-06:00 feat(phase-26): h_seq family sweep β€” 35 member-matches banked via remap_hseq +2491 c5d7653801e03e52dcbfecbb3c0d78625bbcb1c5 2026-08-17T15:14:00-06:00 2026-08-17T15:14:00-06:00 feat(phase-31): S54 wave-U harvest β€” cookbook Β§194 (14 laws) + destination-TU locality on the card +2492 602567674548038c37971ee87d4d8035f66718e4 2026-08-17T19:18:14-06:00 2026-08-17T19:18:14-06:00 chore(phase-31): regenerate progress + family map after wave U (fleet 95.8% instr-weighted) +2493 063d4477d07df84a86f66c742ee59d01d7aa9089 2026-08-17T20:40:02-06:00 2026-08-17T20:40:02-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 95.8%) +2494 48936c854386a9168ae815874ad39b3ecd17d274 2026-08-17T20:43:20-06:00 2026-08-17T20:43:20-06:00 feat(decomp): worker gate β€” +7 fns x0 propagated (fleet 95.8%) +2495 853a97ae57b2b30f41f26c7deef71348f449362e 2026-08-17T20:43:57-06:00 2026-08-17T20:43:57-06:00 feat(decomp): propagate func_80184B94 (gate lane) +2496 dce9b8f9fcd60a36539280db180204f294b8c20b 2026-08-17T20:44:37-06:00 2026-08-17T20:44:37-06:00 feat(decomp): propagate func_80181E58 (gate lane) +2497 c78822f601f4bb1b731e6b16bcc053506c226e3c 2026-08-17T20:46:00-06:00 2026-08-17T20:46:00-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 95.8%) +2498 6e614720f6e13c0516f96f1cc2b51932246ee87b 2026-08-17T20:49:06-06:00 2026-08-17T20:49:06-06:00 feat(decomp): worker gate β€” +9 fns x0 propagated (fleet 95.8%) +2499 aca487291de464b0235b8a0722b681c876e6d65f 2026-08-17T20:49:52-06:00 2026-08-17T20:49:52-06:00 feat(decomp): propagate func_8018178C (gate lane) +2500 6b29a5c4afd757f02d7dcf32d60ad64c5b551142 2026-08-17T20:51:14-06:00 2026-08-17T20:51:14-06:00 feat(decomp): worker gate β€” +7 fns x0 propagated (fleet 95.8%) +2501 de0492dd601b56396597fe8eff7a4a011699e076 2026-08-17T20:52:49-06:00 2026-08-17T20:52:49-06:00 feat(decomp): propagate func_80184E4C (gate lane) +2502 689497dc7df5f2fbb7b1b3385040ba0f912e3c36 2026-08-17T20:54:12-06:00 2026-08-17T20:54:12-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 95.9%) +2503 49b79b4469978cc3ced1cc5eb95251136bc857a8 2026-08-17T20:55:45-06:00 2026-08-17T20:55:45-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 95.9%) +2504 24d5fa38bb78ba7c6bbc8ca911a526ebe18c8740 2026-08-17T20:59:42-06:00 2026-08-17T20:59:42-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 95.9%) +2505 c308986c257878cc30d751020f9885346d4efcc6 2026-08-17T21:00:11-06:00 2026-08-17T21:00:11-06:00 feat(decomp): propagate func_8017D484 (gate lane) +2506 4bf5951f03861968ef0de0ee0a2d06e10a1a55ae 2026-08-17T21:00:48-06:00 2026-08-17T21:00:48-06:00 feat(decomp): propagate func_8017E024 (gate lane) +2507 3e859e75c2e449c542e7db170483c98c47207ebc 2026-08-17T21:01:52-06:00 2026-08-17T21:01:52-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 95.9%) +2508 200ee2fbebb37b3e74dd7024dcbc854ab2a2da9a 2026-08-17T21:04:21-06:00 2026-08-17T21:04:21-06:00 feat(phase-26): h_seq family sweep β€” 25 member-matches banked via remap_hseq +2509 0d39cd97e13c9577e4d8872a9bf48b887888d99c 2026-08-17T21:37:23-06:00 2026-08-17T21:37:23-06:00 feat(phase-31): S54 wave-V harvest β€” cookbook Β§195 (14 laws) + close the internal-j blind spot in masked_diff +2510 c845e0dcfa3459d7c7b8434f3e5060dffb1f3ebd 2026-08-17T22:34:42-06:00 2026-08-17T22:34:42-06:00 chore(phase-31): S54 session checkpoint + wave-metrics rows for U and V +2511 e24220aabe670162a182d52c799b400760984ce0 2026-08-17T23:49:11-06:00 2026-08-17T23:49:11-06:00 feat(phase-31): Β§196 decl_prior β€” the fleet's declaration consensus as a wave-card field +2512 5fcd072bcf198e3805f7eedecb06f3bdc37d8415 2026-08-18T01:30:13-06:00 2026-08-18T01:30:13-06:00 feat(decomp): worker gate β€” +26 fns x0 propagated (fleet 95.9%) +2513 10c51746a86a4eaeda2d71cc337ec4c623f96c0c 2026-08-18T01:35:54-06:00 2026-08-18T01:35:54-06:00 feat(decomp): worker gate β€” +34 fns x0 propagated (fleet 95.9%) +2514 a7a2c09682be25ceb6c5880b7bee324a8e53be28 2026-08-18T01:49:59-06:00 2026-08-18T01:49:59-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 95.9%) +2515 5f174cce53b9b490880543ab1ea946e997896597 2026-08-18T02:17:23-06:00 2026-08-18T02:17:23-06:00 feat(phase-31): Β§197 wave-W harvest + Β§198 UNKNOWN promoted to a default lever lane +2516 f2cc730ae81a2805ba47595b59be82aa9d2e8bd3 2026-08-18T02:20:59-06:00 2026-08-18T02:20:59-06:00 chore(phase-31): S54 checkpoint refresh + wave-metrics row for wave W (412 banked, fleet 95.9/91.5/97.04) +2517 57d0e4fa372e13f771cd2f36aacd5624655f0d67 2026-08-18T04:01:20-06:00 2026-08-18T04:01:20-06:00 feat(decomp): worker gate β€” +24 fns x0 propagated (fleet 96.0%) +2518 c5ab96fe8210377e551fe1f4861235e14e959814 2026-08-18T04:11:49-06:00 2026-08-18T04:11:49-06:00 feat(decomp): worker gate β€” +18 fns x0 propagated (fleet 96.0%) +2519 d62346d2b8df76b70b8062b24103e8e4e83400b9 2026-08-18T04:12:12-06:00 2026-08-18T04:12:12-06:00 feat(decomp): propagate func_801828A0 (gate lane) +2520 cafedeb57210958c7eb9dc3b1ad6928e8aeae0ee 2026-08-18T04:13:57-06:00 2026-08-18T04:13:57-06:00 feat(decomp): propagate func_8018048C (gate lane) +2521 6e73f738fbaf9ec0af1f5109fc9bdb8ff65808d2 2026-08-18T04:14:34-06:00 2026-08-18T04:14:34-06:00 feat(decomp): propagate func_8017F154 (gate lane) +2522 99cff8676257c54c63bb22007856b8c37a109e2b 2026-08-18T04:16:43-06:00 2026-08-18T04:16:43-06:00 feat(decomp): worker gate β€” +19 fns x0 propagated (fleet 96.0%) +2523 1731aaf201c634a4b17c0b4f614c051dc6741e06 2026-08-18T04:18:28-06:00 2026-08-18T04:18:28-06:00 feat(decomp): propagate func_801812FC (gate lane) +2524 6f2c053372a1e51399be5d875520ffc5b3158082 2026-08-18T04:18:43-06:00 2026-08-18T04:18:43-06:00 feat(decomp): propagate func_8017ED5C (gate lane) +2525 b6992adeab30d84e8f70c095149814df52f50870 2026-08-18T04:19:26-06:00 2026-08-18T04:19:26-06:00 feat(decomp): propagate func_8017D4F0 (gate lane) +2526 335140a68bc66799c473e7cb40e70a573e756ab5 2026-08-18T04:21:09-06:00 2026-08-18T04:21:09-06:00 feat(decomp): propagate func_801805BC (gate lane) +2527 61c743c0cfd124ed09a4d8decac7df09a5c29caf 2026-08-18T04:22:53-06:00 2026-08-18T04:22:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.0%) +2528 2b1cb17ae7dae81f35a079ecab7cb5e17aa36d17 2026-08-18T04:24:17-06:00 2026-08-18T04:24:17-06:00 feat(phase-26): h_seq family sweep β€” 1 member-matches banked via remap_hseq +2529 a89d7ae0af03aa320f36ba30c661bcdb61035512 2026-08-18T09:04:26-06:00 2026-08-18T09:04:26-06:00 feat(phase-31): Β§199 wave-X harvest (7 laws) β€” and Β§189-A's inference direction is byte-refuted +2530 b01a61f0ee765ad21f9adf92843b7fc6c82ac96c 2026-08-18T09:04:50-06:00 2026-08-18T09:04:50-06:00 chore(phase-31): checkpoint refresh after wave X (475 banked, fleet crosses 96.0% instr-weighted) +2531 894f3d5ce1af26e54caf4dfc3ef499aead8a552b 2026-08-18T10:16:36-06:00 2026-08-18T10:16:36-06:00 fix(phase-31): sym_of reads the asm-label alias β€” 1,210 verdicts corrected, 0 regressions +2532 8f329aab1517a95231518701a63e642f1ec66445 2026-08-18T10:17:44-06:00 2026-08-18T10:17:44-06:00 feat(decomp): worker gate β€” +20 fns x0 propagated (fleet 96.0%) +2533 9a5194b7afa81bce4de848fff90564a8fcd25189 2026-08-18T10:21:23-06:00 2026-08-18T10:21:23-06:00 feat(decomp): worker gate β€” +14 fns x0 propagated (fleet 96.0%) +2534 5d9caeaac1a0cf98b9445d5634d5ff7df7db6ea0 2026-08-18T10:25:16-06:00 2026-08-18T10:25:16-06:00 feat(decomp): worker gate β€” +15 fns x0 propagated (fleet 96.0%) +2535 7c8241395928d685dcce9a3721950baffc51082e 2026-08-18T10:26:34-06:00 2026-08-18T10:26:34-06:00 feat(decomp): propagate func_80185D10 (gate lane) +2536 72fb5041cdb9355dd4116c5ff7a70fac9077b7d2 2026-08-18T10:29:00-06:00 2026-08-18T10:29:00-06:00 feat(decomp): worker gate β€” +12 fns x0 propagated (fleet 96.0%) +2537 2cd8acff4b2ca72351bf10fcbd2d1112afe6e3bf 2026-08-18T10:30:53-06:00 2026-08-18T10:30:53-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 96.0%) +2538 74038a15274eb631d82279c1954fb10b821848b4 2026-08-18T10:38:12-06:00 2026-08-18T10:38:12-06:00 feat(phase-26): h_seq family sweep β€” 4 member-matches banked via remap_hseq +2539 a898f5ca6bcc36955662bd41bfcfb23dd15afecc 2026-08-18T10:46:36-06:00 2026-08-18T10:46:36-06:00 feat(decomp): worker gate β€” +3 fns x0 propagated (fleet 96.0%) +2540 cabf7e95725125ffdb0b5b8e1751780b684a9e50 2026-08-18T10:47:53-06:00 2026-08-18T10:47:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.0%) +2541 c33df33297c291fb3da779ee69f1804189f3e166 2026-08-18T10:48:38-06:00 2026-08-18T10:48:38-06:00 feat(phase-31): wave Y recovery β€” Β§200 the alias is the universal declaration escape (5 drops recovered, 0 agent tokens) +2542 490fbfba9afcf4dbdcbb194f20372118a1a41fd4 2026-08-18T11:03:58-06:00 2026-08-18T11:03:58-06:00 chore(phase-31): wave Y checkpoint + wave Z staged (not launched); harvest outstanding on API 529s +2543 cabcba62622e08f6a55f67da36c55f0309c86e6f 2026-08-18T11:07:54-06:00 2026-08-18T11:07:54-06:00 feat(phase-31): gap_triage β€” deterministic pre-filter for the harvest's biggest cost +2544 1a603e0e2274afddb6cf81b726d1c73231002cc0 2026-08-18T11:08:29-06:00 2026-08-18T11:08:29-06:00 fix(phase-31): gap_triage β€” threshold at 0.15, because a weak suggestion costs a reader's attention +2545 7ba1ae96d42fb9d22b548af8699574319de336e5 2026-08-18T11:57:42-06:00 2026-08-18T11:57:42-06:00 chore(phase-31): wire gap_triage into the harvest prompt, SETUP.md and the wave-closing memory +2546 68481253de1b06f1c8ebe47e9e9ee6dfc91d122d 2026-08-18T12:29:34-06:00 2026-08-18T12:29:34-06:00 fix(phase-31): Β§201-A β€” decl_prior's DEF row was address-keyed and wrong in the overlay window +2547 87a2ed3ad6fca876e3380c1672c8cb491137854a 2026-08-18T12:41:37-06:00 2026-08-18T12:41:37-06:00 chore(phase-31): S54/S55 fresh-session checkpoint β€” 547 banked, fleet 96.0/91.7/97.07, wave Z staged +2548 b883036541dbb6e80df4618a8ec38ec5eb84afc5 2026-08-18T14:20:35-06:00 2026-08-18T14:20:35-06:00 feat(decomp): worker gate β€” +6 fns x0 propagated (fleet 96.0%) +2549 5d85564bc128d863b430092ebbf44f41f83d22f2 2026-08-18T14:21:28-06:00 2026-08-18T14:21:28-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 96.0%) +2550 20b1e11e1d90f4031bcb803a24bd5a03aa464a93 2026-08-18T14:22:28-06:00 2026-08-18T14:22:28-06:00 feat(decomp): worker gate β€” +16 fns x0 propagated (fleet 96.0%) +2551 6b8681f0396c59d7f1d321bbc46608bb565649bf 2026-08-18T14:23:31-06:00 2026-08-18T14:23:31-06:00 feat(decomp): worker gate β€” +19 fns x0 propagated (fleet 96.1%) +2552 b86c2a3c14e210e26f0046b65a3fa06420138f1d 2026-08-18T14:24:29-06:00 2026-08-18T14:24:29-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 96.1%) +2553 215e6251d701c64fdf55bd3551ba36d6bf4ac85e 2026-08-18T14:25:29-06:00 2026-08-18T14:25:29-06:00 feat(decomp): worker gate β€” +8 fns x0 propagated (fleet 96.1%) +2554 cef2ec358ec776ffb11461b5ba42e3413cb2b65d 2026-08-18T14:26:29-06:00 2026-08-18T14:26:29-06:00 feat(decomp): worker gate β€” +10 fns x0 propagated (fleet 96.1%) +2555 a26481b7f61b444fa3777be912ca1efa063ffedc 2026-08-18T14:27:28-06:00 2026-08-18T14:27:28-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2556 e4d1b95781a86f50e8ef48eed4b7fed56256a751 2026-08-18T14:31:28-06:00 2026-08-18T14:31:28-06:00 feat(decomp): propagate func_80180D38 (gate lane) +2557 cd3d38782ee1ae2018b7672b35ac844d35eba6ae 2026-08-18T14:32:26-06:00 2026-08-18T14:32:26-06:00 feat(decomp): propagate func_80184460 (gate lane) +2558 fd7d26e3ce85229071c22aefe736ac2637652e36 2026-08-18T14:51:10-06:00 2026-08-18T14:51:10-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2559 18b0eb40a81fb07b6e2edb9fb7fffc94cbc95558 2026-08-18T14:52:44-06:00 2026-08-18T14:52:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2560 9cd4eb00714c47e13b373854618e4eca588e800d 2026-08-18T14:54:54-06:00 2026-08-18T14:54:54-06:00 feat(phase-26): h_seq family sweep β€” 3 member-matches banked via remap_hseq +2561 87e8565bc6d672b4930e185813ed1d6e9a0a29c8 2026-08-18T14:58:40-06:00 2026-08-18T14:58:40-06:00 feat(phase-26): h_seq family sweep β€” 50 member-matches banked via remap_hseq +2562 34b8f772b4c379017f5f457a5c8b62fc6e05e572 2026-08-18T15:25:49-06:00 2026-08-18T15:25:49-06:00 feat(phase-31): wave Z closed β€” 127 banked, R22 213/213, fleet 96.1/91.8/97.11 +2563 e9ac4db9baafda3fc9e37175badddafe5c224a5c 2026-08-18T15:32:32-06:00 2026-08-18T15:32:32-06:00 fix(phase-31): wire the S56 findings into the tools, SETUP.md and memory +2564 2c4637450bb4433d713abe6a1caf6bdb1c72a5c5 2026-08-18T15:44:55-06:00 2026-08-18T15:44:55-06:00 chore(phase-31): S56 checkpoint β€” 127 banked, wave AA built and staged (not launched) +2565 cb65a62cad47a0d7aabf6ccfb6391865c35e65a9 2026-08-23T00:12:07-06:00 2026-08-23T00:12:07-06:00 feat(phase-31): S57 external-model bake-off β€” 4 tool fixes, Β§205/Β§206, api_agent harness +2566 73b253240b5f60d0bfa7f973277eaad87d7147f1 2026-08-23T00:12:16-06:00 2026-08-23T00:12:16-06:00 chore(phase-31): stamp S57 checkpoint HEAD +2567 d97f1c28c57724d1d36fdcf94776f167b415015d 2026-08-23T00:15:52-06:00 2026-08-23T00:15:52-06:00 chore(phase-31): R40 + R41 ACCEPTED by Drew β€” binding from 2026-08-23 +2568 daa9b8f6720ff8ba56ff93cb403592bc2c433f1f 2026-08-23T00:22:53-06:00 2026-08-23T00:22:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2569 7c559ce2373507c96daf004dbf68a0ffdd4c9853 2026-08-23T00:23:59-06:00 2026-08-23T00:23:59-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2570 35503ce013ed1b89994be7a8d7f17ab406155cf0 2026-08-23T00:25:12-06:00 2026-08-23T00:25:12-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2571 6d6984dd81086628a2945e72bd5927183258f845 2026-08-23T00:26:22-06:00 2026-08-23T00:26:22-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2572 e0d688cabbd4652b6008e2f0b279b79ebde59a3d 2026-08-23T00:29:07-06:00 2026-08-23T00:29:07-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2573 f9b0e8c3a75d79a14f5c7585667f1c02e3ad1b29 2026-08-23T00:30:23-06:00 2026-08-23T00:30:23-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2574 4f95a4cc4c4176ee5be4c81b47f18813d13a1223 2026-08-23T00:31:37-06:00 2026-08-23T00:31:37-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2575 e85896b5f9b360e3c0bab56a7bfed9a176b77bae 2026-08-23T00:32:42-06:00 2026-08-23T00:32:42-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2576 6dce52f411323e3ad197580ddde09cdcbd7ba1d5 2026-08-23T00:33:40-06:00 2026-08-23T00:33:40-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2577 3f145c652f44669d163b9ff1c3bf0418301dc3ca 2026-08-23T00:35:44-06:00 2026-08-23T00:35:44-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2578 ac32a6c14811c8653066d24046bf18dc511a0bac 2026-08-23T00:37:45-06:00 2026-08-23T00:37:45-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2579 2dd65beae34b1db86bb54c1fc38e2561331a1557 2026-08-23T00:38:43-06:00 2026-08-23T00:38:43-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2580 1001fb7b044b7d6b0071a61446a767d3bf6c8df6 2026-08-23T00:39:47-06:00 2026-08-23T00:39:47-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2581 17f94772a4c18ed9653a1b63ef25c5a15ad13bf4 2026-08-23T00:42:56-06:00 2026-08-23T00:42:56-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2582 47f43517b07f4f17721b750391e8108920e04c3a 2026-08-23T00:43:53-06:00 2026-08-23T00:43:53-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2583 bc3c8a981542feeebd00f38d743fc8983dbe7496 2026-08-23T00:45:54-06:00 2026-08-23T00:45:54-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2584 1a4ac3583cfd775ff7eba974b749dbb193be9c91 2026-08-23T00:46:50-06:00 2026-08-23T00:46:50-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2585 ad19417f502d0cc2ce4870d5c6b91d9fc69e4d30 2026-08-23T00:47:46-06:00 2026-08-23T00:47:46-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 96.1%) +2586 4253fbe973675933ae772bf7ff3e684c50c097fe 2026-08-23T00:55:54-06:00 2026-08-23T00:55:54-06:00 feat(decomp): S58 fueled batch-10 β€” 9 banked via sweep_parallel (7 binaries, 53s) +2587 5d8d497c48618d1a938ea190a99f535cfde37642 2026-08-23T02:27:15-06:00 2026-08-23T02:27:15-06:00 feat(decomp): free A-prop remap lane β€” 390 banked, zero model tokens +2588 a5729798575aababca4631b4897559b1cd1929e4 2026-08-23T05:39:57-06:00 2026-08-23T05:39:57-06:00 feat(decomp): ox wave ab β€” 94 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_80181F04 func_80181F70 func_80181FA8 func_801821C8 func_801827A8 func_80182810 func_80182E04 func_80182F78 func_80182FAC func_8018300C func_80183174 func_801831A4 func_801834C8 func_80183C7C func_801840E8 func_801844D4 func_80184C20 func_80184CA4 func_80184E30 func_801853CC func_8018548C func_80185D6C func_80185D84 func_80185E54 func_801860F4 func_80186144 func_80186C70 func_80186CA8 func_80186D74 func_801871E4 func_80187348 func_80187508 func_801876B0 func_801877FC func_80187A8C func_80187B0C func_80187C14 func_80187D0C func_80187D4C func_80187DCC … +2589 b5724e07e25ec368be35a3aa88cec8b209857bc1 2026-08-23T05:43:33-06:00 2026-08-23T05:43:33-06:00 feat(decomp): ox wave ac β€” 170 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_801A03A4 func_801A0C58 func_801A108C func_801A115C func_801A2330 func_801A2364 func_801A2C88 func_801A3A6C func_801A3B08 func_801A3EEC func_801A3F10 func_801A4328 func_801A43EC func_801A445C func_801A46B8 func_801A46D4 func_801A46F0 func_801A4A18 func_801A4FDC func_801A5654 func_801A5798 func_801A5CE8 func_801A6330 func_801A6428 func_801A64DC func_801A6560 func_801A6DF4 func_801A6E78 func_801A6F3C func_801A70D0 func_801A7808 func_801A7864 func_801A7AF8 func_801A7C34 func_801A7C58 func_801A7CDC func_801A7D18 func_801A8494 func_801A8528 func_801A86F8 … +2590 8629bdba7530285a6ea085656cac1e712eb78a83 2026-08-23T05:47:07-06:00 2026-08-23T05:47:07-06:00 feat(decomp): ox wave ad β€” 186 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017F7E4 func_8017F8A0 func_8017FA44 func_8017FADC func_8017FDC0 func_801802B8 func_80181374 func_801830B0 func_801843D8 func_801843FC func_80184E3C func_80185028 func_8018509C func_8018558C func_80185D34 func_80186838 func_80186A88 func_80186B0C func_80186C98 func_80186E60 func_80186F04 func_801871EC func_80187688 func_80187860 func_801878A8 func_80187954 func_80187EEC func_80188034 func_801880AC func_801883E4 func_8018854C func_8018870C func_80188950 func_80188BEC func_80188CAC func_80188D14 func_80188EC0 func_8018A800 func_8018AB7C func_8018ABC4 … +2591 4bfb94cc8e4ee1e8a1d2786cd2c0235b3d31ff9c 2026-08-23T07:09:48-06:00 2026-08-23T07:09:48-06:00 feat(decomp): ox wave ae β€” 177 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017D684 func_8017DAA8 func_8017DF5C func_8017E1D8 func_8017E400 func_8017E424 func_8017E568 func_8017E59C func_8017E5C0 func_8017ED18 func_8017EE90 func_8017EF34 func_8017FBA0 func_801800A4 func_801800F4 func_80180580 func_801805C4 func_80180730 func_80180A48 func_80180B38 func_80180C6C func_80180CE8 func_80180D5C func_80180E74 func_80180EC8 func_80180F38 func_80181280 func_80181384 func_801813A8 func_801813CC func_8018141C func_8018144C func_80181470 func_80181494 func_80181730 func_801817D0 func_80181960 func_80181AA8 func_80181B28 func_80181DFC … +2592 c3d074253d5b9ea2584ff79f15c9312b688e0217 2026-08-23T09:03:28-06:00 2026-08-23T09:03:28-06:00 feat(decomp): ox wave af β€” 57 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8018066C func_80180B28 func_801A6BC0 func_801A6CA8 func_801A7200 func_801A7F84 func_801A8990 func_801A900C func_801AA210 func_801AA3CC func_801AACD4 func_801ABFF8 func_801AC47C func_801ACC24 func_801AE138 func_801AE520 func_8017EEDC func_80181414 func_80182698 func_80184230 func_80184A40 func_80186D84 func_8018753C func_80187C28 func_80187D48 func_80188DC0 func_8018A878 func_8018A960 func_8018AA58 func_8017FB8C func_8017FED0 func_801809B8 func_80181760 func_8017E408 func_8017E934 func_8017F0A4 func_8017FB74 func_801804C0 func_801805AC func_8018130C … +2593 28d1160ef915dc851f3dd96a0259fa151bd5a388 2026-08-23T10:20:17-06:00 2026-08-23T10:20:17-06:00 feat(decomp): ox wave ag β€” 161 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017EF88 func_8017F1A4 func_8017F590 func_8017FA2C func_8017FC50 func_8017FDB4 func_80180250 func_80180904 func_80180B44 func_80180E94 func_80181598 func_801817D8 func_801818EC func_80182360 func_80182580 func_80182958 func_80183154 func_801831B4 func_80183214 func_80183600 func_80183878 func_80183928 func_80183968 func_801844B0 func_80184B18 func_80184D34 func_80185378 func_80185D08 func_80185F38 func_80186CE4 func_80186D90 func_80186F9C func_801870B8 func_8018723C func_8017DE5C func_8017E454 func_8017E4F8 func_8017F118 func_8017F244 func_8017F748 … +2594 af016a66048f6b652e45fe9d56d089c1c4a0e88c 2026-08-23T10:50:25-06:00 2026-08-23T10:50:25-06:00 feat(decomp): ox wave ah β€” 64 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017DD24 func_8017F9FC func_8017EAB0 func_80180518 func_80180818 func_80180958 func_8017EA2C func_8017F444 func_8017F600 func_8017DDF8 func_8017E014 func_8017E524 func_8017EB2C func_8017EDAC func_80180650 func_801845EC func_801874BC func_8017D3BC func_8017D68C func_8017DBD4 func_8017E438 func_8017EF48 func_800CCB78 func_800CCDC8 func_800CCFDC func_800CD708 func_8017DB6C func_8017F264 func_8017F33C func_8017F9F4 func_801804F8 func_80180828 func_80181E80 func_80181FB8 func_8017F894 func_8017E998 func_80183768 func_80185FB4 func_80188FA4 func_8017DB70 … +2595 7274e0026c3efb4a01ab0e72cc2a3b744cd1ddba 2026-08-23T10:52:33-06:00 2026-08-23T10:52:33-06:00 docs(cookbook): Β§207-Β§232 β€” 26 sections harvested from waves ab..ag +2596 e7ebb1cd45b4ca974df942c8786d0a95824f12d4 2026-08-23T12:59:59-06:00 2026-08-23T12:59:59-06:00 docs+rules(S58): R42 commit-banked-work-immediately, R43 refuse-unsupported-input +2597 8fe391868207f707d460d2bc68416e8ee13004b7 2026-08-23T13:45:26-06:00 2026-08-23T13:45:26-06:00 feat(decomp): ox wave aj overlays β€” 61 banked +2598 9adeed39f6e3697b904b12b77126f7cb1a141f13 2026-08-23T14:10:25-06:00 2026-08-23T14:10:25-06:00 chore(decomp): commit in-tree banked work before the next gate +2599 7d4ab202b70af290197e03c32203409d8c1a47a7 2026-08-23T22:52:37-06:00 2026-08-23T22:52:37-06:00 chore(decomp): commit in-tree banked work before the next gate +2600 a13fd38ee124104ed3e466014ba4e1bf8623daa5 2026-08-23T23:05:05-06:00 2026-08-23T23:05:05-06:00 feat(decomp): ox wave an overlays β€” 421 banked +2601 e05dc116be901721d5d3008476e848853b139610 2026-08-24T00:24:11-06:00 2026-08-24T00:24:11-06:00 chore(phase-31): S58 crash-recovery checkpoint + autonomous lane architecture +2602 0b7f0a2b46028dec7c6e79515cd7778a251c3263 2026-08-24T00:32:28-06:00 2026-08-24T00:32:28-06:00 feat(decomp): ox wave an β€” 0 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\n +2603 34259635198eeca91a9245b5d25247e9a8522bb3 2026-08-24T00:38:19-06:00 2026-08-24T00:38:19-06:00 feat(decomp): ox wave ao overlays β€” 66 banked +2604 de9a550edbdf6cd5ce66b5d310af656a9f02f113 2026-08-24T01:00:59-06:00 2026-08-24T01:00:59-06:00 fix(jtbl): refuse md_*/main in jtbl_carve β€” it corrupts those configs before erroring +2605 2cce079def16857263a623b61e3e69e277b739c4 2026-08-24T01:01:51-06:00 2026-08-24T01:01:51-06:00 chore(decomp): commit in-tree banked work before the next gate +2606 5554d2b68ea4954ad6b9456e618d662a9659ff50 2026-08-24T01:13:39-06:00 2026-08-24T01:13:39-06:00 feat(decomp): ox wave an overlays β€” 2 banked +2607 e0b427f92e57b28aaafa7babfe9362d69605daf4 2026-08-24T01:13:45-06:00 2026-08-24T01:13:45-06:00 chore(decomp): commit in-tree banked work before the next gate +2608 3a0c4cab45a862bfa795bc18e500400a01428f20 2026-08-24T01:19:03-06:00 2026-08-24T01:19:03-06:00 feat(decomp): ox wave aa overlays β€” 25 banked +2609 aa1d016014a85cd943fc8e7e73f0cf9eb4c2a396 2026-08-24T01:25:53-06:00 2026-08-24T01:25:53-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2610 e390f4771aed50b4b75a4c238416f81f5038c658 2026-08-24T01:31:57-06:00 2026-08-24T01:31:57-06:00 docs(tool-designs): o0/cc1 lane study + the grep that refutes half its headline +2611 ccb974c09dad94dafec93c69ad6bb10d70853098 2026-08-24T01:46:09-06:00 2026-08-24T01:46:09-06:00 chore(decomp): commit in-tree banked work before the next gate +2612 840f28002041a84a2586d45f42c65b77ca18f683 2026-08-24T02:05:16-06:00 2026-08-24T02:05:16-06:00 fix(gate_main): read implicit-declaration errors; document the non-idempotent hoist loop +2613 d90da77e5b2916a7cbfce9731449379aee01418c 2026-08-24T02:33:14-06:00 2026-08-24T02:33:14-06:00 chore(decomp): commit in-tree banked work before the next gate +2614 30487c7aa740269c76f2424a6c93ceace9ad8bcd 2026-08-24T02:40:17-06:00 2026-08-24T02:40:17-06:00 feat(decomp): ox wave as overlays β€” 5 banked +2615 49609fc1a6a7d2d2b75d344da895b169bcfa856d 2026-08-24T03:26:53-06:00 2026-08-24T03:26:53-06:00 feat(decomp): ox wave aq overlays β€” 60 banked +2616 01c152c985f6781dce83dbc88259ee1b10b5f881 2026-08-24T04:18:21-06:00 2026-08-24T04:18:21-06:00 feat(decomp): ox wave au overlays β€” 37 banked +2617 8dfba33869b53465f593a8d76652efe9abcf5ac0 2026-08-24T04:58:11-06:00 2026-08-24T04:58:11-06:00 chore(decomp): commit in-tree banked work before the next gate +2618 423313180d8bb13b2ffd5516a879f0722b69a727 2026-08-24T04:58:39-06:00 2026-08-24T04:58:39-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2619 7c674dc63d4d6c6554f515193281318b664c9c06 2026-08-24T05:09:47-06:00 2026-08-24T05:09:47-06:00 feat(decomp): ox wave av overlays β€” 428 banked +2620 c47d820d592092fdaa7959aae8ab3debc175aa38 2026-08-24T05:45:34-06:00 2026-08-24T05:45:34-06:00 feat(decomp): ox wave aw overlays β€” 6 banked +2621 b7bdf475a55a4919d2a4948bd5ed031880415576 2026-08-24T06:11:34-06:00 2026-08-24T06:11:34-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2622 b4161aa25f4e220e3411700e820b3c0f3d9de9c1 2026-08-24T06:23:04-06:00 2026-08-24T06:23:04-06:00 feat(decomp): ox wave ar overlays β€” 69 banked +2623 73d5a17a49a5e9c882ce719e2a0005e7f99eb1d5 2026-08-24T06:48:16-06:00 2026-08-24T06:48:16-06:00 feat(decomp): ox wave az overlays β€” 4 banked +2624 5db8daf4de6596a22487ea986a45813e8d7b2f54 2026-08-24T07:17:14-06:00 2026-08-24T07:17:14-06:00 chore(decomp): commit in-tree banked work before the next gate +2625 d336ed15ec72fdacd7eaef23f9dfa26be1ec996c 2026-08-24T07:18:47-06:00 2026-08-24T07:18:47-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2626 7f70a9f42f0fb656a6f480019bb794a88899c05d 2026-08-24T07:28:26-06:00 2026-08-24T07:28:26-06:00 feat(decomp): ox wave ba overlays β€” 287 banked +2627 f74fd335e00e50b48269b79dbf0dee063e6272b3 2026-08-24T07:54:38-06:00 2026-08-24T07:54:38-06:00 feat(decomp): ox wave bb overlays β€” 29 banked +2628 8ba832c237cf38ad415c30d94c2c7e21d39853fa 2026-08-24T08:20:05-06:00 2026-08-24T08:20:05-06:00 chore(decomp): commit in-tree banked work before the next gate +2629 c0466cb17101cb86968591af5ca13c7ab440f61a 2026-08-24T08:29:45-06:00 2026-08-24T08:29:45-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2630 7f6cd48521912f0a9a604efb09800f93ff8556f3 2026-08-24T08:34:17-06:00 2026-08-24T08:34:17-06:00 feat(decomp): ox wave bc overlays β€” 233 banked +2631 b2a2b104352b8575da301ebba476c88454e0ea78 2026-08-24T08:53:13-06:00 2026-08-24T08:53:13-06:00 feat(decomp): ox wave bd overlays β€” 3 banked +2632 8870146e2462fac3e445352ea8d2bc7af9767973 2026-08-24T09:25:27-06:00 2026-08-24T09:25:27-06:00 chore(decomp): commit in-tree banked work before the next gate +2633 fe66f181e113d9e776bc875df2a1ec8745607b88 2026-08-24T09:40:24-06:00 2026-08-24T09:40:24-06:00 fix(gate_main): terminating bounded bisect + idempotent typedef hoist +2634 a69d558641b75a6a1e6891864b396eb705ff7c51 2026-08-24T09:40:56-06:00 2026-08-24T09:40:56-06:00 feat(decomp): ox wave bf overlays β€” 233 banked +2635 f1f426df53251e8e66eb309338d2ab7776c833a0 2026-08-24T10:14:20-06:00 2026-08-24T10:14:20-06:00 feat(decomp): ox wave bg overlays β€” 29 banked +2636 6df9ea5ca587f9998a2d082f98b3a51b4408228c 2026-08-24T10:19:53-06:00 2026-08-24T10:19:53-06:00 fix(main): revert 10 ungated gate_main substitutions that broke main's byte-match +2637 90b452008e9b5a82da540e1fea7017f4b24eb735 2026-08-24T10:22:41-06:00 2026-08-24T10:22:41-06:00 docs(cookbook): Β§233-Β§259 β€” 24 new laws + 21 addenda from 1,101 harvested candidates +2638 d53c4bf796225652c5d49b5c73ef9071f0542f44 2026-08-24T10:27:34-06:00 2026-08-24T10:27:34-06:00 fix(R42): gate_main self-reverts on abort; campaign refuses to adopt main sources +2639 52b9e842083acfd7371d513eb04f7c0a36f4a4fe 2026-08-24T10:29:18-06:00 2026-08-24T10:29:18-06:00 docs(phase-31): S58 handoff β€” the three open tooling lanes in working detail +2640 2257be920c1634a58b8a64f650f0bc8e366653c9 2026-08-24T10:37:27-06:00 2026-08-24T10:37:27-06:00 fix(lanes): tells was removed for the wrong reason β€” pin it to the full band +2641 7d10fd7e201d0112d94290b89665a10a140550a8 2026-08-24T10:42:11-06:00 2026-08-24T10:42:11-06:00 fix(jtbl_carve): parse_config now implements its documented contract (md_* c-line corruption) +2642 7aada7c4aa461b56a12aa2af0919a05443ab8e63 2026-08-24T10:45:01-06:00 2026-08-24T10:45:01-06:00 fix(jtbl_carve): route asm lookups through asm_dir() β€” main's tree is the repo root +2643 6752653e6f72d9d8488a1f633c8c2da2a2f1eed6 2026-08-24T10:45:46-06:00 2026-08-24T10:45:46-06:00 feat(lanes): one-shot watcher that bounces the drafter python once the in-flight wave queues +2644 e1479c190079af04637bfc0574ebe82399aaae79 2026-08-24T10:52:11-06:00 2026-08-24T10:52:11-06:00 feat(decomp): ox wave bh overlays β€” 155 banked +2645 63fcbeda98dd62684105bc730969cc1bd9737b97 2026-08-24T10:57:19-06:00 2026-08-24T10:57:19-06:00 fix(jr_isolate_all): the md_* leading island is not a jtbl carve +2646 a931423c7a4f257bfc0951207c6575b549914831 2026-08-24T10:58:29-06:00 2026-08-24T10:58:29-06:00 feat(jtbl): the 154-A island split WORKS β€” byte-proven on md_SC03_076/func_801F218C +2647 d3a36260d77bc0d416a923443ea8532b275fe726 2026-08-24T11:02:18-06:00 2026-08-24T11:02:18-06:00 chore(decomp): commit in-tree banked work before the next gate +2648 d9805400959e2b0b8875aa7cedffb465938b7162 2026-08-24T11:09:38-06:00 2026-08-24T11:09:38-06:00 fix(lanes): tells draws a SMALL band β€” the lane gap was a card-SIZE gap +2649 4702e692242c974373744cc1fd1f1e00a8c85884 2026-08-24T11:10:56-06:00 2026-08-24T11:10:56-06:00 feat(decomp): ox wave bi β€” 0 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\n +2650 f574f3c80e8f3d078e2cd7775a692ca39c908045 2026-08-24T11:15:33-06:00 2026-08-24T11:15:33-06:00 feat(match_one): derive the opt level from the target β€” the -O0 oracle was never wired up +2651 14b6ca14129aab75fd77d359efa1f5be6cbbfdfe 2026-08-24T11:16:09-06:00 2026-08-24T11:16:09-06:00 feat(waves): cc1 joins the default lever list β€” it was never a structural blocker +2652 e02cfe6ec194e241ebd86820e52a1d65b78ecadd 2026-08-24T11:17:18-06:00 2026-08-24T11:17:18-06:00 docs(cookbook): 260-262 β€” the island split, the -O0 oracle, and size-matched lane yield +2653 2e4dbeb7fdf5381ec6cb02d7a7b3ab7b27374083 2026-08-24T11:17:37-06:00 2026-08-24T11:17:37-06:00 docs(accelerators): a running lane script does not read your edit +2654 2dd00be292f7a0c98d3fd8ef3819874838754743 2026-08-24T11:19:27-06:00 2026-08-24T11:19:27-06:00 fix(lanes): the relaunch watcher must watch marker NAMES, not the queue count +2655 b6579839c51fb576d9337be11ea760c3a6c44193 2026-08-24T11:30:56-06:00 2026-08-24T11:30:56-06:00 feat(decomp): ox wave at overlays β€” 6 banked +2656 db02d837d76aaa141059e2357872cfa8bdd81ca7 2026-08-24T11:43:53-06:00 2026-08-24T11:43:53-06:00 fix(waves): stop drawing -O0 functions that sit in -O2 objects β€” they can never bank +2657 a664636ce20a2fdbc7478c8c7b2d118fa7cb113f 2026-08-24T11:52:58-06:00 2026-08-24T11:52:58-06:00 docs(phase-31): S59 checkpoint β€” the three S58 tooling lanes, each worked to a verdict +2658 a2f43ac792e26a1cd28843d2508bb291dabc363b 2026-08-24T12:02:21-06:00 2026-08-24T12:02:21-06:00 feat(decomp): ox wave bk overlays β€” 110 banked +2659 a1e8b9a5fbcf630120e0c65795c217bc5fd6d2d3 2026-08-24T12:05:09-06:00 2026-08-24T12:05:09-06:00 feat(decomp): func_80184058 banked in ov_SC03_014 (-O0, first-compile MATCH via the fixed auto-O0 oracle; S59 probe) +2660 52a9f931fa005c6e802d464d8a5ba2f31f890acb 2026-08-24T12:11:59-06:00 2026-08-24T12:11:59-06:00 docs(S59): o0-path decision study β€” per-population unlocks, first-compile -O0 bank proof, cookbook Β§261a reload grammar +2661 b801b499ef45021e14487f623cf62cf991dc400b 2026-08-24T12:23:48-06:00 2026-08-24T12:23:48-06:00 feat(decomp): jtbl lane β€” func_8017DCC0 banked in ov_SC03_014 (45 ins, tail) +2662 b1aa5bceddf759d13f001aea36a655fc4bea037d 2026-08-24T12:26:58-06:00 2026-08-24T12:26:58-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2663 bad793c73efa6013a8f4febf44aebaf1b42b4579 2026-08-24T12:26:58-06:00 2026-08-24T12:26:58-06:00 feat(decomp): jtbl lane β€” func_801F218C banked in md_SC03_076 (88 ins, covered) +2664 f74ad7ac8a0cc780bfdfa791393ad88c989bfaee 2026-08-24T12:27:29-06:00 2026-08-24T12:27:29-06:00 feat(decomp): jtbl lane β€” func_801E5358 banked in md_SC03_135 (88 ins, island-end) +2665 9e44612c2add2672d3dbaa9d91ca52ac016c74b6 2026-08-24T12:31:14-06:00 2026-08-24T12:31:14-06:00 feat(jtbl): the carveβ†’draftβ†’bank pipeline is automated at the gate β€” byte-proven Γ—3, one per class (S59) +2666 35c486b3b9717afb9b52a1b1ba8ce1f06d331f9f 2026-08-24T12:33:22-06:00 2026-08-24T12:33:22-06:00 docs(cookbook): 263 β€” a stolen delay slot holding an arg copy is an ARITY error +2667 6ae2c558045e0efc1d90ed4d01b671af4d6ba869 2026-08-24T12:41:41-06:00 2026-08-24T12:41:41-06:00 feat(tells): land the crib, the grep aliases and per-lane budgets +2668 c17b35fb37ad30f4d589c16ec0a188327a393a0b 2026-08-24T12:42:19-06:00 2026-08-24T12:42:19-06:00 feat(decomp): ox wave bl overlays β€” 35 banked +2669 05a4aeaf417b36ec33a6921fcdb303c42c140f70 2026-08-24T12:43:40-06:00 2026-08-24T12:43:40-06:00 feat(o0): md_MAIN_011 compiles -O0 β€” 21 functions / 4,321 ins unlocked, byte-proven +2670 9f2b9755cc17bf7251ffb4d6b1f67df0b91e6955 2026-08-24T12:49:04-06:00 2026-08-24T12:49:04-06:00 feat(jtbl): jtbl-carve joins the default lane with a reserved quota +2671 a0dc0d9b09e7b28a4d84de8c022448cd98ba07a5 2026-08-24T12:50:29-06:00 2026-08-24T12:50:29-06:00 docs(phase-31): S59 second checkpoint β€” agents returned, every fix landed and verified +2672 fc244044526123dbb3dabc68362124d97e2a51e5 2026-08-24T13:01:59-06:00 2026-08-24T13:02:23-06:00 feat(lanes): the distill lane β€” the second half of the flywheel, beside drafting +2673 90fa74ba4973cd88eccf638941e0d636620be78e 2026-08-24T13:02:30-06:00 2026-08-24T13:02:30-06:00 feat(lanes): wait_distill β€” block until the next distill batch, no polling +2674 1103cdeaed84925d1709bff7df076a977534b39c 2026-08-24T13:12:23-06:00 2026-08-24T13:12:23-06:00 feat(decomp): ox wave bm overlays β€” 103 banked +2675 9841c16e665b20be757ecd8c7e4a82af93a2f891 2026-08-24T13:22:18-06:00 2026-08-24T13:22:18-06:00 feat(decomp): ox wave ax overlays β€” 5 banked +2676 4d6c34fd1a5832af0e8374a694f0a0f2fe71514f 2026-08-24T13:22:18-06:00 2026-08-24T13:22:18-06:00 feat(decomp): ox wave ax β€” 5 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_80183740 func_8017F964 func_801A5F6C func_8018453C func_8017E0C0 +2677 7740f14143b2b1b466110870120fc412ba1180d3 2026-08-24T13:35:46-06:00 2026-08-24T13:35:46-06:00 docs(cookbook): 265-267 from the at/bh/bk/bl distill batch (165 candidates) +2678 99f096c59147eb8e314003a4137c4ba28e001708 2026-08-24T13:36:58-06:00 2026-08-24T13:36:58-06:00 fix(flywheel): the index is the entry point, and a cited number that fails to grep is a LINE +2679 333a1694582f5fce0f39e1c678c0ed8b673b546e 2026-08-24T13:38:52-06:00 2026-08-24T13:38:52-06:00 fix(distill): state is {tag: novel-count}, never a done-list β€” it nearly buried 82 candidates +2680 6c580a28a00edcfd5c259f4e8281b329ab1c578f 2026-08-24T13:57:31-06:00 2026-08-24T13:57:31-06:00 docs(distill): name the review tier β€” Opus/Sonnet, not Fable +2681 d06e8e69b621291776bd0f7862ade9cb47932acb 2026-08-24T14:06:03-06:00 2026-08-24T14:06:03-06:00 feat(decomp): ox wave bo overlays β€” 24 banked +2682 2bf18f2a250945b0bbcc438be916172f76643806 2026-08-24T14:09:13-06:00 2026-08-24T14:09:13-06:00 docs(cookbook): 268-269 from the ax/bm distill batch (82 candidates) +2683 c4a7a45bf5888f6efa7ed78823c9361be6f7d0cd 2026-08-24T14:17:52-06:00 2026-08-24T14:17:52-06:00 fix(lanes): drop the paid lane before the credit floor kills drafting +2684 86b96b212563ff6cf9cda4eb50f648b3c5a941f3 2026-08-24T14:34:09-06:00 2026-08-24T14:34:09-06:00 perf(lanes): gate-jobs 12 -> 24, and tells become a quota inside default waves +2685 d6a06bc084995f4ec51051b91f9c997895a1e9da 2026-08-24T14:38:07-06:00 2026-08-24T14:38:07-06:00 feat(main): a second drafting lane for the EXE, on its own gate cadence +2686 157c6dac3b06f4f36bee90ee2aaf2c4a52d48c83 2026-08-24T14:39:46-06:00 2026-08-24T14:39:46-06:00 feat(decomp): main lane m00 \u2014 11 banked\n\nOne clean whole-EXE rebuild verified the batch (gate_main). Functions:\n func_80014390\n func_800152F4\n func_80017738\n func_80017E8C\n func_8001D130\n func_8002955C\n func_8002F658\n func_800301A4\n func_80037D74\n func_8003834C\n func_8003A424 +2687 57255bc56cf3f69d032b1c26d5f8914425f4a114 2026-08-24T14:43:48-06:00 2026-08-24T14:43:48-06:00 feat(decomp): ox wave bp overlays β€” 44 banked +2688 394a0781a62d038a252f639634778d0ebd783da9 2026-08-24T14:48:29-06:00 2026-08-24T14:48:29-06:00 fix(main-lane): bisect compile conflicts, cap retries, and scope the draw guard +2689 df5c1a1b15b30872eb7e9a0e75621f78fbae6f3b 2026-08-24T14:50:09-06:00 2026-08-24T14:50:09-06:00 docs(ops): rewrite the automation runbook for the campaign as it actually runs +2690 d0dca96faf1cfced55647203cd123b5bca1f28cd 2026-08-24T14:55:22-06:00 2026-08-24T14:55:22-06:00 fix(main-lane): commit each verified sub-batch immediately, not at cycle end (R42) +2691 30a42f0ef48a3dc0b7130007e4d6939c6d923b34 2026-08-24T14:56:02-06:00 2026-08-24T14:56:02-06:00 feat(decomp): main lane m00a β€” 13 banked +2692 78db16c7ca58db89e7842b5b2a83cdc254eae2f5 2026-08-24T14:56:47-06:00 2026-08-24T14:56:47-06:00 feat(decomp): main lane m00baaa β€” 1 banked +2693 24bd2599316a32fdab3c75c96b0cbb7c05f2262d 2026-08-24T14:57:01-06:00 2026-08-24T14:57:01-06:00 chore(decomp): commit in-tree banked work before the next gate +2694 3e9ef768b4fa8a08a0aa47dbb33fc94592ff6611 2026-08-24T14:57:23-06:00 2026-08-24T14:57:23-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2695 1ae1012a9e69370483de987d9de73103bd34e5f2 2026-08-24T15:09:11-06:00 2026-08-24T15:09:11-06:00 feat(decomp): ox wave bq overlays β€” 81 banked +2696 69397ca1e19a4d0569956df8fc58d0fb824ae70e 2026-08-24T15:23:31-06:00 2026-08-24T15:23:31-06:00 fix(waves): a mid-gate binary is EXCLUDED from the draw, not a reason to refuse it +2697 be637a79d7c9a054e722d2b199f66d4b67fd917e 2026-08-24T15:25:26-06:00 2026-08-24T15:25:26-06:00 feat(decomp): ox wave be overlays β€” 11 banked +2698 fd47c86f4f7bb3790e1414cf75534c7bf01c263c 2026-08-24T15:46:01-06:00 2026-08-24T15:46:01-06:00 docs: seed the portable decomp workflow β€” the part of this project that transfers +2699 0de85bc8d2f791d17058289ba81ef49dd40e104b 2026-08-24T15:56:26-06:00 2026-08-24T15:56:26-06:00 feat(decomp): ox wave bj overlays β€” 19 banked +2700 801a32179eb081411d6bc07858669313e7a20a7d 2026-08-24T16:08:34-06:00 2026-08-24T16:08:34-06:00 perf(lanes): one lane, one band β€” the rotation is obsolete and its large slot is the worst wave we run +2701 d510806fc7c9ac7f4614348ad1de8a1eaa57be16 2026-08-24T16:18:16-06:00 2026-08-24T16:18:16-06:00 feat(waves): index the pre-filter rejects β€” 45% of drafts were recorded nowhere +2702 99e71bfa834514ca55663310b94e5866d6901a59 2026-08-24T16:23:37-06:00 2026-08-24T16:23:37-06:00 perf(waves): MAXTOK 8000 -> 16000, and free recovery of pre-gate rejects +2703 db3fe3490bba76469ec7f0e1efbcd3d9542b830b 2026-08-24T16:36:47-06:00 2026-08-24T16:36:47-06:00 fix(lanes): raise HTTP_TIMEOUT with MAXTOK β€” they are one setting, not two +2704 6a19755969c2a3b27811462c02b6b27f0225dbd1 2026-08-24T16:39:42-06:00 2026-08-24T16:39:42-06:00 feat(lanes): restart the main lane at its idle boundary, not mid-work +2705 b6ba6ab7dfa30c674a37307f9706d7f7f33f1f06 2026-08-24T16:44:36-06:00 2026-08-24T16:44:36-06:00 docs(ops): SETUP + runbook carry the probed campaign constants +2706 1f7fdc79135185618f504da3a9981105c2aebf6f 2026-08-24T16:50:56-06:00 2026-08-24T16:50:56-06:00 feat(decomp): ox wave br overlays β€” 8 banked +2707 6f5eb908440a6c010525a17e96db3c873184b1af 2026-08-24T17:11:46-06:00 2026-08-24T17:11:46-06:00 docs(ops): correct the truncation numbers β€” the denominator was wrong +2708 1cbe3004f81498bbe24090386cf3204088e05c38 2026-08-24T17:31:22-06:00 2026-08-24T17:31:22-06:00 feat(decomp): ox wave bt overlays β€” 44 banked +2709 e3f824159269d0857b21a23fe00b00008a77d0bd 2026-08-24T17:53:38-06:00 2026-08-24T17:53:38-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2710 5be231d446c47e2967fc65bedb9ef0bbe664cedd 2026-08-24T18:02:49-06:00 2026-08-24T18:02:49-06:00 feat(decomp): ox wave bu overlays β€” 42 banked +2711 86ebc95a81541aad9f8c4bbb0cc28ca87624f1c6 2026-08-24T18:27:05-06:00 2026-08-24T18:27:05-06:00 feat(ops): one status view for ALL lanes; straggler grace = one full turn; distill dedupe +2712 88673d370815ef261a0cb340cb2451217e3a707e 2026-08-24T18:43:23-06:00 2026-08-24T18:43:23-06:00 feat(decomp): ox wave bv overlays β€” 44 banked +2713 e40fe9c11653990fcb21601a0cb8cc2524ed9b27 2026-08-24T19:08:47-06:00 2026-08-24T19:08:47-06:00 fix(main-lane): the baseline was RED β€” guard every gate with a no-draft control (S59) +2714 78a377f38b26a4dfaf84c1757976fa01c39f2ae9 2026-08-24T19:09:13-06:00 2026-08-24T19:09:13-06:00 docs(ops): runbook carries the S59 main-lane baseline guard and the one-writer rule +2715 1432dba125db6a132c235d6f525e2d0ffa50638e 2026-08-24T19:09:47-06:00 2026-08-24T19:09:47-06:00 docs(accelerators): 6 β€” the null-input control belongs in the failure path +2716 210dba7afeff1afc20b8df101d88a1016a0d4cee 2026-08-24T19:15:01-06:00 2026-08-24T19:15:01-06:00 feat(decomp): ox wave bw overlays β€” 47 banked +2717 2aea2261d4245d5bcd69b0e52c00bc2e381e230d 2026-08-24T19:22:18-06:00 2026-08-24T19:22:18-06:00 feat(decomp): main lane m05 β€” 32 banked +2718 00ce6c6171e16db09df600d234e4a93114abc7c7 2026-08-24T19:22:18-06:00 2026-08-24T19:22:18-06:00 chore(decomp): commit in-tree banked work before the next gate +2719 e6bb079a2f2961f82590fa322d21c0ef02703b00 2026-08-24T19:23:29-06:00 2026-08-24T19:23:29-06:00 docs(s59): the proof run β€” 40 drafts, 32 banked, one rebuild, SHA green (m05 = commit:2717) +2720 e56355428a17f87b88ca7b7bac5a6c31ddc8d23d 2026-08-24T19:24:12-06:00 2026-08-24T19:24:12-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2721 7e8c56df5fccc8fa15a32d865aa77ab6ac8f672a 2026-08-24T19:25:45-06:00 2026-08-24T19:25:45-06:00 feat(decomp): main lane m05aa β€” 5 banked +2722 65ece408526bbbb7f610b1d425058e257e85d231 2026-08-24T19:27:55-06:00 2026-08-24T19:27:55-06:00 feat(decomp): main lane m05aba β€” 3 banked +2723 eae679684affe7bd9cd9d7ac0203041a05e81b4f 2026-08-24T19:28:29-06:00 2026-08-24T19:28:29-06:00 feat(decomp): main lane m05abba β€” 2 banked +2724 affe6728be9c175f4616b5c50314db4ac8b3e598 2026-08-24T19:32:41-06:00 2026-08-24T19:32:41-06:00 feat(decomp): ox wave bx overlays β€” 14 banked +2725 536c420e593d1211683e84ad799c048e05893858 2026-08-24T19:42:03-06:00 2026-08-24T19:42:03-06:00 feat(decomp): ox wave bs overlays β€” 10 banked +2726 bce7aee2d3f3b00cd43940f87fd7ae878a042fbe 2026-08-24T20:06:15-06:00 2026-08-24T20:06:15-06:00 feat(decomp): main lane m05aaa β€” 3 banked +2727 ab98fade3906358119e65fd1b19564bab9f46fe3 2026-08-24T20:07:09-06:00 2026-08-24T20:07:09-06:00 feat(decomp): main lane m05aabb β€” 3 banked +2728 d2d0852b06154bc7d614627e95328d1a8d18efb3 2026-08-24T20:08:27-06:00 2026-08-24T20:08:27-06:00 feat(decomp): main lane m05abab β€” 3 banked +2729 c5784ae0b2d30031425bdb9353fbc4225cc92988 2026-08-24T20:10:18-06:00 2026-08-24T20:10:18-06:00 feat(decomp): main lane m05abb β€” 3 banked +2730 7360ec951c25d0c4913c39f60b5399399af46985 2026-08-24T20:10:33-06:00 2026-08-24T20:10:33-06:00 feat(decomp): ox wave by overlays β€” 23 banked +2731 0077cb484a4c916dae69a1f9c15e18240c9b0322 2026-08-24T20:13:28-06:00 2026-08-24T20:13:28-06:00 feat(decomp): main lane m05b β€” 16 banked +2732 626ba89e71524db45b6afdc3886fd9ab249a73bd 2026-08-24T20:31:48-06:00 2026-08-24T20:31:48-06:00 chore(decomp): commit in-tree banked work before the next gate +2733 15e0020d8cb9c33fccd27550b38c96946a6215d1 2026-08-24T20:41:28-06:00 2026-08-24T20:41:28-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2734 826d5dfe1c3282e35833fa682834feb46e476352 2026-08-24T20:44:52-06:00 2026-08-24T20:44:52-06:00 feat(decomp): ox wave bz overlays β€” 21 banked +2735 c8102cd95de4f02143c5303372d0095e9ccad4c3 2026-08-24T21:03:40-06:00 2026-08-24T21:03:40-06:00 feat(decomp): main lane m06aaa β€” 4 banked +2736 71fc425afaa2f7006db3d1fe1195694201b6b2f6 2026-08-24T21:04:14-06:00 2026-08-24T21:04:14-06:00 feat(decomp): main lane m06aaba β€” 2 banked +2737 b63d46a68888f97bc38bd0d93526cc047f42e9ec 2026-08-24T21:07:17-06:00 2026-08-24T21:07:17-06:00 feat(decomp): main lane m06ab β€” 7 banked +2738 b0236a091cc3cb46296d9303042e9d6c2b04751f 2026-08-24T21:11:53-06:00 2026-08-24T21:11:53-06:00 feat(decomp): main lane m06bb β€” 8 banked +2739 6a48a490fcc0f563352abdd5373f23c80412a141 2026-08-24T21:33:32-06:00 2026-08-24T21:33:32-06:00 fix(recovery): validate the binary before staging; aprop_autodraft adopts the TU's spelling and refuses asm bodies +2740 8b2a1e5f1f92295b5f2d4bc99362441a1aa3553e 2026-08-24T21:40:22-06:00 2026-08-24T21:40:22-06:00 feat(decomp): ox wave ca overlays β€” 42 banked +2741 78d11e65d64991186a8953956cab8778b781c14d 2026-08-24T22:05:27-06:00 2026-08-24T22:05:27-06:00 feat(decomp): main lane m07aaa β€” 3 banked +2742 d63214844e5df10cfd89967f4158c17b660c65ef 2026-08-24T22:09:14-06:00 2026-08-24T22:09:14-06:00 feat(decomp): main lane m07ab β€” 4 banked +2743 144c7c1b0ac8fea0fa347772ce4eb09a914a6529 2026-08-24T22:11:48-06:00 2026-08-24T22:11:48-06:00 feat(decomp): main lane m07bab β€” 4 banked +2744 60e161cc6e450413d8da512ef474c1ce10269ad7 2026-08-24T22:12:02-06:00 2026-08-24T22:12:02-06:00 feat(decomp): main lane m07bb β€” 10 banked +2745 b2c2b23007335632e6a457708928a8692351aace 2026-08-24T22:22:12-06:00 2026-08-24T22:22:12-06:00 fix(aprop): S59 lane overhaul β€” four measured defects, each byte-diagnosed before the fix +2746 3d1a79a70cb9c1ebc73f006e5df5c8821e079703 2026-08-24T22:29:29-06:00 2026-08-24T22:29:29-06:00 fix(aprop): reloc --fix keyed by (binary,fn); lane gains rtu second-chance, MISMATCH auto-repair, borrow-tier decls +2747 89b4064c10dedfbe952f2e4fa9337cda348cc4c3 2026-08-24T22:30:24-06:00 2026-08-24T22:30:24-06:00 feat(decomp): ox wave cb overlays β€” 12 banked +2748 cbce26e2726bbc12d46b8d78c18718c4b2d804ae 2026-08-24T22:42:53-06:00 2026-08-24T22:42:53-06:00 feat(decomp): A-prop lane S59 sweep 1 β€” 38 banked of 80 staged, zero model tokens +2749 65ef0ebae60935a8e6bc143e5994b0fc699dc97c 2026-08-24T22:51:16-06:00 2026-08-24T22:51:16-06:00 feat(decomp): main lane m08 β€” 19 banked +2750 5a80e15f91fd36e01ca5b47b92037bf065c02bbf 2026-08-24T22:51:46-06:00 2026-08-24T22:51:46-06:00 chore(decomp): commit in-tree banked work before the next gate +2751 88da1eb03b4ab06a04a082c667abadd9a78529da 2026-08-24T22:52:27-06:00 2026-08-24T22:52:27-06:00 feat(decomp): A-prop lane S59 sweep 2 β€” 12 banked of 33 recovered drafts, zero model tokens +2752 488e009bd19412ad8497a1eda9c3814d795fa2fb 2026-08-24T23:00:38-06:00 2026-08-24T23:00:38-06:00 feat(decomp): ox wave cd overlays β€” 18 banked +2753 2364da4afdcf44923077ead72d48b4413041cb82 2026-08-24T23:03:34-06:00 2026-08-24T23:03:34-06:00 fix(decomp): ov_SC07_010 baseline back to green β€” one stale (void) decl no-proto'd +2754 2c61a5e051edb07ab8439efbd16e725ce9ee6812 2026-08-24T23:15:25-06:00 2026-08-24T23:15:25-06:00 feat(decomp): A-prop S59 TU-retype pass β€” 14 banked of 30, zero model tokens +2755 40dea1c2a2616213f6a3f763c275c9851b85d2bd 2026-08-24T23:19:47-06:00 2026-08-24T23:19:47-06:00 fix(aprop): three more decl-layer defects, each traced to a wrong-name or wrong-scope lookup +2756 19fb23dc466306ce6cc5ad4707412fff74fbe436 2026-08-24T23:22:55-06:00 2026-08-24T23:22:55-06:00 fix(drafter): never block on the draw lock β€” the hazard it guarded is handled at the binary level now +2757 0f5c76da81f95d2e4cb814d7c5221c0dcd0be2ba 2026-08-24T23:30:32-06:00 2026-08-24T23:30:32-06:00 feat(decomp): main lane m09aa β€” 4 banked +2758 586916732c8c8f1dcb57260763adb3c4dc884e5c 2026-08-24T23:32:06-06:00 2026-08-24T23:32:06-06:00 docs(aprop-s59): the measured decomposition + honest ceiling; cookbook Β§270-Β§273; lane wiring complete +2759 90efcc5e87795ae87d6f524f11073a25493fe466 2026-08-24T23:32:27-06:00 2026-08-24T23:32:27-06:00 docs(accelerators): #7 β€” wire the full verdict ladder into template lanes from day one +2760 b8e3451e2f7bc5cb53f80138c9eba744368c1cc0 2026-08-24T23:33:25-06:00 2026-08-24T23:33:25-06:00 feat(decomp): main lane m09abab β€” 2 banked +2761 12f7af65cfdb1f935087294a1f49fee11661ea15 2026-08-24T23:33:39-06:00 2026-08-24T23:33:39-06:00 feat(decomp): main lane m09abb β€” 5 banked +2762 b5c422168aec68f2a181fbd359b9594abe32d893 2026-08-24T23:34:37-06:00 2026-08-24T23:34:37-06:00 docs(decision-log): S59 A-prop decomposition β€” consume every verdict layer; never key by bare fn name +2763 ba2833739a6e1df9d1a4e336c59875ceed7c5f5b 2026-08-24T23:36:29-06:00 2026-08-24T23:36:29-06:00 feat(decomp): ox wave cc overlays β€” 18 banked +2764 3960b3e28a1114f1bc3dc58a01a0e1cc29221537 2026-08-24T23:38:18-06:00 2026-08-24T23:38:18-06:00 fix(agents): retry the SOFT 429 β€” a 200 body carrying a rate-limit error was killing agents outright +2765 65fe4a81d42713a73b9a7d25ddbf335fbe886af9 2026-08-24T23:39:16-06:00 2026-08-24T23:39:16-06:00 docs(aprop-s59): final numbers β€” 64 banked exactly; sweep 3 honest 0/9 with the residual hypotheses named +2766 656aa4f51420e9bec20fa68656a436763a5eb078 2026-08-24T23:39:41-06:00 2026-08-24T23:39:41-06:00 feat(decomp): main lane m09b β€” 16 banked +2767 f94cdac931176adefb8f640e753e640324aa473a 2026-08-24T23:52:50-06:00 2026-08-24T23:52:50-06:00 fix(jtbl): drop the stale 2-table pad spec that made ov_SC07_002 unbuildable +2768 85f6b79471e1b414098b8eff07b7d9a85f54aa97 2026-08-25T00:03:45-06:00 2026-08-25T00:03:45-06:00 feat(maintenance): a periodic fleet R22 β€” nothing was watching the binaries no lane touches +2769 c1637b2ddc5571082ee8adec553e2367227a0cde 2026-08-25T00:13:22-06:00 2026-08-25T00:13:22-06:00 feat(decomp): main lane m10aaa β€” 1 banked +2770 2a95f6e0f133137d467512c4bdc99268ebaf73d7 2026-08-25T00:14:57-06:00 2026-08-25T00:14:57-06:00 feat(decomp): ox wave ce overlays β€” 40 banked +2771 a3e1430551c21e32ce8fdcbaf90b762d5ba4e83c 2026-08-25T00:15:26-06:00 2026-08-25T00:15:26-06:00 feat(decomp): main lane m10aabb β€” 2 banked +2772 86c6d0409256a28e8a73cb8e7a1f0f3a5d4fe82f 2026-08-25T00:15:40-06:00 2026-08-25T00:15:40-06:00 feat(decomp): main lane m10ab β€” 10 banked +2773 845df54ca1309a869031ee822ed96667f51bcb18 2026-08-25T00:18:52-06:00 2026-08-25T00:18:52-06:00 feat(decomp): main lane m10b β€” 19 banked +2774 619f4dfaeeb4070bde7f2122d3fe235ced127f88 2026-08-25T00:21:16-06:00 2026-08-25T00:21:16-06:00 tune(maintenance): trigger threshold 150 -> 50 banked (Drew) +2775 9696f8fb144617bb60ed12bc7192483835faf3c6 2026-08-25T00:25:46-06:00 2026-08-25T00:25:46-06:00 docs(phase-31): S59 FINAL checkpoint β€” six harness defects, six lanes, and the rules they earned +2776 5bd66c7b5ba17e5fa0a71c842194f191aca0b8d2 2026-08-25T00:32:56-06:00 2026-08-25T00:32:56-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2777 75bfb04226cf267db5006244fd7e5b36d9fa2797 2026-08-25T00:35:27-06:00 2026-08-25T00:35:27-06:00 fix(maintenance): restore the S59 lane logic a stale second copy had reverted +2778 e76a55abdf046707475cb29f8fd56009128de3ef 2026-08-25T00:49:24-06:00 2026-08-25T00:49:24-06:00 fix(distill): a stale READY marker no longer blocks the lane forever +2779 1525ed87f6f3b9a01dc8bfb69cc7e855fc0fb0d8 2026-08-25T00:52:46-06:00 2026-08-25T00:52:46-06:00 feat(decomp): main lane m11aaaa β€” 1 banked +2780 80800911fde77c62ef19dc7588afb1f89201e3c5 2026-08-25T00:55:41-06:00 2026-08-25T00:55:41-06:00 feat(decomp): main lane m11aab β€” 3 banked +2781 89373beb959f77e7f3d42dfe9e7c7441203be60b 2026-08-25T00:55:56-06:00 2026-08-25T00:55:56-06:00 feat(decomp): main lane m11ab β€” 10 banked +2782 133c1d45a905e7ee98c8957e11994b41b09fd964 2026-08-25T00:56:29-06:00 2026-08-25T00:56:29-06:00 docs(drafter): the rationale for the tail-overlap change committed inside commit:2780 +2783 5e2c15b454821c9bc300ca27e9b6a30dfdffa08f 2026-08-25T00:59:27-06:00 2026-08-25T00:59:27-06:00 feat(decomp): main lane m11b β€” 19 banked +2784 829361dd7b3e5efce29379fd59efd39468d636fe 2026-08-25T01:09:05-06:00 2026-08-25T01:09:05-06:00 feat(decomp): ox wave cf overlays β€” 50 banked +2785 3a7f67187c1581e0ae3ca0cef775893fba4173c3 2026-08-25T01:09:25-06:00 2026-08-25T01:09:25-06:00 fix(agent): cookbook grep hits come back with the SECTION they live in +2786 32eafed7b2b0a980a2adcdf64e0870780ce21fab 2026-08-25T01:17:28-06:00 2026-08-25T01:17:28-06:00 docs(cookbook): Β§274-Β§277 β€” the 18-wave distill backlog lands, 315 candidates reviewed +2787 6fe90cd9baa59dc86e68dfebb9173b6647000668 2026-08-25T01:39:08-06:00 2026-08-25T01:39:08-06:00 feat(decomp): main lane m12 β€” 7 banked +2788 4b7ebe795473d141f1e297b75e1f5c7d518d8ae8 2026-08-25T01:50:53-06:00 2026-08-25T01:50:53-06:00 feat(decomp): ox wave cg overlays β€” 36 banked +2789 2de4ef722a796cfc014cbb9fced1da530e5eb8bc 2026-08-25T02:06:20-06:00 2026-08-25T02:06:20-06:00 feat(decomp): -O0 U2 β€” the 4 SC07 whale members bank, 4/4, zero model tokens +2790 bd45f1f2325d04e28dfa4ac008e6474ec4398762 2026-08-25T02:08:23-06:00 2026-08-25T02:08:23-06:00 feat(decomp): main lane m13 β€” 34 banked +2791 c03cd6f3a2d663dc23af1e73a527eb9e50107083 2026-08-25T02:14:34-06:00 2026-08-25T02:14:34-06:00 feat(config): -O0 U3 step 1 β€” carve the 16-fn cluster out of jr_801380E0 in the x3 group +2792 ec8ade569228988defb1709df6f657fa96319ac4 2026-08-25T02:19:38-06:00 2026-08-25T02:19:38-06:00 feat(decomp): -O0 U3 β€” 48 banked across the x3 carve group, zero model tokens +2793 82b4cd5b55409ba5b32c089da41946d9787719aa 2026-08-25T02:36:04-06:00 2026-08-25T02:36:04-06:00 feat(decomp): ox wave ch overlays β€” 88 banked +2794 9f228db2fc08005f661607eaa67b97244e254b79 2026-08-25T02:36:42-06:00 2026-08-25T02:36:42-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2795 5dc373deaf9f08bf4d1ef66cb62b140d11875cec 2026-08-25T02:40:04-06:00 2026-08-25T02:40:04-06:00 feat(decomp): main lane m14 β€” 31 banked +2796 10dadb6c1cd358d2badd9373d4435a5ded2a5755 2026-08-25T02:54:38-06:00 2026-08-25T02:54:38-06:00 feat(decomp): ox wave ci overlays β€” 34 banked +2797 8a5760450a84520316eee28fa3499b1f9bea90f9 2026-08-25T03:18:47-06:00 2026-08-25T03:18:47-06:00 feat(decomp): main lane m15 β€” 16 banked +2798 d7b4fd1332027d6749ab98c56fa813a42a4a8735 2026-08-25T03:20:52-06:00 2026-08-25T03:20:52-06:00 feat(decomp): ox wave cj overlays β€” 4 banked +2799 5c713263964b5572936dc0b12c94b09235d2e6b8 2026-08-25T03:41:43-06:00 2026-08-25T03:41:43-06:00 feat(decomp): main lane m16 β€” 13 banked +2800 3eb8056f22605c311e6a0b71a63030ae5cc77529 2026-08-25T03:57:39-06:00 2026-08-25T03:57:39-06:00 feat(decomp): ox wave ck overlays β€” 69 banked +2801 235cac48e62b49d78a95bb580f6b13da2652779f 2026-08-25T04:04:32-06:00 2026-08-25T04:04:32-06:00 feat(decomp): main lane m17 β€” 7 banked +2802 69d26119031bdaa409ddaa0df521e0796cef9a84 2026-08-25T04:24:00-06:00 2026-08-25T04:24:00-06:00 feat(decomp): ox wave cm overlays β€” 30 banked +2803 29e8114b163a5b6a80a3d6eaacdbe14b67e56a2e 2026-08-25T04:31:15-06:00 2026-08-25T04:31:15-06:00 feat(decomp): main lane m18 β€” 7 banked +2804 fd8ae5327fc62ab2da542e80448d0a38a2d82a30 2026-08-25T04:59:44-06:00 2026-08-25T04:59:44-06:00 feat(decomp): main lane m19 β€” 10 banked +2805 c10171e8d9e819c6ecc4767b5b6b3bbb70e68621 2026-08-25T05:01:27-06:00 2026-08-25T05:01:27-06:00 feat(decomp): ox wave co overlays β€” 43 banked +2806 9b40d20aa9f606f2cb067bd80d2ee972737096e4 2026-08-25T05:18:22-06:00 2026-08-25T05:18:22-06:00 feat(decomp): ox wave cl overlays β€” 3 banked +2807 2f65dea685ed91316f245b260151c8134a1281a9 2026-08-25T05:26:57-06:00 2026-08-25T05:26:57-06:00 feat(decomp): main lane m20 β€” 8 banked +2808 8ab6c1082f095a9486442dde4271dcfb604a9e90 2026-08-25T05:35:12-06:00 2026-08-25T05:35:12-06:00 feat(decomp): ox wave cn overlays β€” 3 banked +2809 0cfc942cc84341eee688f3a58dfccba509632ed5 2026-08-25T05:54:17-06:00 2026-08-25T05:54:17-06:00 feat(decomp): ox wave cp overlays β€” 4 banked +2810 eb6048a536e73e039fd14b1d012dde01096ca38d 2026-08-25T05:58:48-06:00 2026-08-25T05:58:48-06:00 feat(decomp): main lane m21 β€” 6 banked +2811 216668950cb70c784becdc73bb525a7cb06b3717 2026-08-25T06:12:26-06:00 2026-08-25T06:12:26-06:00 feat(decomp): ox wave cq overlays β€” 53 banked +2812 0f3d638d9659c127e5f934af843b07b05e7c82b0 2026-08-25T06:31:32-06:00 2026-08-25T06:31:32-06:00 feat(decomp): ox wave cr overlays β€” 12 banked +2813 642c4b76afef72ed9e6fbfe9a5af6d3ae7bf5fe4 2026-08-25T06:58:41-06:00 2026-08-25T06:58:41-06:00 feat(decomp): ox wave cs overlays β€” 42 banked +2814 5f38df236844d54cb991cc9a6106401ee657b111 2026-08-25T07:01:31-06:00 2026-08-25T07:01:31-06:00 feat(decomp): main lane m22 β€” 6 banked +2815 c43f2266cac7b3be651bfa839f735a6a19280809 2026-08-25T07:19:33-06:00 2026-08-25T07:19:33-06:00 feat(decomp): ox wave ct overlays β€” 10 banked +2816 f3501ee527cde332ceb735a54bb035f2065c95fd 2026-08-25T07:38:49-06:00 2026-08-25T07:38:49-06:00 feat(decomp): main lane m23 β€” 3 banked +2817 3dd093741fdd0b02a4271ce1d646b3511708e911 2026-08-25T07:51:35-06:00 2026-08-25T07:51:35-06:00 feat(decomp): ox wave cu overlays β€” 47 banked +2818 ec1cf45dfa59ccd628779ce926ecf2720f0b9534 2026-08-25T08:18:46-06:00 2026-08-25T08:18:46-06:00 feat(decomp): main lane m24a β€” 1 banked +2819 352d0b6c31d2190eaced04e5d4d65c27b54a4237 2026-08-25T08:20:29-06:00 2026-08-25T08:20:29-06:00 feat(decomp): main lane m24ba β€” 2 banked +2820 b5dc678a09ca68bfd8e8ece8dfdf4127885da2ca 2026-08-25T08:21:29-06:00 2026-08-25T08:21:29-06:00 feat(decomp): ox wave cv overlays β€” 9 banked +2821 629303ee9c0895927010d5dc8b95b969a09df2c0 2026-08-25T08:34:38-06:00 2026-08-25T08:34:38-06:00 feat(decomp): main lane m25a β€” 1 banked +2822 04da346ec3f15927a9d93dc3b62e1ae515ef5472 2026-08-25T08:36:21-06:00 2026-08-25T08:36:21-06:00 feat(decomp): main lane m25ba β€” 1 banked +2823 51c928be54fe6a3b92c2a2ea71b82987bf983897 2026-08-25T08:37:51-06:00 2026-08-25T08:37:51-06:00 feat(decomp): main lane m25bbb β€” 1 banked +2824 ab74cd22d0655d5746bf59b1a3971ca7f4a8d872 2026-08-25T08:43:07-06:00 2026-08-25T08:43:07-06:00 feat(decomp): ox wave cw overlays β€” 4 banked +2825 60643c3d7490d181322c411d5892a4355b78e0e0 2026-08-25T08:56:29-06:00 2026-08-25T08:56:29-06:00 feat(decomp): main lane m26a β€” 1 banked +2826 67bd99aa3fcc45cb6994e1c65da703a2ae5b69f0 2026-08-25T09:10:16-06:00 2026-08-25T09:10:16-06:00 feat(decomp): ox wave cx overlays β€” 50 banked +2827 5f23d5bacfb6317d693d85de83a6f63f6bf5ec0c 2026-08-25T09:31:44-06:00 2026-08-25T09:31:44-06:00 feat(decomp): ox wave cy overlays β€” 6 banked +2828 84cc6b8d9e13d39b4f40d2383760351173c6b265 2026-08-25T09:41:08-06:00 2026-08-25T09:41:08-06:00 feat(decomp): main lane m27a β€” 1 banked +2829 72078c804b074891859bc66ec69bcd45c9163691 2026-08-25T09:43:18-06:00 2026-08-25T09:43:18-06:00 feat(decomp): main lane m27bbaa β€” 1 banked +2830 2f98f0f6fb097a3211529a202fbaeb1916724d66 2026-08-25T09:43:52-06:00 2026-08-25T09:43:52-06:00 feat(decomp): main lane m27bbb β€” 1 banked +2831 3b1d57ecc680f4b7b5d932adf65cea1331f5e025 2026-08-25T09:50:23-06:00 2026-08-25T09:50:23-06:00 feat(decomp): ox wave cz overlays β€” 4 banked +2832 0ea7a3a4b120d789681b6a79be14825914f740f7 2026-08-25T09:55:35-06:00 2026-08-25T09:55:35-06:00 fix(ov_SC03_001): RED β€” an extern decl contradicted the body banked below it +2833 82238e82d8bbee414a82f0cb528f2a10e784b297 2026-08-25T10:00:23-06:00 2026-08-25T10:00:23-06:00 fix(ov_SC04_018): RED β€” restore the bank a maintenance pass reverted, not the pad spec +2834 25b2aee3665d9e9997f50e3f0cae99bb60aefb35 2026-08-25T10:01:41-06:00 2026-08-25T10:01:41-06:00 feat(decomp): main lane m28a β€” 2 banked +2835 45ccac8ecc5ed8834a938691496860436c409fff 2026-08-25T10:01:52-06:00 2026-08-25T10:01:52-06:00 chore(decomp): commit in-tree banked work before the next gate +2836 6a20663df721b214318da176c4c97e5de7e44be0 2026-08-25T10:04:01-06:00 2026-08-25T10:04:01-06:00 feat(decomp): main lane m28bb β€” 1 banked +2837 520a4ca3f2dbad665194f02de73b826e7080e9c9 2026-08-25T10:17:06-06:00 2026-08-25T10:17:06-06:00 feat(decomp): ox wave da overlays β€” 74 banked +2838 6c206bdc142381c55037b01d0009ba08fa8abc7f 2026-08-25T10:17:20-06:00 2026-08-25T10:17:20-06:00 feat(decomp): main lane m29a β€” 1 banked +2839 7020794aa2591ff48175adc817b6fba5dcb88d24 2026-08-25T10:17:36-06:00 2026-08-25T10:17:36-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2840 d421f1bbae1b568a39a3c892a0620b2a1191c949 2026-08-25T10:19:17-06:00 2026-08-25T10:19:17-06:00 perf(draw): every second wave was re-drafting the wave still in flight +2841 28bfe8326e1c54ebbabec2e181f5b817680002c6 2026-08-25T10:29:18-06:00 2026-08-25T10:29:18-06:00 feat(draw): remap, needs-autopsy and plumbing join the default ox lane (Drew) +2842 06e5daba0aba82685c4daa8cead771addc4fd0bd 2026-08-25T10:33:54-06:00 2026-08-25T10:33:54-06:00 feat(decomp): main lane m30a β€” 1 banked +2843 1372b151f78db1f6d121fb96f924be239d4749b3 2026-08-25T10:42:32-06:00 2026-08-25T10:42:32-06:00 feat(decomp): ox wave db overlays β€” 8 banked +2844 ece28737ba972a14dd8a6d87116702a49f3a9662 2026-08-25T10:43:10-06:00 2026-08-25T10:43:10-06:00 perf(gate): the parallel gate was serialized by its own shared lock β€” -j was decorative +2845 f3626393e24e11544f8c9f60d633ec647ccce094 2026-08-25T10:54:25-06:00 2026-08-25T10:54:25-06:00 feat(decomp): main lane m31a β€” 2 banked +2846 9b89177ede78d7bb4a9244630fcc220c06d2c476 2026-08-25T10:56:33-06:00 2026-08-25T10:56:33-06:00 feat(decomp): main lane m31bba β€” 1 banked +2847 27a9c118ef87a739a3cf0b9caed43f83c2b71130 2026-08-25T11:00:28-06:00 2026-08-25T11:00:28-06:00 feat(decomp): ox wave dd overlays β€” 217 banked +2848 5357c8b448eafe6a88bedcb7b8da68557a57e61e 2026-08-25T11:17:00-06:00 2026-08-25T11:17:00-06:00 feat(decomp): ox wave de overlays β€” 192 banked +2849 33eadd9ca1f22edbaf551bb650c7dc320b6fe147 2026-08-25T11:17:54-06:00 2026-08-25T11:17:54-06:00 feat(decomp): main lane m32a β€” 2 banked +2850 d7e852c9082bbe0adcf13f22797dc080f0a0206c 2026-08-25T11:21:06-06:00 2026-08-25T11:21:06-06:00 feat(decomp): main lane m32bba β€” 1 banked +2851 7e1f554a05299c6841be98460dea4ef85c477d13 2026-08-25T11:27:56-06:00 2026-08-25T11:27:56-06:00 feat(decomp): ox wave df overlays β€” 124 banked +2852 188314f0818fefca9cc26b1eb0af658f744bf3b9 2026-08-25T11:28:51-06:00 2026-08-25T11:28:51-06:00 perf(throughput): unblock the main lane, both gate logs, deeper wave overlap, atomic atlas +2853 44940231709f320e1d5c29ce4205e8bedcca05e7 2026-08-25T11:30:00-06:00 2026-08-25T11:30:00-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2854 7bb47901041f1202524d5a05c749808b500088a6 2026-08-25T11:43:09-06:00 2026-08-25T11:43:09-06:00 feat(decomp): main lane m33a β€” 2 banked +2855 80d9db532e64e39c8496a1396708f612764582dd 2026-08-25T11:43:23-06:00 2026-08-25T11:43:23-06:00 feat(decomp): ox wave dg overlays β€” 100 banked +2856 7dcadc890333d5d906fe128116b83efcfe942633 2026-08-25T11:45:08-06:00 2026-08-25T11:45:08-06:00 feat(decomp): main lane m33bba β€” 1 banked +2857 8b21ba556a9fcee1fbdcf1c461a1e2d873b7279f 2026-08-25T11:50:10-06:00 2026-08-25T11:50:10-06:00 fix(jtbl): two REDs β€” a bank changed an object's table count, the pad spec did not +2858 8aa67e031385317c644d8a4612ea5e6784369790 2026-08-25T11:55:29-06:00 2026-08-25T11:55:29-06:00 chore(decomp): commit in-tree banked work before the next gate +2859 baabdd047840eca7c82b287a6da99d2178feab9d 2026-08-25T12:04:14-06:00 2026-08-25T12:04:14-06:00 fix(jtbl): end the stale-pad-spec RED class, and check the fleet every pass +2860 ca5fd2e225d86fbf92d6086b5e0c6fed0f863fb5 2026-08-25T12:13:33-06:00 2026-08-25T12:13:33-06:00 feat(decomp): ox wave di overlays β€” 81 banked +2861 7713700d724ca5d453e6c2b90e9b9e1de05b7e09 2026-08-25T12:21:43-06:00 2026-08-25T12:21:43-06:00 feat(decomp): ox wave dj overlays β€” 43 banked +2862 c95dde87a8e66fea31e207225d346033cd3a212c 2026-08-25T12:30:13-06:00 2026-08-25T12:30:13-06:00 feat(decomp): ox wave dl overlays β€” 1 banked +2863 7891069c4b9e3f71f22acf59550b22015b94b4a7 2026-08-25T12:37:47-06:00 2026-08-25T12:37:47-06:00 feat(decomp): ox wave dk overlays β€” 2 banked +2864 bca5eff072f1f7e5956111f64af3d8a9e2613ab4 2026-08-25T12:59:54-06:00 2026-08-25T12:59:54-06:00 fix(config): RESTORE config/overlays.mk β€” the entire 5,077-line overlay registry was empty +2865 1d3081bca4762d936ddfaa8a0c780876bc59fcf5 2026-08-25T13:02:36-06:00 2026-08-25T13:02:36-06:00 fix(gate): refuse to commit a COLLAPSED config file, restore it from HEAD instead +2866 45e6963b8b62870c185e810493f746ed5eb35aa7 2026-08-25T13:07:12-06:00 2026-08-25T13:07:12-06:00 chore(decomp): commit in-tree banked work before the next gate +2867 9f4aecd7c84b639c522ef5d5c9a2d72bff194dc1 2026-08-25T13:21:14-06:00 2026-08-25T13:21:14-06:00 feat(decomp): ox wave dp overlays β€” 54 banked +2868 a5eecbbec74abadb23951afaf67d9a888e6a3ebb 2026-08-25T13:24:01-06:00 2026-08-25T13:24:01-06:00 chore(decomp): commit in-tree banked work before the next gate +2869 2fea549c535ab9fda7e630dba411ae12febaeea6 2026-08-25T13:55:25-06:00 2026-08-25T13:55:25-06:00 feat(decomp): ox wave dr overlays β€” 28 banked +2870 9687dcd8c04efe673e7a6b6328364ea767190783 2026-08-25T14:06:36-06:00 2026-08-25T14:06:36-06:00 feat(draw): generational pass (opt-in) β€” and the measurement that stopped it being default +2871 0dca62485a03d9a49dd8df00076e2a10ef0dfc93 2026-08-25T14:09:24-06:00 2026-08-25T14:09:24-06:00 feat(decomp): ox wave dk overlays β€” 15 banked +2872 da8794e5d647841b812ca7c9660c34f56c207e1a 2026-08-25T14:09:45-06:00 2026-08-25T14:09:45-06:00 chore(decomp): commit in-tree banked work before the next gate +2873 607fe0b9b45b7f072e1381cd0f5b95a03132fdf2 2026-08-25T14:15:50-06:00 2026-08-25T14:15:50-06:00 feat(decomp): main lane m35a β€” 2 banked +2874 78044772d6ca53802399e470b28daad411423b45 2026-08-25T14:17:39-06:00 2026-08-25T14:17:39-06:00 feat(decomp): main lane m35ba β€” 1 banked +2875 7cc969ceeb6c930dee56d3fa7b4d207e82cd2abf 2026-08-25T14:19:12-06:00 2026-08-25T14:19:12-06:00 feat(decomp): main lane m35bbb β€” 2 banked +2876 f9e5b1d865813aaecad935dc849e937773cf9ee6 2026-08-25T14:22:29-06:00 2026-08-25T14:22:29-06:00 feat(decomp): ox wave dt overlays β€” 9 banked +2877 70c9fc13f55b0ac5c941c550c3347d1925aa5836 2026-08-25T14:22:54-06:00 2026-08-25T14:22:54-06:00 chore(decomp): commit in-tree banked work before the next gate +2878 073cf446ce99edbfe3ce3ed5eaafff71511fdfe9 2026-08-25T14:22:59-06:00 2026-08-25T14:22:59-06:00 feat(draw): generational TOP-OFF β€” every wave fills from the lowest generation up +2879 d0da3f24f716b37b4178bb834a1d2f39507f5812 2026-08-25T14:23:25-06:00 2026-08-25T14:23:25-06:00 feat(decomp): main lane m36 β€” 4 banked +2880 98f7205a3aa8477896c1247584e2d067d7fb7b00 2026-08-25T14:34:35-06:00 2026-08-25T14:34:35-06:00 feat(decomp): ox wave dl overlays β€” 12 banked +2881 e7353d63de41f844732bed0480d2b0fac7ef4225 2026-08-25T14:35:36-06:00 2026-08-25T14:35:36-06:00 feat(tells 6.3): put the TELL COUNTS on the card and in the prompt +2882 9b7426269796c0643bce7474121841c0c72cc37c 2026-08-25T14:35:50-06:00 2026-08-25T14:35:50-06:00 chore(decomp): commit in-tree banked work before the serial lane +2883 f96ad0bd6d0a90f8c85007f9bf7aec4cabe835d8 2026-08-25T14:35:50-06:00 2026-08-25T14:35:50-06:00 chore(decomp): commit in-tree banked work before the serial lane +2884 9b407f54411db262e8ed616a70099d7392aeb621 2026-08-25T14:37:29-06:00 2026-08-25T14:37:29-06:00 feat(decomp): main lane m37a β€” 1 banked +2885 98085269b1f0d61941e60dda6ddb3291601b55f6 2026-08-25T14:42:01-06:00 2026-08-25T14:42:01-06:00 docs(cookbook): Β§278-Β§282 β€” wave cf distilled, 4 new laws from the post-429-fix wave +2886 04bb99d3707e632a9b317df0401ef590f59a0289 2026-08-25T14:50:48-06:00 2026-08-25T14:50:48-06:00 feat(decomp): ox wave dq overlays β€” 8 banked +2887 a372b648ef2d969624cb0529f583b42e174f35ec 2026-08-25T14:51:13-06:00 2026-08-25T14:51:13-06:00 chore(decomp): commit in-tree banked work before the next gate +2888 b0587c573e1e29051fd6917e63164672c392de45 2026-08-25T14:57:13-06:00 2026-08-25T14:57:13-06:00 fix(idiom_serial): main is never a target, and a contended index is not a dirty tree +2889 ebb83dd9abfe5593dae24344e8fcb4520a74a3b6 2026-08-25T14:57:13-06:00 2026-08-25T14:57:13-06:00 chore(decomp): commit in-tree banked work before the serial lane +2890 ade4bd0bbe12da27725e25456b9d52fdbda60c79 2026-08-25T14:59:09-06:00 2026-08-25T14:59:09-06:00 chore(decomp): commit in-tree banked work before the serial lane +2891 0a2bc5c7f778d033205699cc2281eca46914941c 2026-08-25T15:00:06-06:00 2026-08-25T15:00:06-06:00 feat(decomp): ox wave dm overlays β€” 3 banked +2892 09b7f71a1911f15e0136a7c288b43f50e281a070 2026-08-25T15:00:31-06:00 2026-08-25T15:00:31-06:00 fix(serial lane): it was dead at turn 0 β€” a family-card file fed to a per-function consumer +2893 849020a536229d90f89824480c1a254d36da09dd 2026-08-25T15:02:44-06:00 2026-08-25T15:02:44-06:00 chore(decomp): commit in-tree banked work before the next gate +2894 317d31d18a160b8387672a9cc5813db299c8a401 2026-08-25T15:04:19-06:00 2026-08-25T15:04:19-06:00 feat(decomp): ox wave dw overlays β€” 33 banked +2895 389c0c1065a6b5999580aad939bb66c1ff7bb91b 2026-08-25T15:20:38-06:00 2026-08-25T15:20:38-06:00 feat(decomp): main lane m40a β€” 3 banked +2896 3b90d2db394e93ac39f47a24e85da25c8fb8d929 2026-08-25T15:22:34-06:00 2026-08-25T15:22:34-06:00 feat(decomp): main lane m40bba β€” 1 banked +2897 9d6a7483878bc2cbb3fdc64c37e391efb8ea27ee 2026-08-25T15:23:00-06:00 2026-08-25T15:23:00-06:00 feat(decomp): ox wave du overlays β€” 3 banked +2898 7d4c717cae72af5dda9a772724709a3c0833f673 2026-08-25T15:29:06-06:00 2026-08-25T15:29:06-06:00 feat(decomp): serial idiom lane β€” func_8017D1C0 (118 ins, extend-tell, group worth 681) +2899 9e454862826efa21ab6b3d5f40c5ed9fca38eed2 2026-08-25T15:34:50-06:00 2026-08-25T15:34:50-06:00 docs(phase-31): S60 checkpoint β€” five harness defects, the registry rescue, and the endgame reframed +2900 201015c0d1a31840bd6aa2bc797e226f66612572 2026-08-25T15:38:29-06:00 2026-08-25T15:38:29-06:00 feat(decomp): ox wave dx overlays β€” 21 banked +2901 bd50b9191cc788cf4435a5f50d2e12be0a8cb8b5 2026-08-25T15:42:21-06:00 2026-08-25T15:42:21-06:00 chore(decomp): commit in-tree banked work before the serial lane +2902 b604fc1e4e810a1cd9e03c2b5e333cd7596a066f 2026-08-25T15:50:19-06:00 2026-08-25T15:50:19-06:00 feat(decomp): ox wave dy overlays β€” 12 banked +2903 2c3201b2fde3f64452d12eaffa7d93b5f9be3bce 2026-08-25T16:00:57-06:00 2026-08-25T16:00:57-06:00 feat(decomp): ox wave eb overlays β€” 5 banked +2904 274932d20934131d6eebf047bd7cc0c5201567fc 2026-08-25T16:06:04-06:00 2026-08-25T16:06:04-06:00 chore(decomp): commit in-tree banked work before the serial lane +2905 2b3a2674cfaab14475c48380cccc359474ebd11a 2026-08-25T16:18:25-06:00 2026-08-25T16:18:25-06:00 feat(decomp): ox wave ec overlays β€” 10 banked +2906 78047a0fc8d71d2ccbf0a92bc98dbb3e4baf9f0a 2026-08-25T16:18:37-06:00 2026-08-25T16:18:37-06:00 chore(decomp): commit in-tree banked work before the next gate +2907 84706c9860aea6d682c25fb97a3faa3346f5eb3c 2026-08-25T16:18:43-06:00 2026-08-25T16:18:43-06:00 feat(draw): draft EVERY instance, siblings included (ONE_PER_GID=0) + K attempts per card +2908 fe97918979e99d15c2864f9524f177ad7094bb1f 2026-08-25T16:26:03-06:00 2026-08-25T16:26:03-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2909 f0450910dd76451e8edc03bdb7f30adcfbaa1361 2026-08-25T16:37:01-06:00 2026-08-25T16:37:01-06:00 feat(decomp): ox wave ee overlays β€” 4 banked +2910 eebe792a0b4e8f7b973293c2524947eddb7628fc 2026-08-25T17:10:42-06:00 2026-08-25T17:10:42-06:00 feat(decomp): ox wave eh overlays β€” 129 banked +2911 dc70f5320593fdb910057c9d8f48801246d66209 2026-08-25T17:14:33-06:00 2026-08-25T17:14:33-06:00 feat(decomp): ox wave ei overlays β€” 1 banked +2912 434d8c0976a409420a4fec00dd3ad425da27df7a 2026-08-25T17:41:12-06:00 2026-08-25T17:41:12-06:00 feat(decomp): ox wave em overlays β€” 1 banked +2913 3251a06003cea2741d98e2569a13bafacfd3032f 2026-08-25T17:43:55-06:00 2026-08-25T17:43:55-06:00 fix(config): RESTORE overlays.mk β€” deleted AGAIN by wave ei's gate commit +2914 c271c499fcec1f6994dc7a7bd3fd4fb91fe0cdf7 2026-08-25T17:46:03-06:00 2026-08-25T17:46:03-06:00 feat(decomp): main lane m43aaa β€” 1 banked +2915 d801b8f1778d48040eb2ec01fda67bedcef35667 2026-08-25T17:48:45-06:00 2026-08-25T17:48:45-06:00 fix(config): the registry wiper found β€” four truncating writes, now atomic and collapse-refusing +2916 4fc7eb6555ef857ff267e5eb559e26a5656d0c94 2026-08-25T17:49:27-06:00 2026-08-25T17:49:27-06:00 chore(decomp): commit in-tree banked work before the next gate +2917 3a4de071d96eec1054417fad95bdd644c87d8e52 2026-08-25T18:01:14-06:00 2026-08-25T18:01:14-06:00 fix(match_one): warn when --asm-subdir is defaulted β€” the default targets resident +2918 5fae3f509480155fb894a784a9eff2cba73b2499 2026-08-25T18:09:50-06:00 2026-08-25T18:09:50-06:00 feat(decomp): ox wave en overlays β€” 14 banked +2919 2094ee04a02d009aeadcb0c3b5b42e36b4eef594 2026-08-25T18:10:29-06:00 2026-08-25T18:10:29-06:00 docs(cookbook): Β§283-Β§292 β€” the 36-wave batch distilled, 1,216 candidates reviewed +2920 b4f91e532f40615bbe05b1933ef16483ef209919 2026-08-25T18:20:32-06:00 2026-08-25T18:20:32-06:00 chore(decomp): commit in-tree banked work before the next gate +2921 c8c697a0a95e60f42f6d0c674aeb14005b32cb6a 2026-08-25T18:40:57-06:00 2026-08-25T18:40:57-06:00 feat(decomp): ox wave eo overlays β€” 3 banked +2922 7a23245e8738bf478e5c05c4d25d0792922dff5f 2026-08-25T18:41:49-06:00 2026-08-25T18:41:49-06:00 chore(decomp): commit in-tree banked work before the next gate +2923 68da52e73d58c697ff8e040381e1b7d59637d853 2026-08-25T18:48:44-06:00 2026-08-25T18:48:44-06:00 feat(decomp): ox wave ei overlays β€” 34 banked +2924 af33c35957ca15b78251bb51230e021793368604 2026-08-25T18:49:12-06:00 2026-08-25T18:49:12-06:00 chore(decomp): commit in-tree banked work before the next gate +2925 348eb2808a4e6c2d2af9f908e69a1b4cb66eb023 2026-08-25T18:50:13-06:00 2026-08-25T18:50:13-06:00 feat(decomp): main lane m45a β€” 3 banked +2926 f78ea55b3e67e6cf2f8ac4d7032930c726a3fc4a 2026-08-25T19:00:02-06:00 2026-08-25T19:00:02-06:00 fix(gate): log what the gate actually does; --gate-jobs 24 -> 32; TAIL_DONE_FRAC 0.80 +2927 b4a9be8560db03bc6e7db10639b85a60f7e75ff9 2026-08-25T19:00:47-06:00 2026-08-25T19:00:47-06:00 chore(decomp): commit in-tree banked work before the next gate +2928 1cb7024dc4639870c5a1b04f6f357d7131b6b5ad 2026-08-25T19:11:33-06:00 2026-08-25T19:11:33-06:00 chore(decomp): commit in-tree banked work before the serial lane +2929 20025673619831d667679fe2f31971a472ac9450 2026-08-25T19:12:17-06:00 2026-08-25T19:12:17-06:00 chore(decomp): commit in-tree banked work before the serial lane +2930 1b2502bfe274f1d93851306d20e4f15751b7775d 2026-08-25T19:16:04-06:00 2026-08-25T19:16:04-06:00 feat(decomp): ox wave ej β€” 0 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\n +2931 0f68eda61ee3e973955cc4ca5970d7c3a69077ec 2026-08-25T19:17:19-06:00 2026-08-25T19:17:19-06:00 chore(decomp): commit in-tree banked work before the serial lane +2932 b9c5d0b11d1ada828aedeeab6ba626222f19cc98 2026-08-25T19:22:20-06:00 2026-08-25T19:22:20-06:00 chore(decomp): commit in-tree banked work before the serial lane +2933 b398f79f1af587d38dc8efd3c412ccdb89dab5f2 2026-08-25T19:25:30-06:00 2026-08-25T19:25:30-06:00 chore(decomp): commit in-tree banked work before the serial lane +2934 8541238e6007d2cb13724cd88fe956aa3b377f1f 2026-08-25T19:27:56-06:00 2026-08-25T19:27:56-06:00 docs(phase-31): S60 FINAL checkpoint β€” three registry wipes, six harness defects, and the endgame reframed +2935 76b34fb7bd656039fe73f32df607697b84c2e5a8 2026-08-25T19:28:40-06:00 2026-08-25T19:28:40-06:00 feat(decomp): serial idiom lane β€” func_8017FA84 (115 ins, extend-tell, group worth 563) +2936 9c6a35cd7fe604bef28e60df9f2f073c585f9fa2 2026-08-25T19:32:55-06:00 2026-08-25T19:32:55-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet 98.2%) +2937 23567bf5ca0c42327c6cdab32b932576e1007849 2026-08-25T19:36:28-06:00 2026-08-25T19:36:28-06:00 feat(decomp): main lane m46a β€” 3 banked +2938 07a167516d9bf07866b694513ce4509d5edef2cc 2026-08-25T19:36:51-06:00 2026-08-25T19:36:51-06:00 docs(s60): the Fable frontier audit + corrections it forced to my own checkpoint +2939 66236ca9b1235903fe8efd511eb9a0cf105a2c0e 2026-08-25T19:37:45-06:00 2026-08-25T19:37:45-06:00 chore(decomp): commit in-tree banked work before the serial lane +2940 1edc71f32a070b5ca77ede74125de8c35228a89c 2026-08-25T19:38:17-06:00 2026-08-25T19:38:17-06:00 chore(decomp): commit in-tree banked work before the next gate +2941 1ee2c5d3a905214a807638a9dc38f82edc682709 2026-08-25T19:38:34-06:00 2026-08-25T19:38:34-06:00 chore(decomp): commit in-tree banked work before the serial lane +2942 0ae110fbafd6b1e5f5db086fe31a77ce17827992 2026-08-25T19:38:34-06:00 2026-08-25T19:38:34-06:00 chore(decomp): commit in-tree banked work before the serial lane +2943 ec04c0aff7c5520366db2bc72f29613bf9c2b3a0 2026-08-25T19:40:02-06:00 2026-08-25T19:40:02-06:00 feat(decomp): main lane m46bba β€” 1 banked +2944 01ea4c70d02c5eb62e60ae312067ffc415ae99a5 2026-08-25T19:44:09-06:00 2026-08-25T19:44:09-06:00 feat(decomp): serial idiom lane β€” func_80181FA8 (65 ins, head-crack, group worth 1066) +2945 7da31ac164fc06a943196a015d7dfde2bbe71b45 2026-08-25T19:45:27-06:00 2026-08-25T19:45:27-06:00 feat(decomp): grinder gate β€” +1 fns x0 propagated (fleet 98.2%) +2946 aae7d6cfb6c1a0d47e2a6f96f0cebb12ca92d93e 2026-08-25T19:47:25-06:00 2026-08-25T19:47:25-06:00 chore(decomp): commit in-tree banked work before the serial lane +2947 2b10f5325618b1d0fdf207ed235cdac46d43027a 2026-08-25T19:56:37-06:00 2026-08-25T19:56:37-06:00 chore(decomp): commit in-tree banked work before the next gate +2948 f086887ba856afb832c247e92efb1c6157b83b73 2026-08-25T19:58:27-06:00 2026-08-25T19:58:27-06:00 chore(decomp): commit in-tree banked work before the serial lane +2949 41d8a0ea58e66bdf94f3c3fb9793a6e520b93933 2026-08-25T20:02:29-06:00 2026-08-25T20:02:29-06:00 chore(decomp): commit in-tree banked work before the serial lane +2950 c8c56678a558104624a8501965ddb5bb610c88d2 2026-08-25T20:12:31-06:00 2026-08-25T20:12:31-06:00 chore(decomp): commit in-tree banked work before the serial lane +2951 06396e1fef8b195b7587d0754aac3918e859789d 2026-08-25T20:15:00-06:00 2026-08-25T20:15:00-06:00 feat(decomp): ox wave eq overlays β€” 4 banked +2952 d9c34fcebb14017eb2dccbc168f3af2ba69140b8 2026-08-25T20:15:39-06:00 2026-08-25T20:15:39-06:00 chore(decomp): commit in-tree banked work before the next gate +2953 e7b8eddfbc936863e60ba1ea9f63d70d95ddd1b9 2026-08-25T20:17:31-06:00 2026-08-25T20:17:31-06:00 chore(decomp): commit in-tree banked work before the serial lane +2954 9b300a570fbc51d2d002e91840e39368c6946843 2026-08-25T20:17:33-06:00 2026-08-25T20:17:33-06:00 chore(decomp): commit in-tree banked work before the serial lane +2955 72411637b5f0a819e934991b910db9c86ce37a13 2026-08-25T20:23:08-06:00 2026-08-25T20:23:08-06:00 chore(decomp): commit in-tree banked work before the serial lane +2956 9bb5d14820c06cd0122d4884638ec05131bd7489 2026-08-25T20:23:41-06:00 2026-08-25T20:23:41-06:00 chore(decomp): commit in-tree banked work before the serial lane +2957 6a46d3d9d0bbef7988b798b804b8126e88fe2d02 2026-08-25T20:29:39-06:00 2026-08-25T20:29:39-06:00 feat(decomp): ox wave el overlays β€” 6 banked +2958 0d92599f6c4d97095a5869037a6a321d7f4702aa 2026-08-25T20:32:16-06:00 2026-08-25T20:32:16-06:00 chore(decomp): commit in-tree banked work before the serial lane +2959 45a9ba4c8c9bd0d963f1c516f1d1d8ef41aae7fa 2026-08-25T20:32:35-06:00 2026-08-25T20:32:35-06:00 chore(decomp): commit in-tree banked work before the serial lane +2960 6c0dc343d113fa96720354097be57e0d2e1d1619 2026-08-25T20:41:03-06:00 2026-08-25T20:41:03-06:00 chore(decomp): commit in-tree banked work before the serial lane +2961 717aa4327002467eef151fb0fec816e563ceb946 2026-08-25T20:50:39-06:00 2026-08-25T20:50:39-06:00 feat(decomp): serial idiom lane β€” func_80181E70 (122 ins, len-vein, group worth 337) +2962 1b933104ce7813c2a4faf0a9d9277f2003a615b2 2026-08-25T20:51:29-06:00 2026-08-25T20:51:29-06:00 feat(decomp): ox wave er β€” 4 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_801E8034 func_80181E70 func_8017F200 func_80180254 +2963 58913f399c02750dc11c37fa77cf9b18962bd5b0 2026-08-25T20:52:09-06:00 2026-08-25T20:52:09-06:00 chore(decomp): commit in-tree banked work before the next gate +2964 221da445214718742c3900442c46b6be9a05dc51 2026-08-25T20:57:09-06:00 2026-08-25T20:57:09-06:00 chore(decomp): commit in-tree banked work before the serial lane +2965 662c025cf51259a7ce75b92eab1c78a33d4106fe 2026-08-25T21:03:20-06:00 2026-08-25T21:03:20-06:00 feat(decomp): ox wave em overlays β€” 3 banked +2966 8e4b491aff1a87cbfd926188353980187bc36d83 2026-08-25T21:03:53-06:00 2026-08-25T21:03:53-06:00 chore(decomp): commit in-tree banked work before the next gate +2967 dd0538ae05fc417c524bb35808477ce17bb0d964 2026-08-25T21:11:18-06:00 2026-08-25T21:11:18-06:00 chore(decomp): commit in-tree banked work before the serial lane +2968 c5749fde3bc47dbb9edb5777a200e07e1c7bca9a 2026-08-25T21:12:44-06:00 2026-08-25T21:12:44-06:00 chore(decomp): commit in-tree banked work before the serial lane +2969 6835e126c8b995ffc08f2c3bf06c774153947803 2026-08-25T21:20:28-06:00 2026-08-25T21:20:28-06:00 feat(decomp): ox wave es β€” 2 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017ED0C func_8017F6C4 +2970 b3ea50b1d522c581ee63f80e456be0ad410032c0 2026-08-25T21:20:57-06:00 2026-08-25T21:20:57-06:00 chore(decomp): commit in-tree banked work before the next gate +2971 fcadfda8140027ff55b08707a708e6dfca4698a6 2026-08-25T21:32:51-06:00 2026-08-25T21:32:51-06:00 chore(decomp): commit in-tree banked work before the serial lane +2972 c497c84b95d5943a7691d284f906c00b299ef90f 2026-08-25T21:40:17-06:00 2026-08-25T21:40:17-06:00 chore(decomp): commit in-tree banked work before the serial lane +2973 41bbf387d0f17d9a8fed6e99cd8149ce6bb51cf3 2026-08-25T21:42:17-06:00 2026-08-25T21:42:17-06:00 feat(decomp): ox wave en overlays β€” 8 banked +2974 6645e625d95dd1fec97dba6a60714deafab213c5 2026-08-25T21:49:22-06:00 2026-08-25T21:49:22-06:00 feat(decomp): serial idiom lane β€” func_8017FCAC (138 ins, seeded-crack, group worth 138) +2975 0f0ebdd354d0c5adeff33727cc70c7cf200fa6b5 2026-08-25T21:52:56-06:00 2026-08-25T21:52:56-06:00 chore(decomp): commit in-tree banked work before the serial lane +2976 10d14582db57c290d3a6f349abb2fc34d4336651 2026-08-25T22:02:12-06:00 2026-08-25T22:02:12-06:00 feat(decomp): ox wave ex overlays β€” 13 banked +2977 47160efee83332c009026503e5eb99cbcfbdb35c 2026-08-25T22:07:25-06:00 2026-08-25T22:07:25-06:00 chore(decomp): commit in-tree banked work before the serial lane +2978 8759b16c430f20d56613c4dcc66033bce36bd04b 2026-08-25T22:14:47-06:00 2026-08-25T22:14:47-06:00 feat(decomp): ox wave ey overlays β€” 7 banked +2979 376e6cc238c30486920fd8e723b37df3c64e1c88 2026-08-25T22:15:35-06:00 2026-08-25T22:15:35-06:00 chore(decomp): commit in-tree banked work before the serial lane +2980 a768949df7a538eed4f604e686228a75a7dde356 2026-08-25T22:23:04-06:00 2026-08-25T22:23:04-06:00 chore(decomp): commit in-tree banked work before the serial lane +2981 c3dbf5317048e9a4a91c6adc49296e7799d1a3ca 2026-08-25T22:29:32-06:00 2026-08-25T22:29:32-06:00 chore(decomp): commit in-tree banked work before the serial lane +2982 c6918cef6fb980d9387dae085bbca21df62413c4 2026-08-25T22:30:35-06:00 2026-08-25T22:30:35-06:00 feat(decomp): main lane m49aab β€” 1 banked +2983 8c73f6cbfaa2101751b2446d1af41aa150a6b3ef 2026-08-25T22:32:45-06:00 2026-08-25T22:32:45-06:00 feat(decomp): ox wave ez β€” 1 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017ED0C +2984 f90de0a8ca4e2d0cc22627ac0242e0d945d3fbfd 2026-08-25T22:33:18-06:00 2026-08-25T22:33:18-06:00 chore(decomp): commit in-tree banked work before the serial lane +2985 ce12e1c2f73e6aa017ea5d1e23bca6edd65d8c82 2026-08-25T22:42:46-06:00 2026-08-25T22:42:46-06:00 chore(decomp): commit in-tree banked work before the serial lane +2986 9a5a4f1b6a12e43f2d2e6fa1c07fe35b1200d74c 2026-08-25T22:47:04-06:00 2026-08-25T22:47:04-06:00 docs(phase-31): S60 close β€” re-gate verdict and final state for a fresh session +2987 9ecda0e41f5a307a478ca7f98a3c0c52ee47f8e1 2026-08-25T22:50:51-06:00 2026-08-25T22:50:51-06:00 chore(decomp): commit in-tree banked work before the serial lane +2988 83b704e8eb7e38721319cd2b476bd73ff051279f 2026-08-25T22:51:13-06:00 2026-08-25T22:51:13-06:00 chore(decomp): commit in-tree banked work before the serial lane +2989 065e122c64d61f7554ac6c033c381dbf273c4785 2026-08-25T22:53:09-06:00 2026-08-25T22:53:09-06:00 docs(phase-31): S60 shutdown β€” all lanes stopped, tree clean, sentinels set +2990 605a4b77c8f20cfba49da39a0f62fd0ed0b6fd2f 2026-08-25T23:01:53-06:00 2026-08-25T23:01:53-06:00 docs(phase-31): record the 8k-vs-16k question as UNRESOLVED, with the A/B that settles it +2991 6e25fc910b7bfff08c82f8e6b3d38e73d372e6f5 2026-08-25T23:48:21-06:00 2026-08-25T23:48:21-06:00 feat(decomp): integration-resolver pass β€” 72 banked of 245 staged (zero model tokens) +2992 094dfebef4161c63db12cacd7b1882b3e2a64f31 2026-08-25T23:49:43-06:00 2026-08-25T23:49:43-06:00 fix(campaign): measure what the campaign can see β€” banked-today from the INCLUDE_ASM invariant, gate_min beside wall_min, a lock-aware fleet R22 window (P31 S61 T10+/S61-8) +2993 433c7cd8efaa507c7f1ca4e1cfb6a6f9e12dfe7b 2026-08-25T23:50:26-06:00 2026-08-25T23:50:26-06:00 feat(resolver): the integration-resolver lane β€” zero-token re-judging of the ledgers' shape-correct stock at the real TU (P31 S61 T10+/S61-1) +2994 8dc2d923f0d310df3451da776cb68731b8bdb641 2026-08-25T23:50:26-06:00 2026-08-25T23:50:26-06:00 feat(gate): rtu shadow-mode ledger to decide the gate inversion; draw-time hold for the resolver's stock (P31 S61 T10+/S61-3, S61-5) +2995 966508d654629876daadc1712f0c9ca28ea47eb9 2026-08-26T00:17:10-06:00 2026-08-26T00:17:10-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +2996 a9e7f20d32af47e792526d37ba138b95bbdef142 2026-08-26T00:20:30-06:00 2026-08-26T00:20:30-06:00 chore(decomp): commit in-tree banked work before the next gate +2997 e7a1846da075dadeaa481eb1ad172a4d0361f65a 2026-08-26T00:25:31-06:00 2026-08-26T00:25:31-06:00 fix(config): un-poison overlays.mk line 114 β€” a mangled JTBL_PADS line killed EVERY build at make parse time +2998 c3c904eb0c828f639d782e31f07080bac48f42f5 2026-08-26T00:26:33-06:00 2026-08-26T00:26:33-06:00 chore(decomp): commit in-tree banked work before the next gate +2999 742d923a9985a44652740484e2f4a5e4adf7a5ea 2026-08-26T00:29:03-06:00 2026-08-26T00:29:03-06:00 fix(config): ov_SC02_037 GREEN β€” same missing jr_8016AB6C.o interleave entry as ov_MAIN_012, byte-proven +3000 197470ff5fddd7cd983007242609b4912a4a3a6b 2026-08-26T00:29:05-06:00 2026-08-26T00:29:05-06:00 fix(gate/tools): baseline-RED skip in the gate, jtbl_pads_fix un-broken three ways, mk_write parse guard, shadow join for 0-bank waves (P31 S61 T10+/S61-10) +3001 eb132b719aed0ec0307e2a25c8102b482fad2e20 2026-08-26T00:32:08-06:00 2026-08-26T00:32:08-06:00 docs(phase-31): S61 interim checkpoint + cookbook Β§293 (the sibling law decomposed: the baseline, not the siblings) + decision-log entries + accelerator #12 +3002 8e4084ea96a0570d308a0517cd8d508bba59e500 2026-08-26T00:33:25-06:00 2026-08-26T00:33:25-06:00 fix(config): byte-proven JTBL_PADS repairs from the S61 repair batch β€” each spec the UNIQUE candidate that rebuilds its binary byte-identical +3003 44ad7040d0d63ca9fce36b71d9e8e652b0740687 2026-08-26T00:34:15-06:00 2026-08-26T00:34:15-06:00 feat(decomp): ox wave fc overlays β€” 9 banked +3004 ad9b57328e99e2a6709d583b593b41853d093d79 2026-08-26T00:35:12-06:00 2026-08-26T00:35:12-06:00 feat(decomp): ox wave fc overlays β€” banks recovered to git (the gater's own commit hit an index.lock race and returned None; R42) +3005 d7bb3ae8dd586b947ef5fe7630ba280f525ae7fe 2026-08-26T00:38:27-06:00 2026-08-26T00:38:27-06:00 fix(src): ov_SC04_018_jr_8017AE2C.c compiles again under the TU-alone/rtu view β€” reinsert the dropped extern, drop the conflicting (void) proto +3006 92e8ed52298cba8bb84698884f0f2fdeed6f956d 2026-08-26T00:40:05-06:00 2026-08-26T00:40:05-06:00 fix(src): ov_SC04_018_jr_8017AE2C.c β€” restore func_8017E7CC's region to its last-GREEN form (commit:2628) + a block-scope extern for D_801B9AA8 +3007 9bdf923c46b35e5ddfad91e9b449ce52658f19ad 2026-08-26T00:44:15-06:00 2026-08-26T00:44:15-06:00 feat(decomp): ox wave fd overlays β€” 5 banked +3008 0488903e57b65b3286130d465a4c3939a691bd8a 2026-08-26T00:47:38-06:00 2026-08-26T00:47:38-06:00 feat(tools): decl_from_use β€” negative-controlled extern inference for the no-seed-decl class (Fable agent build, verified); SETUP.md rows for it + the baseline-red gate input (R21) +3009 26b5ee1046988b4e3dd3332807e1c92955169473 2026-08-26T00:55:41-06:00 2026-08-26T00:55:41-06:00 feat(decomp): ox wave fe overlays β€” 2 banked +3010 8e2e6688236a7cc7e2a87645275c48af3a1f4ada 2026-08-26T01:02:19-06:00 2026-08-26T01:02:19-06:00 feat(decomp): ox wave ff overlays β€” 1 banked +3011 daecc94ef0fcdc2525ea9a26c9dec1f49c34836a 2026-08-26T01:07:51-06:00 2026-08-26T01:07:51-06:00 docs(phase-31): S61 FINAL checkpoint β€” wave machine measured finished (17/~5,000 pre-paid), inversion closed NO (0/92 clean), residual classes named, 4 REDs documented, record corrections logged +3012 3222eb454c87f9fa4394caaf5514e82a5ca1555b 2026-08-26T01:14:36-06:00 2026-08-26T01:14:36-06:00 feat(resolver/aprop): decl-from-use wired into the A-prop drafter; TU-BROKEN classification; dup-defβ†’extern candidates (P31 S61 follow-up, all zero-token) +3013 f1ec6f31d8d9d1f1ee80866450126e61a292e9cf 2026-08-26T01:17:51-06:00 2026-08-26T01:17:51-06:00 feat(decomp): integration-resolver pass β€” 1 banked of 20 staged (zero model tokens) +3014 e353b1faa6aa78ad8a193fa94ec0cd55363bc692 2026-08-26T01:47:07-06:00 2026-08-26T01:47:07-06:00 feat(decomp): main lane m50a β€” 2 banked +3015 871d7da31e8361a43b7420065ea14eb946655a7d 2026-08-26T01:49:59-06:00 2026-08-26T01:49:59-06:00 feat(decomp): main lane m50bba β€” 1 banked +3016 0ff05ce200805fbc49f3fa9a170346e24f262d5c 2026-08-26T01:58:00-06:00 2026-08-26T01:58:00-06:00 feat(drafting): retries carry the gate's verdict β€” class-accurate failure feedback + named reloc mismatches in the warm start; harness-fault classes flagged as not-the-draft's-fault (P31 S61) +3017 f5fe011d73351a27dc203b9015b7da0ea2d9acf8 2026-08-26T02:17:43-06:00 2026-08-26T02:17:43-06:00 feat(decomp): main lane m51aaa β€” 1 banked +3018 28065faaaf102d4eef1ae5b48ec3f992d0d29aaf 2026-08-26T02:25:36-06:00 2026-08-26T02:25:36-06:00 feat(decomp): main lane m51bba β€” 1 banked +3019 c6b836cb048ed3af6d32a2a62ac201771806e20a 2026-08-26T02:45:50-06:00 2026-08-26T02:45:50-06:00 feat(decomp): main lane m52a β€” 1 banked +3020 2cf1a0a701a5c78d7219092fe01e379c96fe93a1 2026-08-26T02:47:47-06:00 2026-08-26T02:47:47-06:00 feat(decomp): main lane m52bba β€” 1 banked +3021 d483988b095285e3d9893d7a763bbac0cf51631a 2026-08-26T02:58:59-06:00 2026-08-26T02:58:59-06:00 feat(decomp): main lane m53aab β€” 1 banked +3022 2b9e1886c7ec69d63d7f024b363ab797d6aacb7d 2026-08-26T03:01:59-06:00 2026-08-26T03:01:59-06:00 feat(decomp): main lane m53bba β€” 1 banked +3023 2502eff0eae97930c099b229aa07a3c03e9c01eb 2026-08-26T03:06:01-06:00 2026-08-26T03:06:01-06:00 feat(decomp): ABCD MAXTOK test β€” the 10 paired gen0 functions banked (whole-binary SHA); verdict 8k=16k 10/10 > 24k=32k 8/10 (P31 S61-6) +3024 80aad51098783c75b2482302b13388e157cf647d 2026-08-26T03:06:32-06:00 2026-08-26T03:06:32-06:00 docs(phase-31): S61-6 ABCD verdict β€” 8k/16k 10/10 beat 24k/32k 8/10; overlays sweep at MAXTOK=8000; gen0 sweep launched +3025 3b4274749167ec04b3e81fbe443a0ee0f066bac9 2026-08-26T03:09:14-06:00 2026-08-26T03:09:14-06:00 docs(phase-31): CORRECTION β€” ABCD judge had an R53 false-green hole; corrected table 8k 6 Β· 16k 7 Β· 24k 5 Β· 32k 3 (ordering stands, winner flips by one fn); fleet_red.txt reconciled +3026 1f278e20501e04e048fe03d0843ccede925bd90f 2026-08-26T03:15:16-06:00 2026-08-26T03:15:16-06:00 feat(decomp): integration-resolver pass β€” 99 banked of 171 staged (zero model tokens) +3027 ad506bd261080fb2aa039335f7a96eeafc8fa6c1 2026-08-26T03:17:43-06:00 2026-08-26T03:17:43-06:00 feat(decomp): ox wave g0a overlays β€” 37 banked +3028 f21691533307cc190185e0880c6c0d47c7246072 2026-08-26T03:21:03-06:00 2026-08-26T03:21:03-06:00 feat(decomp): main lane m54a β€” 1 banked +3029 595a4cad2075a129ee4ed894c8073f6b81e2216f 2026-08-26T03:23:21-06:00 2026-08-26T03:23:21-06:00 feat(decomp): main lane m54bba β€” 1 banked +3030 e58f0d19b6cee61ec33f183bd3b6024e87f33ace 2026-08-26T03:41:57-06:00 2026-08-26T03:41:57-06:00 feat(decomp): main lane m55bbba β€” 1 banked +3031 8033919966e3f62bec699d91b19f9a60e93f70a3 2026-08-26T03:44:58-06:00 2026-08-26T03:44:58-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +3032 fda1b706019c7e8e8edb44281c1a9fed2741360e 2026-08-26T03:47:57-06:00 2026-08-26T03:47:57-06:00 fix(jtbl): byte-proven pad-spec repair (1 binary/binaries) β€” maintenance lane +3033 19b20922f16bb231e317d3c06caceeb2e7f414ee 2026-08-26T04:06:43-06:00 2026-08-26T04:06:43-06:00 feat(decomp): ox wave g0b overlays β€” 9 banked +3034 8ccc5ed81e8571e5927b2d58e331f61e35a09461 2026-08-26T04:25:48-06:00 2026-08-26T04:25:48-06:00 feat(decomp): main lane m57ba β€” 1 banked +3035 c141cb5434afdf78729fa179b443fb7886e5c894 2026-08-26T04:53:13-06:00 2026-08-26T04:53:13-06:00 feat(decomp): ox wave g0c overlays β€” 7 banked +3036 16c927f4763b61d6c019103d16e1a325fad41ab5 2026-08-26T05:38:20-06:00 2026-08-26T05:38:20-06:00 feat(decomp): integration-resolver pass β€” 4 banked of 94 staged (zero model tokens) +3037 38b9c28150e395d124be81866e9bd260e9737562 2026-08-26T05:51:11-06:00 2026-08-26T05:51:11-06:00 feat(decomp): ox wave g0d overlays β€” 5 banked +3038 b365e3e37071dd1d8597d78728e86218ae2da28b 2026-08-26T06:39:06-06:00 2026-08-26T06:39:06-06:00 feat(decomp): main lane m67a β€” 1 banked +3039 aca8ff0bfe1278c0fa0004b860e99f8ee70c4184 2026-08-26T07:18:53-06:00 2026-08-26T07:18:53-06:00 feat(decomp): ox wave g0e overlays β€” 2 banked +3040 7fd61c8060cc0fb98d5f46ef5f92bbcdda12bb50 2026-08-26T07:58:34-06:00 2026-08-26T07:58:34-06:00 docs(phase-31): THE OX WINDOW CLOSED 07:55 β€” gen0 goal beaten before the door: overlays 196/196, main 196/225 drafted; remaining value is pre-paid drafts + zero-token lanes +3041 170f33fb8b8f7fd8effc82c29ac6cdbd86c429c4 2026-08-26T08:01:45-06:00 2026-08-26T08:01:45-06:00 feat(decomp): ox wave g0f overlays β€” 10 banked +3042 24c94e82b95e0b702ad03575e30920385dd3abf1 2026-08-26T08:03:15-06:00 2026-08-26T08:03:15-06:00 feat(decomp): main lane m74 β€” 19 banked +3043 2cdbda9268a0be93843225df977f888bb9f2cabe 2026-08-26T08:09:49-06:00 2026-08-26T08:09:49-06:00 feat(decomp): main lane m74a β€” 9 banked +3044 26c9e744c9a369c9cca735c0e33edd8754f80afd 2026-08-26T08:14:02-06:00 2026-08-26T08:14:02-06:00 feat(decomp): main lane m74ba β€” 3 banked +3045 e256a8daf0663c11384975c07a7a9a976681a413 2026-08-26T08:17:29-06:00 2026-08-26T08:17:29-06:00 feat(decomp): main lane m74bbba β€” 1 banked +3046 b82a070c4906fe5dc8d818855f690eed81e4378c 2026-08-26T08:22:33-06:00 2026-08-26T08:22:33-06:00 feat(decomp): main lane m74 β€” 3 banked +3047 64c3f0e17a7d9a2f113f642108d9bbad484a97eb 2026-08-26T08:26:19-06:00 2026-08-26T08:26:19-06:00 feat(decomp): main lane m74 β€” 39 banked +3048 585f4bac3fa252a933865b9e54acf89d98e34a11 2026-08-26T08:28:04-06:00 2026-08-26T08:28:04-06:00 feat(decomp): main lane m74aaa β€” 5 banked +3049 df75110f0da128f61db5015189ed0ca638cf74d6 2026-08-26T08:28:37-06:00 2026-08-26T08:28:37-06:00 feat(decomp): main lane m74aaba β€” 2 banked +3050 d42cb9448462847ea8eda6e63d2fa08c58f8a0af 2026-08-26T08:29:10-06:00 2026-08-26T08:29:10-06:00 feat(decomp): main lane m74ab β€” 8 banked +3051 aa08a94241c495819da78a2cf975719843a54073 2026-08-26T08:33:27-06:00 2026-08-26T08:33:27-06:00 feat(decomp): main lane m74b β€” 13 banked +3052 ece1584f40bc41ed9a24b14f5932233f63cc3266 2026-08-26T08:39:53-06:00 2026-08-26T08:39:53-06:00 feat(decomp): main lane m74 β€” 15 banked +3053 90cf8c2faa0fc0ceb197da55db4f9bbe7e6f243d 2026-08-26T08:44:23-06:00 2026-08-26T08:44:23-06:00 feat(decomp): main lane m74 β€” 1 banked +3054 e958604b8c473262057ade4626ec9df836eb5a71 2026-08-26T08:46:14-06:00 2026-08-26T08:46:14-06:00 feat(decomp): main lane m74 β€” 1 banked +3055 96847afcf0057eb8a63a1d32dcdabe6295039ff2 2026-08-26T09:05:05-06:00 2026-08-26T09:05:05-06:00 docs(phase-31): S61 overnight close β€” 378+ net stubs; gen0 goal beaten (392/421 drafted, 196 banked); ox window closed 07:55; fleet regenerated +3056 04e685e8dc44d02ac6634eb0a8b5aca81917ade7 2026-08-26T09:06:46-06:00 2026-08-26T09:06:46-06:00 docs(phase-31): correction β€” true morning fleet numbers 98.4% iw / 96.6% dc / 2,540 stubs (the earlier line quoted a stale file; --fleet was required) +3057 50cc05d585ad959087e3334aab3a173c81399889 2026-08-26T09:20:16-06:00 2026-08-26T09:20:16-06:00 fix(jtbl): byte-proven pad-spec repair (1 binary/binaries) β€” maintenance lane +3058 b46fc5488be3d366f303f5bd78828be8b60c7b9e 2026-08-26T09:34:52-06:00 2026-08-26T09:34:52-06:00 docs(phase-31): morning red-set verification β€” 5 verified (4 known + ov_SC02_005 fresh drift); ov_SC05_010 self-healed by the maintenance lane +3059 3fce1c76e8e08fd83a2670e9b38b4abddd0ba6c7 2026-08-26T09:44:04-06:00 2026-08-26T09:44:04-06:00 docs(phase-31): ov_SC02_005 verdict β€” two stacked defects (older extract rot + the 05:38 shift); 5 byte-checked attempts, stable at HEAD, day-session surgery; attribution corrected (R40) +3060 ffe1e961f3283a85c782ffc688877ae3afb33ae7 2026-08-26T10:21:13-06:00 2026-08-26T10:21:13-06:00 feat(decomp): ox wave ds1 overlays β€” 1 banked +3061 5c4d090537c8dc33ecd06a18a14dcf4702da4d9a 2026-08-26T10:31:01-06:00 2026-08-26T10:31:01-06:00 docs(phase-31): DeepSeek push paused by the key's $60 lifetime cap at $60.21 (account credit remains); resume script staged; theories corrected (R40) +3062 35a6d786d24dfd5b065a9f07176ac8d63040a3d1 2026-08-26T10:36:00-06:00 2026-08-26T10:36:00-06:00 feat(decomp): integration-resolver pass β€” 2 banked of 87 staged (zero model tokens) +3063 f25780b1d84e95b2cb34acc1736fcfb982abef03 2026-08-26T11:05:02-06:00 2026-08-26T11:05:02-06:00 fix(main-lane): tag namespace exhausted after 100 waves β€” extended with a second prefix (200 tags); the lane crash-looped for 2h while parked drafts waited (R51 finite-namespace class) +3064 0828f12df3d75f0ba6f05dce99df69c6d7c8f147 2026-08-26T11:13:57-06:00 2026-08-26T11:13:57-06:00 feat(decomp): main lane n00 β€” 9 banked +3065 8d548ec2604fcb1efe7141f087900aeb3fccd94a 2026-08-26T11:21:32-06:00 2026-08-26T11:21:32-06:00 feat(decomp): main lane n00 β€” 2 banked +3066 96afb09c5986f60006fb4266a24d8176edbb9b25 2026-08-26T11:29:32-06:00 2026-08-26T11:29:32-06:00 feat(decomp): main lane n02 β€” 3 banked +3067 37a7f5b055c283941230cd88462961f0791c6ba4 2026-08-26T11:43:24-06:00 2026-08-26T11:43:24-06:00 feat(decomp): main lane n02aa β€” 1 banked +3068 5c3fe3dbe3e2b512ec25555d0d3183a3e7708227 2026-08-26T11:45:40-06:00 2026-08-26T11:45:40-06:00 feat(decomp): main lane n02aba β€” 1 banked +3069 d7142f224d686e53ab3b94af1efd2bed504bdbb5 2026-08-26T12:01:09-06:00 2026-08-26T12:01:09-06:00 feat(decomp): main lane n02 β€” 3 banked +3070 252dc930cb135ac1374336f116c499d3046d03c5 2026-08-26T12:06:33-06:00 2026-08-26T12:06:33-06:00 feat(decomp): main lane n02 β€” 1 banked +3071 fa475da0f8dc93d39bf6050aac29f97553f3809c 2026-08-26T12:31:35-06:00 2026-08-26T12:31:35-06:00 docs(phase-31): S61 FINAL-2 checkpoint β€” machine quiesced, 401+ banked today, ox era closed, budget-unconstrained finish directive recorded, two closing agents' handoff protocol for the fresh session +3072 bd37b7eb7b6adc8b6c42bc9852bd6c9b095e8289 2026-08-26T12:45:16-06:00 2026-08-26T12:45:16-06:00 docs(phase-31): frontier-analysis-s61 β€” the post-ox finish-plan ground truth (2,520 open instances fully classed, zero unassigned; wall = 86 fns; done-denominator reconciled; engines measured per class) +3073 c94fbe0d17041165fa4272e39c8a2c998bd6d317 2026-08-26T12:45:16-06:00 2026-08-26T12:45:16-06:00 docs(phase-31): handoff item 1 done β€” frontier doc verified and committed +3074 aee82bb4daec3b456825c5daabcb29f2d7986964 2026-08-26T12:52:28-06:00 2026-08-26T12:52:28-06:00 docs(cookbook): Β§294–§300 β€” S61 distill batch: 5 new laws + 10 addenda from 99 candidates (52 covered, 3+1 refuted, all byte-verified); DeepSeek-vs-ox calibration notes +3075 d79cee5f9cb1c967ebca152fb0b6b4859b5977da 2026-08-26T12:52:28-06:00 2026-08-26T12:52:28-06:00 docs(phase-31): handoff item 2 done β€” cookbook distill committed, planner notified +3076 d7bfa03d92f3d73fa1e2581e26caad285e0b5331 2026-08-26T12:55:57-06:00 2026-08-26T12:55:57-06:00 docs(phase-31): frontier-analysis-s61 addendum β€” distill cross-check folded in (4 fns to deterministic via Β§295; Β§296 contamination quantified at 11 main fns; analyst's own R40 note) +3077 f71cbbb53ef76261c204db64e6cec55fe7bab5dd 2026-08-26T12:56:10-06:00 2026-08-26T12:56:10-06:00 chore(docs): sweep auto-rendered ledgers at S61 close +3078 528f543d843a1b816ceac178168d75ecafd50f2d 2026-08-26T12:56:26-06:00 2026-08-26T12:56:26-06:00 chore(docs): progress.md regenerated at S61 close +3079 80124c6810166e46fed8d1fce82e05022540ae75 2026-08-26T13:53:56-06:00 2026-08-26T13:53:56-06:00 feat(decomp): main β€” Β§295 kernel-trap template sweep: ResetEntryInt, HookEntryInt, read, SysEnqIntRP banked (4 fns, 16 ins) via gate_main clean rebuild, main SHA 143dbb89 byte-identical (P31 T1, frontier-s61 addendum) +3080 f449a455bca4ab37bff31e1b6cdcaba501aac2f7 2026-08-26T14:00:50-06:00 2026-08-26T14:00:50-06:00 feat(decomp): ov_SC02_027/func_801831F4 + ov_SC06_000/func_80182E38 banked β€” the resolver's 2 DIFF refusals autopsied to bytes: each was a wrong internal-j target (goto-to-recheck vs cross-jumped call; shared negu vs else-arm negu) that rtu's R_MIPS_26 masking hid; one-line semantic fixes, whole-binary SHA green (P31 T1) +3081 3a5caa65b1749a59ffcbb51e40e1f6a0e50b1a1a 2026-08-26T14:04:54-06:00 2026-08-26T14:04:54-06:00 feat(tools)+docs(phase-31): T1 β€” resolver declfix wiring; masked_diff/rtu_match compare internal-j targets (jrel; Β§195 premise refuted, cookbook Β§301); diff_autopsy.sh + stub_invariant_audit.py promoted; frontier-s61 Addendum 2 (step-1 falsifier fired: 54 carve-refused, 2 DIFF autopsied+banked, 1 plumbing); S62 log +3082 3ee2d8e22aa4d6372712527429a3bb352d1181ff 2026-08-26T14:04:54-06:00 2026-08-26T14:04:54-06:00 chore(lanes): maintenance.sh lock-aware R22 sweep window (S61 leftover, self-documented; the pgrep guard meant the fleet sweep never ran) +3083 85b757788601a9be1289a23fc82efbc88d8d6db0 2026-08-26T14:05:15-06:00 2026-08-26T14:05:15-06:00 chore(docs): progress.fleet.md regenerated after T1 (2,511 stubs) +3084 5a87e741eaf2ed223f13d15f1bf9bb15c3af6a0f 2026-08-26T14:10:20-06:00 2026-08-26T14:10:20-06:00 fix(config): ov_SC03_015 GREEN β€” JTBL_INTERLEAVE order re-aligned to the yaml (the 17:43 overlays.mk restore had resurrected the 06:58 order: tail20 between the jr_80184F14/jr_80185B44 carves + a phantom tail21 => extract rot + no pad spec could win) and jr_80185B44 pads 0,0,0 for its 3 tables (8/6/11 words, retail 0xc1338..0xc139c); R22 clean rebuild byte-identical; off the red list (5 -> 4) (P31 T2a) +3085 c50e9578ba97241982f19c885ce9925317a65b6c 2026-08-26T14:11:20-06:00 2026-08-26T14:11:20-06:00 feat(decomp): ov_SC03_015 β€” 7 resolver-held drafts banked after the T2a surgery (func_8017C104, func_8017D890, func_8017DCC0, func_80180638, func_80180CF8, func_80188FB4, func_801893BC); gate-time Β§8a carve (yaml+mk) re-verified byte-identical from a clean rebuild; T2a log (P31 S62) +3086 46ad1a2de4b883d358e83d25e11840b03bd9df3a 2026-08-26T14:14:00-06:00 2026-08-26T14:14:00-06:00 fix(config): ov_SC03_024 GREEN β€” jr_8017AE2C.o had NO JTBL_PADS spec (never existed; S61's value search ran on a nonexistent line), so the default .align 3 padded +4 between its two back-to-back 5-entry tables (retail +0x0/+0x14); spec 0,0 added; R22 clean rebuild byte-identical; off the red list (4 -> 3) (P31 T2b) +3087 0060dfd9764c0a78ecea4dfa68ebe057aa3686fd 2026-08-26T14:14:39-06:00 2026-08-26T14:14:39-06:00 feat(decomp): ov_SC03_024 β€” 4 resolver-held drafts banked after the T2b surgery (func_8017D890, func_801812C4, func_801826E8, func_801848F4); re-verified byte-identical from a clean rebuild; T2b log (P31 S62) +3088 bf10227decc67f99947c55dcfc2a342aa59e8d48 2026-08-26T14:18:31-06:00 2026-08-26T14:18:31-06:00 fix(config): ov_SC06_022 GREEN β€” two objects carried two-table JTBL_PADS (0,4) for one-table carves (jr_80184A28: a rival lane flip-flopped the yaml 5x on 08-25 between one and two carved tables while the 17:43 mk restore kept the two-table spec; jr_80180CD0: same drift); specs derived from the retail bytes by pads_audit (15/15 existing specs reproduced as its negative control); R22 clean rebuild byte-identical; off the red list (3 -> 2) (P31 T2c) +3089 48a42b9ed38ed6b181c8eb4b4de8ff4555463d4d 2026-08-26T14:21:24-06:00 2026-08-26T14:21:24-06:00 feat(decomp): ov_SC06_022 β€” 9 resolver-held drafts banked after the T2c surgery; re-verified byte-identical from a clean rebuild; T2c log (P31 S62) +3090 7898b9faf8bbebde909f31042627fbf7f1949db4 2026-08-26T14:24:07-06:00 2026-08-26T14:24:07-06:00 fix(config): ov_SC02_005 GREEN β€” the 04:06 g0b gate wrote a JTBL_INTERLEAVE order for a yaml state (a jr_8018EA04 c-subseg + tail21) that a later restore removed; func_8018EA04 lives in TU jr_80181D30 as a stub; order re-aligned to the yaml (+ the stale asm/ dir dropped); 0 differing bytes, R22 clean rebuild byte-identical; off the red list (2 -> 1) (P31 T2e) +3091 315699b59795a9fcfe6c0f2aa2d6800c837f5382 2026-08-26T14:25:14-06:00 2026-08-26T14:25:14-06:00 feat(decomp): ov_SC02_005 β€” 1 resolver-held draft banked after the T2e surgery; the gate's Β§8a carve split TU jr_8018EA04 (new .c + yaml subseg + order, consistently this time); re-verified byte-identical from a clean rebuild (P31 S62) +3092 00e26c78d8d57e1e76c22856870233bd7fb932bd 2026-08-26T14:27:15-06:00 2026-08-26T14:27:15-06:00 fix(decomp): ov_SC04_018 GREEN β€” jr_8017AE2C: (1) pads spec 4 -> 3 entries (the carve's 4th table belongs to func_80181804, reverted to a stub; pads_audit-derived); (2) the TU never compiled as committed: an undeclared D_801B9AA8 whose limbo entry poisoned three later block-scope externs, an address-of-a-cast (&((char*)&D)), a (void) re-declaration of func_8017E7CC after its (int) definition (call cast per Β§20), and func_8017E7CC's first store with offset/value swapped (retail li 3 / sh 2(s0)); R22 clean rebuild byte-identical; RED LIST EMPTY (1 -> 0) (P31 T2d) +3093 b3e879a95e9d01d0d12f070b0d1938ed45a88120 2026-08-26T14:28:24-06:00 2026-08-26T14:28:24-06:00 feat(decomp): ov_SC04_018 β€” 18 resolver-held drafts banked after the T2d surgery; re-verified byte-identical from a clean rebuild; T2d/T2e log β€” red list EMPTY (P31 S62) +3094 ab9e5770c7ac7a7a0bd047c241a1e4bdea5e3f36 2026-08-26T14:29:35-06:00 2026-08-26T14:29:35-06:00 feat(tools)+docs: T2 knowledge β€” interleave_check.py + pads_audit.py promoted (derive carve specs from the bytes; SETUP rows), cookbook Β§302 (the three carve-state invariants; five reds classified), frontier-s61 Addendum 3 (red list 5 -> 0, 39/40 held banks) (P31 S62) +3095 05f13d6c9f102da2d27d76c23b16669267d0c372 2026-08-26T14:34:32-06:00 2026-08-26T14:34:32-06:00 fix(config): fleet clean sweep found 5 more drifted overlays that incremental gates had hidden β€” ov_SC03_002/ov_SC01_077/ov_SC04_019/ov_SC01_084 JTBL_INTERLEAVE orders regenerated from their yamls (interleave_check --fix), ov_SC05_010 jr_8017C8D0 pads 0,0 -> 0 (the 09:20 maintenance repair was blanket-reverted by the 10:21 ds1 wave commit); each byte-identical from a clean per-binary rebuild (P31 S62) +3096 d718cecf9dfb91bfd36f5ac9e6ceea87c5d43267 2026-08-26T14:35:06-06:00 2026-08-26T14:35:06-06:00 docs(phase-31): S62 log β€” clean fleet sweep found 6 hidden failures (5 healed, md_SC07_003 re-measured); R60 candidate (carve-state files); SETUP: interleave_check --fix +3097 4b31ceaa1357f0ef83e5eb896854ec703f1db7ec 2026-08-26T14:38:59-06:00 2026-08-26T14:38:59-06:00 fix(config): ov_SC06_024 β€” JTBL_INTERLEAVE order regenerated from its yaml (drift predating today's sweeps; sequential-placement shift of 297k bytes); byte-identical from a clean rebuild (P31 S62 fleet sweep #2: 212/213 -> this was the 1) +3098 ddd902946706ab8a0e67d6b725a31a24b84a48c8 2026-08-26T14:43:26-06:00 2026-08-26T14:43:26-06:00 feat(decomp+tools): md_SC03_076 β€” func_801F0A9C + func_801F0F28 banked via the Β§8e pads filter wired for MODULES: jtbl_rodata_pads is now table-aware (acts only on an .align 3 followed by a $L label; const data / includes pass through) and supports trailing pads (0t1 = one zero word after the table, the Β§154-A island shape); spec 0t1,0 in config/modules.mk; byte-identical from a clean rebuild β€” the island-pads AND island-blocked refusal classes need no peel (P31 S62 T3a probe, R37) +3099 0b75da6a3618f71b948c74fac3a2b428df44d2e3 2026-08-26T14:48:17-06:00 2026-08-26T14:48:17-06:00 feat(build+tools): module jtbl pads DERIVED at build time β€” jtbl_rodata_pads --derive --tu (walks the retail island with the emission stream: .s spans from their comments, C data anchors from D_ names, C tables lead/trailing zeros; refuses on any anchor miss); Makefile runs it for every md_* object (no stored spec, nothing to drift); harvest_verify hands module island walls to it instead of isolate/split; the modules.mk probe line removed; md_SC03_076 byte-identical from clean (P31 S62 T3a) +3100 c71cd7edb5793aa0043694a654a618e13d7072ba 2026-08-26T14:48:42-06:00 2026-08-26T14:48:42-06:00 docs: cookbook Β§303 (module island pads derived at build time; island-pads/island-blocked dissolve) + SETUP row (P31 S62 T3a) +3101 df8f369eea5c116d9b269bcb12f07cae3036859f 2026-08-26T14:50:12-06:00 2026-08-26T14:50:12-06:00 fix(tools): jtbl_rodata_pads --derive β€” empty spec when the TU has no C tables (never refuses what it need not pad), sub-4-byte all-zero gaps before an anchor accepted as assembler alignment, .float/.double sized; 70/70 module binaries byte-identical through the derive stage; T3a log (P31 S62) +3102 7a3ce3434f2da7724c3b065ed955f19b4904967c 2026-08-26T14:54:44-06:00 2026-08-26T14:54:44-06:00 feat(config): ov_SC03_118 + ov_SC03_119 β€” -O0 region o0d (0x80183178..0x80183830, 9 stubs each, the ds1-mapped island) carved by o0_subsplit; byte-identical after extract+build (class F's overlay members now draft at their real opt level) (P31 T3b) +3103 e4d1c55dde8f8717162687885559f752e9c82aa4 2026-08-26T14:55:49-06:00 2026-08-26T14:55:49-06:00 feat(decomp): md_MAIN_011/func_800D04F4 banked β€” the resolver's PLUMBING refusal (undefined reference to D_800CEE3C): the strings lived only in the fn's own .s rodata block, so the C body now DEFINES them at file scope in address order (Β§304 self-defining rodata); byte-identical from a clean rebuild (P31 T3) +3104 dfd42d45867f826da703049a3526d77d149638b6 2026-08-26T14:56:06-06:00 2026-08-26T14:56:06-06:00 docs: cookbook Β§304 (self-defining rodata) + T3 log incl. fleet sweep #3 = 213/213 (P31 S62) +3105 56542b18d5cf84da028743ec65ef1bd652c93330 2026-08-26T15:02:09-06:00 2026-08-26T15:02:09-06:00 feat(decomp): integration-resolver pass β€” 54 banked of 90 staged (zero model tokens) +3106 21972d943624b115d014fe585454f9c5b1582ca4 2026-08-26T15:02:15-06:00 2026-08-26T15:02:15-06:00 feat(tools): T5pre β€” main_queue_rebuild.py derives main's open set from progress.classify() (147 = 144 stubs + 3 NM; 959 LINKED + 2 blobs excluded) and attaches the newest draft per fn (136 queued, 11 never-drafted listed for the main wave; the old queue was 156/166 stale); campaign_status quotes the honest main denominator (P31 S62) +3107 7bc10e31c833f624b49ad8d70a28857db541643f 2026-08-26T15:06:21-06:00 2026-08-26T15:06:21-06:00 fix(config): ov_MAIN_012 β€” order regenerated from its yaml; the 14:56 resolver gate (-j 10) resurrected a rejected carve's mk line via a whole-file overlays.mk snapshot/restore race between binaries, then blanket-committed it (R59/R60 caught live); byte-identical from a clean rebuild (P31 S62) +3108 910101fe2118af9898437fb8dffa5c1228bbd06d 2026-08-26T15:07:03-06:00 2026-08-26T15:07:03-06:00 fix(gate): harvest_verify snapshots/restores ONLY the binary's own overlays.mk block, under the mk lock, against the current file β€” the whole-file restore raced between parallel gates and resurrected other binaries' rejected carve lines (ov_MAIN_012, S62); block round-trip unit-tested (P31 S62) +3109 cc8df522992a42297bbc9a5764886777f4ccb7df 2026-08-26T15:09:45-06:00 2026-08-26T15:09:45-06:00 fix(decomp): ov_SC03_028 β€” a matched function was defined as FUNC_80180a08 (mangled case, resolves to no address) which made jr_isolate_all refuse every isolation in the TU (the 7 CARVE-REFUSED drafts of this overlay); renamed to func_80180A08, byte-identical (P31 S62 T3) +3110 0decb455809cf76bbd93ce798d6f17db345824ad 2026-08-26T15:22:11-06:00 2026-08-26T15:22:11-06:00 feat(decomp): ov_SC03_028 (7 fns: func_80183A74, func_801847E8, func_80184914, func_80185864, func_80185C14, func_801887A8 + 1) and ov_SC06_030 (func_8017F65C + 1) β€” 9 resolver drafts banked once jr_isolate_all could partition their TUs; gate-time isolate + carve, both binaries byte-identical from clean rebuilds (P31 S62 T3) +3111 d7d8fdb50c171456db2230e756e92810d3112ba4 2026-08-26T15:24:41-06:00 2026-08-26T15:24:41-06:00 docs+tools: cookbook Β§305 (gate-time CARVE-REFUSED = 3 deterministic classes: mangled definition, uncarried naming type -> lift_types, post-isolation BOTH-copies -> tail); jtbl_carve treats a full data-side overlap as tail (P31 S62 T3) +3112 dcbe05cabee7eecf5a7c9d7ca9236f373de5d2ae 2026-08-26T15:25:58-06:00 2026-08-26T15:25:58-06:00 refactor(types): lift Block4, Blk4_E960, Rec80182744, MATRIX_80188114, D80190448_t into src/shared/engine_types.h (lift_types --apply; 12 local defs stripped, the divergent Block4 in ov_SC02_011 kept local) β€” the naming types jr_isolate_all could not carry for 10 staged drafts; fleet clean sweep 213/213 (P31 S62 T3) +3113 0e05821b02d77f5956649965e0fad53acdf4823a 2026-08-26T15:34:11-06:00 2026-08-26T15:34:11-06:00 feat(decomp): ov_SC03_029/func_8017FF7C, ov_SC03_105/func_80186DDC, ov_SC04_016/func_8017F03C banked after the type lift (gate-time isolate+carve); two orders regenerated from their yamls after a block restore landed on a successful carve; all three byte-identical from clean rebuilds (P31 S62 T3) +3114 fabde980787fa07b81989474c25252171e3b0d89 2026-08-26T15:38:23-06:00 2026-08-26T15:38:23-06:00 fix(tools): three carve-lane defects behind the last CARVE-REFUSED class β€” jr_isolate_all's decl carrier no longer carries glued DEFINE_…() invocations (it re-instantiated shared bodies as nameless functions in the new region; prototypes carried instead), jtbl_carve treats a full data-side overlap after isolation as the ordinary tail state, and mk_write.write_overlays_mk merges only the caller's changed blocks into the CURRENT file under the lock (base=; the whole-file rewrite raced between parallel carves β€” ov_SC03_029/105/MAIN_012 drifts) (P31 S62 T3) +3115 34c94a17c44e83dd30c1e01ca15b64923874cc05 2026-08-26T15:38:23-06:00 2026-08-26T15:38:23-06:00 feat(decomp): ov_SC03_107/func_8015444C banked β€” isolated region + tail carve (the func_8015444C family's first bank); byte-identical from a clean rebuild (P31 S62 T3) +3116 7324baebab689d3f0acb12766265dd7e509651c4 2026-08-26T15:41:20-06:00 2026-08-26T15:41:20-06:00 fix(tools): diff_autopsy.sh creates its scratch dir (the promoted copy lost the mkdir, so its snapshot cp failed and the restore left four TUs spliced), prints the first build errors and flags a stale cmp when the build fails (P31 S62) +3117 497d462c98b883238e959198c1c735201a632ed4 2026-08-26T15:43:29-06:00 2026-08-26T15:43:29-06:00 feat(decomp): ov_MAIN_012 + ov_SC02_037 func_8015444C banked (the family's remaining two; isolate + tail carve after the carrier/carve/mk fixes); both byte-identical from clean rebuilds (P31 S62 T3) +3118 cd1e38ee0b279c3b013ab4887610b101565b46be 2026-08-26T15:48:34-06:00 2026-08-26T15:48:50-06:00 fix(tools): jr_isolate_all recognises lifted "} __attribute__((...)) X;" typedefs as engine types (5 drafts refused on Block4 after the lift) and drops a cut equal to the object start (a jr function that leads its object made an empty region -> out of order); mk_write refuses to merge a block that moved on disk since the caller read it (R43) (P31 S62 T3) +3119 99f601d02aa80ef0bfe2913674318316f37a77ac 2026-08-26T15:49:08-06:00 2026-08-26T15:49:08-06:00 docs: cookbook Β§305 addendum β€” glued DEFINE carrier, attribute typedefs, leading-jr cut, the overlays.mk merge race closed at the root (P31 S62) +3120 4e562cfbf4f21fc1e6ceb87d133751c5a3fb13f7 2026-08-26T15:55:57-06:00 2026-08-26T15:55:57-06:00 feat(decomp): ov_SC02_016/func_801810C8, ov_SC02_021/func_8017ECFC, ov_SC03_117/func_8017E6EC banked β€” the Block4-typed drafts once the isolator could see the lifted typedef; isolate + tail carve; byte-identical from clean rebuilds (P31 S62 T3) +3121 53820257521e351e5cd000fb7dd5a51812d2f7af 2026-08-26T15:57:18-06:00 2026-08-26T15:57:18-06:00 chore(docs): fleet ledger + backlog regenerated after T3 (2,397 stubs, 98.5% instr, 96.8% distinct) +3122 16d1d01b5641fc3a676a94a78a94cbb85f5b6954 2026-08-26T15:57:18-06:00 2026-08-26T15:57:18-06:00 docs(phase-31): T3 log (75 banks; six carve-lane defect classes fixed; residue named) + frontier-s61 Addendum 4 (P31 S62) +3123 ceab8ad725c894edaeb6277e410a143af34f6b7c 2026-08-26T16:00:01-06:00 2026-08-26T16:00:01-06:00 fix(config): ov_SC03_108 + ov_SC06_011 orders regenerated from their yamls β€” the failed table-bearing gate attempts left their carve entries in the mk and my 15:43 blanket add committed them (R59, mine); both byte-identical from clean rebuilds (P31 S62) +3124 e8549eaf1033bc4f644ad904f15567824b849697 2026-08-26T16:00:43-06:00 2026-08-26T16:00:43-06:00 docs(phase-31): S62 session checkpoint β€” T0–T3+T5pre done, paused at the R27 gate for T4 +3125 1392bf6c93637269dce45e46e1e7127fbc84418c 2026-08-26T16:02:20-06:00 2026-08-26T16:02:20-06:00 docs(phase-31): checkpoint β€” fleet sweep #7 213/213 GREEN at T3 close +3126 05d13e52e77bbf7b72c7b83c874b47b441a9a32c 2026-08-26T17:07:12-06:00 2026-08-26T17:07:12-06:00 docs(cookbook): Β§306 (hazard nop before a div-result store = statement order; maspsx --expand-div splices it) + Β§306a T4 distill addenda (case-body order at 3 nodes, narrow-cast copy+andi cell, dropped-edge sign rule, REGALLOC-PERM via a hoisted clamp local) + the warm-start homonym harness note β€” from 31 byte-proven T4 transcripts, 6 novel claims, 5 banked (P31 S62) +3127 02c5d757c2c0d6724337b29c593314c57b465e48 2026-08-26T18:14:48-06:00 2026-08-26T18:14:48-06:00 docs(phase-31): T4 Claude-arm table (haiku 8 / sonnet 14 / opus 17 of 20 at the whole-binary gate), the warm-start homonym confound, distill yield (P31 S62) +3128 ad273e7b694937f8e8b1a92f153721b41a70a6f4 2026-08-26T18:31:10-06:00 2026-08-26T18:31:10-06:00 feat(decomp): T4 probe union β€” 17 fns banked (the best/cheapest arm per fn: haiku/sonnet/deepseek/opus drafts from identical packs), each binary byte-identical from a clean rebuild; func_8017FB38 func_80180F5C func_8017FF74 func_80184FB4 func_801810A4 func_8017E014 func_8017EF90 func_8017F590 func_8017E54C func_8017F3F8 func_80181894 func_800CAF9C func_801804C0 func_8017E7D0 func_8017F608 func_800CB578 func_801808E8 (P31 S62 T4) +3129 194cce75701fb1ffb2bb2bcf43445948025881cf 2026-08-26T18:32:51-06:00 2026-08-26T18:32:51-06:00 docs(phase-31): T4 DONE β€” routing rule (<=50: Sonnet+DeepSeek parallel, Opus residue; 51-120: Sonnet, Opus escalation; >120: Opus; haiku retired; M-extend-tell -> wall); frontier-s61 Addendum 5; judge artifacts (P31 S62) +3130 44f062a9787e96e4a93f733d0c9a131e55fccb48 2026-08-26T18:32:51-06:00 2026-08-26T18:32:51-06:00 docs(phase-31): S62 checkpoint refresh at the T4/T5 boundary +3131 74ec441d600921d3a4e0967a95a3da6263ec5d61 2026-08-26T19:01:41-06:00 2026-08-26T19:01:41-06:00 feat(tools): the Claude-subagent wave harness promoted from the T4 probe β€” claude_wave_packs.py (identical api_agent packs), workflows/claude_wave_draft.js + claude_wave_distill.js (the 60-agent draft and the R16 distill scripts), wave_judge.py (per-arm whole-binary gate with git-diff bank detection, tree reset, --union); SETUP row (P31 S62) +3132 6a64eee98f5648658974a6faa92f0ece81f47c94 2026-08-26T19:01:57-06:00 2026-08-26T19:01:57-06:00 fix(tools): wave_judge.py takes the wave dir from WAVE (default .run/t4) +3133 5962bb70edae43dab6298a64087eda89ca3ba850 2026-08-26T19:02:07-06:00 2026-08-26T19:02:07-06:00 fix(api_agent): prior_draft accepts a warm-start body only when its symbols overlap the target .s (law 1c) β€” 22/60 T4 agents had received another overlay's same-named function; fleet ledger regenerated (2,380 stubs) (P31 S62) +3134 20e700585561753b82c0a39ef3c1347297463e6e 2026-08-26T19:18:23-06:00 2026-08-26T19:18:23-06:00 docs(phase-31): S62 FINAL checkpoint β€” no-DeepSeek decision, T5 first-wave recipe on the promoted harness, residue ledger, rule candidates +3135 f8cc4c77d383945b124976de96d84ec759ef96e6 2026-08-26T19:35:54-06:00 2026-08-26T19:35:54-06:00 feat(tools): T5 wave draw/bank halves β€” t5_targets.py (routed, ledgered, band-stratified draw) + t5_bank.sh (judge β†’ R22 sweep β†’ commit); claude_wave_draft.js generalized; packs/judge refuse duplicate fn names (R43/R48); sweep #8 213/213 (P31 S63 T5.1) +3136 3591ac6566476f0f9f654fb37ef7eaced202648d 2026-08-26T19:42:23-06:00 2026-08-26T19:42:23-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +3137 bfd591c9cc8d6f49911d54cfa01dfb265ab903a9 2026-08-26T20:12:09-06:00 2026-08-26T20:12:09-06:00 feat(t5): Claude wave t5a β€” 41 banked (sonnet 39/44, opus 2/4); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3138 827b0b156f9ee83c3afb69172e6faf50e7ecfdf8 2026-08-26T20:14:26-06:00 2026-08-26T20:14:26-06:00 feat(t5): wave t5a recovery β€” 2 banked (func_8017EFC4, func_80185380); both byte-correct bodies refused only by a TU 'extern void' decl on an s32-returning fn, retyped by fix_tu_ret_decls (P31 S63 T5.3) +3139 41b259e5289dbfc340e43166292b8f5aa96a0d1f 2026-08-26T20:19:41-06:00 2026-08-26T20:19:41-06:00 fix(wave): cards keyed by (binary,fn) β€” t5a received 48/48 ANOTHER binary's card (R48); t5_cards.py builds the target's OWN fuel (tu_ref 88% / decl_prior 98%) via wave_card_fuel.py extracted from build_wave_atlas (R33); t5_bank.sh recovers un-banked drafts via fix_tu_ret_decls (2/2 on t5a); distill workflow generalized (P31 S63 T5) +3140 99ae0afe17ff972f3a7aaa5aa2839b080eef0651 2026-08-26T20:21:07-06:00 2026-08-26T20:21:07-06:00 docs(phase-31): S63 T5.2/T5.3 β€” lane G 23 banked free; wave t5a 43/48 (89.6%) incl. 2 recovered; the (binary,fn) card defect measured at 48/48 and fixed; falsifier cleared 6x +3141 59bb3a23f8215528a24ac56c5f39c59b8e95e3c3 2026-08-26T20:26:01-06:00 2026-08-26T20:26:01-06:00 docs(report): regenerate the fleet scoreboard after t5a + lane G (R32 digest describes the tree again) +3142 3ae63a9b2cc6f9321735c6278d8209385a264c12 2026-08-26T20:50:25-06:00 2026-08-26T20:50:25-06:00 docs(cookbook): Β§164-55 addendum from the t5a distill (byte-proven func_8017E2CC) β€” a single-constant arm written FIRST collapses into the branch delay slot; hoisting it instead pays Β§76's callee-saved pair; index rebuilt (P31 S63 T5.5) +3143 4f1ff29a6b3321280d6a6439886303fe798f84e1 2026-08-26T21:07:17-06:00 2026-08-26T21:07:17-06:00 feat(t5): Claude wave t5d β€” 42 banked (sonnet 38/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3144 c865841dbea19dd6eaafae0cb97a3454fe023d8f 2026-08-26T21:10:39-06:00 2026-08-26T21:10:39-06:00 feat(tools): claude_integration_recover.js β€” one agent per byte-correct-but-CC1-FAIL draft, fixes the DRAFT-side decl conflict only (never a shared header, Β§65a blast-radius law); t5d had 5 of 6 misses in this class (P31 S63 T5) +3145 a197f45a9cb536da1bb83dfcbece59b2b22c7f07 2026-08-26T21:12:10-06:00 2026-08-26T21:12:10-06:00 feat(tools): t5_distill_args takes repeated --wave/--wfdir pairs so one distill covers several waves; dedups by (binary,fn,arm) (R48) and skips un-gated waves loudly (P31 S63 T5.5) +3146 01d60955c7cb6d84b34441d35f905ae7a4591867 2026-08-26T21:13:42-06:00 2026-08-26T21:13:42-06:00 docs(phase-31): S63 T5.5/T5.6 β€” t5a distill (Β§164-55 addendum, 913 sections); wave t5d 42/48; 5 of 6 misses were INTEGRATION not codegen; residue-on-Opus 4/4 +3147 0b6f1039c62d7f39cb55afbf584490c1ecf4ce19 2026-08-26T21:20:04-06:00 2026-08-26T21:20:04-06:00 feat(t5): Claude wave t5b β€” 44 banked (sonnet 37/43, opus 7/8, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3148 eaf423f1d113f2cd585e109f493103d77766b1d2 2026-08-26T21:24:01-06:00 2026-08-26T21:24:01-06:00 feat(t5): Claude wave t5c β€” 39 banked (sonnet 36/43, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3149 923bd5ec64b0d5dff08f173ef2a863cd7c494f1e 2026-08-26T21:24:33-06:00 2026-08-26T21:24:33-06:00 feat(t5): integration recovery β€” 5 banked (func_801684B4, func_8017E83C, func_80182F78, func_80183BF0, func_8017F9B4); every body was ALREADY byte-exact, refused only by TU decl conflicts (callee proto, dup typedef, two planted memcpy externs, void-vs-s32 self decl, post-insertion-point struct decls) β€” fixed draft-side only via claude_integration_recover.js (P31 S63 T5.6) +3150 b1a0d49a52f98e7adb31c1562eb7626dbfafa9a7 2026-08-26T21:26:50-06:00 2026-08-26T21:26:50-06:00 feat(t5): main mini-wave β€” 9 banked of 11 never-drafted (func_80029B4C/BC8/DB4, func_8002A108/354/5C4, func_80030634, SYS_OBJ_202C, SYS_OBJ_2264); gate_main clean rebuild, main SHA 143dbb89 byte-identical (P31 S63 T5.7) +3151 926fc3f1c000a54eafd4fed1fefca793b7bc2e49 2026-08-26T21:33:45-06:00 2026-08-26T21:33:45-06:00 docs(cookbook): Β§307 β€” the brute-force-statement-orders lever has a BYTE-EVIDENCED BOUND (12/12 permutations byte-identical on func_8001BC6C, corroborated on func_80021284); a fan-out copy's priority is rank_for_schedule-internal, unreachable from source order β€” recognise the all-same-closeness tell and route to the permuter. Plus t5_distill_args --novel-only (P31 S63 T5.5) +3152 118074850264a6b72e8cc4eca54347bdbb85b62e 2026-08-26T21:42:47-06:00 2026-08-26T21:42:47-06:00 docs(cookbook): 3 byte-proven addenda from the t5b-t5d distill β€” Β§211's guard-hoist INVERTS on a reg-reg copy (LENGTH-DRIFT -1; use the Β§164-36a fence instead, func_8017DD80); Β§194-M third instance + new residual shape (func_80182420); Β§176-B B1 sharpened (func_80180B44). 2 more verdicts COVERED. Index green at 914 (P31 S63 T5.5) +3153 b2365aeeb500efc6a8513f065ee2464c2b41c3b1 2026-08-27T09:00:36-06:00 2026-08-27T09:00:36-06:00 feat(t5): Claude wave t5e β€” 53 banked (sonnet 37/41, opus 16/18, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3154 1fffccf859b390bf2b246d1a3d65b6ac71512fc2 2026-08-27T09:02:59-06:00 2026-08-27T09:02:59-06:00 feat(t5): Claude wave t5f β€” 34 banked (sonnet 34/35, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3155 a4d66a27c4a6ab6c974247546867d75a9589ba13 2026-08-27T09:09:01-06:00 2026-08-27T09:09:01-06:00 feat(decomp): free A-prop sibling lane (maintenance pass) β€” zero model tokens +3156 37cd7e2e0a32a87283bab7fb84dbec05223f452b 2026-08-27T09:40:08-06:00 2026-08-27T09:40:08-06:00 feat(t5): Claude wave t5h β€” 13 banked (sonnet 8/14, opus 5/5, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3157 689bbc7c2ff1e4709285df70873ce598a1b25e4f 2026-08-27T09:43:27-06:00 2026-08-27T09:43:27-06:00 docs(report): regenerate the fleet scoreboard after t5b-t5h + the free lane (2,310 -> 2,068 stubs; 98.6% instr / 97.1% distinct) +3158 bd472c5fc9c9547e81a48f417f024d4c10aa0044 2026-08-27T09:44:26-06:00 2026-08-27T09:44:26-06:00 docs(phase-31): S63 T5.6 results β€” 312 stubs closed (2,380->2,068), fleet 213/213 after every batch, 98.6%/97.1%; falsifier dead 6x; residue-on-Opus proven; A-prop lane DRAINING (23->3 on more exemplars); card (binary,fn) defect + fixes; rule candidates +3159 963519799d5ea8bdaca30192bb2cbb80d70d5a8c 2026-08-27T09:44:58-06:00 2026-08-27T09:44:58-06:00 docs(phase-31): S63 SESSION CHECKPOINT β€” fleet 2,068 stubs / 213-213 GREEN, the committed wave recipe, 690 K+L remaining, next-step order (P31 S63) +3160 71f00b16d1301e8306063f03cc8dfc10bdd9653e 2026-08-27T10:20:47-06:00 2026-08-27T10:20:47-06:00 feat(t5): Claude wave t5g β€” 42 banked (sonnet 37/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3161 9db3edf985a742507475cdb6524be3c8f5060939 2026-08-27T10:25:01-06:00 2026-08-27T10:25:01-06:00 fix(t5_targets): dedupe residues by (binary,fn) across prior waves and enforce one fn NAME per wave across residues too β€” the t5i draw produced 4 duplicate names (2 the same fn from two waves) and the name-keyed pack builder correctly REFUSED (R43/R48); deferred duplicates are reported, not dropped (P31 S63) +3162 9b9385afd230370bb8e3daa7f52bdc25c44332da 2026-08-27T11:16:01-06:00 2026-08-27T11:16:01-06:00 feat(t5): Claude wave t5i β€” 58 banked (sonnet 42/44, opus 16/19, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3163 0edd7344c2655e2b292d020eda123eb8fe5f2ccf 2026-08-27T11:28:58-06:00 2026-08-27T11:28:58-06:00 docs(cookbook): 3 NEW sections + 2 addenda from the t5e-t5i distill β€” Β§308/Β§308a (a target's lone j+nop over one self-terminating block survives ONLY behind a tautological re-test; a plain goto/polarity flip DELETES it β€” closeness EXPLODING after a polarity edit means an edge was removed; two overlays, independently derived), Β§309 (a frame-address equivalence rides through a -fcse-skip-blocks conditional; duplicating the call into both arms barriers it, cross-jump merges them back), Β§264 + Β§195-L addenda. Index 914 -> 917 +3164 e268956de688fbddc49462575a33bdb383e3cf40 2026-08-27T11:31:57-06:00 2026-08-27T11:31:57-06:00 docs(report): regenerate the fleet scoreboard after t5g/t5i +3165 f25b89048027641652c440ff12ee08c0111d352c 2026-08-27T11:32:45-06:00 2026-08-27T11:32:45-06:00 docs(phase-31): S63 FINAL checkpoint β€” 412 stubs closed (2,380->1,968), 98.6%/97.1%, 213/213 GREEN, cookbook 917; t5j pre-packed for resume; 5 proven findings + 2 rule candidates; machine quiesced for reboot +3166 e5956d021f3d827b5a2818e0c437e52f6e6d7a18 2026-08-27T11:33:02-06:00 2026-08-27T11:33:02-06:00 docs(report): progress.md regenerated with the S63 scoreboard +3167 5e5fd1cb770ff51cb818de582633e4e4d14e81db 2026-08-27T12:11:10-06:00 2026-08-27T12:11:10-06:00 feat(t5): Claude wave t5j β€” 45 banked (sonnet 41/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3168 5365db0f87a94d8326d468c061fb0a05e08dd787 2026-08-27T12:14:34-06:00 2026-08-27T12:14:34-06:00 feat(t5): Claude wave t5k β€” 47 banked (sonnet 40/44, opus 5/6, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3169 8c28a39df69aa694516039935a08739da7313c8d 2026-08-27T12:19:36-06:00 2026-08-27T12:19:36-06:00 feat(tools): fix_decl_mirror.py β€” the MIRROR of fix_tu_ret_decls (TU declares a VALUE return for a genuinely void definition; it SKIPped in every S63 wave). Narrowing the TU decl is NOT byte-neutral there (a caller reads $v0), so the repair is draft-side: define the body under a distinct identifier bound by __asm__("func_X") β€” the tree's own impl_* idiom. T0 blast radius. R39 negative control found and killed TWO real defects (block-scope decls: 856 false positives; sibling-TU decls: 580) and now passes 78,727/78,727 clean. Wired into t5_bank.sh (P31 S64) +3170 78f4934ef87374c7a66f8dbff1fb960a5770e1bd 2026-08-27T12:41:25-06:00 2026-08-27T12:41:25-06:00 feat(t5): Claude wave t5l β€” 39 banked (sonnet 37/44, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3171 ab3fffda1ea48adbf9a3de37c52f7517b1e50b5c 2026-08-27T13:36:39-06:00 2026-08-27T13:36:39-06:00 feat(t5): Claude wave t5m β€” 53 banked (sonnet 35/43, opus 17/18, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3172 ba7afeed3436845400df826dc1af3acb31a665a2 2026-08-27T13:47:39-06:00 2026-08-27T13:47:39-06:00 docs(cookbook): 2 NEW + 3 addenda from the t5j-t5m distill β€” Β§310 (a subu's dest ties only to the block-local operand), Β§311 (a same-lvalue if/else store must be DUPLICATED into both arms: sched1 runs before cross-jump, so a join-block store swallows the arm's load-delay nop; cross_jump refunds the duplicate so it is byte-free), + Β§220/Β§164-29/Β§164-39 addenda. NOTE: the Β§164-39 addendum REJECTS the drafting agent's 'integer width' claim β€” the byte-check shows comparison OPERAND ORDER is the lever. Index 917 -> 919 (P31 S64) +3173 e2d1531324c0679125c5bcf6582351e48dbf396a 2026-08-27T14:03:01-06:00 2026-08-27T14:03:01-06:00 feat(t5): Claude wave t5n β€” 43 banked (incl. func_8017BEBC @ 741 ins, the campaign's largest single crack; func_8017DAC8 253; func_800CB0C8 157; first md_MAIN_* module targets); the gate was KILLED mid-run and the tree adjudicated by a clean fleet sweep: 213 passed, 0 failed of 213 β€” every dirty file byte-proven, none reverted (R42) (P31 S64) +3174 1856524bec7c4b5817bc7d9c7d6808c5df0663e2 2026-08-27T14:05:55-06:00 2026-08-27T14:05:55-06:00 docs(report): regenerate the fleet scoreboard after t5m/t5n (1,968 -> 1,741 stubs; 98.7% instr / 97.3% distinct) +3175 6a601a0fcee3e0425aea550e2291d6164ea66f83 2026-08-27T15:59:13-06:00 2026-08-27T15:59:13-06:00 feat(t5): Claude wave t5o β€” 36 banked (sonnet 29/31, opus 6/8, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3176 0bcd8b3d222239c4c89c8151c3609eb54707d3ad 2026-08-27T16:02:23-06:00 2026-08-27T16:02:23-06:00 feat(t5): Claude wave t5p β€” 30 banked (sonnet 30/33, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3177 34963d42ed836eb6c67d67bfc061e77dbf6a2dd2 2026-08-27T16:04:57-06:00 2026-08-27T16:04:57-06:00 feat(t5): Claude wave t5q β€” 28 banked (sonnet 28/30, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3178 4ed883d0feeff7ce3187f278a8e2fa2bb451df50 2026-08-27T16:19:57-06:00 2026-08-27T16:19:57-06:00 feat(t5): func_8017BEBC (ov_SC03_107, 741 ins) β€” BANKED at the whole-binary gate, the campaign's largest single function. CORRECTION: commit commit:3173's message wrongly listed this as banked in t5n; it was only the drafting agent's SELF-REPORT (match_one MATCH) and the t5n judge excluded it (42 union banks). The body was byte-correct all along; the sole blocker was 'conflicting types for ApplyMatrixSV' at tu:5758 β€” the draft re-declared a callee the TU already declares with a different param spelling. Fix: delete the draft's own extern (the call site's (void*) casts convert silently). R14: a self-report is not a bank (P31 S64) +3179 d9a30167dd871746272c70896ecfcdc436d17d99 2026-08-29T11:35:54-06:00 2026-08-29T11:35:54-06:00 feat(t5): Claude wave t5r β€” 30 banked (sonnet 22/37, opus 8/11, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3180 1bdd62455e69d51d3c5f95d562509b0fb02232c5 2026-08-29T11:44:42-06:00 2026-08-29T11:44:42-06:00 docs(report): regenerate the fleet scoreboard after t5o-t5r + the 741-ins bank +3181 c5a60897bc16378d495c2096641806b6d6fbc64d 2026-08-29T11:50:44-06:00 2026-08-29T11:50:44-06:00 docs(cookbook): Β§312 (a bare if(a 920 (P31 S64) +3182 a51c0785cf81dc810eecf455b665f7040faa918f 2026-08-29T11:51:45-06:00 2026-08-29T11:51:45-06:00 docs(phase-31): S64 results β€” 11 waves, 2,380->1,616 stubs across S63+S64 (764 closed), 98.8%/97.4%; the R14 self-correction on func_8017BEBC; fix_decl_mirror's honest 0-of-17 verdict + its R39 saves; killed-gate adjudication +3183 18812211caaabc912bdb23f3395884196b28bd95 2026-08-29T11:52:19-06:00 2026-08-29T11:52:19-06:00 docs(phase-31): S64 FINAL CHECKPOINT for a fresh session β€” fleet 1,616 stubs / 213-213 GREEN / 98.8%-97.4%, the committed recipe, next-4-steps, 258 K+L remaining, T6 wall ledger with 21 diagnosed residues, standing hazards + rule candidates (P31 S64) +3184 beba651744ecc953640fde8b473ef559c60d143f 2026-08-29T12:06:43-06:00 2026-08-29T12:06:43-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet 98.8%) +3185 75a6639e57c027464c87c916e89f0abd25f7ad67 2026-08-29T12:17:21-06:00 2026-08-29T12:17:21-06:00 feat(decomp): t5r-recover-raw gate β€” +1 fns x0 propagated (fleet 98.8%) +3186 6ed0f77b6a1085deccadb3b2d5cec13f68e768cb 2026-08-29T12:26:02-06:00 2026-08-29T12:26:02-06:00 fix(recover): gate the RAW draft first β€” macro-externs is a fallback, not the measurement (+ classify_fail drops orphan notes); cookbook Β§313 +3187 dd11127284af864c57d22ebae1e0177dee671238 2026-08-29T12:53:28-06:00 2026-08-29T12:53:28-06:00 feat(t5): Claude wave t5s β€” 24 banked (sonnet 22/25, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3188 048666600bd8f245e74c8ecf152d2d79d8995554 2026-08-29T12:56:20-06:00 2026-08-29T12:56:20-06:00 fix(oracle): masked_diff kept the opcode at R_MIPS_26 slots β€” a masked j/jal was swallowing whatever the other side held +3189 cbd89e192482239bd6f61aaa9ab9794506e52752 2026-08-29T13:21:46-06:00 2026-08-29T13:21:46-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet 98.8%) +3190 edec2adb9986913c4a0991f2bdd9de5fd6291939 2026-08-29T13:41:51-06:00 2026-08-29T13:41:51-06:00 fix(recover): --probe-only crashed for --funcs/--auto/--from-file (it exec'd the probe BEFORE staging) +3191 201c683325fb597a233add27d5457c138d36a19f 2026-08-29T13:42:01-06:00 2026-08-29T13:42:01-06:00 docs(report): regenerate the scoreboard + backlog after t5s and the S65 recovery banks +3192 d50cd664013e8bc3532e491e0a9cfb768fa06f29 2026-08-29T13:43:27-06:00 2026-08-29T13:43:27-06:00 docs(phase-31): S65 checkpoint β€” 27 banked (t5s 24 + 3 recovery), 4 tool defects fixed with negative controls, the 1x15 wave cap, the JTBL_PADS class, next-4-steps +3193 e75f3848432dbe4e63aad3b14c89905cb1d9f4ef 2026-08-29T13:54:27-06:00 2026-08-29T13:54:27-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet 98.8%) +3194 91e624c041fe6db9424ab47e0b6ca6a366e30ad6 2026-08-29T15:22:14-06:00 2026-08-29T15:22:14-06:00 fix(distill): the novelty selector was inverted, and it could not see the notes worth reading +3195 3e6912f53e11a735ee92b5338d5a14a3ea98f86a 2026-08-29T15:50:03-06:00 2026-08-29T15:50:03-06:00 fix(repair): un-commit 4 binaries' in-flight stage edits that commit:3193 swept in; ov_MAIN_012 was RED +3196 25b72baa8aa97ea1aab6ee3e604dbd4111772119 2026-08-29T15:51:25-06:00 2026-08-29T15:51:25-06:00 fix(recover): single-instance lock β€” the driver is not parallel-safe and now refuses instead of corrupting +3197 83334a6c9ecd0933f155b9a26d788df87fc71d83 2026-08-29T15:51:55-06:00 2026-08-29T15:51:55-06:00 feat(t5): Claude wave t5t β€” 13 banked of 15 (sonnet 13/14, opus 0/1); fleet 213 passed, 0 failed of 213 (P31 S65 T5) +3198 2bd4dcf8679e3c28a66ad2b6cfc2c9925263f9b9 2026-08-29T16:02:53-06:00 2026-08-29T16:02:53-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet 98.8%) +3199 1725d19ecb20a05b09c86f78d8ba3cca1089eb26 2026-08-29T16:03:12-06:00 2026-08-29T16:03:12-06:00 docs(cookbook): Β§165-03 addendum (asm-free EQ-channel dial, UNPROVEN) + a Β§5a FINDABILITY addendum +3200 f84e8272ef427d2de11fdb9a3c703017a0db20d9 2026-08-29T16:11:51-06:00 2026-08-29T16:11:51-06:00 docs(phase-31): S65 FINAL checkpoint β€” 42 banked (t5s 24 + t5t 13 + 5 recovery), 213/213 green, 5 tool defects fixed, the 1x15 cap, my own -P4 corruption + repair, the distill's 2-of-3 refutation, next-4-steps +3201 287d25f8f596cc8e787e2c73533ff978754bafde 2026-08-29T16:18:11-06:00 2026-08-29T16:18:27-06:00 feat(packs): MEASURE the prior draft into the pack instead of just handing it over +3202 d9b222915b79936aff0c03830888d0b3d99f84b5 2026-08-29T16:36:54-06:00 2026-08-29T16:36:54-06:00 feat(t5): Claude wave t5v β€” 14 banked (sonnet 13/14, opus 1/1, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3203 ee4e630773ec1a2581291303f8e901a0bb993681 2026-08-29T16:41:34-06:00 2026-08-29T16:41:34-06:00 feat(t5): Claude wave t5u β€” 12 banked (sonnet 10/13, opus 2/2, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3204 e6e053c80161187c7481ee622007c93c3d83e4ff 2026-08-29T16:50:41-06:00 2026-08-29T16:50:41-06:00 feat(t5): Claude wave t5y β€” 5 banked (sonnet 4/5, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3205 eba16c93761e7c0937fa7e68ceee5db39ff258e0 2026-08-29T16:54:23-06:00 2026-08-29T16:54:23-06:00 feat(t5): Claude wave t5w β€” 5 banked (sonnet 5/5, opus 0/0); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3206 98593652fdc3553d1a728727aadaf722c0a08ad5 2026-08-29T16:57:07-06:00 2026-08-29T16:57:07-06:00 feat(decomp): family-remap-probe gate β€” +1 fns x0 propagated (fleet 98.8%) +3207 bfacb2c9c7070195abc25b4a031151d83c71754d 2026-08-29T16:59:32-06:00 2026-08-29T16:59:32-06:00 feat(decomp): family-remap gate β€” +3 fns x0 propagated (fleet 98.8%) +3208 00261badcd800ac9be4e9fa48a8d61244ee86f5d 2026-08-29T17:00:34-06:00 2026-08-29T17:00:34-06:00 feat(decomp): family-remap gate β€” +9 fns x0 propagated (fleet 98.8%) +3209 ba92bb4a9d7a6531030c88c2fe9a69cf0d73cac2 2026-08-29T17:01:29-06:00 2026-08-29T17:01:29-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3210 342f3bf26cadbb05a3030fee07f1c23b4582b374 2026-08-29T17:02:36-06:00 2026-08-29T17:02:36-06:00 feat(decomp): family-remap gate β€” +3 fns x0 propagated (fleet 98.8%) +3211 422bc3b50ddb874f2ff99f29de35db877552c639 2026-08-29T17:04:19-06:00 2026-08-29T17:04:19-06:00 feat(decomp): family-remap gate β€” +23 fns x0 propagated (fleet 98.8%) +3212 3a706d999ea64353f7c4804f2dbe2265e315a4e9 2026-08-29T17:05:14-06:00 2026-08-29T17:05:14-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3213 6a30e7ceca5bb2e9693ee7b701b8df0c44a5aa7f 2026-08-29T17:06:25-06:00 2026-08-29T17:06:25-06:00 feat(decomp): family-remap gate β€” +7 fns x0 propagated (fleet 98.8%) +3214 974342677e7a9ecfbfbdabfb508e54f39cf25986 2026-08-29T17:07:21-06:00 2026-08-29T17:07:21-06:00 feat(decomp): family-remap gate β€” +2 fns x0 propagated (fleet 98.8%) +3215 bf9045501baede96bc5fec2867c8629cad940b19 2026-08-29T17:08:18-06:00 2026-08-29T17:08:18-06:00 feat(decomp): family-remap gate β€” +2 fns x0 propagated (fleet 98.8%) +3216 d9f78e25508ab7016f074845cbfc63ce4ffb386e 2026-08-29T17:09:34-06:00 2026-08-29T17:09:34-06:00 feat(decomp): family-remap gate β€” +9 fns x0 propagated (fleet 98.8%) +3217 43ac008311c4ca609fe3c2bfdeb099265c98d08c 2026-08-29T17:11:08-06:00 2026-08-29T17:11:08-06:00 feat(decomp): family-remap gate β€” +15 fns x0 propagated (fleet 98.8%) +3218 658ec399e70b200551c0ba5ffca0b5cb845515bf 2026-08-29T17:13:19-06:00 2026-08-29T17:13:19-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3219 6ebd32555a6912f4f7fb81e8f7f8a0585326a55d 2026-08-29T17:14:27-06:00 2026-08-29T17:14:27-06:00 feat(decomp): family-remap gate β€” +7 fns x0 propagated (fleet 98.8%) +3220 387207daeae2cb84aeefb831eedee3cb2440796a 2026-08-29T17:15:43-06:00 2026-08-29T17:15:43-06:00 feat(decomp): family-remap gate β€” +11 fns x0 propagated (fleet 98.8%) +3221 b588f67a1d54585bf34c3b8191767f612a68c25a 2026-08-29T17:17:00-06:00 2026-08-29T17:17:00-06:00 feat(decomp): family-remap gate β€” +10 fns x0 propagated (fleet 98.8%) +3222 fb58ad76c540fff79d0c7b454302c04eb9d3ba4a 2026-08-29T17:20:11-06:00 2026-08-29T17:20:11-06:00 feat(decomp): family-remap gate β€” +23 fns x0 propagated (fleet 98.8%) +3223 50cb1aff5a690e820d82b969b71ac4c10137e47f 2026-08-29T17:21:24-06:00 2026-08-29T17:21:24-06:00 feat(decomp): family-remap gate β€” +7 fns x0 propagated (fleet 98.8%) +3224 4f6d9a75c842cff73fbb0a9402715497a998a8d8 2026-08-29T17:22:20-06:00 2026-08-29T17:22:20-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3225 8d0d2155674f25e95ce8eb104edbfc199f39c24c 2026-08-29T17:23:17-06:00 2026-08-29T17:23:17-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3226 ab860ef5c60634f4d2bb653dd0fb3a41e3a15e0b 2026-08-29T17:24:13-06:00 2026-08-29T17:24:13-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3227 b95f18dca6964bd2fa11cc36cee55241ffbb12dd 2026-08-29T17:25:09-06:00 2026-08-29T17:25:09-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3228 86ddc6227724f1a248a05f042998898adf6dd613 2026-08-29T17:26:05-06:00 2026-08-29T17:26:05-06:00 feat(decomp): family-remap gate β€” +1 fns x0 propagated (fleet 98.8%) +3229 f7bfdc34d1ae68bf00d5258fc3a3f342b2c56bd6 2026-08-29T17:29:20-06:00 2026-08-29T17:29:20-06:00 feat(t5): Claude wave t5x β€” 3 banked (sonnet 2/5, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3230 a4d2fd62d3bda7b1c77a26b76cc2f00fe345f5a3 2026-08-29T17:31:30-06:00 2026-08-29T17:31:30-06:00 feat(t5): Claude wave t5z β€” 5 banked (sonnet 4/4, opus 1/1); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3231 f2026bbfc8342288f0efb843ca29ad21c27876e9 2026-08-29T17:33:18-06:00 2026-08-29T17:33:18-06:00 feat(decomp): family-remap-hnorm gate β€” +9 fns x0 propagated (fleet 98.8%) +3232 5d038e62ed863f3a4325f5be30006f67824a73b5 2026-08-29T17:34:52-06:00 2026-08-29T17:34:52-06:00 feat(decomp): family-remap-hnorm gate β€” +10 fns x0 propagated (fleet 98.9%) +3233 c7c75697cb6e3cc36b3918a245df61cba2e376cc 2026-08-29T17:36:04-06:00 2026-08-29T17:36:04-06:00 feat(decomp): family-remap-hnorm gate β€” +4 fns x0 propagated (fleet 98.9%) +3234 46c629189c89dcb9def81bf88ded5eab5569bdbc 2026-08-29T17:37:18-06:00 2026-08-29T17:37:18-06:00 feat(decomp): family-remap-hnorm gate β€” +5 fns x0 propagated (fleet 98.9%) +3235 a4325f3e01b8aa20bbac8ba74795ea9963f8ef4d 2026-08-29T17:38:29-06:00 2026-08-29T17:38:29-06:00 feat(decomp): family-remap-hnorm gate β€” +4 fns x0 propagated (fleet 98.9%) +3236 f83238b28aa8ed260bd018169f0af4ead962bec0 2026-08-29T17:39:39-06:00 2026-08-29T17:39:39-06:00 feat(decomp): family-remap-hnorm gate β€” +4 fns x0 propagated (fleet 98.9%) +3237 0fe524395274de117170a7bafa5d78769cf3e32a 2026-08-29T17:42:04-06:00 2026-08-29T17:42:04-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3238 7580af30c03b4227e285ebcb3e2ba00f3ed24d12 2026-08-29T17:43:02-06:00 2026-08-29T17:43:02-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3239 a30753c76cef32203486d8497e577c93663b78a6 2026-08-29T17:44:12-06:00 2026-08-29T17:44:12-06:00 feat(decomp): family-remap-hnorm gate β€” +3 fns x0 propagated (fleet 98.9%) +3240 28aa42c84598e08f4d140cce7d19a531c4dc2b06 2026-08-29T17:45:30-06:00 2026-08-29T17:45:30-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3241 499543788a20e3e6af959497d19d284f0c2d7137 2026-08-29T17:46:54-06:00 2026-08-29T17:46:54-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3242 b13d63017dca83fc38258251cf333ee519da9682 2026-08-29T17:48:18-06:00 2026-08-29T17:48:18-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3243 26df9067b86eec68a37b2fa25a3749f771993b72 2026-08-29T17:49:54-06:00 2026-08-29T17:49:54-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3244 57c27a17a2df432afd4248e3ece5d392a8ccbca2 2026-08-29T17:51:22-06:00 2026-08-29T17:51:22-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3245 0cfc587bce6342059a3fe275d6fdd6b63c0f33a8 2026-08-29T17:53:09-06:00 2026-08-29T17:53:09-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3246 e69232e14473bffd61c724d4dbdb2ec9dab52f4d 2026-08-29T17:54:44-06:00 2026-08-29T17:54:44-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3247 6cbff5de620d196c8cfc9db7c130f814984a9091 2026-08-29T17:56:34-06:00 2026-08-29T17:56:34-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3248 cd13f421e65c6007cd640f4c41f0defd94ab7f84 2026-08-29T17:57:59-06:00 2026-08-29T17:57:59-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3249 e45eded5c3b56881a13f29f4a68a5a19469e7935 2026-08-29T17:59:26-06:00 2026-08-29T17:59:26-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3250 c65bbc28b276ab2846026602c4864a5e12c2c44f 2026-08-29T18:01:07-06:00 2026-08-29T18:01:07-06:00 feat(decomp): family-remap-hnorm gate β€” +3 fns x0 propagated (fleet 98.9%) +3251 92ce35fc7a03b5aa0669f93a20b3b3949a802dab 2026-08-29T18:02:31-06:00 2026-08-29T18:02:31-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3252 ed0e8922b82b8e85dd17106cac0418ced3add685 2026-08-29T18:03:55-06:00 2026-08-29T18:03:55-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3253 ff3305795bae6138a501223a66e0aa7775cf2acc 2026-08-29T18:05:18-06:00 2026-08-29T18:05:18-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3254 36044127b5686636d7f5a805c92d155af0fdebda 2026-08-29T18:07:00-06:00 2026-08-29T18:07:00-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3255 e1075215ae1fcebcb014455af9a3c8d5fb4d9031 2026-08-29T18:08:25-06:00 2026-08-29T18:08:25-06:00 feat(decomp): family-remap-hnorm gate β€” +3 fns x0 propagated (fleet 98.9%) +3256 ce6be4ac260195335eb1221fe155ed09e0f4e798 2026-08-29T18:10:34-06:00 2026-08-29T18:10:34-06:00 feat(decomp): family-remap-hnorm gate β€” +8 fns x0 propagated (fleet 98.9%) +3257 af827ef900d45e29269cad26674062d58dcb2f49 2026-08-29T18:12:12-06:00 2026-08-29T18:12:12-06:00 feat(decomp): family-remap-hnorm gate β€” +5 fns x0 propagated (fleet 98.9%) +3258 88505e0cb4dfaf48a970b9fa941240a93429d293 2026-08-29T18:13:33-06:00 2026-08-29T18:13:33-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3259 c46980e395514c6aff13f6beb29492847bc5e4de 2026-08-29T18:14:50-06:00 2026-08-29T18:14:50-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3260 064496667b113d99b70ee540c4a8b8511091396b 2026-08-29T18:15:51-06:00 2026-08-29T18:15:51-06:00 feat(decomp): family-remap-hnorm gate β€” +4 fns x0 propagated (fleet 98.9%) +3261 d89ae360be493eaa7f34d0768e18d0ece0e23a51 2026-08-29T18:17:03-06:00 2026-08-29T18:17:03-06:00 feat(decomp): family-remap-hnorm gate β€” +3 fns x0 propagated (fleet 98.9%) +3262 576acd6738460a5a29e43512c52e8ff89d2f5aaf 2026-08-29T18:18:00-06:00 2026-08-29T18:18:00-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3263 23d5cc2e79f1b28ac26a53199ff0776e7bf716b9 2026-08-29T18:18:58-06:00 2026-08-29T18:18:58-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3264 6ce7893040df1e556c186a2884c840f1eeae188b 2026-08-29T18:20:05-06:00 2026-08-29T18:20:05-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3265 4fac816994bd02de497c30c8626b1bf7641cd85d 2026-08-29T18:21:04-06:00 2026-08-29T18:21:04-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3266 edc7a69cf332e82efafa3a7630cba2ec13cf31b1 2026-08-29T18:22:16-06:00 2026-08-29T18:22:16-06:00 feat(decomp): family-remap-hnorm gate β€” +5 fns x0 propagated (fleet 98.9%) +3267 429a05d54fbe4d009f7607b2f5628d1a8a394003 2026-08-29T18:23:17-06:00 2026-08-29T18:23:17-06:00 feat(decomp): family-remap-hnorm gate β€” +1 fns x0 propagated (fleet 98.9%) +3268 f6b36fc2f0fabf9b688f11ac7e56ac9ecd141454 2026-08-29T18:24:35-06:00 2026-08-29T18:24:35-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3269 aa03070e6dfcd7eba1d2e6741173facdc53d7c26 2026-08-29T18:25:50-06:00 2026-08-29T18:25:50-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3270 f7d31f4d6f130967d84c3788d39d3c5205b88e12 2026-08-29T18:27:07-06:00 2026-08-29T18:27:07-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3271 9d1f4efa87a5165d7c4f3cc8fc1945b9059a2882 2026-08-29T18:28:19-06:00 2026-08-29T18:28:19-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3272 29dd99896432c20d31bef733dc0fd694470edf7e 2026-08-29T18:29:40-06:00 2026-08-29T18:29:40-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3273 5c56f5b925dbdc803f36e0b4176e227a741c3417 2026-08-29T18:30:39-06:00 2026-08-29T18:30:39-06:00 feat(decomp): family-remap-hnorm gate β€” +2 fns x0 propagated (fleet 98.9%) +3274 277df834b254a1c98873fae9125c016d6d81e344 2026-08-29T18:43:08-06:00 2026-08-29T18:43:08-06:00 feat(decomp): parallel gate β€” 178 fns across 61 binaries (10 workers) +3275 e9449ef0fe5bedd75682e960defae442d8aa004d 2026-08-29T18:45:49-06:00 2026-08-29T18:45:49-06:00 feat(tools): parallel_gate.py + twin_sweep.py β€” worktree-isolated concurrent gates, and the twin lever as one command +3276 375238f6df520ff8895ab5b7e2e156a441d26995 2026-08-29T18:57:37-06:00 2026-08-29T18:57:37-06:00 feat(decomp): parallel gate β€” 71 fns across 47 binaries (10 workers) +3277 517e691eab498c1d5d354a0f38994664fe0d75f6 2026-08-29T19:00:14-06:00 2026-08-29T19:00:14-06:00 feat(t5): Claude wave t6a β€” 4 banked (sonnet 4/4, opus 0/1, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3278 1ef355d38daa8ecdaecc0322644c4c4f98f33feb 2026-08-29T19:01:08-06:00 2026-08-29T19:01:08-06:00 docs(phase-31): S65 FINAL-2 checkpoint β€” 562 stubs closed (39% of the overlay frontier), the twin-enumeration finding that re-opens the family lever at h_exact/h_norm, parallel_gate at 10.4x, 6 tool fixes, my own -P4 corruption + the monitoring lessons +3279 c17f0fbe1fe48c314ef532298e604ec46333b2b2 2026-08-29T19:02:32-06:00 2026-08-29T19:02:32-06:00 feat(t5): Claude wave t6b β€” 3 banked (sonnet 3/3, opus 0/1, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3280 d804449be50d6b6981ce0715ceb3568b45c1f412 2026-08-29T19:03:28-06:00 2026-08-29T19:03:28-06:00 fix(distill): carry banked=False through to the distiller and the verifier +3281 dbe262f3fe9103cb873ae210853ffd7f56d59ed8 2026-08-29T19:12:54-06:00 2026-08-29T19:12:54-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (10 workers) +3282 849ff3ce2725f7b181df227daa7aab66790c9051 2026-08-29T19:14:02-06:00 2026-08-29T19:14:02-06:00 feat(twin_sweep): refusal ledger β€” stop re-gating candidates the gate already refused +3283 8ae40e10d292ef0dd558529a886b0f0abf03c241 2026-08-29T19:33:13-06:00 2026-08-29T19:33:13-06:00 fix(recover): exempt --probe-only from the single-instance lock β€” it writes nothing +3284 cd43e7cbd5b8367bcb7f34cc38ee5cdbca0a3457 2026-08-29T19:37:12-06:00 2026-08-29T19:37:12-06:00 feat(t5): Claude wave t7b β€” 11 banked (sonnet 10/20, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3285 37b447084d21e0ac2abd30472677cda6bb4b0179 2026-08-29T19:44:51-06:00 2026-08-29T19:44:51-06:00 feat(t5): Claude wave t7a β€” 8 banked (sonnet 8/20, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3286 29a3807fe967a19a81d1a032c3400b55fd05a438 2026-08-29T19:55:31-06:00 2026-08-29T19:55:31-06:00 feat(decomp): parallel gate β€” 19 fns across 9 binaries (10 workers) +3287 62f8eefbab2d80afc78cb9d9a0d889fa982b1686 2026-08-29T20:03:08-06:00 2026-08-29T20:03:08-06:00 feat(t5): Claude wave t8a β€” 20 banked (sonnet 20/20, opus 0/0); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3288 25bc11febd176c137644d195f04a6eb74b584c70 2026-08-29T20:09:04-06:00 2026-08-29T20:09:04-06:00 feat(t5): Claude wave t8b β€” 19 banked (sonnet 19/20, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) +3289 b519fd0d6f93ab01aa32f056aa9d7a968e6adf41 2026-08-29T20:10:58-06:00 2026-08-29T20:10:58-06:00 docs(phase-31): S65 FINAL-3 β€” 647 stubs closed (44% of the overlay frontier), the TIER MAP (twin-remap drained; leveraged reps mint but bank at 40%; cheap singletons bank at 98% and mint nothing), parallel_gate + twin_sweep, 7 tool fixes, my errors fully accounted +3290 3ca7e00d81caae7ebd0048d3b4612fb6e4fab193 2026-08-29T20:29:34-06:00 2026-08-29T20:29:34-06:00 docs: recovery queue β€” the step-2 lane I skipped for 12 waves, classified and QUEUED +3291 5ef1c0e615fcd7f4310c29e20943939992999649 2026-08-29T20:43:08-06:00 2026-08-29T20:43:08-06:00 docs(cookbook): S65 full-session harvest β€” 14 transcripts from 12 waves, 7 banked, 7 refuted as rediscoveries +3292 130c000b599a70935e7950889776b3fae5bc94e9 2026-08-29T20:44:39-06:00 2026-08-29T20:44:39-06:00 docs(phase-31): S65 FINAL-4 fresh-session checkpoint β€” written AFTER the harvest (the rule I broke earlier); 647 closed / 213-213 green, the tier map, the loop, the 69-item recovery queue, 7 tool fixes, the two wave-closing steps I skipped all session +3293 a9dd3518d85c678c35a4e10992b9ab5904f109b1 2026-08-29T20:50:55-06:00 2026-08-29T20:50:55-06:00 docs(phase-31): point a fresh session at the LAST checkpoint block +3294 5c0b2969d77ca4b7d810c813963a8312ce56a2cc 2026-08-29T21:08:59-06:00 2026-08-29T21:08:59-06:00 tools(P31 S66): match_one --json answers on toolchain failure; packs render it; wave_args + draw_waves +3295 89a22dc6edad74bbd0e60adfc5a00367f5cf767b 2026-08-29T21:17:06-06:00 2026-08-29T21:17:06-06:00 feat(decomp): t6-recover gate β€” +1 fns x0 propagated (fleet 99.0%) +3296 838d7cea34d9928533b7bc7c2e398c887d08dcd4 2026-08-30T09:50:49-06:00 2026-08-30T09:50:49-06:00 feat(decomp): parallel gate β€” 179 fns across 102 binaries (10 workers) +3297 96bc363c196fbf1ecf482e387736f372c845538f 2026-08-30T10:06:39-06:00 2026-08-30T10:06:39-06:00 feat(decomp): gate_main β€” main game code banked from the S66 m1/m2/m3 waves +3298 c06914b80d4fe9e81702c0e438d0bb772e7350e8 2026-08-30T10:15:04-06:00 2026-08-30T10:15:04-06:00 feat(decomp): parallel gate β€” 12 fns across 11 binaries (10 workers) +3299 fb45696a811b0ec9f310abbc6dbe08d41d25cbe5 2026-08-30T10:37:22-06:00 2026-08-30T10:37:22-06:00 feat(decomp): parallel gate β€” 12 fns across 12 binaries (10 workers) +3300 11b818d6c3cd5d955ba448abb2196e0e1d57c5d6 2026-08-30T10:52:24-06:00 2026-08-30T10:52:24-06:00 feat(decomp): gate_main pass 2 β€” +2 main game-code fns (143dbb89 byte-identical) +3301 f0553e9ce53ed5f4bf4822fc6bb3c04d0881eb1e 2026-08-30T10:59:01-06:00 2026-08-30T10:59:01-06:00 fix(wave_args): refuse targets banked since the draw β€” the session's biggest throughput leak +3302 4c7550f97e722d421ad0f4afa3fe08b1ca56ea70 2026-08-30T11:15:07-06:00 2026-08-30T11:15:07-06:00 feat(decomp): parallel gate β€” 21 fns across 21 binaries (10 workers) +3303 ebde3e546de245bde4f772b8cf5146f5302784b1 2026-08-30T11:21:43-06:00 2026-08-30T11:21:43-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (3 workers) +3304 d20007e04913b9fb9be0881a11fb23fa726c5f17 2026-08-30T14:27:23-06:00 2026-08-30T14:27:23-06:00 feat(decomp): x1 wave gate β€” 21 binaries, clean-R22 verified 213/213 +3305 45cf37ee027d3e9d0abae24ed25c8cb4972dbdc0 2026-08-30T14:28:10-06:00 2026-08-30T14:28:10-06:00 docs: refresh progress/backlog after the S66 gates (260 fns closed, fleet 213/213) +3306 a1024ab76d64a68f37834cb1a74225c171fb6455 2026-08-30T14:41:30-06:00 2026-08-30T14:41:50-06:00 docs(cookbook): S66 harvest β€” 4 NEW sections, 15 addenda, 1 refutation +3307 8fcd05965e41c9619dac7ab02117b82fef266fc3 2026-08-30T14:48:21-06:00 2026-08-30T14:49:09-06:00 feat(decomp): O1 wave gate β€” 16 fns, clean-R22 verified 213/213 +3308 e485cc855932057ec77bee5640e4a62644c2081e 2026-08-30T15:28:52-06:00 2026-08-30T15:28:52-06:00 feat(decomp): main batch-gate β€” +1 fn (143dbb89 byte-identical) +3309 743065e4be4b1e203c4189c1bc9d44c785c4f6e2 2026-08-30T15:34:45-06:00 2026-08-30T15:34:45-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3310 ee5cf85351ab8117f653a7631ad0a870b1aea238 2026-08-30T15:54:09-06:00 2026-08-30T15:54:09-06:00 feat(decomp): O1 resume gate β€” 7 fns, clean-R22 verified 213/213 +3311 ae34a46dbaa556d09e78884de8ece45c21bdd3fd 2026-08-30T16:09:02-06:00 2026-08-30T16:09:02-06:00 docs(cookbook): S66 harvest round 2 β€” the M1/O1 resume transcripts +3312 e403eac964838834c4f483e2af69efd2e745d192 2026-08-30T16:47:07-06:00 2026-08-30T16:47:07-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3313 db7db13d7f3daea12373f1018d0a1877f0d91561 2026-08-30T17:06:05-06:00 2026-08-30T17:06:05-06:00 feat(decomp): O21 overlay-lane gate β€” 22 fns, clean-R22 verified 213/213 +3314 cd3a87ceba4d9a2669f8d6d58478f20c502d8c97 2026-08-30T17:20:01-06:00 2026-08-30T17:20:01-06:00 docs(cookbook): S66 harvest round 3 β€” 5 addenda, 1 refutation, 2 retrieval failures +3315 eb6a1c9386ab5e5c9ab0d22f7bed2c24b0e4d0c6 2026-08-30T17:22:11-06:00 2026-08-30T17:22:11-06:00 feat(packs): push the cookbook bucket into the pack β€” retrieval was the leak +3316 caa220806c555d0a45abeb906f3db29b15d910d9 2026-08-30T18:07:37-06:00 2026-08-30T18:07:37-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3317 f59f0883adfba2dfe005699226f58b0fc439b2d1 2026-08-30T18:33:06-06:00 2026-08-30T18:33:06-06:00 feat(decomp): O31 overlay lane β€” 16 fns, clean-R22 verified 213/213 +3318 3d4d523a7aefa273c2335d1150c61e3e825c6ee6 2026-08-30T18:37:38-06:00 2026-08-30T18:37:38-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (4 workers) +3319 f5d2cd017e9805a16b7d23627ee4f32fa84f029e 2026-08-30T18:49:56-06:00 2026-08-30T18:49:56-06:00 docs(cookbook): S66 harvest round 4 β€” 1 NEW, 5 addenda from the O31 lane +3320 481cb5dff168e75a6efe47a0f1488d63b295d6b2 2026-08-30T20:14:04-06:00 2026-08-30T20:14:04-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3321 80c548a59bcc73aec60f9973ee07445b2a37b414 2026-08-30T20:32:26-06:00 2026-08-30T20:32:26-06:00 feat(decomp): O41 overlay lane β€” 17 fns, clean-R22 verified 213/213 +3322 95d6ef6c3845981577f0ae136a73d11c80f452d0 2026-08-30T20:35:26-06:00 2026-08-30T20:35:26-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3323 27f52da6f6b01fab4337c6ea2a68d8ad66870263 2026-08-30T21:26:03-06:00 2026-08-30T21:26:03-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (7 workers) +3324 9184ab9c8d502b6dfd9356aeaf8aa73622f2f15b 2026-08-30T21:26:52-06:00 2026-08-30T21:26:52-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3325 c9029b18fd494fdb5d4cc372db2a3f67be94333f 2026-08-30T21:27:06-06:00 2026-08-30T21:27:06-06:00 feat(decomp): main batch-gate batch 1 β€” 143dbb89 byte-identical +3326 035f2bafd9e1bf40db3414d4fada94068f1d7613 2026-08-30T21:27:19-06:00 2026-08-30T21:27:19-06:00 feat(decomp): main batch-gate batch 2 β€” 143dbb89 byte-identical +3327 8a58d2c6339fd1f0c25a40a6a7cc53140018c338 2026-08-30T21:39:13-06:00 2026-08-30T21:39:13-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3328 a367d3f15a33c18609d7c9f32b0976c3a8ef3344 2026-08-30T21:41:13-06:00 2026-08-30T21:41:13-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3329 573d8f0493a3e96184906b1cd221f6c0939d78be 2026-08-30T21:44:49-06:00 2026-08-30T21:44:49-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3330 67a48ebca10c39125f768fcb1ed5a9932fe4b541 2026-08-30T21:46:12-06:00 2026-08-30T21:46:12-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3331 6425a810f38cad9fe8c5a14b1ca59f14cc02f091 2026-08-30T21:50:06-06:00 2026-08-30T21:50:06-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3332 ccc7f64401069505df10f15c3f5aa51e2c42c7eb 2026-08-30T21:51:18-06:00 2026-08-30T21:51:18-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3333 f930be4167eaa34370267b43cae8b12cbddbd3b8 2026-08-30T21:54:28-06:00 2026-08-30T21:54:28-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3334 90cfb678d92c497007d0072442b8689e9d35aaec 2026-08-30T21:55:32-06:00 2026-08-30T21:55:32-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.1%) +3335 c297dc123570fc973fd7bc0c338587b2d831928c 2026-08-30T21:56:49-06:00 2026-08-30T21:56:49-06:00 feat(decomp): worker gate β€” +2 fns x0 propagated (fleet 99.2%) +3336 0649108ec9e5dcec1b7c3013705b248e29d551c9 2026-08-30T21:58:55-06:00 2026-08-30T21:58:55-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3337 c359fc18044e1b5a7c5655d3ce1f206b7fcce38d 2026-08-30T22:00:27-06:00 2026-08-30T22:00:27-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3338 578c638b9e9a17e196cb8f82fbeb9a674a60cdf4 2026-08-30T22:01:59-06:00 2026-08-30T22:01:59-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3339 f0af912c17a2e5c7d2033e8320ab4ca85f3da76a 2026-08-30T22:03:25-06:00 2026-08-30T22:03:25-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3340 21d7d8675dfe923653bb5c94991a732fca983425 2026-08-30T22:04:56-06:00 2026-08-30T22:04:56-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3341 6f51dbf2677bc1a950b8fe045ddbd6bc289c2f1b 2026-08-30T22:15:26-06:00 2026-08-30T22:15:26-06:00 feat(decomp): worker gate β€” +1 fns x0 propagated (fleet 99.2%) +3342 3a2533c6023696c094292693e8d6a3b05e1e3721 2026-08-30T22:34:34-06:00 2026-08-30T22:34:34-06:00 docs(phase-31): S66 checkpoint β€” 390 fns closed (946 -> 556), fleet 213/213, 99.2% weighted +3343 360af57e3f4fb715b8ee0f28f742349b6af9640c 2026-08-30T22:36:48-06:00 2026-08-30T22:36:48-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (4 workers) +3344 ce4c7eaae15d61bcad83c582315f77d558ab6d0c 2026-08-30T22:47:31-06:00 2026-08-30T22:47:31-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3345 dfaec94e518ef555c6477ae21708e0354047e23b 2026-08-30T22:49:42-06:00 2026-08-30T22:49:42-06:00 fix(main): declare the 3 return-type-flip fns s32, not void β€” byte-neutral, unblocks their drafts +3346 f8d790c51e1fe26e51a195429bdd5e635a490a4c 2026-08-30T22:50:31-06:00 2026-08-30T22:50:31-06:00 feat(decomp): main batch-gate batch 0 β€” 143dbb89 byte-identical +3347 ba49d7e8291a52fe16c27518801750b7b4ba132f 2026-08-30T22:58:29-06:00 2026-08-30T22:58:29-06:00 feat(decomp): parallel gate β€” 15 fns across 12 binaries (10 workers) +3348 dc989bc28383cf5a1223754ebf09a1354b4ea99a 2026-08-30T23:04:51-06:00 2026-08-30T23:04:51-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3349 7f75442b67c2b7f30c18d2f0c6ebc804889c8de2 2026-08-31T00:00:08-06:00 2026-08-31T00:00:08-06:00 docs(cookbook): S66 round 6 β€” Β§320 breaks the Β§43/Β§183 'return-type flip' wall, Β§321 typedef identity +3350 d343892b4c528817cd76563070a6e7f5d4cddfa1 2026-08-31T00:00:37-06:00 2026-08-31T00:00:37-06:00 chore: --only-main draw mode + progress/backlog refresh after the S66 gates +3351 b4d8f06363e8e2c03a6662bddf6a5a623c9d59c3 2026-08-31T00:01:43-06:00 2026-08-31T00:01:43-06:00 docs(phase-31): S66 FINAL checkpoint β€” 416 fns closed (946 -> 530), fleet 213/213, 99.2% weighted +3352 c4380c19e411a36b1921662a7807e0daea81e531 2026-08-31T01:46:16-06:00 2026-08-31T01:46:16-06:00 feat(p31 s67): stranded-draft census + honest jtbl probe β€” the frontier's biggest class is carve plumbing +3353 91197e1b51ceb3cfb649aeb49c271248c5ed9e3f 2026-08-31T02:02:48-06:00 2026-08-31T02:02:48-06:00 feat(decomp): S67-cc1 gate β€” +1 fns x2 propagated (fleet 99.2%) +3354 4daf41702a94bc1dcef88d3cde653b681be069e2 2026-08-31T03:40:23-06:00 2026-08-31T03:40:23-06:00 feat(decomp): S67-cc1 gate β€” +1 fns x19 propagated (fleet 99.2%) +3355 29cb50454621a9fca0daf55e75a013f47c7498b2 2026-08-31T03:53:22-06:00 2026-08-31T03:53:22-06:00 feat(decomp): S67-cc1 gate β€” +1 fns x4 propagated (fleet 99.2%) +3356 1c21f0a1e22c57ffc5c598f8dde4e649cb7d7490 2026-08-31T04:10:27-06:00 2026-08-31T04:10:27-06:00 feat(decomp): S67-cc1 gate β€” +1 fns x3 propagated (fleet 99.2%) +3357 bac75375640ed12cd5416a8eae65125a341c32d1 2026-08-31T09:44:50-06:00 2026-08-31T09:44:50-06:00 fix(p31 s67): repair ov_SC04_018 β€” dedup_propagate deleted a decl layer the surviving bodies needed +3358 b2256e37000a926fc2f1d133bf54d8a529a293e6 2026-08-31T09:45:55-06:00 2026-08-31T09:45:55-06:00 docs(phase-31): S67 FINAL checkpoint β€” 4 closed (530 -> 526), fleet 213/213, propagation found unverified +3359 9673373d97cc1a2e6696b52c4da628a72f1ab10c 2026-08-31T10:20:25-06:00 2026-08-31T10:20:25-06:00 feat(decomp): S67 main wave β€” 5 of 7 banked (main 94 -> 89), byte-identical 143dbb89 +3360 89ede18c22cdee26bc90493dfa86d1628424b438 2026-08-31T10:21:36-06:00 2026-08-31T10:21:36-06:00 feat(decomp): S67-wave gate β€” +1 fns x0 propagated (fleet 99.2%) +3361 9dfc91ba6d6853e6805457099c1d28ceb45f9e32 2026-08-31T10:22:41-06:00 2026-08-31T10:22:41-06:00 feat(decomp): S67-wave gate β€” +1 fns x1 propagated (fleet 99.2%) +3362 1a4d725a15a7b5ddc785d645b293e2767d40c225 2026-08-31T10:25:27-06:00 2026-08-31T10:25:27-06:00 feat(decomp): S67-wave gate β€” +1 fns x0 propagated (fleet 99.2%) +3363 257b9d8a3be3d0fe3e3987507da345ff1200f8dc 2026-08-31T10:31:15-06:00 2026-08-31T10:31:15-06:00 feat(decomp): S67-wave gate β€” +2 fns x1 propagated (fleet 99.2%) +3364 274057d132970c4e17f49fb8f09704fb068d5c2f 2026-08-31T10:34:40-06:00 2026-08-31T10:34:40-06:00 feat(decomp): S67-wave gate β€” +2 fns x8 propagated (fleet 99.2%) +3365 098cb932ef2a80334e0e95373a6a0faf8219fd85 2026-08-31T11:20:02-06:00 2026-08-31T11:20:02-06:00 feat(decomp): S67-wave gate β€” +2 fns x0 propagated (fleet 99.2%) +3366 e23492e3bc9b1dc689615edb2d51891193b82a1f 2026-08-31T11:22:50-06:00 2026-08-31T11:22:50-06:00 feat(decomp): S67-wave gate β€” +1 fns x6 propagated (fleet 99.2%) +3367 4ced908c08bf845ec1db6d74e1f139a3a9915115 2026-08-31T11:25:39-06:00 2026-08-31T11:25:39-06:00 feat(decomp): S67-wave gate β€” +1 fns x7 propagated (fleet 99.2%) +3368 7e9bfa37f79d201606b730c8d8ab380ef427f649 2026-08-31T11:28:51-06:00 2026-08-31T11:28:51-06:00 feat(decomp): S67-wave gate β€” +1 fns x0 propagated (fleet 99.2%) +3369 253f5c9d4474f59828e2c4e28de03e2985ad9f72 2026-08-31T11:32:42-06:00 2026-08-31T11:32:42-06:00 feat(decomp): S67-wave gate β€” +1 fns x0 propagated (fleet 99.2%) +3370 026bca9be8f5e083e317bb72c7f1cc257b06ba69 2026-08-31T12:15:45-06:00 2026-08-31T12:15:45-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (4 workers) +3371 96f4e0ed5d8e685e284552883bbf4efcc733434e 2026-08-31T12:23:50-06:00 2026-08-31T12:23:50-06:00 feat(decomp): S67-wave-jtbl gate β€” +1 fns x2 propagated (fleet 99.2%) +3372 b94af9574021a0103810e3b7ecd7e4bb85806bb3 2026-08-31T12:40:21-06:00 2026-08-31T12:40:21-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (2 workers) +3373 6bb3d240fabe19c2c7ef5b1a0290390f841bc5d4 2026-08-31T12:44:13-06:00 2026-08-31T12:44:13-06:00 feat(p31 s67): harvest Β§325-Β§331 + gate_wave.py (split jtbl/parallel, both lanes concurrent) +3374 b8a4eae41a990b9c557e2a624c121aa2b9f463e7 2026-08-31T12:48:46-06:00 2026-08-31T12:48:46-06:00 docs(phase-31): S67 FINAL-2 β€” 29 closed (530 -> 501), fleet 213/213, wave 20/20 MATCH, gate_wave.py replaces the serial loop +3375 21a2212ae3b574143c25f940d8adfbc1ab6575da 2026-08-31T13:21:01-06:00 2026-08-31T13:21:01-06:00 feat(decomp): S67 main r2 β€” 1 banked (main 89 -> 88) + Β§332/Β§332a toolchain-wall findings +3376 d989ed08ae0bf0e1ba316d102e343c4e8e1be95c 2026-08-31T13:43:44-06:00 2026-08-31T13:43:44-06:00 feat(decomp): parallel gate β€” 14 fns across 11 binaries (6 workers) +3377 00812fc62f0f165111940be5f8d7d0aefac00238 2026-08-31T13:48:56-06:00 2026-08-31T13:48:56-06:00 docs(p31 s67): wave-playbook (the CURRENT pipeline) + seed_ref fix + harvest Β§333-Β§338 +3378 022d50325a013b8dbe6b0d5220ef5e806caeaa96 2026-08-31T13:51:48-06:00 2026-08-31T13:51:48-06:00 docs(playbook): the pgrep bracket is NOT enough when launch and wait share a shell +3379 34da91b45e7be82d5e4e10b2268c80d2efe35244 2026-08-31T14:14:26-06:00 2026-08-31T14:14:26-06:00 docs(p31 s67): harvest Β§339-Β§345 from the 30-workflow streaming burst +3380 bd9b9f827dd0b5688b0b1cef3c0b3d4d6b03e242 2026-08-31T14:14:53-06:00 2026-08-31T14:14:53-06:00 docs(cookbook): Β§346 COND_EXPR singleton path β€” c?X:-X negates in place, if/else does not +3381 675b4702b32a4d2234b32e9e882b332fc7a7feea 2026-08-31T14:18:05-06:00 2026-08-31T14:18:05-06:00 perf(gate): pass -j to the per-binary build β€” 6.1x on the inner loop of every gate +3382 096da8e4ff3e744e0c1bd2dde31b7f6cf4d4b795 2026-08-31T14:21:25-06:00 2026-08-31T14:21:25-06:00 docs(cookbook): Β§347 loop regalloc is a declaration-order/live-range dial (no live-range splitting in gcc-2.7.2) +3383 6ad89305b89ca3cce09bf66e5f893e8376c0eb60 2026-08-31T14:21:45-06:00 2026-08-31T14:21:45-06:00 docs(cookbook): Β§347/Β§343 addenda β€” one variable per purpose (3rd instance); sltiu proves an unsigned return +3384 6bd3d6ba425ccab0c2a2846680c027be1c09346a 2026-08-31T14:24:03-06:00 2026-08-31T14:24:03-06:00 perf: -j on the last three per-binary make build sites (family_sweep/twin_sweep, rollout_o0, restore_dropped_decls) +3385 932977cc5a8a16e970a26f9be68b10a680b070b0 2026-08-31T14:27:10-06:00 2026-08-31T14:27:10-06:00 docs(cookbook): Β§348 base spelling picks the addressing mode (3-insn lui/%lo vs 2-insn addu/lw); Β§137 refuted on constants +3386 fcada63ada64e7ab839a8dfa7859691afebae162 2026-08-31T14:27:27-06:00 2026-08-31T14:27:27-06:00 docs(cookbook): Β§349 n_times_set>1 on a base pointer defeats both the invariant hoist and the address giv +3387 bbddb26e68a378715039e038998827b9f08691ca 2026-08-31T14:32:30-06:00 2026-08-31T14:32:30-06:00 docs(cookbook): Β§350 the zero-byte re-tie also kills sched1's birthing_insn_p boost β€” attribute WHICH pass it moved +3388 b39db34b56258dde87779d7bd4e84d63683a5822 2026-08-31T14:33:55-06:00 2026-08-31T14:33:55-06:00 docs(cookbook): Β§351 /s is a per-access dial; the base-split spelling; a pin-induced sched1 residual with the remaining door named +3389 91a622b4c5e0ea815ce239fae83c73f806491d13 2026-08-31T14:34:16-06:00 2026-08-31T14:34:16-06:00 docs(cookbook): Β§352 CRITICAL β€” two identical zero-byte barriers merge with EACH OTHER, defeating their purpose +3390 3a4eac272e5c62987f6d159e57ee3c7c0499026a 2026-08-31T14:37:16-06:00 2026-08-31T14:37:16-06:00 docs(cookbook): Β§353 -fno-thread-jumps as a pass-identification oracle; launder the value to keep a dead re-test +3391 389d7d61978ce30154d393aa0c9fc7760ef8c968 2026-08-31T14:41:41-06:00 2026-08-31T14:41:41-06:00 feat(decomp): wave gate β€” +1 fns x0 propagated (fleet 99.2%) +3392 dfc5d5b3c51657295cf48404dd1fd8ba1df0f2e6 2026-08-31T14:45:51-06:00 2026-08-31T14:45:51-06:00 feat(decomp): parallel gate β€” 13 fns across 13 binaries (12 workers) +3393 2b618caf6b760027542d5ba47f8f50a7d135536e 2026-08-31T14:46:23-06:00 2026-08-31T14:46:23-06:00 perf(pgate): jtbl drafts now parallelize β€” isolate ONE binary's asm instead of symlinking all 448MB +3394 c26ddf136d7c016a6341aa6c9cdf1611ddc8a60e 2026-08-31T14:53:41-06:00 2026-08-31T14:53:41-06:00 feat(decomp): parallel gate β€” 19 fns across 14 binaries (8 workers) +3395 5bcb3222830da6cc06e9423e8991b148ca7354df 2026-08-31T14:55:39-06:00 2026-08-31T14:55:39-06:00 docs: gating is fully parallel β€” no serial lane; jtbl unlocked via isolate_asm; launch detached with setsid +3396 a732097c372a50a118f58d3a3bdc0768c381b66a 2026-08-31T15:09:32-06:00 2026-08-31T15:09:32-06:00 Revert "feat(decomp): parallel gate β€” 19 fns across 14 binaries (8 workers)" +3397 101dec757a4fa4142fecdd691db68bd83794f6d5 2026-08-31T15:14:10-06:00 2026-08-31T15:14:10-06:00 fix(pgate): merge carve STATE too β€” jtbl parallelizes for real now +3398 93ea53217ed487ef1cbd8490ba641c7c41935a15 2026-08-31T15:17:27-06:00 2026-08-31T15:17:27-06:00 docs(playbook): a carve writes THREE outputs β€” merge all three, splice overlays.mk per block, gate jtbl with --r22 +3399 51abe2d174604da576ee7f4c9147985caad5e07c 2026-08-31T15:19:41-06:00 2026-08-31T15:19:41-06:00 feat(decomp): parallel gate β€” 19 fns across 14 binaries (8 workers) +3400 746a7cf656236562f4247082a5250cf467f32fb9 2026-08-31T15:23:25-06:00 2026-08-31T15:23:25-06:00 docs(phase-31): S67 FINAL-3 β€” 77 closed (530 -> 453), fleet 213/213, jtbl parallelised (both halves), propagation deferred +3401 ed53a68f18bc4c87f1acb3a3ca06808a1ef1bf01 2026-08-31T15:59:01-06:00 2026-08-31T15:59:01-06:00 feat(p31 s68): deferred propagation done honestly (2 banked) + seed_ref was offering DEAD TEXT +3402 380308b954976267e5f4f6ffc4b4387ea1985563 2026-08-31T16:02:32-06:00 2026-08-31T16:02:32-06:00 feat(gater): tools/gater_lane.py β€” the continuous gater lane +3403 e57deb0a8bd0c657256c746e0b21b567dce7ebd0 2026-08-31T16:18:00-06:00 2026-08-31T16:18:00-06:00 feat(wave): escalate_fable.js β€” a Fable tier that is warm-started, not restarted +3404 dd608ce5fd7807010b24474b3609341b0e9ccfa0 2026-08-31T16:19:19-06:00 2026-08-31T16:19:19-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (6 workers) +3405 ff524cd07e06f3ae3ab977add5b4c0cd0ec975c1 2026-08-31T16:20:38-06:00 2026-08-31T16:20:38-06:00 feat(config): -O0 whale carve step 1 β€” split 0x80144B9C..0x801458E0 out of ov_MAIN_012_jr_8013F350 +3406 61335ad18e2fb803bf7e20cf09d6b1eaa2f0c09d 2026-08-31T16:21:13-06:00 2026-08-31T16:21:13-06:00 feat(decomp): -O0 whale bank β€” ov_MAIN_012 func_80144B9C (770) + func_801457A4 (79), BINARY COMPLETE +3407 7a89bc4fb45ac3245f79912a77c8ae07d4cc7313 2026-08-31T16:22:41-06:00 2026-08-31T16:22:41-06:00 feat(config): -O0 whale carve step 1 β€” ov_SC02_037 + ov_SC03_107 +3408 f03deb6c9948486feb406f48e3e089a16c4668c6 2026-08-31T16:23:01-06:00 2026-08-31T16:23:01-06:00 feat(decomp): -O0 whale bank β€” ov_SC02_037 + ov_SC03_107, 4 fns / 1,698 ins, zero agent tokens +3409 c1200003aca4b9d9d45b14e83067c19de5a1782a 2026-08-31T16:26:23-06:00 2026-08-31T16:26:23-06:00 fix(gater): escalation supersedes β€” highest-tier arm wins a (binary,fn) collision +3410 8f89cbcccdec6bdf62dbc919221193c3f7b12869 2026-08-31T16:29:45-06:00 2026-08-31T16:29:45-06:00 fix(pgate): main could never bank in a worktree β€” derive link inputs from the Makefile, and REFUSE when they are absent +3411 d3b72e8f6401d283c6d4fe46632ca1adb05816b4 2026-08-31T16:34:01-06:00 2026-08-31T16:34:01-06:00 fix(rtu_match/blocker_probe): main was structurally unprobeable β€” pass the TU path and asm subdir, never reconstruct them +3412 c55cebea9b2705375a5533fc58be288224d3259c 2026-08-31T16:37:35-06:00 2026-08-31T16:37:35-06:00 docs(cookbook): S68 harvest β€” Β§354-Β§362, nine sections from the wave and the whale carve +3413 ff99f4acec303697eda7621e4dd4011a5e57eac7 2026-08-31T16:45:58-06:00 2026-08-31T16:45:58-06:00 fix(gater): never gate a draft whose workflow has not returned a verdict +3414 9c96b47ce0c9b43512b9523fd07b66e08b6fbecc 2026-08-31T16:46:57-06:00 2026-08-31T16:46:57-06:00 docs(phase-31): S68 progress β€” whale carve (6 fns/2,547 ins), the main-layout bug class, gater hardening +3415 c746204c3270134c336cba9b4c809e18fecd2801 2026-08-31T16:48:34-06:00 2026-08-31T16:48:34-06:00 feat(decomp): -O0 stranded-boundary bank β€” func_80183830 in ov_SC03_118 + ov_SC03_119, zero agent tokens +3416 7153f881c9bdbba4d4e772bd70902da48a754ca2 2026-08-31T16:50:09-06:00 2026-08-31T16:50:09-06:00 feat(o0): o0_boundary.py β€” the stranded-boundary -O0 sweep, and its honest null +3417 3c534853f2090b7a416d73eaffd2bd2578a76b28 2026-08-31T16:56:32-06:00 2026-08-31T16:56:32-06:00 fix(gater): key verdicts AND the ledger by ARM; add --skip-binary for lanes that may be writing +3418 fd28dd714d7b750d522ed25b6529172ff901a646 2026-08-31T16:59:17-06:00 2026-08-31T16:59:17-06:00 fix(gate_stage): main was gated against ov_SC01_077's SHA β€” stop synthesising out/good_sha +3419 14a72240d215275734649599245f2d3a0f64ca82 2026-08-31T16:59:49-06:00 2026-08-31T16:59:49-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (5 workers) +3420 3ebbec942643c85e8ffecffc80bf7b00ea1398da 2026-08-31T17:03:50-06:00 2026-08-31T17:03:50-06:00 fix(psyq_integrate): main was RED on every incremental relink β€” make the externals file monotonic +3421 f7fee7fcde2bdfcff6af0e89465f971bce7abfa3 2026-08-31T17:08:32-06:00 2026-08-31T17:08:32-06:00 feat(decomp): main banks again β€” 3 fns (func_80012B58, func_800241C0, func_800242D0) +3422 7a6bd844dd7333361f8c1fa50e43203dead61481 2026-08-31T17:11:55-06:00 2026-08-31T17:11:55-06:00 fix(gater): gate main IN-TREE via harvest_verify, never in a worktree +3423 814a6df6aabaf44a1c02fc41e722f6d55ae63f85 2026-08-31T17:14:56-06:00 2026-08-31T17:14:56-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3424 19b7f1b607f8cc81bc6e77a61de4c8754343092e 2026-08-31T17:24:19-06:00 2026-08-31T17:24:19-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (2 workers) +3425 92e3ff9272c479d9c87735c0da6b03d90f5a1e8e 2026-08-31T17:25:47-06:00 2026-08-31T17:25:47-06:00 docs(cookbook): S68 harvest round 2 β€” Β§363-Β§369, including the reload-remat constant +3426 64230e40ea75af45613dae2099a8418558a99336 2026-08-31T17:26:38-06:00 2026-08-31T17:26:38-06:00 docs(phase-31): S68 FINAL checkpoint β€” 23 closed (453 -> 430), fleet 213/213, main unblocked after two stacked harness defects +3427 0816ea0576b2aa490f52d7a7b1b2b46a8eada74f 2026-08-31T17:27:15-06:00 2026-08-31T17:27:15-06:00 chore: refresh the backlog + fleet digests after the S68 banks +3428 2a0808e3dc55215c53d10c4503ccfbf3add2a03c 2026-08-31T17:29:45-06:00 2026-08-31T17:29:45-06:00 docs(cookbook): Β§370 β€” a HARD BOUND from sched.c, plus the reorg slot-steal diagnostic +3429 c10ee098dcb2be14b283521aa5f31f5f918f6093 2026-08-31T17:58:06-06:00 2026-08-31T17:58:06-06:00 feat(decomp): parallel gate β€” 3 fns across 3 binaries (3 workers) +3430 7a969d1c61dac07827029aa0685f13aea936c9eb 2026-08-31T18:13:42-06:00 2026-08-31T18:13:42-06:00 feat(o0): md_MAIN_003 carve β€” the module-binary -O0 route opens, func_800D0D6C banked (345 ins) +3431 a731022d960293bb9841aaeea51c3019271b749c 2026-08-31T18:18:01-06:00 2026-08-31T18:18:01-06:00 docs(phase-31): S68 post-reset β€” module-binary -O0 route opened, twin flywheel closed +3432 650bb7285d14501da352948dcf21a8306c7cb846 2026-08-31T18:22:18-06:00 2026-08-31T18:22:18-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3433 54c0624e490be04a47bd22e7f68d8a8d0d6de3f9 2026-08-31T18:34:38-06:00 2026-08-31T18:34:38-06:00 docs: Β§371 the module-binary -O0 carve route + the spimdisasm rodata trap; SETUP.md S68 tooling rows (R21) +3434 70843992a7fc97314ccabc8476a817e3409efa00 2026-08-31T18:43:37-06:00 2026-08-31T18:43:37-06:00 feat(decomp): main func_8005E228 (83 ins) β€” a Β§265 VERBATIM-ASM bank, not a C crack +3435 f1e963f3e804016aecf85ea8704beaf2bc0d714d 2026-08-31T18:44:00-06:00 2026-08-31T18:44:00-06:00 fix(gater): commit what the in-tree main gate banks +3436 86918184da840c64f80caa91c473704d3e04b550 2026-08-31T18:47:29-06:00 2026-08-31T18:47:29-06:00 feat(decomp): main in-tree gate β€” 0 fn(s) +3437 0dacc7b3f9f9c0e4d79adc3ebd47a482ff27ef3f 2026-08-31T18:50:44-06:00 2026-08-31T18:50:44-06:00 feat(decomp): main in-tree gate β€” 0 fn(s) +3438 672431e32540698d9fb82605c96805dd50e82f3e 2026-08-31T18:51:21-06:00 2026-08-31T18:51:21-06:00 fix(r22+gater): R22 now REFUSES while drafters are live; Β§372 the copy-capture pair +3439 2a8120f539b79527932bb22db07e9c1faefb67ef 2026-08-31T18:55:28-06:00 2026-08-31T18:55:28-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (2 workers) +3440 601a34f72804db4179e84296ce377ce78fc7db80 2026-08-31T18:56:43-06:00 2026-08-31T18:56:43-06:00 fix(pgate): guard --r22's own make clean, and make the deferred check COUNTABLE +3441 8a347cdb93b19848a40f944c364b1f003a7c3037 2026-08-31T18:57:14-06:00 2026-08-31T18:57:14-06:00 fix(r22_verify): rewrite β€” my own edit had left a SECOND make check-all in it +3442 30caa67127a530f71c680bee23d7f2ab7db18f86 2026-08-31T18:59:50-06:00 2026-08-31T18:59:50-06:00 fix(r22 guard): record liveness, do not infer it β€” my mtime heuristic failed BOTH ways +3443 c42b3dbc3586997a052a88101c7df4e64ced5a48 2026-08-31T19:20:46-06:00 2026-08-31T19:20:46-06:00 docs(cookbook): Β§373 β€” the dead-reset cse-breaker, the anti-dep pin, and pri(asm)=1 +3444 3897886acbd426367cb9837dbbe401f7827b5753 2026-08-31T19:27:37-06:00 2026-08-31T19:27:37-06:00 feat(decomp): ov_SC06_010 func_8017E764 (438) + func_8017BEBC (753) β€” 1,191 ins +3445 3f9430e569f9143ffd54c1e94a3059e87a14e787 2026-08-31T19:28:36-06:00 2026-08-31T19:28:36-06:00 feat(gater): retry IN-TREE when the worktree gate FAILS every draft and banks none +3446 e2f64a7c621555dddfa745eb67398026d5fa467e 2026-08-31T19:46:10-06:00 2026-08-31T19:46:10-06:00 feat(o0): md_MAIN_003 second carve β€” func_800D12D0 (657 ins) banked as real -O0 C +3447 0e50fbc84f255ff875e2973d7c54a6b25bbd5f85 2026-08-31T19:54:36-06:00 2026-08-31T19:54:36-06:00 docs(playbook): Β§1b β€” the walls ledger is always incomplete, and each gap costs an agent run +3448 cd03c676525360af9d1d1c65b1ec8ecfb52b711b 2026-08-31T19:59:08-06:00 2026-08-31T19:59:27-06:00 feat(walls): wall_sweep.py β€” ENUMERATE the Β§332 delay-slot macro walls, 10 fns / 1,027 ins +3449 d8b7fb4e4980f6277ab41118b58f4a9c014a484a 2026-08-31T20:02:56-06:00 2026-08-31T20:02:56-06:00 docs(playbook): Β§1b β€” the Β§332 walls are now ENUMERATED, wire the sweep into the draw +3450 7392fcf7c3db8685f4dc4566d6f5dcfae8acb346 2026-08-31T22:06:20-06:00 2026-08-31T22:06:20-06:00 docs: accelerators #15 (the differential-oracle harness) + the generic decomp package thesis +3451 e936556ff0d7c6e801a3ec826bd3f46507fc9031 2026-08-31T22:08:34-06:00 2026-08-31T22:08:34-06:00 feat(cards): neighbor_ref.py β€” retrieve MATCHED functions as worked examples, ranked +3452 ba394da75aa0ff0957e6eea035d2365f0d83e496 2026-08-31T22:09:11-06:00 2026-08-31T22:09:11-06:00 docs: spec the TRIAGE LADDER for next session, with its 32 free banks listed +3453 da3235087350fa3f9566bbd00dc9e902be43ed41 2026-08-31T22:18:35-06:00 2026-08-31T22:18:35-06:00 feat(decomp): main in-tree gate β€” 1 fn(s) +3454 e32fdd47dd02ae1665f69ed09d0c5f41ec7ecb3f 2026-08-31T22:22:43-06:00 2026-08-31T22:22:43-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (4 workers) +3455 2daacec346e656a40edd12958947312008d08dd8 2026-08-31T22:22:45-06:00 2026-08-31T22:22:45-06:00 feat(decomp): ov_SC03_121 in-tree retry after a blind worktree gate +3456 02592300df1f7e10b0e9788de692b1352dade119 2026-08-31T22:24:56-06:00 2026-08-31T22:24:56-06:00 feat(triage): the residual-classifier head-to-head β€” both implementations, kept +3457 5c317dbe5fcc75cdb95b63aaeb2314cfc622c79d 2026-08-31T22:25:43-06:00 2026-08-31T22:25:43-06:00 docs: wire the S68 tools into SETUP.md (R21) and the playbook (when to use them) +3458 a22d5646f64f45f7699d7d0afd80ad91b584cf25 2026-08-31T22:26:02-06:00 2026-08-31T22:26:02-06:00 docs(cookbook): Β§374/Β§375 β€” two more bounds on the register-pin lever +3459 a47981a4949c5cfc3bc9ee93f257b07e00a1523f 2026-08-31T22:33:02-06:00 2026-08-31T22:33:02-06:00 docs(phase-31): S68 FINAL-2 checkpoint β€” 39 closed (453 -> 414), fleet 213/213, harvest drained +3460 6cca1e3ea042b34b830a4b4affec18f86ca13a6e 2026-08-31T23:00:25-06:00 2026-08-31T23:00:25-06:00 feat(decomp): main in-tree gate β€” 0 fn(s) +3461 53fad0d03107f7fa06f36c0aed48b33657dc809d 2026-08-31T23:18:43-06:00 2026-08-31T23:18:43-06:00 feat(decomp): ov_SC04_010/func_8017D6CC β€” the self-caller cast lever, byte-verified +3462 72d3f61dcda636716c1c4891382afb6bfa8159e1 2026-08-31T23:36:59-06:00 2026-08-31T23:36:59-06:00 chore(integration): self-caller casts for the 27 remaining Β§376 candidates (pre-gate) +3463 779f3e2a19e05ae130dc2696f01546af24168967 2026-08-31T23:49:37-06:00 2026-08-31T23:49:37-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (16 workers) +3464 c6f6f668ba34fd35c416d49ac1df86d0b9d7ea93 2026-08-31T23:51:19-06:00 2026-08-31T23:51:19-06:00 feat(decomp): main/func_80036D58 β€” the narrow-param decl-sync completes the Β§378 chain +3465 1dd15eda32009b66f40aa21a545c0bd92ab0957b 2026-08-31T23:53:50-06:00 2026-08-31T23:53:50-06:00 feat(triage): the triage ladder β€” built, wired, and acceptance-green +3466 ef504ffc32817455b18eb6d1e35e3cd30f14ad82 2026-08-31T23:54:17-06:00 2026-08-31T23:54:17-06:00 chore(integration): decl-sync for the 21 remaining Β§376 candidates (pre-gate) +3467 b2d73108e24e7f9ff58f38f2660f289de1d5b8a5 2026-09-01T00:01:54-06:00 2026-09-01T00:01:54-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (16 workers) +3468 ae7c68a89aafdc03cf08fcb71fcfe9c6bf53df17 2026-09-01T00:05:25-06:00 2026-09-01T00:05:25-06:00 fix(gate): carry the per-function verdicts out of the worktree, and gate the in-tree retry on them +3469 6bc674ae45a90fb94d63589f3e989e07ea378dcc 2026-09-01T00:11:20-06:00 2026-09-01T00:11:20-06:00 docs(phase-31): S69 checkpoint β€” 8 banked from the '32 free banks' class, the Β§378 lever, the triage ladder acceptance-green +3470 05195783b91deda519c41348612f99dab763bdaa 2026-09-01T03:49:21-06:00 2026-09-01T03:49:21-06:00 docs: mark the triage-ladder spec BUILT with its three corrections; accelerator #16 +3471 cb7a28551c1c38979960a5b6fa0c36be5857b740 2026-09-01T03:57:19-06:00 2026-09-01T03:57:19-06:00 chore(integration): Β§378 chain applied to 25 fresh closeness-0 candidates (pre-gate) +3472 02d0461d463ec270f0a39a0c93f2401f7d35704e 2026-09-01T04:02:41-06:00 2026-09-01T04:02:41-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (12 workers) +3473 c79409172501fe7d93bc667a396adc08eae3f204 2026-09-01T04:51:47-06:00 2026-09-01T04:51:47-06:00 feat(decomp): main in-tree gate β€” 8 fn(s) +3474 6a96a62f27f9ae13d69a0c45cd61142771906541 2026-09-01T04:53:15-06:00 2026-09-01T04:53:15-06:00 feat(decomp): main in-tree gate β€” 2 fn(s) +3475 d8d4f8ac6f0cc4c4c5df3493783a6980404674ac 2026-09-01T10:35:11-06:00 2026-09-01T10:35:11-06:00 revert(decomp): ov_SC04_011/func_80182DCC β€” a FALSE BANK committed under --no-r22 +3476 4949acdf318a0f3ed68fd2196e68e998ca0dc5ab 2026-09-01T10:35:29-06:00 2026-09-01T10:35:29-06:00 revert(integration): drop the Β§378 casts for the 25 chain candidates that did not bank +3477 c076f9016d24a37d3682665aa5feb88417f0c60f 2026-09-01T10:39:02-06:00 2026-09-01T10:39:02-06:00 feat(decomp): parallel gate β€” 10 fns across 8 binaries (12 workers) +3478 f95b895909326912970b81f84c4704a5c5f45966 2026-09-01T10:45:07-06:00 2026-09-01T10:45:07-06:00 docs(phase-31): S69 FINAL checkpoint β€” 44 MATCH of 84 agents, the Β§378 lever, four self-inflicted defects measured +3479 d349bc053ab3e25565a79c8fefd0779bc6d314d4 2026-09-01T10:47:13-06:00 2026-09-01T10:47:13-06:00 feat(decomp): parallel gate β€” 9 fns across 8 binaries (12 workers) +3480 9fc27960e9f18f13f4cffa69fe1bc1eb182b8ea8 2026-09-01T11:02:52-06:00 2026-09-01T11:03:06-06:00 feat(integration): teach the rest of the toolkit about Β§378 (self-caller cast) +3481 5450f18181ca96efc1296b25f7b53de85a9b4351 2026-09-01T11:08:55-06:00 2026-09-01T11:08:55-06:00 revert(revert): restore ov_SC04_011/func_80182DCC β€” it was NEVER a false bank +3482 9d7b26523ca0322ba8499e52d9c152da1546ede4 2026-09-01T11:09:31-06:00 2026-09-01T11:09:31-06:00 docs: cookbook Β§384 β€” a carve-config bank is red until you re-extract; correct the S69 checkpoint +3483 ebb0d3a2e3f364ac889f22cb7b5fae1b843cb415 2026-09-01T11:10:12-06:00 2026-09-01T11:10:12-06:00 feat(decomp): main in-tree gate β€” 3 fn(s) +3484 cee69c1bb541e7f7d80e5ee377f212214b1c8043 2026-09-01T11:18:23-06:00 2026-09-01T11:18:23-06:00 feat(draw): NO SONNET β€” opus <=150 ins, fable >150 (Drew, 2026-09-01) +3485 70134d06bfbf2241c56a04d0c74ff448e86e6edc 2026-09-01T11:19:01-06:00 2026-09-01T11:19:01-06:00 feat(decomp): parallel gate β€” 13 fns across 13 binaries (12 workers) +3486 56289ea18c7da27e73870ea8b2a358c6e37ddfbb 2026-09-01T12:11:50-06:00 2026-09-01T12:11:50-06:00 feat(decomp): parallel gate β€” 8 fns across 8 binaries (10 workers) +3487 881dd5a37ccb36eec9e407cf73ecdced3cbcc0cc 2026-09-01T12:20:59-06:00 2026-09-01T12:20:59-06:00 docs: the NEAR-TWIN BAND β€” Β§389, accelerator #17, SETUP, playbook Β§2a, generic-decomp-package +3488 eb6c2305c98f41bf80a6570496ce7cba3c2efda0 2026-09-01T12:50:55-06:00 2026-09-01T12:50:55-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3489 f11bf13b4f159f3591b35231d8b7a8d15475caf4 2026-09-01T13:06:27-06:00 2026-09-01T13:06:27-06:00 feat(seed_ref): the CONTAINED tier + docs for the twin ladder (Β§390/Β§391, accelerator #18) +3490 34249a4696b5253016524db654d797787c3c9a17 2026-09-01T13:14:41-06:00 2026-09-01T13:14:55-06:00 docs(cookbook): Β§392-Β§394 β€” harvest the 7 sonnet overlay waves (105 agents, 57 MATCHes) +3491 75e4b305cd110600cd256a2592f337277865b565 2026-09-01T13:22:00-06:00 2026-09-01T13:22:00-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (2 workers) +3492 85f064333bb474e087767fe4fd464c89d7246f83 2026-09-01T13:30:25-06:00 2026-09-01T13:30:25-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3493 bfff202b14a00070b30a5569d73c9e286d04f427 2026-09-01T13:32:29-06:00 2026-09-01T13:32:29-06:00 chore(integration): sync func_8017F35C's return-type decl (void -> s32) before gating +3494 06f8d5e2f56fd653b204d60904c791128ba7d668 2026-09-01T13:33:17-06:00 2026-09-01T13:33:17-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3495 f8e522ea0df68850b4b0941b8b82951b5dd69efd 2026-09-01T13:34:21-06:00 2026-09-01T13:34:21-06:00 docs(cookbook): Β§378b β€” the four decl-blocker variants, and the two places Β§378 does NOT apply +3496 2661f63a47e4538294cd8bd1f12ec3aee4f875bd 2026-09-01T13:44:04-06:00 2026-09-01T13:44:04-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3497 19f3eba9e499d97a5ae0a3d83a0de684fad992bb 2026-09-01T13:56:08-06:00 2026-09-01T13:56:08-06:00 chore(integration): sync 28 stale func_80189E60 decls (verified byte-neutral before gating) +3498 5f825863a6345bb85961e1b92b50234d8e8aec87 2026-09-01T13:56:57-06:00 2026-09-01T13:56:57-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3499 2f916b269d1db5f695144363981213a4ce405d23 2026-09-01T13:57:34-06:00 2026-09-01T13:57:34-06:00 docs(cookbook): Β§395 β€” five narrowing/placement levers from the reach-6 exemplar crack +3500 f12a851a09cfca245035ad44901c923d0005a76a 2026-09-01T14:02:04-06:00 2026-09-01T14:02:04-06:00 chore(integration): sync func_8018691C decls (byte-neutral verified) +3501 f45167ff86ee30c6e5ddce76733ffab5bf0b5196 2026-09-01T14:03:02-06:00 2026-09-01T14:03:02-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3502 fb328d96f0afda34f8c580f99f96ee18b3e6f802 2026-09-01T14:09:14-06:00 2026-09-01T14:09:14-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3503 cfad3dff385ac96095aa45f4e282cf597f769a07 2026-09-01T14:09:38-06:00 2026-09-01T14:09:38-06:00 fix(pgate): link the signature registry into worktrees β€” every worktree CARVE-REFUSED was an artifact +3504 860f866f6ee1ad440863b9f57bf168f59d57cd8f 2026-09-01T14:12:59-06:00 2026-09-01T14:12:59-06:00 docs: Β§322b/Β§332b/Β§378c + accelerator #19 + SETUP β€” the Fable-3 blocked-pile audit +3505 f164135fd9c425188af9ec374dc1cd726a5bfecf 2026-09-01T14:18:57-06:00 2026-09-01T14:18:57-06:00 feat(decomp): parallel gate β€” 13 fns across 13 binaries (12 workers) +3506 9149167c93b162cd630bd9a0b2ac9be0481226e5 2026-09-01T14:26:29-06:00 2026-09-01T14:26:29-06:00 chore(integration): sync 23 stale func_80187EF4 decls (extract+build verified byte-neutral) +3507 ac85f995f7ce4b523b5071f734b02811e141ec35 2026-09-01T14:27:58-06:00 2026-09-01T14:27:58-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (7 workers) +3508 975fab9e700ca5b8bb0f876012083b85b2970047 2026-09-01T14:29:03-06:00 2026-09-01T14:29:03-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3509 8f4f629b4d5919da09a10b7a7001a5e6183046e6 2026-09-01T14:31:08-06:00 2026-09-01T14:31:08-06:00 docs(cookbook): Β§396 β€” six levers from the S69 singleton round (COND_EXPR corroborated independently) +3510 85b90967e4c6d9f6f2fbad986911e3e810d44210 2026-09-01T14:36:43-06:00 2026-09-01T14:36:43-06:00 chore(integration): sync stale decls for the ov_SC06 reach-6 cluster (extract+build verified) +3511 9d01e382cc3874675cadb6e63bd697d39b925eff 2026-09-01T14:37:18-06:00 2026-09-01T14:37:18-06:00 docs: Β§397 + playbook Β§2a-3 β€” re-run the twin scan after every exemplar bank +3512 0b67876247b2164575d34d54ae4b005a3fe69d82 2026-09-01T14:38:29-06:00 2026-09-01T14:38:29-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (5 workers) +3513 40e58ee5b3157327f133c79291b25337d8bd3195 2026-09-01T14:41:35-06:00 2026-09-01T14:41:35-06:00 docs(phase-31): S69 FINAL-2 checkpoint β€” ~93 banked, three Fable audits, frontier 348 -> 320 +3514 2de045a8ad4e8e709f0193f75a26330294e6ed34 2026-09-01T14:42:18-06:00 2026-09-01T14:42:18-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3515 68eac2722c736dc2e50eded35b169465dea121d9 2026-09-01T14:45:07-06:00 2026-09-01T14:45:07-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3516 8f171c6ce6784d5dd738112749847e641e2c1153 2026-09-01T14:50:26-06:00 2026-09-01T14:50:26-06:00 feat(tools): verify_binary + twin_rescan β€” put S69's two habits in the tooling, not in prose +3517 3111affb2e90ef284734ee4e5d8d61391779208e 2026-09-01T14:54:46-06:00 2026-09-01T14:54:46-06:00 feat(decomp): parallel gate β€” 3 fns across 3 binaries (12 workers) +3518 65f5ac61acc33d27d7dd994aade8e3da8004e045 2026-09-01T14:55:47-06:00 2026-09-01T14:55:47-06:00 docs(cookbook): Β§398 β€” family_remap carries the SOURCE TU's decl environment; a remap is a draft, not a bank +3519 432b4445a42e9b4590c2cca2bdfff92ceab6729e 2026-09-01T14:56:34-06:00 2026-09-01T14:56:34-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3520 d33596713f3257489202904661f3d4464d6bf01c 2026-09-01T15:00:52-06:00 2026-09-01T15:00:52-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3521 8a19b3ca52dcbd041b2abf16512de9e92a2fe746 2026-09-01T15:01:06-06:00 2026-09-01T15:01:06-06:00 docs(cookbook): Β§398b β€” naming a sub-expression changes which pseudo survives; inline it at both use sites +3522 923777b3449ee916bccf951c829d7dbd861febc3 2026-09-01T15:13:14-06:00 2026-09-01T15:13:14-06:00 docs(phase-31): S69 FINAL-3 β€” session close, R22 green 213/213, canonical metrics +3523 4cf531beea82d9d06ada88bd60218d680006dbd4 2026-09-01T15:18:40-06:00 2026-09-01T15:18:40-06:00 docs(cookbook): Β§399 β€” four levers from the final S69 round, harvested late +3524 4fd757dc447e993198634a9d84e909eccc67e9d3 2026-09-01T15:19:53-06:00 2026-09-01T15:19:53-06:00 fix(carve): commit 8 carve-created TU files that parallel_gate could not add +3525 ef8d89e8c697cfcad7b177c3badf595956a0b5cd 2026-09-01T15:31:05-06:00 2026-09-01T15:31:05-06:00 fix(pgate): a NEW file is not a moved one β€” carve-created TUs were silently left untracked +3526 20f80fd933514df2551c8df778d6c58dbb011cdd 2026-09-01T15:33:04-06:00 2026-09-01T15:33:04-06:00 docs: Β§400 + SETUP + carve-state memory for the new-file adoption fix; correct a stale docstring +3527 7272fec47dc5d5bf75507d19f516e2747f234554 2026-09-01T15:41:25-06:00 2026-09-01T15:41:25-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (2 workers) +3528 772f0eb99199a2211072dab4de20ea28d9017450 2026-09-01T15:45:37-06:00 2026-09-01T15:45:37-06:00 docs(phase-31): S69 FINAL-4 β€” true session close, next-session queue led by the residual-classifier coverage probe +3529 49f27f2293308f3f195b8bb8d415ef3df1ad45b4 2026-09-01T15:45:46-06:00 2026-09-01T15:45:46-06:00 chore(report): refresh backlog + fleet progress after the S69 banks +3530 cf30d6d5fa9a2304c363f99a5d6d3a1777270caa 2026-09-01T15:56:52-06:00 2026-09-01T15:56:52-06:00 chore(phase-31): S70-T1 β€” R22 clean-fleet verify GREEN 213/213; correct the probe's citation and denominator +3531 e6056c56df6516437d8d535d9a83cc2c3bc9113a 2026-09-01T16:07:18-06:00 2026-09-01T16:07:18-06:00 docs(phase-31): S70-T2 β€” coverage probe VERDICT=build the rules; 86 standalone matches; denominator corrected +3532 21372a2348fa4dc7b03494c33fb5ecd581fcdf37 2026-09-01T16:08:16-06:00 2026-09-01T16:08:16-06:00 docs(decision-log): R31 β€” the S70 postgame reframe (tools scope to the CRACKED corpus, not the frontier) +3533 b31d5a2caee524118d633a62dc8e35d5f107b305 2026-09-01T16:10:48-06:00 2026-09-01T16:10:48-06:00 docs(phase-31): S70 scope call β€” defer the future-decomp generalization; size the banked label corpus (16,301 / 12,383 with drafts) +3534 ac5aede5aca9b3992e5f12ad2bb654d52fb023a4 2026-09-01T16:23:11-06:00 2026-09-01T16:23:11-06:00 feat(decomp): S70-standalone gate β€” +15 fns x0 propagated (fleet 99.4%) +3535 4e35b8406c59d75a344530583bf5999cde9a8699 2026-09-01T16:30:37-06:00 2026-09-01T16:30:37-06:00 feat(decomp): S70-standalone gate β€” +3 fns x0 propagated (fleet 99.4%) +3536 52208ae6dddaf449509257005bc1bd506b04e69e 2026-09-01T16:34:01-06:00 2026-09-01T16:34:01-06:00 fix(pgate): resolve --drafts against the MAIN REPO, not the worktree cwd +3537 45cc5cbdf8d8c487293e8add5944c142dcaaf2bb 2026-09-01T16:47:10-06:00 2026-09-01T16:47:10-06:00 feat(decomp): parallel gate β€” 3 fns across 3 binaries (8 workers) +3538 55c263d591ef5e6ad50ee6b95613613f1b8316a7 2026-09-01T17:11:59-06:00 2026-09-01T17:11:59-06:00 feat(decomp): S70 main β€” +1 fn (func_8002B0B4) from the standalone-match sweep +3539 832dd8ea2532c195348a89dba53c2952ef4b1c8e 2026-09-01T17:19:39-06:00 2026-09-01T17:19:39-06:00 docs(phase-31): S70-T9 β€” 22 banked of 86; jtbl-carve probe law; pgate gated nothing at rc=0; both undo-journals corrupt +3540 062ac7d100ca0ad3403982a46725c2c5d08615e7 2026-09-01T17:20:28-06:00 2026-09-01T17:20:28-06:00 docs(cookbook): Β§401 jtbl-carve probe blind spot Β· Β§402 path-resolved-in-another-cwd Β· Β§403 undo-journal keyed by name +3541 1d5f951a6d2017a29dc0a5c2ef298875e6710db8 2026-09-01T17:29:57-06:00 2026-09-01T17:29:57-06:00 docs(phase-31): S70 FINAL checkpoint β€” 22 banked (355->333 real), R22 green 213/213, next-session queue led by the family_remap decl fix +3542 2fbf93d2e05380fab99f01c6ab126b39ca13ace8 2026-09-01T17:30:02-06:00 2026-09-01T17:30:02-06:00 chore(report): refresh backlog + fleet progress after the S70 banks +3543 52ca3d9b9bfcb877d1cb42b294e70323e810a35a 2026-09-01T17:34:21-06:00 2026-09-01T17:34:21-06:00 fix(family_remap): destination TU decls win over carried exemplar externs (Β§398) +3544 da0a3e6cbf194bc44ac5422e00088c15300712a1 2026-09-01T17:36:57-06:00 2026-09-01T17:36:57-06:00 fix(undo-journal): REFUSE an ambiguous restore instead of silently swapping decls (Β§403) +3545 98e923fdd885d9d40f1ea2c609829ccec8b5933a 2026-09-01T17:37:49-06:00 2026-09-01T17:37:49-06:00 fix(gater_lane): ledger a draft as gated only for a binary the gate actually EXAMINED +3546 957d0a822a5a57fcd0b27ed6032b8c0bf70b1610 2026-09-01T17:38:54-06:00 2026-09-01T17:38:54-06:00 docs(cookbook): Β§403 β€” record the shipped refusal + its negative control +3547 f5e81b72d7e996fddb76301f1383e18732e24089 2026-09-01T17:40:37-06:00 2026-09-01T17:40:37-06:00 feat(decomp): parallel gate β€” 20 fns across 1 binaries (8 workers) +3548 6b51f0383cca6a20d06f6481ba38904fd5511b85 2026-09-01T17:42:18-06:00 2026-09-01T17:42:18-06:00 docs(phase-31): correct S70 β€” main banked 0, not 1; harvest_verify alone does not persist a splice +3549 cdac7502f9b8214499a910680aea16942aa6af92 2026-09-01T17:42:44-06:00 2026-09-01T17:42:44-06:00 docs(cookbook): Β§404 β€” harvest_verify verifies but does not bank; gate_stage persists +3550 16fae589d07343f521eb31464fcb6895fe9c8666 2026-09-01T17:47:55-06:00 2026-09-01T17:47:55-06:00 docs(phase-31): S70 FINAL-2 β€” 41 banked (355->314), R22 green 213/213, 4 tool defects (3 fixed) +3551 9b57eaa2f0a688dab411399217cce2593fc1b1d1 2026-09-01T17:48:01-06:00 2026-09-01T17:48:01-06:00 chore(report): refresh digests after the S70 twin banks +3552 d23bc7ad56bf45dffef516f343cb87daf4cdd853 2026-09-01T18:44:31-06:00 2026-09-01T18:44:31-06:00 docs(phase-31): audit the pgate blast radius β€” REFUTED; 606/668 plan rows absolute, defect never fired before S70 +3553 d6e28fcb1a86cdd05aaba03b74cb4edab6bbf8c9 2026-09-01T18:59:04-06:00 2026-09-01T18:59:04-06:00 feat(tools): work_evidence β€” assert a tool ACTUALLY DID the work it reports +3554 425cec253c24997d88d23c917e558ce2e66627d9 2026-09-01T18:59:32-06:00 2026-09-01T18:59:32-06:00 docs(phase-31): the pre-wave tool audit β€” blast radius REFUTED, work_evidence shipped, cleared for waves +3555 26ba4496847b5151688670b933559980b11f02e6 2026-09-01T20:10:51-06:00 2026-09-01T20:10:51-06:00 perf(tools-health): parallelise the sig targets; fix a latent probe-file race; MEASURE the real cost +3556 91895afd3cc3966c280e28c3e5178fc669bade29 2026-09-01T20:19:24-06:00 2026-09-01T20:19:24-06:00 fix(tools-health): audit-cdecl is a HEALTH check, not a regression suite β€” sample by default +3557 067f25f682636d152709698f4b5d8d0284a07926 2026-09-01T20:32:12-06:00 2026-09-01T20:32:12-06:00 feat(build): Β§332b β€” per-object REORDER path for the 800c2/800c3 PsyQ island +3558 cafaa7ac3056d782fb45ab8bafc747c8e4a3e977 2026-09-01T20:36:02-06:00 2026-09-01T20:36:02-06:00 feat(decomp): Β§332b reorder island β€” +3 main fns (func_8005D244, func_8005DBD8, func_80061FA8) +3559 db22b69081f91a956e6fc02811376a78d0c5ddce 2026-09-01T20:36:41-06:00 2026-09-01T20:36:41-06:00 docs(cookbook): correct Β§404 β€” harvest_verify DOES persist; the lost bank was my own git checkout +3560 576d69a52974ed550b12080083cb2bad91a97ac2 2026-09-01T20:37:18-06:00 2026-09-01T20:37:18-06:00 docs(phase-31): S70-T4 Β§332b shipped (+3, frontier 311); Β§404 corrected; tools-health 333s green +3561 b5370955cc25044c21d9c4152f84e02e92658c76 2026-09-01T20:46:03-06:00 2026-09-01T20:46:03-06:00 docs(phase-31): S70 FINAL-3 β€” 44 banked (355->311), R22 green, tools-health 333s, Β§332b island shipped +3562 64dc914afecf6a21177526fb45ee1b7a72ff9105 2026-09-01T20:46:09-06:00 2026-09-01T20:46:09-06:00 chore(report): refresh digests after the Β§332b banks +3563 ececa0aa37926e742279b990f813accae75df213 2026-09-01T21:08:53-06:00 2026-09-01T21:08:53-06:00 fix(harvest_verify): fall back to the standard Β§8a carve when island-split says TAIL +3564 57031f01e4b4db903bcb9e2beb446a3e356db5e7 2026-09-01T21:09:18-06:00 2026-09-01T21:09:18-06:00 docs(phase-31): S70-T3 carve route β€” 0 banked, blocker localised to stale committed carve ownership (7 binaries) +3565 fc9b191806e44505afd1e08ee4a03274d16848d3 2026-09-01T21:18:52-06:00 2026-09-01T21:18:52-06:00 fix(jr_inventory): ownership has three sources, not one β€” unblocks 8 binaries' carves +3566 ba24730d39ab275fd6cd93f19c00e62009b40891 2026-09-01T21:28:14-06:00 2026-09-01T21:28:14-06:00 docs(phase-31): S70-T13 β€” carve ownership was a MODEL bug (dry run 7/17->15/17); a third blocker (jtbl_carve mixed-data island) is the real wall +3567 f1cdd21134348251cccd98b1c0631e5fdd053e91 2026-09-01T21:54:17-06:00 2026-09-01T21:54:17-06:00 fix(jtbl_carve): consult island_probe before the LEADING-ISLAND refusal β€” +1 bank, unblocks the carve route +3568 481a282be571dff818612860f1658132ab992f96 2026-09-01T21:59:32-06:00 2026-09-01T21:59:32-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (8 workers) +3569 c6a0dc8f43a4c730fbe45c0d456eb48448e88808 2026-09-01T22:00:26-06:00 2026-09-01T22:00:26-06:00 docs(phase-31): S70-T14 β€” blocker 3 fixed, carve route OPEN (+3, frontier 308); all three blockers were routing errors, not walls +3570 c16fd3cf532eb517bf1ef4d32e244c5c604fa096 2026-09-01T22:35:56-06:00 2026-09-01T22:35:56-06:00 fix(warm-start): ANY foreign symbol disqualifies a same-named prior draft (law 1c) +3571 2ad58ddc38e56dfbaa71674dd0e61c4113f73248 2026-09-01T22:46:44-06:00 2026-09-01T22:46:44-06:00 feat(decomp): parallel gate β€” 31 fns across 24 binaries (10 workers) +3572 f33c4557470e727abc8d0abe80c05424e0bd745e 2026-09-01T22:55:19-06:00 2026-09-01T22:55:19-06:00 docs(playbook): fix the packs invocation β€” the old form hid SYS.md from every drafting agent +3573 69d6c76a3b932179718d3b8a97c111faa70d215e 2026-09-01T23:01:37-06:00 2026-09-01T23:01:37-06:00 feat(decomp): parallel gate β€” 23 fns across 21 binaries (10 workers) +3574 027f4f2d2ba5967751b409950ebf6270490caa99 2026-09-01T23:11:26-06:00 2026-09-01T23:11:26-06:00 feat(decomp): parallel gate β€” 31 fns across 23 binaries (10 workers) +3575 97cbaf04087a2617fc880c2ca73a61eadd00cad6 2026-09-01T23:18:44-06:00 2026-09-01T23:18:44-06:00 fix(cards): never assert "NO banked twin" without the cross-overlay address check +3576 f83443ecdcf7b8b68efb65f31d1c0468972adce2 2026-09-01T23:19:52-06:00 2026-09-01T23:19:52-06:00 docs(cookbook): Β§405 the S70 wave harvest (113 MATCH / 130 agents) + Β§406 the 134-function prologue-weave sweep +3577 9df00e71f89168585f3ecea4609d2e096031e0f9 2026-09-01T23:23:02-06:00 2026-09-01T23:23:02-06:00 feat(decomp): parallel gate β€” 11 fns across 9 binaries (10 workers) +3578 2740f183735c152a16d42669b4eb56a069f5e7f3 2026-09-01T23:27:21-06:00 2026-09-01T23:27:21-06:00 docs(cookbook): Β§407 late-wave addenda β€” reorg delay-slot refusal, find_best_addr folding, and the empty-corpus scan caution +3579 2e87d246fb68bd42bcb74e6b3400515235761911 2026-09-01T23:34:53-06:00 2026-09-01T23:34:53-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3580 1632c6adec62ca6b881914135770a1f0e6eeaa40 2026-09-01T23:40:28-06:00 2026-09-01T23:40:28-06:00 docs(phase-31): S70 FINAL-4 β€” 145 banked (355->210), 115/118 wave MATCH, 5 card defects (3 fixed), cookbook 1074 +3581 e532033c5e90d1c42b2695c92aab536443c38873 2026-09-01T23:44:37-06:00 2026-09-01T23:44:37-06:00 fix(cards): the SYMBOL MISMATCHES block gated on `shape`, not `aligned` β€” served void advice +3582 a1e8c59640c6fc6795a6568ab51540cc120c3d80 2026-09-01T23:44:56-06:00 2026-09-01T23:44:56-06:00 docs(phase-31): card defect 4 shipped, defect 5 refused by adversarial review (would have suppressed 159 real verdicts) +3583 da3bb36c561f5c1c2ad1da99dddea5a9c5647c76 2026-09-01T23:56:13-06:00 2026-09-01T23:56:13-06:00 docs(phase-31): S70 FINAL-5 β€” fresh-session checkpoint, Β§406 sweep first; 145 banked (355->210), R22 green, cookbook 1074 +3584 698f2959aea8eadd1390e2825a89181e0268fdf6 2026-09-02T00:19:59-06:00 2026-09-02T00:19:59-06:00 fix(campaign): R48 β€” reloc_filter resolves a draft's binary per-draft, not by bare name +3585 23ffa6082f29da4dc308f8d9b441910a0999aacd 2026-09-02T00:23:34-06:00 2026-09-02T00:23:34-06:00 feat(decomp): parallel gate β€” 12 fns across 2 binaries (12 workers) +3586 588208d50fd6e8879e5def9ad8879289d2ba4aeb 2026-09-02T00:27:07-06:00 2026-09-02T00:27:07-06:00 feat(decomp): parallel gate β€” 11 fns across 1 binaries (1 workers) +3587 13a16a15c64a9b0d228be6a7311e3d202252518a 2026-09-02T00:27:52-06:00 2026-09-02T00:27:52-06:00 fix(pgate): the merge scope missed main entirely β€” 11 byte-proven banks were dropped silently +3588 8cf01043862aaa8bd3441721ccd207ffd5f18be1 2026-09-02T00:32:20-06:00 2026-09-02T00:32:20-06:00 fix(cards): defect 5 β€” an expired BASELINE-RED claim, without discarding any measurement +3589 137c418bc7672907574b71483d0bb0c2521a69c5 2026-09-02T00:39:18-06:00 2026-09-02T00:39:18-06:00 docs(phase-31): S71 β€” the 64 standalone matches priced honestly; 12 banked, 52 in four named lanes +3590 e76f82e31fde7dfe8468435af3341d41cc73c7f4 2026-09-02T00:55:11-06:00 2026-09-02T00:55:11-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (11 workers) +3591 c97ccee98d94e8d00772d48b042916b4247a0540 2026-09-02T01:04:04-06:00 2026-09-02T01:04:04-06:00 feat(decomp): parallel gate β€” 9 fns across 7 binaries (12 workers) +3592 89c3cf831b1ef8db08a9e6a773a52c5bee76a116 2026-09-02T01:04:27-06:00 2026-09-02T01:04:27-06:00 docs(phase-31): S71 wave 1 β€” journal-fuelled packs, 100% first-pass MATCH; cookbook 1078 +3593 02e1b3a7e63865ee4df4200d45958470375b6a55 2026-09-02T01:11:52-06:00 2026-09-02T01:11:52-06:00 feat(waves): every pack now carries that function's own PAST-ATTEMPT history +3594 2064b5beeebfaa6df6403267bbcff3ac94975d30 2026-09-02T01:17:20-06:00 2026-09-02T01:17:20-06:00 feat(decomp): parallel gate β€” 6 fns across 5 binaries (12 workers) +3595 8f87334399d781328078cbc89cda686ed4d4c695 2026-09-02T01:17:25-06:00 2026-09-02T01:17:25-06:00 docs(setup): WSL2 memory reclaim β€” autoMemoryReclaim=gradual + the interim cache dropper +3596 6c4391abb99c171ad9e2af5fd05c7f9e3614fb61 2026-09-02T01:17:47-06:00 2026-09-02T01:17:47-06:00 docs(phase-31): S71 gate cycle 3 β€” 29 banked; journal-notes made permanent; jr_isolate_all unblocked +3597 49c41094a690176a24d989fc915157a9c7889746 2026-09-02T01:20:44-06:00 2026-09-02T01:20:44-06:00 feat(carve): jr_isolate_all places file-local statics β€” ov_SC03_010's carve refusal cleared +3598 f0512ff9eebffc1739cffe521ae01bf767544362 2026-09-02T01:21:36-06:00 2026-09-02T01:21:36-06:00 feat(carve): jr-isolate ov_SC03_013 for func_801806F8 β€” byte-identical, carve refusal cleared +3599 ad0d883810393a3d9a9cc722a23f68c6a8ece30c 2026-09-02T01:21:49-06:00 2026-09-02T01:21:49-06:00 feat(carve): jr-isolate ov_SC03_092 for func_8017FE88 β€” byte-identical, carve refusal cleared +3600 93bfa45561dcb06e833b3980a842086390db5975 2026-09-02T01:24:53-06:00 2026-09-02T01:24:53-06:00 feat(carve): Β§323 blocker 2 cleared β€” jr-isolate ov_SC07_000 for func_8017F8B8, byte-identical +3601 7bcb3e51ec5fd67e6cbe1024276d5d6f01165393 2026-09-02T01:25:06-06:00 2026-09-02T01:25:06-06:00 feat(carve): Β§323 blocker 2 cleared β€” jr-isolate ov_SC03_029 for func_80186A34, byte-identical +3602 fecbfac5f8e16c876bbd1fc4b5c9de5ba5e0aae8 2026-09-02T01:25:56-06:00 2026-09-02T01:25:56-06:00 docs(phase-31): Β§412 β€” Β§323 carve blocker 2 was a regex blind to __attribute__; 5 of 6 carve overlays cleared +3603 bfea4affd836f2b723b8521f850b0ed98bf3c80e 2026-09-02T01:29:59-06:00 2026-09-02T01:29:59-06:00 feat(draw): route the model tier off the prior RESIDUAL CLASS, not nins +3604 27cc083de9a811027a3cbad4b29aaa39e652ba0e 2026-09-02T01:31:10-06:00 2026-09-02T01:31:10-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (12 workers) +3605 0e4c98dc97874ef2f6a6c8406f254af6970fd644 2026-09-02T01:31:57-06:00 2026-09-02T01:31:57-06:00 docs(phase-31): S71 gate cycle 4 β€” frontier 210 -> 176, 34 banked; residual-class routing + the R48 name-key exposure +3606 2814d385ac8e6b6320a6ebee5e8cb5a37e3084f8 2026-09-02T01:33:21-06:00 2026-09-02T01:33:21-06:00 feat(waves): journal_notes also reads a project-local note file +3607 6fbdfdb361657ad6aaae438b00b5839eb63594aa 2026-09-02T01:41:34-06:00 2026-09-02T01:41:34-06:00 revert(main): commit:3586's 11 banks β€” main did not build from clean, and was not byte-identical +3608 2f72f8b20df68706da40c4ce9d82f4c7c898cc84 2026-09-02T01:45:21-06:00 2026-09-02T01:45:21-06:00 fix(pgate): REFUSE main β€” an incremental main gate is a FALSE PASS, not just a false diff +3609 dff33f66d9089b6adc5628808d8fc4f95c640954 2026-09-02T01:49:46-06:00 2026-09-02T01:49:46-06:00 docs(setup): WSL memory cap lowered 48GB -> 32GB (Drew, 2026-09-02); applies on next wsl --shutdown +3610 4d7c297b1235111a67e7414fcc4051dfd4ea858f 2026-09-02T01:50:33-06:00 2026-09-02T01:50:33-06:00 docs(phase-31): S71 CHECKPOINT β€” fleet R22 GREEN 213/213, honest frontier 187 (23 banked), main incident recorded +3611 6716100e57f08e6fb9e5994cc44cfbc7c4d0a5df 2026-09-02T01:51:14-06:00 2026-09-02T01:51:14-06:00 docs: regenerated progress + backlog from the R22-green fleet (853/1919 = 44.45%, frontier 187) +3612 6fac2e0f3573ed8a6a40a97f9487950d3322951e 2026-09-02T01:59:46-06:00 2026-09-02T01:59:46-06:00 feat(waves): refuse to launch an agent at an ALREADY-BANKED target (R43/R45) +3613 2f46e3e0fcab24c357641cc28e7da1388ed1f67c 2026-09-02T02:01:50-06:00 2026-09-02T02:01:50-06:00 docs(cookbook): Β§415 - a file-scope decl merges the TU's later block-scope externs into it +3614 0fb99b763b77defecd020486a12637370ff88f63 2026-09-02T02:10:07-06:00 2026-09-02T02:10:07-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3615 ab46791e0648d017dd617ea0dbb213c675055117 2026-09-02T04:12:25-06:00 2026-09-02T04:12:25-06:00 docs(phase-31): S71 resumed at 04:11 after the session-limit reset +3616 6d21bed9db16f202927cd60806993b66bcb3c0bd 2026-09-02T04:31:28-06:00 2026-09-02T04:31:28-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (10 workers) +3617 072607df7b58a00c0cf8504335c047602d6b55ad 2026-09-02T04:32:08-06:00 2026-09-02T04:32:08-06:00 docs(phase-31): S71 gate 6 (+4, frontier 181) and cookbook Β§416 +3618 46cfd92e0be7d74dbd71900d17c153f64043767a 2026-09-02T04:38:41-06:00 2026-09-02T04:38:41-06:00 docs(cookbook): Β§417 - a pin blocks jump.c's select collapse; unpinning exposes cse skip-blocks +3619 7b256d1c35dbfd8987b8ea542e72686d957c6013 2026-09-02T04:45:11-06:00 2026-09-02T04:45:11-06:00 feat(decomp): parallel gate β€” 3 fns across 3 binaries (10 workers) +3620 8709798738925ebcc9f4861db9e3f129bd85bc8d 2026-09-02T04:46:02-06:00 2026-09-02T04:46:02-06:00 docs(phase-31): S71 gate 7 (+3, frontier 178, 32 banked) + the measured blocker census +3621 16c4fc75e169718ae7e85f7156f3bab8f998316c 2026-09-02T04:53:00-06:00 2026-09-02T04:53:00-06:00 docs(cookbook): Β§418 - second index as a GIV, and keeping a table address unfolded +3622 e1f6c5cdd90391fbc019716f3726b4d5217d45fe 2026-09-02T05:01:22-06:00 2026-09-02T05:01:22-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3623 49d1e06632e04e79333ed4f06c1b6af57ff30d0b 2026-09-02T05:02:09-06:00 2026-09-02T05:02:09-06:00 docs(phase-31): S71 gate 8 (+2, frontier 176, 34 banked); two proven walls recorded +3624 5a39af246e0f972e89115fda5fbdd6d362c199fc 2026-09-02T05:12:40-06:00 2026-09-02T05:12:40-06:00 docs(cookbook): Β§419 - when a pin is impossible, win the local-alloc density contest +3625 ca813cb5abe36acdc172b0662721a8458f64494a 2026-09-02T05:18:24-06:00 2026-09-02T05:18:24-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3626 9bb43dd426e01d4320577bf8f6dfb537e77a6c8e 2026-09-02T05:19:10-06:00 2026-09-02T05:19:10-06:00 docs(phase-31): S71 gate 9 (+2, frontier 174, 36 banked); Β§419 density lever recorded +3627 c0e8731947b980f7d8adc0af1e59c3cf838312a9 2026-09-02T05:33:39-06:00 2026-09-02T05:33:39-06:00 feat(decomp): parallel gate β€” 5 fns across 5 binaries (10 workers) +3628 f31f56ef17bb454b5a36225f22923678d5a6ba6d 2026-09-02T05:34:38-06:00 2026-09-02T05:34:38-06:00 docs(phase-31): the drafting pool emptied; the carve lane replaced it (+5, frontier 169) +3629 24d50170395854d98041933f8de8186e5975fb62 2026-09-02T05:37:23-06:00 2026-09-02T05:37:23-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (4 workers) +3630 2cedd19aaabc3395abfeeecbdb0ba3fcec3830b4 2026-09-02T05:38:28-06:00 2026-09-02T05:38:28-06:00 fix(symfix): key the slate by (binary, fn); Β§420 multi-cluster rebase banks 4 in 57s +3631 1c932c61b81e0fa660954d572c169c3c4d00ed10 2026-09-02T05:38:45-06:00 2026-09-02T05:38:45-06:00 docs(phase-31): +4 via multi-cluster symbol rebase; frontier 165, 45 banked +3632 a10613fa4af88391702327922d3391ec859d1a98 2026-09-02T05:42:42-06:00 2026-09-02T05:42:42-06:00 docs(cookbook): Β§421 - a la $tN + addiu pair can be a RELOAD artifact no C spelling reaches +3633 5ce3704e21e149fe0fd2e661bb664e2c244ad0bb 2026-09-02T05:49:58-06:00 2026-09-02T05:49:58-06:00 docs(cookbook): Β§422 QImode arithmetic + flag^1 temp; Β§423 the "cause not determined" typedef collision +3634 f778dd3f6a0d066d07d0fd96eee000cbff5ab418 2026-09-02T05:50:05-06:00 2026-09-02T05:50:05-06:00 feat(decomp): parallel gate β€” 3 fns across 3 binaries (10 workers) +3635 11862e3c2210bda2738ef52e4618f0e0b33dc1e1 2026-09-02T05:51:08-06:00 2026-09-02T05:51:08-06:00 docs(phase-31): gate 10 (+3), frontier 162, 48 banked; Β§420-Β§423 harvested +3636 1baa5ec40512a4f436fe8a4fe5054874d61847fd 2026-09-02T09:35:36-06:00 2026-09-02T09:35:36-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3637 a2b0a6b98f0e5eb79b92ab731fdd1f6c24094af6 2026-09-02T09:58:03-06:00 2026-09-02T09:58:03-06:00 tune(draw): opus up to 340 ins, not 150 - Fable for difficulty, not length (Drew) +3638 38faa55a56bd9da6a7bd3f3369bf8aa3cd98ff67 2026-09-02T10:00:36-06:00 2026-09-02T10:00:36-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3639 e167c9c3cca66a5afc496dbab001911cd485ad5d 2026-09-02T10:05:39-06:00 2026-09-02T10:05:39-06:00 feat(decomp): main +5 via gate_main - four Β§265 verbatim-asm walls and one ordinary body +3640 ce671f7e14ee458a42d4db060cf3aa7a33a3f191 2026-09-02T10:06:38-06:00 2026-09-02T10:06:38-06:00 fix(gate_main): count banks from the SOURCE, not from the slate +3641 38a039d121a1d38c5db388d03df870caf42fae03 2026-09-02T10:10:39-06:00 2026-09-02T10:10:39-06:00 fix(gate_main): refuse a draft that contains its own INCLUDE_ASM (R43) +3642 b5f4bff5b2ee1f5d537749ede46f7462539c4c6b 2026-09-02T10:14:15-06:00 2026-09-02T10:14:15-06:00 feat(decomp): parallel gate β€” 4 fns across 4 binaries (10 workers) +3643 225f7d4ee954b2a60546546ca0bd7df76ef92b94 2026-09-02T10:15:20-06:00 2026-09-02T10:15:20-06:00 docs(phase-31): frontier 150, 60 banked; main lane reopened; two gate_main defects fixed +3644 9a94d0593da03fb03a643e783fccca5ff39fa2d6 2026-09-02T10:16:01-06:00 2026-09-02T10:16:01-06:00 feat(decomp): main +1 - func_8005FA94 via Β§265 verbatim asm (gate_main, BYTE-IDENTICAL) +3645 1e314e7208b69e493581ff3c86d11efdbd813000 2026-09-02T10:22:16-06:00 2026-09-02T10:22:16-06:00 docs(cookbook): Β§424 - equal-priority stores emit REVERSED (sched1 LUID tie picks the last statement) +3646 853cab2a97287641c50dd60206991af49b984bf6 2026-09-02T11:03:52-06:00 2026-09-02T11:03:52-06:00 docs(cookbook): Β§425 - sb aliases scalar globals (true_dependence's QImode carve-out) + 3 more +3647 9c7b1e053b46fdc187003e7b1fa54c8207f6ad1b 2026-09-02T11:09:14-06:00 2026-09-02T11:09:14-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (10 workers) +3648 9631949339a475a09388fed2cc1c6fefa968036b 2026-09-02T11:15:21-06:00 2026-09-02T11:15:21-06:00 docs(phase-31): S71 CLOSE β€” R22 green 213/213, frontier 147, 63 banked, main past 50% +3649 6c904ebd0c514c7d47bcded97e1e8110c1e006be 2026-09-02T11:19:49-06:00 2026-09-02T11:19:49-06:00 docs: close the S71 documentation gaps - SETUP tools table, playbook steps, decision log, gate ledger +3650 cbf5bae0437af950d1dd9754ea04f6a1e12cc2e6 2026-09-02T11:56:28-06:00 2026-09-02T11:56:35-06:00 feat(main): unblock main's switch functions β€” the rodata span carve + derived jtbl pads +3651 69f3f22112312f8ed4ccd9d132adbfce5346e695 2026-09-02T12:02:23-06:00 2026-09-02T12:02:23-06:00 fix(journal_notes): a pack with one old note could never receive a newer one +3652 e94bb20833948f480b64062e69e649ddebe42222 2026-09-02T12:05:01-06:00 2026-09-02T12:05:01-06:00 docs: bank the S72 main carve finding β€” cookbook Β§426/Β§427, playbook 1c, SETUP, decision log +3653 ab5d1e3188245047543aa32d2587e17256592417 2026-09-02T12:06:59-06:00 2026-09-02T12:06:59-06:00 fix(gate_main): a tag keyword is not a type this model can see (R39 over-refusal) +3654 8edd0f61e019405dba32089f371645c0b0e9a1cd 2026-09-02T12:09:06-06:00 2026-09-02T12:09:06-06:00 docs(phase-31): S72 progress β€” main's jtbl carve debugged, fixed, 3 banked; span B/C is the next lever +3655 7bfc543d7635855cbf37a590ac6fc15788ef78ca 2026-09-02T12:13:56-06:00 2026-09-02T12:13:56-06:00 docs(playbook): 5b β€” gate the directory, never the verdict list +3656 c6ab5ff455871dccdc9604782437d6d9fa40cfc5 2026-09-02T12:17:05-06:00 2026-09-02T12:17:05-06:00 docs(cookbook): Β§428 β€” a zero-byte cross-jump barrier (advance the pointer inside each switch arm) +3657 92c001ea8cbd5ffbfb742a9619a90b414ff36f36 2026-09-02T12:26:01-06:00 2026-09-02T12:26:01-06:00 docs(cookbook): Β§428a β€” the fence<->over-merge coupling (agent-measured, flagged not-yet-byte-proven) +3658 4001ff0c6f8d31f0bce5b7b440b4478046745c28 2026-09-02T12:33:10-06:00 2026-09-02T12:33:10-06:00 docs(cookbook): Β§429 β€” every held pointer needs its own local; negative-displacement byte stores need one too +3659 c0724cb59eb9caeda14f364ad6e276ab644c21d4 2026-09-02T12:38:49-06:00 2026-09-02T12:38:49-06:00 docs(cookbook): Β§428a REWRITTEN β€” my prediction was refuted; the real law is better +3660 8c40fa3ebdeb7fb4cfb59d1acb57e8c159ab6bb7 2026-09-02T12:52:39-06:00 2026-09-02T12:52:39-06:00 feat(main): 4 more span-A switch functions banked byte-identical (wave S72m_1) +3661 174f7aaf7acc1cd0b06a5e112553380825b1fac7 2026-09-02T12:53:19-06:00 2026-09-02T12:53:19-06:00 docs(cookbook): Β§430 β€” a shared tail is a late cross-jump merge, not a source goto +3662 f0148e6822ada57df272374321ca0a89b0ea1b59 2026-09-02T12:58:44-06:00 2026-09-02T12:58:44-06:00 docs(phase-31): S72 CLOSE β€” R22 green 213/213, 7 main banked, main past 51.8%, frontier 140 +3663 7df4895e7b8ddb3a24fa154c658767dac353aa0b 2026-09-02T13:27:29-06:00 2026-09-02T13:27:29-06:00 feat(main): split src/800.c at the jtbl-span TU boundaries β€” spans B and C now carve +3664 483e2514a396f1327aeb830e34a6f9550c25761c 2026-09-02T13:30:20-06:00 2026-09-02T13:30:20-06:00 feat(main): 3 span-B functions banked; gate_main now sees header-provided typedefs +3665 11dda014eead83e83811b0ec6348e570960cce6e 2026-09-02T13:32:32-06:00 2026-09-02T13:32:32-06:00 fix(main): align 5 forward declarations with their definitions (Β§376), byte-neutral +3666 9de9514249411ee564012d1440847dbf4dd73e04 2026-09-02T13:34:26-06:00 2026-09-02T13:34:26-06:00 feat(main): 3 more banked via the Β§376 alignment β€” func_8003602C, func_80038FFC, func_80039C70 +3667 00e5bfe57c510451935b7a00e7884ac08271f569 2026-09-02T13:35:17-06:00 2026-09-02T13:35:17-06:00 feat(main_diff_locate): TABLE REJECT β€” the third verdict class, and the one this session is about +3668 40bbd07c45ef70e6b7b817f9938a57ec14351366 2026-09-02T13:36:20-06:00 2026-09-02T13:36:20-06:00 feat(main): func_80036260 banked β€” 10 of the 11 'PROVEN gate-rejects' are now banked +3669 3e8138819a45af2f9ac071814c8b030b3a048dbe 2026-09-02T13:37:11-06:00 2026-09-02T13:37:11-06:00 docs(cookbook): Β§431 β€” splitting a 27k-line TU at its original boundaries +3670 468c3751c3dc2acc5da8fd9dd20d3b4f750573fa 2026-09-02T13:37:38-06:00 2026-09-02T13:37:38-06:00 docs(decision-log): S72 addendum β€” the split decision, and the effort estimate I got wrong +3671 8c72831177f56d0544b6acf8680d3981a7d9f147 2026-09-02T13:42:30-06:00 2026-09-02T13:42:30-06:00 fix(main): recover func_8002EED8 + func_8002F248 β€” I destroyed them with my own R42 violation +3672 430f40576abfdb403d8104b213f30aae7382f407 2026-09-02T13:43:11-06:00 2026-09-02T13:43:11-06:00 docs(cookbook): Β§431 β€” widen the gate-reverts-src rule from declaration edits to BANKS +3673 8e8521da22c2219a87f73a75a22c80a78328acce 2026-09-02T13:48:00-06:00 2026-09-02T13:48:00-06:00 fix+docs: make every consumer aware of main's new TU layout (R36) +3674 94ca16e007e42e72db0b42e21700a2e968abde6f 2026-09-02T13:49:37-06:00 2026-09-02T13:49:37-06:00 docs(accelerators): #20 β€” set TU boundaries at the rodata island's jtbl spans, at segmentation time +3675 09886be66bfc1eebe8d09ef1d75489c451bed405 2026-09-02T13:54:16-06:00 2026-09-02T13:54:16-06:00 docs(phase-31): S72 FINAL β€” R22 213/213, 14 main banked, main 52.6%, frontier 133 +3676 b173d88676a1625995d57a0d9d65c425c18ee508 2026-09-02T14:03:48-06:00 2026-09-02T14:03:48-06:00 feat(split_indicator): detect subsegs that MUST be split before their switch fns can bank +3677 12f64ca84e0e6ae1eccf601cb8b12f9c95dee15c 2026-09-02T14:09:48-06:00 2026-09-02T14:09:48-06:00 docs: regenerate the cookbook index for Β§426-Β§431 +3678 27c81ed0c26e49f6c367253cced4eb92c7af8614 2026-09-02T14:10:20-06:00 2026-09-02T14:10:20-06:00 docs(phase-31): S72 addendum β€” split_indicator found 4 more binaries (16 fns / 3,613 ins) +3679 fd5e700cfe40f964d72b79b065b12230775bab63 2026-09-02T14:15:31-06:00 2026-09-02T14:15:31-06:00 chore(tools-health): note when to flip split_indicator from informational to a hard gate +3680 983df054f2a907bbfdd5532eae49ab5fd63fce17 2026-09-02T14:38:39-06:00 2026-09-02T14:38:39-06:00 feat(draw): audit the exclude list as a PREREQUISITE β€” a stale one is refused +3681 4f66709adee1da777e6600ef0bb4b459b05c43e4 2026-09-02T14:39:09-06:00 2026-09-02T14:39:09-06:00 chore(exclude): promote the wave exclude list to config/wave_exclude.txt +3682 ab0bbd257b143ccbb1fa279bbad08fac4df34820 2026-09-02T14:39:55-06:00 2026-09-02T14:39:55-06:00 docs(phase-31): S72 addendum 2 β€” exclude list regenerated, draw refuses a stale one +3683 ca7102e3b6df8babe8f0e4a832229640932c4853 2026-09-02T14:54:27-06:00 2026-09-02T14:54:27-06:00 fix(exclude_audit): pin curated WALLs so a derived classifier cannot drop them; merge 7 walls ledgers +3684 e830e63be5f31d237d9cbf559778a07a5530f87b 2026-09-02T14:55:15-06:00 2026-09-02T14:55:15-06:00 fix(draw_waves): normalise exclude rows to (binary, fn) β€” the list was excluding NOTHING +3685 a5a78bc9cfcfb192e1947acff35970dc6fda740f 2026-09-02T15:07:58-06:00 2026-09-02T15:08:18-06:00 fix(split_src_region, jr_isolate): five defects in the overlay TU-split path (blocked since Phase 26) +3686 ce62b9762fa2519049a0b0b0d82f430110750b4c 2026-09-02T15:18:37-06:00 2026-09-02T15:18:37-06:00 fix(exclude): add the two Β§179-C stubs main's own source documents as unmatchable +3687 5b6a2e86dd85a5e8795ae549e66ae21773fa052c 2026-09-02T15:19:12-06:00 2026-09-02T15:19:12-06:00 fix(exclude): drop func_8005C1C0 β€” its INCLUDE_ASM is inside a comment; it is banked +3688 6c2a3bb43b7fd8093ce781f73cb2e0c6c22811cf 2026-09-02T15:24:29-06:00 2026-09-02T15:24:29-06:00 docs(cookbook): Β§432 β€” defeat cse's mask merge with a shift pair that combine folds back +3689 15b0754e70cc0bd86457a0a41eaca08bd40b2444 2026-09-02T15:42:23-06:00 2026-09-02T15:42:23-06:00 docs(cookbook): Β§433 β€” case source order is the dominant residual on switch functions +3690 379b7eb1a0ac553a46d3a882ebf1f7116f25e841 2026-09-02T15:51:42-06:00 2026-09-02T15:51:42-06:00 docs+exclude: Β§434 β€” two symbols, one frame; SaveLoadRoutine is NOT bankable as C +3691 8946b88a328a42419dd6eeadd62027415ff522fb 2026-09-02T15:51:59-06:00 2026-09-02T15:51:59-06:00 fix(exclude): actually add SaveLoadRoutine β€” my guard matched the substring in a comment +3692 cdd4aadccc88dadbdfc664556d6637e6fe0bf140 2026-09-02T15:57:56-06:00 2026-09-02T15:57:56-06:00 docs(cookbook): Β§428a sharpened β€” break-vs-return is a PER-ARM regalloc dial +3693 e17fac941153c904075d1a2e7c5fd6a4513ce8d6 2026-09-02T16:01:42-06:00 2026-09-02T16:01:42-06:00 docs(cookbook): Β§430 REWRITTEN β€” a goto into a loop is fine; hand-hoist what it costs +3694 383ff02d93d6651862455aaff6a94605936fad3c 2026-09-02T16:21:49-06:00 2026-09-02T16:21:49-06:00 fix(main): align 12 forward declarations with their definitions (Β§376), byte-neutral +3695 35307803f73ff7ea41012972ecf6a002a3b2371e 2026-09-02T16:22:10-06:00 2026-09-02T16:22:10-06:00 feat(main): 6 more banked byte-identical from wave S73m_1 +3696 e1631eaacb13fca5b3c1dea983004765b1508cba 2026-09-02T16:24:23-06:00 2026-09-02T16:24:23-06:00 feat(main): CdReadSectorReadyCB (424) + func_80035C4C (248) banked byte-identical +3697 f06d81a7d06ac3871d30979fab7af1e9e50f2076 2026-09-02T16:28:07-06:00 2026-09-02T16:28:07-06:00 feat(main): StreamLoadStateMachine banked β€” all 9 wave drafts in; gate_main is preprocessor-aware +3698 2c1d21bb9da729cf0e57dbeca120cbdfe9f56bd0 2026-09-02T16:34:13-06:00 2026-09-02T16:34:13-06:00 docs(phase-31): S73 CLOSE β€” R22 213/213, 23 main banked this session, main 56.5%, frontier 124 +3699 891b240b5da57316986a94da83c5110f4a24079f 2026-09-02T16:45:33-06:00 2026-09-02T16:45:33-06:00 chore: regenerated burndown +3700 0840c0991c26c0b9490881cd1b6a686ed5e39a24 2026-09-02T17:00:16-06:00 2026-09-02T17:00:16-06:00 docs(SETUP): fix four stale spots the tool-inventory update missed +3701 aaed146bb288a8280fbd171b24918970751d3687 2026-09-02T17:05:44-06:00 2026-09-02T17:05:44-06:00 fix(docs): restore Β§429 which I deleted, and retract a false accusation in Β§434 +3702 5ae43099e0cae70a67547a988dca33aa974e487c 2026-09-02T17:06:52-06:00 2026-09-02T17:06:52-06:00 docs(phase-31): S73 CLOSE addendum β€” corrections, and the known-remaining list +3703 9f8242d63c0aaee6a2de2f9eaeeb92f6e04c2a22 2026-09-02T17:14:32-06:00 2026-09-02T17:14:32-06:00 fix(progress): the #else half of a NON_MATCHING block is LIVE β€” REAL was undercounting by 7 +3704 57e5f970c876d5c111928b208c7b939d8dc5a769 2026-09-02T17:15:28-06:00 2026-09-02T17:15:28-06:00 docs(tools): four docstrings describing pre-session behaviour +3705 c43008a48b2c823c925d7b89454d278b44b95702 2026-09-02T17:16:36-06:00 2026-09-02T17:16:36-06:00 docs(playbook): seven stale spots β€” the copy-paste command was the worst +3706 78ef96f606b439d3cf819720fba2bd00c216b6e5 2026-09-02T17:17:07-06:00 2026-09-02T17:17:07-06:00 docs: cookbook Β§426/Β§434, memory-map extent, Makefile overlay comment +3707 a0ff94626a138e773872b74a12655d6a20bd8989 2026-09-02T17:17:44-06:00 2026-09-02T17:17:44-06:00 docs(phase-31): all 40 actively-misleading audit findings worked, not deferred +3708 aa302aa050810077a0c0e23642bccb87dcaa55fb 2026-09-02T17:25:57-06:00 2026-09-02T17:25:57-06:00 docs(phase-31): S73 FINAL checkpoint β€” consolidated, verified, fresh-session ready +3709 33c292dea5610b3b613487f94067b14841c22e58 2026-09-02T18:00:28-06:00 2026-09-02T18:00:28-06:00 feat(overlays): split the 4 carve-blocked subsegs at their jtbl-span TU boundaries +3710 c7d67048a0c9c5bfa8d4fceac832927c741512e4 2026-09-02T18:00:43-06:00 2026-09-02T18:00:43-06:00 chore(waves): regenerate config/wave_exclude.txt β€” the CARVE-BLOCKED class is gone +3711 95c7b7fe0f7b8462612b27b6cc16daa258737d90 2026-09-02T18:11:48-06:00 2026-09-02T18:11:48-06:00 fix(tools): two tools read a source of truth describing a different world (+ hard-gate the third) +3712 f2f3103691cf15b5e59a9383d7840b5dcc55f97d 2026-09-02T18:34:03-06:00 2026-09-02T18:34:03-06:00 feat(decomp): parallel gate β€” 7 fns across 7 binaries (10 workers) +3713 797cb97cb7119b4b4245beb379b5416ca5eba6c5 2026-09-02T18:38:30-06:00 2026-09-02T18:38:30-06:00 feat(decomp): parallel gate β€” 9 fns across 6 binaries (8 workers) +3714 7c2342f87fe109d0e46cb1e1bb08bd114d27a5ca 2026-09-02T18:49:40-06:00 2026-09-02T18:49:40-06:00 feat(decomp): parallel gate β€” 5 fns across 3 binaries (4 workers) +3715 7ce27c0d1f4a2082afc2d6f154cf97083e867eee 2026-09-02T18:57:20-06:00 2026-09-02T18:57:20-06:00 feat(decomp): parallel gate β€” 2 fns across 2 binaries (6 workers) +3716 ee2963514ae7277ca51e1e270866708d1ee9bcf9 2026-09-02T19:04:41-06:00 2026-09-02T19:04:41-06:00 fix(tools): jtbl_rodata_pads measured a .s rodata span without its trailing .align +3717 0109f5bc92d7f4e211382975261d78f35f6d5292 2026-09-02T19:05:04-06:00 2026-09-02T19:05:04-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (2 workers) +3718 d0389352d73db13d0f198e6acf29c0e8eba22cf1 2026-09-02T19:09:29-06:00 2026-09-02T19:09:29-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (1 workers) +3719 e9220d2d8ac4094e18a9c7bf4c138f0c9c23138b 2026-09-02T19:10:57-06:00 2026-09-02T19:10:57-06:00 fix(pgate): a carve left asm/ stale, and the refusal that reported it named nothing +3720 3a886b9652ee2ef955eef8eed22163eab52635ab 2026-09-02T19:22:16-06:00 2026-09-02T19:22:16-06:00 fix(tu-split): a block comment a construct OPENS MID-LINE and WRAPS defeated every peeler +3721 5e10215269f105dc7dae4e941bd053f1d600ce81 2026-09-02T19:23:25-06:00 2026-09-02T19:23:25-06:00 feat(md): bank the 4 -O0-stranded functions β€” and the class is now essentially empty +3722 2954b250ecffc7eb3308c72217cb7d4084f0d483 2026-09-02T19:25:24-06:00 2026-09-02T19:25:24-06:00 feat(decomp): parallel gate β€” 5 fns across 1 binaries (1 workers) +3723 089311e74d8ef3530c150c93063688bd5a2973ab 2026-09-02T19:26:16-06:00 2026-09-02T19:26:16-06:00 feat(md_SC07_004): 10/10 banked β€” md_SC07_004 is now ZERO stubs, and the "decl conflicts" were fake +3724 6e840730a9d9f5f28d4e757e396858cce4c9fd3a 2026-09-02T19:34:09-06:00 2026-09-02T19:34:09-06:00 feat(carve): bank 4 more via the carve chain β€” and Β§8b's "non-adjacent => ISOLATE" is over-strict +3725 5208f2279d50be4dd54d5756a2a5d5477e6b6553 2026-09-02T19:35:21-06:00 2026-09-02T19:35:21-06:00 feat(decomp): parallel gate β€” 2 fns across 1 binaries (1 workers) +3726 8edb918480b0ff908f019aeda902b1ba1a650644 2026-09-02T19:38:56-06:00 2026-09-02T19:38:56-06:00 feat(cards): size-filter the same-address lead (Β§238 homonym) + bank the S74 lever set +3727 b24394e7320e874edf24dd572edf5bbfcbabc58e 2026-09-02T19:40:46-06:00 2026-09-02T19:40:46-06:00 docs(phase-31): S74 FINAL checkpoint β€” 50 banked, seven tool defects, R22 213/213 +3728 eb0329b3a49eb54a7402966b5136001948aedace 2026-09-02T19:53:56-06:00 2026-09-02T19:53:56-06:00 docs: the five agent-authored tool changes that shipped with a commit message and no docs +3729 7f7e1c7d90440252f4b34d6874764fea78073c18 2026-09-02T19:54:10-06:00 2026-09-02T19:54:10-06:00 docs(phase-31): refresh the S74 checkpoint β€” Β§440/Β§441 and the doc-state line +3730 cdd535e45b7e5533d3355646bc376cdff215fbfc 2026-09-02T20:30:22-06:00 2026-09-02T20:30:22-06:00 fix(tools): reconcile_tu's cc1 premise, the &-cast arms, and the worktree sig gap +3731 0c2b37a28727b67d851012fbb848a890f6642dcd 2026-09-02T20:33:21-06:00 2026-09-02T20:33:21-06:00 fix(gate): overlays.mk carve-state snapshot was singular, so the revert half-restored +3732 cb948a6bbcd4a945a82231acd157f867fad9c921 2026-09-02T22:15:20-06:00 2026-09-02T22:15:20-06:00 feat(decomp): the ov_SC01 reloc-only cluster + its 5th latent victim β€” 5 fns, 1,301 ins +3733 abea9f0ac2988102f7e8eeb1265a1b59035bde34 2026-09-02T22:35:50-06:00 2026-09-02T22:35:50-06:00 feat(decomp): bank func_8016AE5C (85 ins) + frontier_classify β€” the frontier is not a drafting problem +3734 23cd3a43a5bd3c0cba9e0a7fbc1e3f081dedaa13 2026-09-02T22:51:29-06:00 2026-09-02T22:51:29-06:00 feat(decomp): bank main:func_8005DCA0 (118 ins) β€” and SaveLoadRoutine's body is BYTE-IDENTICAL +3735 cf7f8372316956f30c4cbdc08734e05baa19a65d 2026-09-02T23:05:27-06:00 2026-09-02T23:05:27-06:00 fix(gate): main's TABLE REJECT verdict was unreachable β€” SaveLoadRoutine is a CARVE, not plumbing +3736 ac55da69d1eb5007d0587552e3087cf759e0f05a 2026-09-02T23:11:35-06:00 2026-09-02T23:11:35-06:00 docs(phase-31): S75 checkpoint β€” 7 banked, seven instrument defects, SaveLoadRoutine is a carve +3737 6d56972a4b04bc971a0ea23b0e79a6325d539881 2026-09-02T23:18:58-06:00 2026-09-02T23:18:58-06:00 docs(R31): S75 decision log β€” seven walls were seven instruments; leave the 12,000 +3738 1bac13b6641b0e8330693afc0d4982136bf161e6 2026-09-02T23:34:01-06:00 2026-09-02T23:34:01-06:00 fix(jtbl): the pad walk cannot see a verbatim-asm rodata block β€” SaveLoadRoutine banks (bytes, not a decompile) +3739 c05ea15cbe945a249097785441be8e2fc50673b2 2026-09-03T00:01:11-06:00 2026-09-03T00:01:11-06:00 feat(tools): asm_in_c.py β€” 154 game functions are assembly wearing a .c extension +3740 8e3ce81a6917936e6c72c2dbea3233d75b909436 2026-09-03T00:02:02-06:00 2026-09-03T00:02:02-06:00 docs(phase-31): S75 addendum β€” the frontier is 154 game functions bigger than reported +3741 f5f4c2eeec120ec1e38745027d7949d5dfcafaf5 2026-09-03T00:12:07-06:00 2026-09-03T00:12:07-06:00 feat(decomp): bank func_801806F8 + func_80180ABC (498 ins) + frontier_classify reads the journals +3742 70de5a8611ef15ac8859c2eb8ecc7bcc79e95c72 2026-09-03T00:18:49-06:00 2026-09-03T00:18:49-06:00 feat(tools): verbatim_target_s.py β€” the 147 asm-posing-as-C functions are workable again; bank func_8017DB98 +3743 72fa4820272786965da408a168c57b9546f552e3 2026-09-03T00:22:24-06:00 2026-09-03T00:22:24-06:00 feat(tools): verbatim_to_stub.py β€” put the 147 asm-posing-as-C functions back where the gates can reach them +3744 ce79a3e432bcf058f02e2c5e3d74db3b9c959389 2026-09-03T00:30:55-06:00 2026-09-03T00:30:55-06:00 docs(cookbook): Β§449 β€” four compiler dials from the S75 redraft wave, two byte-gate confirmed +3745 1e86617ff80785607a9d6b07aa564cc597aa1542 2026-09-03T00:34:17-06:00 2026-09-03T00:34:17-06:00 docs(cookbook): Β§450-Β§452 β€” verbatim pipeline, evidence sources, and a correction to Β§448 +3746 8009f83b4051d9e71cc0b82e6341a074ef9cbe2f 2026-09-03T00:47:04-06:00 2026-09-03T00:47:04-06:00 fix(tools): verbatim_target_s wrote targets into asm/, which the Makefile globs as build objects +3747 a68197b32da9a5c6944eb448f3d331e705988df2 2026-09-03T01:06:22-06:00 2026-09-03T01:06:22-06:00 feat(decomp): SaveLoadRoutine DECOMPILED to real C β€” 1,179 ins, and the Β§434 wall was a symbol boundary +3748 590fb37447c211e405d57f5b160729e972494694 2026-09-03T10:41:13-06:00 2026-09-03T10:41:13-06:00 fix(gate_main): refuse to destroy uncommitted main work; name a tool refusal instead of hiding it +3749 5172df5f0b1c54219e0629accc2fa603236dc0ba 2026-09-03T10:41:57-06:00 2026-09-03T10:41:57-06:00 fix(build): REORDER_TUS missed 800c2_2/800c2_3 β€” $(filter) is an exact stem match +3750 f0eea33381f92c83c4428ea1d6e9486c7a8b048a 2026-09-03T10:44:32-06:00 2026-09-03T10:44:32-06:00 refactor(main): convert 20 SDK-C-REORDER verbatim bodies to INCLUDE_ASM stubs β€” byte-neutral +3751 254feb8ee4cf4b53f2361ef4a75be0bb3396495a 2026-09-03T11:37:07-06:00 2026-09-03T11:37:07-06:00 fix(gate_main): the uncommitted-work guard belonged OUTSIDE the bisection loop +3752 fc7caf599b137eaef8ad6c89c5d0cb3d500ec23b 2026-09-03T12:05:37-06:00 2026-09-03T12:05:37-06:00 refactor(tools): retire asm_in_c.py β€” the taxonomy is DATA now, not a regex census +3753 261b8a4fd399c06e624a095a42852e7fd290af83 2026-09-03T12:12:06-06:00 2026-09-03T12:12:06-06:00 feat(decomp): bank 20 SDK-C-REORDER functions β€” the "Β§332/Β§188 wall" was the reorder island +3754 af4912e624bf4d9bd7a2898ae282f968b28d6893 2026-09-03T12:13:02-06:00 2026-09-03T12:13:02-06:00 docs(phase-31): S75 FINAL checkpoint β€” 32 banked, nine instrument defects, the verbatim class mapped +3755 163c91e420263ed90c246cbc85f0f72a8b99e270 2026-09-03T12:26:26-06:00 2026-09-03T12:26:26-06:00 docs(phase-31): correct the S75 checkpoint's figures and record the one-line UNPLACED fix +3756 20fea212df3d7e3f92eeb137aaf1877c9d3e42a6 2026-09-03T12:30:05-06:00 2026-09-03T12:30:05-06:00 fix(config): drop the stale SaveLoadRoutine symbol + its two wall entries +3757 d564b4b4e718febf18eb97ef985e7224fbc078d4 2026-09-03T12:52:09-06:00 2026-09-03T12:52:09-06:00 feat(gate_main): persist every proven verdict the moment it exists +3758 08d49c171537c9fb1c4793fa143b866dcd13d3e2 2026-09-03T13:00:16-06:00 2026-09-03T13:00:16-06:00 feat(tools): gate main's slates in parallel worktrees, arbiter unchanged +3759 9992cab319ca080352d284be15409eca9839a879 2026-09-03T13:04:57-06:00 2026-09-03T13:05:11-06:00 refactor(main): convert the last 9 DECOMPILE-NOW verbatim bodies to stubs +3760 9ab0d9eb67bc05d9098fac222ce045dbbd0becc8 2026-09-03T13:20:19-06:00 2026-09-03T13:20:19-06:00 fix(gate_main): refuse a verbatim-asm draft at slate load +3761 d7a9f471b43cacc18b404600124b4e1432f784bf 2026-09-03T14:02:09-06:00 2026-09-03T14:02:09-06:00 refactor(fleet): convert 26 DECOMPILE-NOW verbatim bodies to stubs +3762 dcbcb04bf16b356a3b97d05652fbef9037c8629a 2026-09-03T14:14:11-06:00 2026-09-03T14:14:11-06:00 fix(harvest_verify): refuse a verbatim-asm draft, same as gate_main +3763 186a8b154812f6fa5a14a06045e9a87752b46649 2026-09-03T14:17:53-06:00 2026-09-03T14:17:53-06:00 fix(match_one): model the reorder island, not maspsx, for its four TUs +3764 9df4ae32f65115178315b1784f6f844b09e2849b 2026-09-03T14:20:44-06:00 2026-09-03T14:20:44-06:00 fix(api_agent): never warm-start a pack from the target's own assembly +3765 63d9a36f8d4d5106979eb4a1e6319f4baa482b4f 2026-09-03T14:25:26-06:00 2026-09-03T14:25:26-06:00 fix(rtu_match): route the reorder-island TUs through as -O2, like match_one +3766 1778556b6da2de95456346642e2481820ed9487b 2026-09-03T14:26:57-06:00 2026-09-03T14:26:57-06:00 fix(draw_waves): a ledgered stub that is still OPEN is still work +3767 b4b2400d657e34dcbb4053f5f546dbcd43959855 2026-09-03T14:34:54-06:00 2026-09-03T14:34:54-06:00 docs(cookbook): Β§460 β€” read the scheduler's ready list with -dS +3768 096fe153cc8743480b75085ac25f274c80895eba 2026-09-03T14:40:01-06:00 2026-09-03T14:40:01-06:00 feat(decomp): parallel gate β€” 10 fns across 4 binaries (8 workers) +3769 505a50a9b6051e96a94929ea8ed0ec8d48f43cc8 2026-09-03T14:47:38-06:00 2026-09-03T14:47:46-06:00 fix(draw_waves): --main was a no-op; every mixed draw saw ZERO main functions +3770 1dbbdbbcd2cfa885f2005d485ff51e13ac548560 2026-09-03T14:48:47-06:00 2026-09-03T14:48:47-06:00 docs(decision-log): S76 β€” five more instrument defects, one shape +3771 c982efada33f86f04cf71431cf5bcce914c51cad 2026-09-03T14:49:29-06:00 2026-09-03T14:49:29-06:00 docs(playbook): record the S76 draw and oracle fixes as procedure +3772 37beb6420b1f3f700177e79cbbffa6248e38889a 2026-09-03T14:54:56-06:00 2026-09-03T14:54:56-06:00 refactor(fleet): convert 11 self-contained verbatim units to stubs +3773 dc4412b1de0811d408e1abff3bbf7f5b5001adfa 2026-09-03T15:02:50-06:00 2026-09-03T15:02:50-06:00 fix(verbatim_to_stub): refuse a Β§179-C epilogue-less fragment +3774 2eac966cc546d3b9dbdad4e812ae323d24c43a86 2026-09-03T15:42:56-06:00 2026-09-03T15:42:56-06:00 fix(manifest): six Β§179-C fragments are PERMANENT-VERBATIM, not decompilable +3775 371a18b6de648cf68739080e19c561eae332dc80 2026-09-03T15:50:31-06:00 2026-09-03T15:50:31-06:00 docs(cookbook): Β§461 β€” laundering can be the defect; Residual A is single-op only +3776 bb36198eeab6a50aa0d984436bfaf49bf7115b09 2026-09-03T16:00:05-06:00 2026-09-03T16:00:05-06:00 docs(cookbook): Β§462 β€” four levers from func_80024054 (74/53/32 -> 4) +3777 bf056e179f334fab078cde1a74ab5314a0e5643a 2026-09-03T16:00:33-06:00 2026-09-03T16:00:33-06:00 docs(cookbook): Β§463 β€” spill slots are 8 bytes; the Β§41b prologue wall is refuted +3778 66bf1ebe62dd7708f479ec7e0734c96e6e9cb175 2026-09-03T16:02:32-06:00 2026-09-03T16:02:32-06:00 docs(cookbook): Β§464-Β§466 β€” volatile levers, the ASPSX slot-hop gap, and main's -O0 address law +3779 3eea600c2aa0561ffc23db37390746558b5394f7 2026-09-03T16:03:21-06:00 2026-09-03T16:03:21-06:00 docs(cookbook): add Β§464, which the previous commit's message described but did not contain +3780 b143edb84aee38f52449133962415243c4f0d1f8 2026-09-03T16:05:01-06:00 2026-09-03T16:05:01-06:00 docs(cookbook): Β§467 β€” global-alloc ties break on declaration order; copied clobber lists cost instructions +3781 0caf4e5c2055b6b50b1a669abfeb7c46c53168be 2026-09-03T16:06:03-06:00 2026-09-03T16:06:03-06:00 docs(cookbook): Β§468 β€” the %lo-fold extends to stores; masking hid a wrong operand order +3782 823c6c798d7af46e73382d2c25feefdadd1fe838 2026-09-03T16:06:20-06:00 2026-09-03T16:06:20-06:00 docs(cookbook): Β§461 addendum β€” a register pin can be the defect too +3783 978a086ebbc662b272d25bf0ec5af2c8268ea3bb 2026-09-03T16:07:52-06:00 2026-09-03T16:07:52-06:00 docs(cookbook): Β§469 β€” the MEM_IN_STRUCT_P alias unlock; Β§463's spill law confirmed independently +3784 9467db409ba14a6bfe317fa893c2ac5627de5364 2026-09-03T16:11:08-06:00 2026-09-03T16:11:08-06:00 docs(cookbook): Β§470 β€” four CSE/sched levers from func_800301C8 (133 -> 18) +3785 0c74457f27ded6a67d539c5e5ee7064149ef423d 2026-09-03T16:12:14-06:00 2026-09-03T16:12:14-06:00 docs(cookbook): Β§471 β€” a launder's cost is an allocno, and $t0 belongs to reload +3786 e6c0fad8184d51414b2f56055511ddde88585a0d 2026-09-03T16:13:34-06:00 2026-09-03T16:13:34-06:00 docs(cookbook): Β§472 β€” Β§148-A's hoist threshold is 29 with a call, not 58 +3787 a4d6ec498b579c9c3856740b0d4bf0fe5ef91582 2026-09-03T16:18:49-06:00 2026-09-03T16:18:49-06:00 docs(cookbook): Β§473 β€” Β§265's handwritten verdict for func_8017DC80 is refuted +3788 77dc52c633e155c5da75eddf68312778febe529a 2026-09-03T16:20:59-06:00 2026-09-03T16:20:59-06:00 docs(cookbook): Β§474 β€” a PROVED -O0 floor from split_tree + stupid.c +3789 3db8b2b117c7b6e5097b8f5b4d19251e12fd8710 2026-09-03T16:21:35-06:00 2026-09-03T16:21:35-06:00 docs(cookbook): Β§475 β€” the "memory" fence as a cse invalidator; (b*3)<<3 over b*24 +3790 920f8bac357a49513cc85ced54faa34e93a137c0 2026-09-03T16:29:55-06:00 2026-09-03T16:29:55-06:00 docs(cookbook): Β§476 β€” a hard-register pin strips nonzero_bits and reg_n_sets==1 +3791 5bb71db7a943d25c4897ca2327bab602f80b3598 2026-09-03T16:49:04-06:00 2026-09-03T16:49:04-06:00 feat(decomp): parallel gate β€” 1 fns across 1 binaries (8 workers) +3792 fc644dddb4de1f9753ee29ee2cd66c8622c0ee8e 2026-09-03T17:05:47-06:00 2026-09-03T17:05:47-06:00 feat(decomp): bank 9 main functions, including main itself and the 670-ins giant +3793 c8343668434fc6bc49c44ea7844a6070489d0edc 2026-09-03T17:13:56-06:00 2026-09-03T17:13:56-06:00 feat(decomp): bank 2 more main functions from the real-cc1 MATCH set +3794 820189de4fe612bd69da41f88a73972d615363f4 2026-09-03T17:17:25-06:00 2026-09-03T17:17:25-06:00 feat(decomp): bank func_8005EB28 by syncing its extern to the freshly-banked callee +3795 4d8493aa326cd44811fef061bbc9b1d82bc97153 2026-09-03T17:19:33-06:00 2026-09-03T17:19:33-06:00 feat(decomp): bank func_8005EC00 by syncing two declarations from the TU +3796 14f0f9143863322c2a379d4ad3ff1b2a9d038481 2026-09-03T17:20:36-06:00 2026-09-03T17:20:36-06:00 feat(tools): sync_tu_decls β€” bank a draft by copying the TU's own declarations +3797 9bdd2e27f70831889c01226d172bec42e8bc85e9 2026-09-03T17:31:35-06:00 2026-09-03T17:31:35-06:00 fix(sync_tu_decls): read the post-build conflict too, and refuse a NEAR up front +3798 e0229af9083b63cbb503711bc49a73a358962127 2026-09-03T17:41:43-06:00 2026-09-03T17:41:43-06:00 docs: restore Β§462/Β§463, record S76 tooling in SETUP, add the gate-triage step to the playbook +3799 4069ee43a7c2f855275f08a740d74b809ebe6a9a 2026-09-03T18:14:08-06:00 2026-09-03T18:14:08-06:00 docs(phase-31): S76 FINAL checkpoint β€” 24 banked, five more instrument defects, four walls refuted +3800 2312c1f557308df5cf9797c286628cdac0c67d9c 2026-09-03T18:45:20-06:00 2026-09-03T18:45:20-06:00 fix(cast_self_callers): a statement keyword is not a return type +3801 54717c4b62704f61d686ea9180ad51de96c38a29 2026-09-03T18:45:52-06:00 2026-09-03T18:45:52-06:00 plumb(main): Β§378 self-caller casts + decl sync for 7 self_decl_tu drafts +3802 1b648fcc5b1171fd2d190be134c24aa446bdad2b 2026-09-03T18:48:28-06:00 2026-09-03T18:48:28-06:00 Revert "plumb(main): Β§378 self-caller casts + decl sync for 7 self_decl_tu drafts" +3803 c04d5e00934ce2dd4f86794f2ce88e037882fa9c 2026-09-03T18:49:56-06:00 2026-09-03T18:49:56-06:00 fix(cast_self_callers): --sync-decls must emit a declaration the TU can parse +3804 cb1b6fc9fb4cf3ec01f467d61f10dfb655ab55ad 2026-09-03T18:49:56-06:00 2026-09-03T18:49:56-06:00 plumb(main): Β§378 self-caller casts + decl sync for 7 self_decl_tu drafts +3805 a9980bdd8c07bd199739d86eacf975f3621ef26a 2026-09-03T18:53:15-06:00 2026-09-03T18:53:15-06:00 feat(decomp): bank func_80013154 and func_8005EAC8 in main (Β§378 self-decl chain) +3806 442b3ce65125b63a388c7d6d4345bdfa074bc964 2026-09-03T18:55:20-06:00 2026-09-03T18:55:20-06:00 feat(decomp): bank func_8005E3AC β€” a definition is a declaration +3807 454d3878bca5908f4f6419a752e6fe0e32a47212 2026-09-03T18:56:21-06:00 2026-09-03T18:56:21-06:00 fix(sync_tu_decls): a definition is a declaration; a gate refusal is not a verdict +3808 a8aa670d966656945b56575208a74988070faf39 2026-09-03T18:57:31-06:00 2026-09-03T18:57:31-06:00 feat(decomp): bank func_8005E79C β€” both sync_tu_decls fixes proved +3809 ef0cb64c14811e44a4756a03ba7ad62bf3998aa5 2026-09-03T18:58:06-06:00 2026-09-03T18:58:06-06:00 plumb(main): undo-journal the plumbing for the 3 drafts that did not bank +3810 04d9d28bb67b16ff147e3eb8339c5fa35e04a08d 2026-09-03T19:13:28-06:00 2026-09-03T19:13:28-06:00 feat(decomp): bank ov_SC06_032:func_8017D810 +3811 3c34f8f4a3f6d54075a72a04c7abff61072c91c9 2026-09-03T19:15:32-06:00 2026-09-03T19:15:32-06:00 plumb(overlays): Β§378 self-caller casts + decl sync for 12 self_decl_tu drafts +3812 408f826f29a7990dd259fcc3f449982bef6c126a 2026-09-03T19:16:51-06:00 2026-09-03T19:16:51-06:00 fix(blocker_probe): a verbatim draft is not a decompile +3813 c91c9dffeed099b609bade39e462d6c0088a7363 2026-09-03T19:18:12-06:00 2026-09-03T19:18:12-06:00 feat(decomp): parallel gate β€” 12 fns across 12 binaries (8 workers) +3814 c61c7ed93fd814a4004be7bdcd9bd82fe34844b8 2026-09-03T19:19:29-06:00 2026-09-03T19:19:29-06:00 docs(cookbook): Β§477 the self_decl_tu lane is mechanical (16/16 banked); Β§478 a verbatim draft is the strongest false signal a scoper can emit +3815 b5751c7c1e4e380b430f8644a3ba1d662f79fbf8 2026-09-03T19:25:02-06:00 2026-09-03T19:25:02-06:00 docs(phase-31): S77 checkpoint β€” 17 banked, the self_decl_tu lane closed, six instrument defects +3816 94b528b54e88e447993d96d32f038a9ab2b2cc37 2026-09-03T19:28:06-06:00 2026-09-03T19:28:06-06:00 feat(decomp): bank main:func_80021174 via permuter ILS (SCHEDULE-REORDER/2) +3817 a614d972c2a50edd2ebb9c090e8fda1b9155594e 2026-09-03T19:28:55-06:00 2026-09-03T19:28:55-06:00 feat(decomp): bank main:func_80040DE8 via permuter ILS (REGALLOC-PERM/$t1>$v1, 2 of 347) +3818 337a04004775422466087ca0e879f8e1eb90801a 2026-09-03T19:39:54-06:00 2026-09-03T19:39:54-06:00 feat(decomp): bank main:func_80024054 via permuter ILS (DELAY-SLOT/2, 4 of 91) +3819 534979b4e78d67b8c0b1b0b8fb4de5944e39397c 2026-09-03T19:41:45-06:00 2026-09-03T19:41:45-06:00 plumb(ov_SC01_084): Β§378 self-caller casts for func_80182A00 +3820 a0c855648ce54c1818bcf72324c570f5983f857c 2026-09-03T19:42:05-06:00 2026-09-03T19:42:05-06:00 feat(decomp): bank ov_SC01_084:func_80182A00 (Β§378 chain, 207 ins) +3821 be966bf0956471d5ff43532cf586f7463af20ad9 2026-09-03T19:45:55-06:00 2026-09-03T19:45:55-06:00 docs(cookbook): Β§479 the permuter's measured yield curve (one-shot at <=4, plateau above ~10); Β§480 a static blocker class the real pipeline removes is a phantom +3822 9d15598b5ae6f9ba6e4b8a6738145d9e1937efd4 2026-09-03T19:51:02-06:00 2026-09-03T19:51:02-06:00 docs(phase-31): S77 FINAL checkpoint β€” 21 banked, self_decl_tu closed, the permuter yield curve, eight instrument defects +3823 90042c111dc8430f1ccc6feabdf67508c4e3d9c6 2026-09-03T20:01:28-06:00 2026-09-03T20:01:28-06:00 rules(R61): not-judged is not a verdict; a draft-judging tool must model the real pipeline +3824 e059f85298f3f6d6c76ff77027615ff0a17640f9 2026-09-03T20:03:15-06:00 2026-09-03T20:03:15-06:00 config(wave_exclude): pin the 4 Β§332 delay-slot walls wall_sweep names in main +3825 f9f446449e6da95ad6fd2ea65bc367ae1e2843df 2026-09-03T20:08:27-06:00 2026-09-03T20:08:27-06:00 feat(claude_wave_packs): wire neighbor_ref into every pack, and resolve its names to the source spelling +3826 c35a21449ef31544378e4496aa5f808d38c8d545 2026-09-03T20:15:17-06:00 2026-09-03T20:15:17-06:00 feat(decomp): bank func_8005E13C and func_8005EAE8 from the S77w wave +3827 9df0cd29dd0cb62ccc4808cdd39cc706f92fb59b 2026-09-03T20:17:57-06:00 2026-09-03T20:17:57-06:00 docs(cookbook): Β§481 conflicting types is a SAME-SCOPE error; across scopes it degrades to a warning +3828 5b8a0d08040384f4dcf3c466bad811117d09efb9 2026-09-03T20:19:20-06:00 2026-09-03T20:19:20-06:00 feat(decomp): bank main:func_8005D538 from the S77w wave +3829 39ac37a808d05505b37e8edb2a427fb792d45e78 2026-09-03T20:20:56-06:00 2026-09-03T20:20:56-06:00 fix(gate_main): the in-TU clash pre-check must only compare FILE-SCOPE declarations +3830 1f2ae12b5d954f6ced3c4b33cf9a66e5f1cc5a2f 2026-09-03T20:21:22-06:00 2026-09-03T20:21:22-06:00 feat(decomp): bank main:func_8001FC08 (400 ins) and func_8002FF0C (166 ins) +3831 48df1a900fe3a7626e14640cececd6d7adb8f050 2026-09-03T20:21:42-06:00 2026-09-03T20:21:42-06:00 config(wave_exclude): two 'compiler wall' entries were stale wrong-oracle verdicts +3832 8e3e084f3b55ed4404f02e37cd8b696f12a78946 2026-09-03T20:24:44-06:00 2026-09-03T20:24:44-06:00 feat(decomp): bank main:func_8005D588 via the Β§8d scope-demote +3833 6f5d1ecdcac7e78028b5f7100a18cbdf1462b0a4 2026-09-03T20:29:47-06:00 2026-09-03T20:29:47-06:00 plumb(main): Β§378 self-caller casts for func_8006252C +3834 79006e5f4d5a8834edec6c9e9103669baef1c595 2026-09-03T20:31:27-06:00 2026-09-03T20:31:27-06:00 feat(decomp): bank main:func_8006252C (Β§378 chain + the double re-tie) +3835 f7702eac69e4ec741c3d39560359a2ef2a9013d0 2026-09-03T20:31:47-06:00 2026-09-03T20:31:47-06:00 docs(cookbook): Β§482 two independent re-ties, ordered β€” a re-tie is a scheduling barrier with a position +3836 8754b1a671f35e4f66a183b21b132d0c2ec6444d 2026-09-03T20:32:57-06:00 2026-09-03T20:32:57-06:00 feat(decomp): bank main:func_800301C8 (170 ins), first-gate clean +3837 3005fc1239d459d0dd175fe890c42e9d47d734af 2026-09-03T20:38:59-06:00 2026-09-03T20:38:59-06:00 fix(sync_tu_decls): a no-op sync is not progress, and a repeated symbol is not a blocker +3838 335e1d677db77d9f837566080d1d102469db4edd 2026-09-03T20:43:01-06:00 2026-09-03T20:43:01-06:00 feat(decomp): bank main:func_8001EA14 (371 ins) from close=89 +3839 3b959596f6284aa8a466591c2f3e4075e9f997a4 2026-09-03T20:43:32-06:00 2026-09-03T20:43:32-06:00 docs(cookbook): correct Β§479's yield curve β€” the permuter is 3/8 at <=4, not 3/3 +3840 984b50215f5ca4b0614f3130de76fb9180f19cbd 2026-09-03T20:46:54-06:00 2026-09-03T20:46:54-06:00 docs(cookbook): Β§483 the S77w wave harvest β€” six levers, four from banked bodies +3841 bfc0f43c927d75616713dda9e5f21fef3bc3b0b9 2026-09-03T20:52:15-06:00 2026-09-03T20:52:15-06:00 docs(phase-31): S77 CLOSE β€” 30 banked, main 57.1%->59.4%, ten instrument defects, R61 +3842 ec258ff75a5af7ced84f39989fa281b29b30ce2a 2026-09-03T21:05:50-06:00 2026-09-03T21:05:50-06:00 feat(recover_route): route a gate DROP to the tool that applies, and wire it into gate_main +3843 46097c2339bdb67d8200a879ae766c48b0e6048d 2026-09-03T21:09:59-06:00 2026-09-03T21:09:59-06:00 feat(permuter_sweep): hand a wave's NEARs to the permuter, and correct Β§479 a second time +3844 75a7169cc2c3a8ba8d879e7867d6539fcbb234a4 2026-09-03T21:12:21-06:00 2026-09-03T21:12:21-06:00 docs(phase-31): S77 addendum β€” recover_route + permuter_sweep, and the two self-inflicted defects they exposed +3845 4a0f9a3049c5041f3dbb7b0cd7678142be002020 2026-09-03T21:16:24-06:00 2026-09-03T21:16:24-06:00 docs: regenerate the cookbook index for Β§477-Β§483 +3846 867f09221cf15dbfdba04606b7a08e11fdd6ede7 2026-09-03T21:58:17-06:00 2026-09-03T21:58:17-06:00 feat(oracle): main gets its independent second oracle β€” contract Β§1.3 closed +3847 5399845172841fee8d217635043fb66468b4bcff 2026-09-03T22:07:31-06:00 2026-09-03T22:07:31-06:00 feat(psyq_bss_probe): a Phase-8 link exclusion re-derived from the bytes β€” 3 of 4 objects are not blocked as recorded +3848 a13b2a5c38697845691a58acd18af8d2ef29ba02 2026-09-03T22:20:57-06:00 2026-09-03T22:20:57-06:00 carve(main): 3-way -O0 island split of 800_b for func_8002C410 +3849 f4ff8267a56e0499b3712e2b283e1db1d409f917 2026-09-03T22:21:24-06:00 2026-09-03T22:21:24-06:00 feat(decomp): bank main:func_8002C410 (299 ins) β€” the first -O0 island in main +3850 b31e499c9b8fc5fd65b91a94e7b6b3cb3bedc811 2026-09-03T22:26:10-06:00 2026-09-03T22:26:10-06:00 fix(carve): repoint 800_b_2's INCLUDE_ASM paths to its own subseg +3851 f030992c67933947684d1c769a1c2ee834034cc2 2026-09-03T22:35:12-06:00 2026-09-03T22:35:12-06:00 fix(psyq_identify): read .text bytes, not objdump's rendering β€” 10 more objects located +3852 b05085b67af928fab3ad6406aa425040aa2e4d4b 2026-09-03T22:37:18-06:00 2026-09-03T22:37:18-06:00 docs(cookbook): Β§485 the placement map was parsing a pretty-printer β€” 25 objects invisible, not absent +3853 09de46fef3f4e6ab3cddf676181226d272b9f99e 2026-09-03T22:45:35-06:00 2026-09-03T22:45:35-06:00 docs: regenerate the cookbook index for Β§481-Β§485 +3854 ddbe7f455cd363a4dba1048b7ca80c4a6579262c 2026-09-03T22:48:58-06:00 2026-09-03T22:48:58-06:00 docs(R31): S77 decision-log β€” the frontier is wall-proof work now, and R61's twelve defects +3855 65c831b1ccc47d7165fc8f82e02d5649457b6e0b 2026-09-03T22:49:18-06:00 2026-09-03T22:49:18-06:00 docs(accelerators): S77 β€” three accelerators, all 'make the tool state its own denominator' +3856 375507834cd98df1e1d97e85d5b47a5254cbff55 2026-09-03T22:50:43-06:00 2026-09-03T22:50:43-06:00 docs(progress): main's R34 caveat is retired β€” its boundaries are independently verified now +3857 c9dd2fbc76c882881ec9efd0ddbc7a062df5a7d5 2026-09-03T22:51:28-06:00 2026-09-03T22:51:28-06:00 docs(phase-31): S77 FINAL checkpoint β€” 31 banked, contract Β§1.3 closed, the LINKED picture measured +3858 f55fd10dcab50e82f822454725b56ed912cfcc49 2026-09-03T22:51:35-06:00 2026-09-03T22:51:35-06:00 docs: regenerate the cookbook index for Β§486 +3859 c9454db4a45526a4e7aef8c84e8ddb76cacd0310 2026-09-03T22:57:49-06:00 2026-09-03T22:57:49-06:00 docs: refresh progress.md from the tools-health report run +3860 ac97233aa9f2abd3991bc37854674b635ceee805 2026-09-04T15:26:18-06:00 2026-09-04T15:26:18-06:00 docs(phase-31): S78 OPEN checkpoint β€” the census, the libpad-4.2.1 band finding, the confirmed completion order (#1-#13) +3861 a7394f44dce8d584276d4f8decf4204a146f254b 2026-09-04T15:57:06-06:00 2026-09-04T15:57:06-06:00 feat(phase-31): S78 #12 β€” the 800c3 "wall" band is LIBPAD 4.2.1 + LIBAPI 4.2: 46 names applied; integrate wired by subseg range; renames via ApplySymbols +3862 b212f40f198947d609cf08d5d1a33f48da6a5410 2026-09-04T15:58:09-06:00 2026-09-04T15:58:09-06:00 chore(psyq): bank the PsyQ 4.6 library zip + 4.5 toolkit zip (R20 hard-to-source SDK material; sha256 in CHECKSUMS); lib46/ is derived (ignored); progress.md regenerated +3863 a85733a48733233255683fc44d6b933eaee0edb0 2026-09-04T16:26:12-06:00 2026-09-04T16:26:12-06:00 feat(phase-31): S78 #3 β€” 13 "game code" subsegs were PsyQ objects: wired LINKED (libgte 70/30, libgs 33/7, snd 62/11); main's game-code metric corrected to 91.8% +3864 4c32475299f28ed291736e085a2ea099306b5d26 2026-09-04T16:32:43-06:00 2026-09-04T16:32:43-06:00 docs(phase-31): S78 FINAL checkpoint β€” #12 + #3 banked, the census, the three instrument corrections, task #4 design brief (SYS.o/VM_F .bss split), #5/#13 band context +3865 757bd82a0f1edbcdd4ae15bbcf0b5aa675d4f08f 2026-09-04T17:19:29-06:00 2026-09-04T17:19:29-06:00 feat(phase-31): S79 #4 β€” scattered-.bss split at link-prepare (psyq_bss_split): SYS.oβ†’libgpu2, VM_F.oβ†’snd12, GS_001.oβ†’libgs8 LINKED; libgpu_used retired +3866 58996ca4f7a15d344041458b1cd6bdaa5999d18d 2026-09-04T17:36:03-06:00 2026-09-04T17:36:03-06:00 feat(phase-31): S79 #13 β€” FOUND the EXE's libpad 4.2.1 + libapi 4.2 (PsyQ RTL 4.2 archive + the J421PD patch): 46/46 band objects link byte-identical +3867 02f060f607b87e1964b78692b22ffa6197269607 2026-09-04T17:53:02-06:00 2026-09-04T17:56:31-06:00 feat(phase-31): S79 #5 β€” the libpad 4.2.1 + libapi 4.2 band and the apicard region LINKED from real objects: 13 stubs + 4 TUs + the reorder island gone; main 16 stubs, fleet 38 +3868 0ab51c803cb92647bc2059cec773cbcf992befb3 2026-09-04T18:00:01-06:00 2026-09-04T18:00:01-06:00 feat(phase-31): S79 #6 (1) β€” md_MAIN_003: D_800D3200 was a data word carried as a stub; emitted inside its asm island, byte-identical (dd1b32ec); the census's H-VIRGIN phantom is gone +3869 af1644c02b34634db2ba6313fd6ff88e9f1f3033 2026-09-04T18:08:03-06:00 2026-09-04T18:08:03-06:00 feat(phase-31): S79 #6 (2) β€” ov_SC04_018: func_80181804 banked from its ov_SC04_019 twin (77 ins, byte-identical fe9b413f); its jump table was already inside the TU's carve, only the JTBL_PADS spec had been trimmed to 3 tables (S62) β€” now 0,0,0,0 +3870 02e2cb265a4ebf03e59d66dfddc07e0e2a956ad9 2026-09-04T18:08:23-06:00 2026-09-04T18:08:23-06:00 chore(phase-31): S79 #6 plumbing β€” ov_SC05_005: func_80181828's extern returns s32 (its body is the twin of ov_SC05_003:func_80181720); callers ignore the value, byte-neutral (452897fc) +3871 62475f7883ba02a21fb89b18cac265813d144316 2026-09-04T18:10:59-06:00 2026-09-04T18:10:59-06:00 feat(phase-31): S79 #6 (3) β€” two twin banks: ov_SC04_018:func_80181CB8 (67 ins, tail jtbl carve, pads 0,0,0,0,4) and ov_SC05_005:func_80181828 (87 ins, exact clone of ov_SC05_003:func_80181720 via family_remap) +3872 595fc9fa49bc2496b2a174d0a5e3ae39f60ade9f 2026-09-04T18:19:57-06:00 2026-09-04T18:19:57-06:00 docs(phase-31): S79 #6 close β€” cookbook Β§491 (the mechanical class: a phantom stub, two jtbl twins, one clone; three tool gaps), jtbl_pads_fix regex fix (+positive control), SETUP rows, census 35, checkpoint refreshed (task #7 brief) +3873 bf1b266e0788a69ef3c829c05da2b1c11296ed21 2026-09-04T18:24:21-06:00 2026-09-04T18:24:21-06:00 feat(phase-31): S79 #7 (1) β€” md_MAIN_003: func_800D06BC (33 ins) + func_800D0100 (29 ins) banked from their close-0 drafts; both are -O0-island bodies (the standalone checker needed --o0, the gate's Makefile wildcard already compiled the TU right); byte-identical dd1b32ec +3874 42d432770d0c55e073f2ff74da80c63b433f01b3 2026-09-04T18:24:21-06:00 2026-09-04T18:24:21-06:00 feat(phase-31): S79 #7 (2) β€” md_MAIN_020: func_800CB17C (30 ins) banked by a RAW splice, byte-identical 0990e041 β€” the 'match_one MATCH but the gate rejected β€” CAUSE NOT DETERMINED' verdict was gate_stage's transform ladder altering a correct body (it gates as NEAR); rtu_match MATCH + raw splice is the route +3875 80ddd40d23a0e688071df723ccf7e51791776dd2 2026-09-04T18:34:34-06:00 2026-09-04T18:35:38-06:00 docs(phase-31): S79 #7 close β€” cookbook Β§492 (plumbing was three things: a raw-splice bank, an -O0 checker flag, two R48 same-name phantoms), census 32, report, backlog ledger, checkpoint (task #8 brief); func_80011380 pinned as the Β§474 proved wall +3876 7129b6cac882a1029a1ddd5a1b767ad6b1b346f5 2026-09-04T18:39:40-06:00 2026-09-04T18:39:40-06:00 chore(phase-31): S79 #8 plumbing β€” main src/800.c: func_80015760's forward decl no-protoed + its 2 call sites cast (cast_self_callers --sync-decls); byte-neutral (143dbb89) +3877 06ee3c12345d06aad15303394430b2f07e1bbf69 2026-09-04T18:42:41-06:00 2026-09-04T18:42:41-06:00 feat(phase-31): S79 #8 (1) β€” main: func_80015760 (106 ins) banked from a permuter ILS score-0 winner (cycle 1) + plumbing: TU data spelling (u8 *D_800A5E60), the callee's TU prototype with a (u16) call-site cast for the target's andi, the permuter's typedef preamble stripped; gate_main BYTE-IDENTICAL 143dbb89 β€” the S76 journal had filed it as a 'genuine sched1 artifact' +3878 a0139c31c87a0aeada7a8121b4176790d3ac5a7c 2026-09-04T18:50:20-06:00 2026-09-04T18:50:20-06:00 docs(phase-31): S79 #8 close β€” cookbook Β§493 (the permuter route end-to-end; the D-NEAR ledger), p16_permute surfaces the permuter's parser refusals, SETUP row, census 31, report, checkpoint (task #9 brief) +3879 80eed5e9e99ec3e375b46f7c73743c8401dc7cca 2026-09-04T18:57:35-06:00 2026-09-04T18:57:35-06:00 feat(phase-31): S79 #9 (1) β€” md_MAIN_003: func_800D0174 (36 ins, -O0 island) banked from a Haiku agent's fresh C draft; byte-identical dd1b32ec +3880 ec786e0a46af8306714c3eb370ca0c51f03628da 2026-09-04T19:00:03-06:00 2026-09-04T19:00:03-06:00 feat(phase-31): S79 #9 (2) β€” main: func_80015608 (86 ins) banked: a Sonnet agent closed the permuter's last instruction by routing the accumulator add through a fresh temp ({ s32 xt = blockSize + x0; x0 = xt; } β€” expand_binop's target==op1 swap does not fire on a new pseudo); gate_main BYTE-IDENTICAL 143dbb89 +3881 0833b418e6a9b5a4e129f1d8261711dcc64b73a0 2026-09-04T19:03:23-06:00 2026-09-04T19:03:23-06:00 feat(phase-31): S79 #9 (3) β€” ov_SC05_018: func_80180BE0 (65 ins) banked: the S74 recipe's memcpy(12) became a jal under the TU's extern memcpy; re-spelled as a 12-byte struct assign (the TU's own Blk8 idiom) β€” real-TU MATCH, worktree gate + in-tree byte-identical +3882 a296bba0f34287c82c12e1e12008ac297f4e9685 2026-09-04T19:04:55-06:00 2026-09-04T19:04:55-06:00 feat(phase-31): S79 #9 (4) β€” md_MAIN_003: func_800D1D14 (65 ins, -O0 island) banked as genuine C (the S76 verbatim body retired): D_800D3630 read as *(s16*)&D_800D3630[i] so gcc materialises the base instead of folding %lo through $at; byte-identical dd1b32ec +3883 1961a7bfb19736c003cfd046875e66f85f30cd55 2026-09-04T19:05:29-06:00 2026-09-04T19:05:29-06:00 feat(phase-31): S79 #9 (5) β€” main: func_8002AC98 (114 ins) banked: the generic arm's val = r + b routed through a fresh s32 temp ({ s32 xt = r + b; val = xt; }, with b widened to s32) so expand_binop's target==op1 swap does not fire β€” the same lever as func_80015608; gate_main BYTE-IDENTICAL 143dbb89 +3884 cdf50f96d74f576fe16602ec1b0da9c4e18d9ae1 2026-09-04T19:43:50-06:00 2026-09-04T19:43:50-06:00 feat(phase-31): S79 #9 (6) β€” ov_SC06_010: func_801809E4 (33 ins) banked by the Sonnet escalation (the Haiku plateau's missing 2 ins was an early return that should fall through into the shared mask/store tail; the -0x10 no-save frame is two s16 locals, Β§186b); real-TU MATCH, worktree gate + in-tree byte-identical +3885 96c0fc02a73e9ae84ae5dc7f646efa6df4d826c4 2026-09-04T19:45:16-06:00 2026-09-04T19:45:16-06:00 feat(phase-31): S79 #9 (7) β€” ov_SC05_010: func_8017FFA8 (88 ins, 6-way jtbl switch) banked from a Sonnet agent's fresh draft (loop index s32 not s16 β€” Β§241 fused sign-extend; the D_801922B8 lookup into its own temp before the found/zero stores); tail jtbl carve at gate time; worktree gate + in-tree byte-identical +3886 2709321082295cc06aa8e9ee1e8ec11f3e72b013 2026-09-04T19:50:01-06:00 2026-09-04T19:50:01-06:00 docs(phase-31): S79 HANDOFF checkpoint mid-task #9 β€” 7 banks this task (open stubs 51 -> 25 this session), plateaus with residuals named, 11 drafting agents still running; tools/agent_verdicts.py extracts their final JSON verdicts from the subagent transcripts for the fresh session to aggregate (procedure + paths in the πŸ›‘ block) +3887 618e0907d4965c2d9f874465fb8d95be8d9897f3 2026-09-04T19:57:19-06:00 2026-09-04T19:57:19-06:00 feat(phase-31): S79 #9 (8) β€” ov_SC01_001: func_80181E04 (269 ins, the GAME-GTE 'uncertain' body) banked as compiler C by an Opus agent: sixteen D_801EDA?? globals as one 0x50-stride record array (Β§246-2/Β§200), a counted i<0x100 loop, the gte_stsz3 branch shape, and the OT insert as PsyQ's P_TAG addr:24 bitfield store (store_bit_field masks the value first); real-TU MATCH, worktree gate + in-tree byte-identical +3888 d04fe31882515842501d6c0ccff4dbc5269f5fec 2026-09-04T20:47:51-06:00 2026-09-04T20:47:51-06:00 feat(phase-31): S79 #9 (9) β€” main: func_8001EFE0 (468 ins, the largest G-UNKNOWN main body) banked from an Opus agent's draft: recovered the prior closeness-14 body from .run/match and closed all three [permuter]-filed clusters by reading the matched same-TU siblings func_8001DA34/func_8001EA14 β€” the addPrim tail's `ot` split so the sll lands between the two pinned luis, one zero-byte fence between the tpage `sh` and the q[7] RMW, a Β§419 density asm on (vh,vv2,vw) for the two-SVECTOR fill, and the shift split from its mask; rtu_match --tu src/800.c MATCH, gate_main --apply clean rebuild BYTE-IDENTICAL 143dbb89 +3889 402b7520c42163700f339eb94dd993ee7364ae82 2026-09-04T20:50:13-06:00 2026-09-04T20:50:13-06:00 feat(phase-31): S79 #9 (10) β€” ov_SC02_027: func_80180B3C (297 ins, F-FAR) banked from an Opus agent's draft: recovered the S76 closeness-23 body and broke the 5-attempt plateau with four dials β€” `tpg |= (y & 0x200) << 2;` as its own accumulator statement, a `register u32 c40 __asm__("$2")` pin on the (w&0x40)>>6 term, the `if (c) v -= 0x100` split into a second variable so sched1's birthing boost stops sinking the mask, and the inverted-arm `if (!c) vv = v; else vv = v - 0x100;` that keeps the &0xFFFF/-0x100 alive for the u8 store (the same arms un-inverted delete the andi); statement order INERT (792 permutations); real-TU MATCH after dropping the TU's duplicate Blk32_80180908 typedef; worktree gate + in-tree byte-identical +3890 7fbdb8fd6314097838caf6c0d4a6f0dfdafccf1d 2026-09-04T20:59:35-06:00 2026-09-04T20:59:35-06:00 fix(phase-31): S80 #9c β€” the permuter could not permute a PINNED seed, and it was our instrument: hide_asm carried only the `__asm__` spelling (3 S79 seeds use `asm("$7")`), permuter_ils warm-restarted from the DECODED waypoint (raw pins back in base.c β†’ cycles 2..N were silent parser refusals reported "(unchanged)"), and defines_fn refused K&R-style definitions (436 stored backlog drafts kept out of the lane for four phases). Fixed + R39-controlled over 5,311 drafts (the bare word `asm` in INCLUDE_ASM path strings was a caught false positive): re-hide every waypoint, assert the definition survived, abort exit-2 on a refusal (R61a), flushed logs (R55). Every S79 pinned seed now iterates; ov_SC06_022:func_8017DF28 (pinned WALL, closeness 2) reached 1 in its first cycle. cookbook Β§493 S80 correction + Β§494 v1 (S79 idioms); SETUP rows (p16_permute/permuter_ils, agent_verdicts.py) +3891 09e0b2781161a514ac3364ccea7014bd8703f93b 2026-09-04T21:21:05-06:00 2026-09-04T21:21:05-06:00 docs(phase-31): S80 #9c β€” the S79 drafting task's NEAR/WALL ledger: 15 rows logged to the backlog (each with the residual's gcc mechanism), the ≀3 residuals pinned as WALL candidates in config/wave_exclude.txt after an 8-seed permuter_ils sweep on the now-permutable pinned seeds (no score-0; func_80039DEC 9β†’2 = the K&R raw-preserve register, func_80023BF0 18β†’11 ADDRESSING, func_8017DF28's "1" was a divergent store rewrite β€” closeness stays 2, R14); cookbook Β§494 v2 (ten banks, the Opus verdicts' idioms: P_TAG bitfield store, inverted arms, sibling-reading, the 518-ins spelling laws, gdb-on-cc1 allocno arithmetic, K&R s16 params, true_dependence, field-boundary fences, extendhisi2 orphans, [][1] decls) + the final ledger; .run/S79w allowlisted (27 drafts + 3 permuter waypoints + verdict ledger + briefs, 264 KB β€” R20) +3892 846c6d589112a81585d5f1e877dd98b5856aab25 2026-09-04T21:41:17-06:00 2026-09-04T21:41:17-06:00 docs(phase-31): S80 #9 CLOSE checkpoint β€” task #9 DONE (ten banks; open stubs 31 β†’ 21; main REAL 777 / stubs 12 / game-code 95.1%; fleet instr 100.0%, 213/213 R22, tools-health OK); the frontier census regenerated (21 = 4 B-CARVE + 10 D-NEAR + 7 F-FAR, 4,554 ins); NEXT #10 with its design brief (main() is already C, the -O0 cluster is spent β€” #10 = ratify the 5 PERMANENT verbatims + decompile ov_SC03_107:func_8017D878); regenerated digests +3893 dd456179824e1789094e23dee99411183e9616f6 2026-09-04T21:45:31-06:00 2026-09-04T21:45:31-06:00 chore(phase-31): S80 #10 β€” verbatim end-state plumbing, byte-neutral: (1) ov_SC03_107:func_8017D878's file-scope __asm__ block (the manifest's one GAME-C row) converted back to an INCLUDE_ASM stub with tools/verbatim_to_stub.py --gate (87d02b57 byte-identical) and the TU's `extern void func_8017D878(void)` corrected to the real `s32 (s32)` signature (only its address is taken; ov_SC03_107 rebuilt byte-identical) β€” the void decl was the def-side wall that refused 37 drafts; (2) md_MAIN_020:func_800CB17C β€” S79 #7's "raw splice" had committed the function's ASSEMBLY as a verbatim __asm__ body (every stored 'draft' was the asm; verbatim_check --strict flagged it as a new verbatim) β†’ converted back to a stub (0990e041 byte-identical): that bank was not a decompile (P9), the function is open again; (3) manifest _README: the five PERMANENT-VERBATIM rows RATIFIED +3894 ec15509e6875ba217d99ba73bd2c874b7650a535 2026-09-04T21:46:55-06:00 2026-09-04T21:46:55-06:00 chore(phase-31): S80 #10 β€” md_MAIN_020: a file-scope `struct S;` tag so the TU's block-scope `extern s32 func_800CB17C(struct S *)` no longer declares a block-local tag that no file-scope definition can match (conflicting types); byte-identical 0990e041 +3895 b7f73e7187a1affa8705fed5d0412a7e7b257577 2026-09-04T21:49:33-06:00 2026-09-04T21:49:33-06:00 feat(phase-31): S80 #10 (1) β€” md_MAIN_020: func_800CB17C (30 ins) DECOMPILED β€” the S79 #7 "raw splice" had banked its assembly as a verbatim __asm__ body (P9 correction: that was not a decompile, verbatim_check --strict caught it as a new verbatim); the C is seven straight calls (s0 = a0; func_8012A304(*(s16*)(s0+0xA), 0x80); func_801477E8(s0, 0xFFE80000); func_80154274(s0, D_800CB1F4); func_80147324(0x47A); func_8014C010(s0, 2); func_801483E8(s0); func_80019064(D_80062BD0)) as an s32 function with no return (the target sets no $v0); the TU's block-scope `struct S` decl needed a file-scope tag (commit:3894); match_one 30/30, rtu_match MATCH, worktree gate + in-tree byte-identical 0990e041 +3896 082ddc859029f9a77d46d4d524f0c17cd5ea3b9b 2026-09-04T21:49:34-06:00 2026-09-04T21:49:34-06:00 feat(phase-31): S80 #10 (2) β€” ov_SC03_107: func_8017D878 (45 ins, the manifest's one GAME-C verbatim, "37 stored drafts") DECOMPILED: the stored best draft was byte-correct all along β€” it needed only its real return type (s32: the address of func_80172710 or 0) once the TU's `extern void func_8017D878(void)` was corrected (commit:3893) β€” a def-side declaration wall, not codegen; match_one 45/45, rtu_match MATCH, worktree gate banked (its merge step adopted 0 files β€” spliced in-tree instead) + in-tree byte-identical 87d02b57. ov_SC03_107 is now 100% C; the game's verbatim set is the five PERMANENT rows +3897 452975e852dd2b1b8d05d4781662758627c56a28 2026-09-04T22:07:35-06:00 2026-09-04T22:07:35-06:00 docs(phase-31): S80 #10 CLOSE β€” the verbatim end-state: manifest 6 β†’ 5 rows (the five PERMANENT rows RATIFIED in _README; the GAME-C row decompiled), cookbook Β§495 (two def-side declaration walls, the S79 assembly "bank" P9 correction, the gate that dropped a bank on exit 0), decision-log S80 addendum (R31), SETUP rows; tools/parallel_gate.py: banked-but-not-merged now exits 2 with the worker's raw git status kept + per-run .run/pgate_runs/.json; CURRENT_PHASE #10 bullet + the S80 #10 CLOSE checkpoint (R22 213/213, tools-health OK, census 21 stubs / 4,554 ins, NEXT #11 = PhaseEnd, gate 2); regenerated digests +3898 3c292ef09709602bafe2a74e892f74c0ea4d62c6 2026-09-04T22:20:20-06:00 2026-09-04T22:20:20-06:00 docs(phase-31): S80 β€” docs/frontier-p32.md, the Phase-32 jumping-off document: the last 21 functions by blocker (each with its instrument's verdict, mechanism citation, best-draft path and route β€” the two NON-CONTIGUOUS carves dry-run/refusal detail, the RELOC-ONLY twin, the leading-island case, the 8 pinned walls, the 3 near plateaus, the 7 far drafts), the five parked disc payloads, the routes/instruments a fresh session must know, and the proposed Phase-32 shape with its kill gate +3899 27180c705d677f6ef48f15b8ced0e295fa1854c3 2026-09-04T22:26:47-06:00 2026-09-04T22:26:47-06:00 chore(phase-31): CLOSE β€” the frontier atlas & wide-tolerance campaign; fleet 95.3% -> 100.0% instr (213/213), main 1,041 -> 12 open, the last 21 ledgered (v1.30.0) +3900 77df1092e27d61763ed10c53a5d629bccc15ab25 2026-09-04T22:36:55-06:00 2026-09-04T22:36:55-06:00 docs(phase-31): post-close bank β€” accelerators.md S80 (five: loop tools must prove they iterated; the byte gate is a null oracle for 'is this C?'; a pointer-only callee's extern is unconstrained; banked-but-not-merged printed as success; Agent-tool drafters outlive the session) + wave-playbook S80 (parallel_gate's exit-2 guard and recovery route in the gate section; the one-agent-per-function shape + agent_verdicts addendum) +3901 a16163ebb6ae00c38f9746be400ec33966ca6e62 2026-09-04T23:12:57-06:00 2026-09-04T23:12:57-06:00 chore(phase-32): T0 OPEN β€” Phase 32 (the last 21 + the parked 5) plan approved at gate 1; CURRENT_PHASE.md + baseline reads all green +3902 380ccdc843de3aba8b6768b6f1578389f577a01e 2026-09-04T23:20:04-06:00 2026-09-04T23:20:04-06:00 feat(phase-32): T1a (1) β€” resident code subseg split (3 regions, byte-identical 8e17e02f) + jr_isolate_all include-derived provided types (Β§496) +3903 c52190ca86dc6f11734f1752a4756665d6f70ccd 2026-09-04T23:24:02-06:00 2026-09-04T23:24:02-06:00 fix(phase-32): T1b (1) β€” jr_isolate_all keys a bodiless `typedef struct Tag Alias;` by the ALIAS (Β§497); ov_SC02_017 dry-run REFUSED -> CLEAN, no source rename +3904 c513e1fbbdcf659533cbaff040769d724c31936c 2026-09-04T23:28:59-06:00 2026-09-04T23:28:59-06:00 feat(phase-32): T1a (2) β€” resident: func_800D128C (243 ins) BANKED byte-identical 8e17e02f via the raw splice + a 5-piece carve; three instrument fixes (Β§498) +3905 287ea155c9dc731a83806a2f761a637a47b7c924 2026-09-04T23:33:34-06:00 2026-09-04T23:33:34-06:00 docs(phase-32): T1a CLOSE β€” resident func_800D128C banked, R22 213/213 rc 0; CURRENT_PHASE log + checkpoint (T1b/T1c stored MATCH bodies found via the journals, R38) +3906 599dba3ba08ec7b93ff02e0e481559c43cbd3823 2026-09-04T23:35:19-06:00 2026-09-04T23:35:19-06:00 feat(phase-32): T1b (2) β€” ov_SC02_017: func_80186C64 isolated into its own code subseg [0x5eb0c, c, ov_SC02_017_jr_80186C64] (byte-identical c0253499) +3907 c7f5b498aca4779216d12065a409116168bc2f96 2026-09-04T23:36:52-06:00 2026-09-04T23:36:52-06:00 feat(phase-32): T1b (3) β€” ov_SC02_017: func_80186C64 (209 ins) BANKED byte-identical c0253499 β€” the d=2 RELOC-ONLY twin of ov_SC02_016:func_801810C8 via family_remap + four TU spellings +3908 059266afcab8c1327fc6cbfc68e2808ac686f95f 2026-09-04T23:38:03-06:00 2026-09-04T23:38:03-06:00 feat(phase-32): T1c β€” md_MAIN_034: func_800CB00C (123 ins) BANKED byte-identical 46153c06 from the stored S72 body; its S68 "compiler wall" pin dropped +3909 848c7c50abd5d8813791300daf4adc7dafd7db40 2026-09-04T23:42:53-06:00 2026-09-04T23:42:53-06:00 feat(phase-32): T2a β€” tools/payload_base_evidence.py (controls-gated static base evidence) + memory-map Β§S45 p7: the parked five get candidate bases +3910 f698cf7630b0f6a12a07bfe0bd3dfae9f89ec874 2026-09-04T23:43:34-06:00 2026-09-04T23:43:34-06:00 docs(phase-32): T1b/T1c/T2a CLOSE β€” 3 banks, census 21 -> 18, R22 213/213 rc 0 after the T1b+T1c batch; CURRENT_PHASE log + checkpoint +3911 1a696a851a249de62e9db210a2d2baba35945bb6 2026-09-04T23:49:05-06:00 2026-09-04T23:49:05-06:00 feat(phase-32): T2b (1) β€” MAIN/7 ONBOARDED as md_MAIN_007 @0x800CEDF8 (TEXT_LO 0x34), byte-identical 2ff702b6; the OPDEMO0 module leaves the parked ledger +3912 10aaf5c296c7db497f7157e589f9219195f3edc4 2026-09-04T23:51:08-06:00 2026-09-04T23:51:08-06:00 feat(phase-32): T2b (2) β€” MAIN/9 ONBOARDED as md_MAIN_009 @0x800CD348 (TEXT_LO 0x3C), byte-identical d270f695; the OPDEMO1 module leaves the parked ledger +3913 b52d67be0b41c530d674288a06dc71febc5e898b 2026-09-04T23:51:45-06:00 2026-09-04T23:51:45-06:00 feat(phase-32): T2b (3) β€” SC03/53 + SC03/54 ONBOARDED as md_SC03_053 / md_SC03_054 @0x801EF468 (the script slot), byte-identical c0848f30 / 06bd73df +3914 1e843c607af80ae32a4491869a5f8c7d2ce601aa 2026-09-04T23:52:58-06:00 2026-09-04T23:52:58-06:00 feat(phase-32): T2b (4) β€” SC03/56 ONBOARDED as md_SC03_056 @0x801CBB50 (ov_SC03_002's DESTPTR), byte-identical bc768a6b; ALL FIVE parked payloads are now binaries (fleet 213 -> 218); evidence tool v2 +3915 6501c746523a423951ce75cdf110bc4e66456831 2026-09-04T23:53:35-06:00 2026-09-04T23:53:35-06:00 docs(phase-32): T2b CLOSE β€” all five parked payloads onboarded (fleet 213 -> 218, +56 stubs); CURRENT_PHASE log + checkpoint +3916 6853c0c341233399977624a8a1e6f3b661a1167f 2026-09-04T23:55:26-06:00 2026-09-04T23:55:26-06:00 docs(phase-32): cookbook Β§499 (static base evidence for a never-onboarded payload; the first build is a NULL oracle for fine base errors) + decision-log P32 S81 (R31: six instrument defects, one shape) +3917 8b2bbff831f705a00b832d731561fe6de236cece 2026-09-05T00:08:44-06:00 2026-09-05T00:08:44-06:00 fix(phase-32): T2c (1) β€” split_indicator's population is derived from the yamls (was a stale stored 213-name list; tools-health said "213 OK of 213" over 218 binaries); R32 denominator assertion +3918 89d177aa3727c05fa051d6872d4a10ff7eca5d28 2026-09-05T00:10:33-06:00 2026-09-05T00:10:33-06:00 feat(phase-32): T2c (2) β€” 8 free banks in the five new modules (twin remaps, 0 drafting tokens), every module byte-identical +3919 9ffd0b7ee3b60e02081b02aaafecbfd6c609adf7 2026-09-05T00:12:09-06:00 2026-09-05T00:12:09-06:00 feat(phase-32): T2c (3) β€” 5 more free banks (md_MAIN_007 Γ—2, md_SC03_054 Γ—2, md_SC03_056 Γ—1), byte-identical +3920 a2d28df189427ec78765572750c47f2438076c6d 2026-09-05T00:12:48-06:00 2026-09-05T00:12:48-06:00 feat(phase-32): T2c (4) β€” 7 more free banks in md_SC03_053 (byte-identical c0848f30); the five new modules are now 20/56 banked for 0 drafting tokens +3921 7ce1cd1801f505c16d604e6d3f52e5018403812b 2026-09-05T00:49:07-06:00 2026-09-05T00:49:07-06:00 docs(phase-32): T2c CLOSE β€” 20 free banks, R22 218/218 rc 0, census 54 stubs / 6,376 ins; disc-completeness P32 section (parked ledger EMPTY, audit-disc UNCLAIMED 0 of 220); regenerated fleet/disc/dup digests; T2d not needed +3922 3f8f0a5fe33e4bd86b022ca4e74aaa18943627fe 2026-09-05T00:59:06-06:00 2026-09-05T00:59:06-06:00 docs(phase-32): T3 LAUNCHED β€” 47 targets, 20 drafters running (16 Opus / 3 Sonnet / 1 Haiku), 27 Haiku queued behind the 20-concurrent cap; recovery route logged +3923 4ecedb40ba8266d941240d62f4b03351bf2a782f 2026-09-05T01:01:13-06:00 2026-09-05T01:01:13-06:00 feat(phase-32): T3 (1) β€” md_SC03_054: func_801EF558 (96 ins) BANKED byte-identical 06bd73df (Sonnet drafter, first draft; range-dispatch state setter, one reused local keeps the literal 6 in $s2 across the jals) +3924 ceeb1a1eb2461fc2770b4c3c7c9fd9e29dc5b1aa 2026-09-05T01:01:13-06:00 2026-09-05T01:01:13-06:00 feat(phase-32): T3 (2) β€” md_SC03_053: func_801EF49C (49 ins) BANKED byte-identical c0848f30 (Haiku drafter; explicit goto labels reproduce the beqz/beq layout) +3925 5ff842dfd3c2b1977f1509661d9f28df3b1e4cbd 2026-09-05T01:03:07-06:00 2026-09-05T01:03:07-06:00 feat(phase-32): T3 (3) β€” resident: func_800D06E8 (344 ins) BANKED byte-identical 8e17e02f β€” THE RESIDENT IS 100% C (145/145) +3926 3995237eb050a82dba34073e9614e6baae9ec476 2026-09-05T01:03:40-06:00 2026-09-05T01:03:40-06:00 feat(phase-32): T3 (4) β€” main: func_80039B20 (79 ins) BANKED byte-identical 143dbb89 via gate_main β€” the S80 permuter plateau at 7 was an ALIAS FLAG, not a scheduler tie +3927 d50576f72905a4d947caa7f05b26dd66e0620f19 2026-09-05T01:04:27-06:00 2026-09-05T01:04:27-06:00 feat(phase-32): T3 (5) β€” md_SC03_053: func_801EF6B0 (33) + func_801EF95C (20) BANKED byte-identical c0848f30 (Haiku drafters: a switch on the u16 state; a twin remap + one guarding beqz) +3928 c6c1352d2005f764e24607ef913ad985793df8ed 2026-09-05T01:05:04-06:00 2026-09-05T01:05:04-06:00 feat(phase-32): T3 (6) β€” md_SC03_053: func_801EF624 (35 ins) BANKED byte-identical c0848f30 (Haiku drafter; a $16 register pin holds the state pointer across both arms) +3929 ec8a305d756a9320322c8eafb261940a367015e6 2026-09-05T01:05:31-06:00 2026-09-05T01:05:31-06:00 feat(phase-32): T3 (7) β€” md_MAIN_007: func_800CEE2C (52 ins) BANKED byte-identical 2ff702b6 (Sonnet drafter; an early u8 *base local keeps &D_800AF630 in $s0 across two calls, the neighbour global read by raw offset with no relocation; one captured pointer local for a shared address) +3930 0276aaec6807d4824065d9bdfd1426f5ec716ade 2026-09-05T01:06:17-06:00 2026-09-05T01:06:17-06:00 feat(phase-32): T3 (8) β€” main: func_80023BF0 (281 ins) BANKED byte-identical 143dbb89 via gate_main β€” the OT link is libgpu's P_TAG 24-bit BITFIELD store (Β§364), not a hand-written mask/or +3931 0240fa5f625d8b30d820754b1e42e8cb2d3c7bbf 2026-09-05T01:07:13-06:00 2026-09-05T01:07:13-06:00 feat(phase-32): T3 (9) β€” main: func_80038698 (74 ins) BANKED byte-identical 143dbb89 via gate_main β€” the "sched1 DAG-priority + self-coalesce wall" was VARIABLE SCOPE +3932 9480c979a00ab6003945b6cc1bf27ce44d322e64 2026-09-05T09:36:43-06:00 2026-09-05T09:36:43-06:00 docs(phase-32): T3 CHECKPOINT β€” the launching coordinator overflowed after bank 9; 22 agent verdicts recovered (20 MATCH / 9 NEAR / 2 FAIL of 31), 11 swept Opus deliverables restored + re-verified, cookbook Β§500 harvest, playbook Β§S80 addendum-2, agent_drafts_restore.py +3933 42ff6116eaf45269e6b89041816ee3bb9b790631 2026-09-05T10:02:04-06:00 2026-09-05T10:02:04-06:00 docs(phase-32): session-start protocol β†’ phase-ends/DIGEST.md + last 3 PhaseEnds (~100k tokens), checkpoint replayed VERBATIM (R64 candidate); the T3 checkpoint refreshed to the verbatim-replay standard +3934 11f79c1b0a2eadf7cad67fa948f1ae3490a5a355 2026-09-05T10:11:43-06:00 2026-09-05T10:11:43-06:00 docs(phase-32): T3 checkpoint β€” the 31 agents' FULL final reports saved to .run/P32/t3/reports/ (tools/agent_reports.py, NEW) + tools/transcript_dump.py (NEW, the dead-session reader); SETUP rows, playbook addendum-2, πŸ›‘ block Β§3/Β§6 point at them +3935 d3f05998d5b84fd5b68278894bbadfb52d3f66fd 2026-09-05T10:32:35-06:00 2026-09-05T10:32:35-06:00 feat(phase-32): T3 (10) β€” md_SC03_053: func_801EF734 (44 ins) BANKED byte-identical c0848f30 β€” Β§224 pinned pointer + three literal uniform arms for cross_jump +3936 9887e6987288320d62c3683337a5dd41d675b102 2026-09-05T10:33:03-06:00 2026-09-05T10:33:03-06:00 feat(phase-32): T3 (11) β€” md_SC03_053: func_801EF7E4 (72 ins) BANKED byte-identical c0848f30 β€” the module is 100% C +3937 e2aee8e274504edb9ec24df590af3fa3c16bdcf6 2026-09-05T10:34:35-06:00 2026-09-05T10:34:35-06:00 feat(phase-32): T3 (12)+(13) β€” main: func_80015B6C (120 ins) + func_8002FDE8 (73 ins) BANKED byte-identical 143dbb89 via gate_main +3938 aa773c8fb0bb638a728204b723171cf0fee6d806 2026-09-05T10:36:54-06:00 2026-09-05T10:36:54-06:00 feat(phase-32): T3 (14) β€” md_SC03_054: func_801EF6D8 (604 ins + 7 jump tables) BANKED byte-identical 06bd73df β€” no carve: Β§303 island pads derived at build +3939 9e84ce2cd818df8d48cb1ee461ec4ecd0b2f5432 2026-09-05T10:37:22-06:00 2026-09-05T10:37:22-06:00 chore(phase-32): T3 plumbing β€” md_MAIN_007: func_800CF3B0 decl β†’ no-proto `extern s32 func_800CF3B0();` (byte-neutral, sha 2ff702b6 unchanged) +3940 8ca9d53cad830e165ccc4b814e6da8f6bd1fd6e5 2026-09-05T10:40:25-06:00 2026-09-05T10:40:25-06:00 feat(phase-32): T3 (15)–(20) β€” md_MAIN_007: six Haiku MATCH rows BANKED byte-identical 2ff702b6 (func_800CEEFC 25, func_800CEF94 25, func_800CF068 20, func_800CF148 33, func_800CF2BC 32, func_800CF3B0 22) +3941 5aab66b2de36a474596423bb2764a49f1c65f023 2026-09-05T11:00:17-06:00 2026-09-05T11:00:17-06:00 feat(phase-32): T3 (21)–(25) β€” md_MAIN_007: five Haiku rows BANKED byte-identical 2ff702b6 (func_800CF0F4 21, func_800CF1CC 21, func_800CF268 21, func_800CF33C 21, func_800CEFF8 13) +3942 5160775a14d4d80129c90e558959e3be71ef7e52 2026-09-05T11:00:43-06:00 2026-09-05T11:00:43-06:00 feat(phase-32): T3 (26) β€” md_MAIN_007: func_800CF220 (19 ins) BANKED byte-identical 2ff702b6 β€” Haiku via the ov_SC03_001:0x80182860 twin (d=4) +3943 f20e42259f810f4b677abbbc685de5f4fbf7f1b5 2026-09-05T11:00:44-06:00 2026-09-05T11:00:44-06:00 feat(phase-32): T3 (27)–(33) β€” md_MAIN_009: seven Haiku rows BANKED byte-identical d270f695 (func_800CD3B8 21, func_800CD408 23, func_800CD464 25, func_800CD4C8 22, func_800CD558 24, func_800CD5B8 23, func_800CD614 22) +3944 582bcab70e584c867ebf2b3abe5ead5cc67d9257 2026-09-05T11:01:07-06:00 2026-09-05T11:01:07-06:00 feat(phase-32): T3 (35)+(36) β€” md_SC03_054: func_801F0048 (20 ins) + func_801F00C8 (15 ins) BANKED byte-identical 06bd73df β€” the module is 100% C +3945 f461715d05ebb2efcb1bef5d59a333831b4f9552 2026-09-05T11:01:08-06:00 2026-09-05T11:01:08-06:00 feat(phase-32): T3 (37) β€” md_SC03_056: func_801CBB80 (23 ins) BANKED byte-identical bc768a6b via the ov_SC06_025:0x8017ded8 twin (d=5) β€” the module is 100% C +3946 fc922a4ccb02e4c708b09cc373d572ca7a30fcfd 2026-09-05T11:02:03-06:00 2026-09-05T11:02:03-06:00 feat(phase-32): T3 (34) β€” md_MAIN_009: func_800CD520 (22 ins) BANKED byte-identical d270f695 β€” Β§304 self-defining rodata (D_800CD364, 8 words incl. the island's trailing junk) via the ov_SC03_011:0x8017dbd8 twin; the agent's (void*) prototype for func_8001AD38 re-spelled to the TU's (const char*) after the sibling banks landed (Β§376) +3947 2fdcc4f1200bd3784a06fcabd715fe15399bb851 2026-09-05T11:11:03-06:00 2026-09-05T11:11:03-06:00 docs(phase-32): T3 S83 CHECKPOINT β€” 28 banks (census 44 -> 16 stubs / 3,827 ins), fleet R22 218/218 twice, the 17-row Haiku queue 17/17 MATCH; cookbook Β§500-F; πŸ›‘ block refreshed +3948 836181a6c23fe45e253c6c23448e903edd5f468f 2026-09-05T11:35:41-06:00 2026-09-05T11:35:41-06:00 feat(phase-32): T3 (38) β€” main: func_8001BC6C (69 ins) BANKED byte-identical 143dbb89 via gate_main β€” permuter_ils found the two levers, the coordinator dropped its wrong-width mutation (R63) and re-spelled them well-defined +3949 563a2114488f70b6523e39ae14d434be99849a1d 2026-09-05T11:37:53-06:00 2026-09-05T11:37:53-06:00 build: exclude dotfiles from the C source find (-not -name '.*') β€” a tool's live probe in src/ broke gate_main's clean rebuild (P32 S83) +3950 9471d8c01e581336f47e075334b619fbbee52ee9 2026-09-05T11:39:04-06:00 2026-09-05T11:39:04-06:00 docs(phase-32): cookbook Β§500-G β€” the func_8001BC6C crack (permuter waypoint minus its width mutation = the Β§47 birth lever, spelled well-defined), the func_800CD674 plateau, the masked_diff-probe/Makefile collision; harvest_notes; index regenerated +3951 a373a000d1ab5a818949629d7371df5c7c0506d1 2026-09-05T12:01:03-06:00 2026-09-05T12:01:03-06:00 docs(phase-32): T3 CLOSED β€” 39 banks in the pass (29 this session), census 15 stubs / 3,758 ins (7 pinned walls + 8 NEAR), fleet R22 218/218 Γ—3 today, fleet instr 100.0% / distinct 99.9% / fn 100.00%; Β§500-H; πŸ›‘ block β†’ T4 +3952 90acd6902f78d138653da6fd582c4665702bb124 2026-09-05T12:11:10-06:00 2026-09-05T12:11:10-06:00 docs(phase-32): T4 DONE β€” the walls' FINAL ledger: 7 pinned rows re-probed in TU context (3 CC1 FAILs were plumbing, re-probed in a sandbox TU), 1 PROVED + 6 CANDIDATE, no verdict changed; pins annotated, backlog rows for all 7 (R62 paths fixed), cookbook Β§500-I, decision-log +3953 e3922905133ef165c1a483f696ad08181d9a82b1 2026-09-05T12:36:39-06:00 2026-09-05T12:36:39-06:00 chore(phase-32): T4b plumbing β€” src/800_c.c: func_80039DEC decl β†’ no-proto; D_80073140 externs (Γ—4) β†’ [][1] with (s32*) casts at the 3 uses β€” byte-neutral (in-tree clean extract+build 143dbb89) +3954 34268e3b8ec416cf8fcca56b48d7fe1c0e89b953 2026-09-05T12:55:49-06:00 2026-09-05T12:55:49-06:00 docs(phase-32): T4b hand pass β€” all 15 rows hand-analysed against the compiler; 22 spellings measured (all regressions), 0 banks; every blocker refined to a named mechanism + untried lever in .run/P32/t4b//NOTES.md; Fable brief + targets + packs staged +3955 f85b589c3f5a091181b89f33b2ee317730c13070 2026-09-05T12:59:41-06:00 2026-09-05T12:59:41-06:00 docs(phase-32): πŸ›‘ checkpoint β€” T4b in flight: 15 Fable agents launched ~13:05 MDT from .run/P32/t5x (BRIEF + packs + the hand-pass NOTES); recovery route via agent_verdicts over this session's a*.output; T5 follows T4b +3956 1e54e88a81b980e720f8249b38e341f73a2fdef4 2026-09-05T13:15:20-06:00 2026-09-05T13:15:20-06:00 feat(phase-32): T4b (1) β€” main: func_800391D4 (75 ins) BANKED byte-identical 143dbb89 via gate_main β€” a pinned WALL falls: the sign-extend must be preheader SOURCE code, and the loop.c insn_count knife-edge re-padded (Fable agent) +3957 177f4a7dfd37cb4e707626766e0efc2a08242d3c 2026-09-05T13:15:53-06:00 2026-09-05T13:15:53-06:00 docs(phase-32): T4b (1) ledger β€” func_800391D4 unpinned (config/wave_exclude.txt 6 kept / 1 dropped by exclude_audit), backlog re-rendered (15 open), the Fable draft + report + verdict kept (R20) +3958 ec5572c5fbe3866027b790ea517b29792e4b862a 2026-09-05T13:16:50-06:00 2026-09-05T13:16:50-06:00 docs(phase-32): cookbook Β§501 β€” a lever that measures worse may be a cascade (func_800391D4: the explicit promotion flipped loop.c's insn_count threshold; pads 7β†’9 closed it); accelerators (9); T4b row +3959 e8c2b6baa0d048f1d47e65a649cf5a82def2c34b 2026-09-05T13:20:25-06:00 2026-09-05T13:20:25-06:00 feat(phase-32): T4b (2) β€” main: func_80039DEC (74 ins) BANKED byte-identical 143dbb89 via gate_main β€” a pinned WALL falls: the natural switch with DUPLICATED case tails (cross-jump merges them post-reload), so a2's raw copy keeps 4 refs and wins $a3 (Fable agent) +3960 d913bca9b742a197490d3228c7ea7c12299e1eb4 2026-09-05T13:20:36-06:00 2026-09-05T13:20:36-06:00 docs(phase-32): T4b (2) ledger β€” func_80039DEC unpinned (5 walls remain), backlog re-rendered, the Fable draft + report + verdict kept (R20) +3961 2d0957ffb117e50522f4b11250d5bd7ee38a8a94 2026-09-05T13:21:10-06:00 2026-09-05T13:21:10-06:00 docs(phase-32): cookbook Β§501-B β€” do not merge case tails in C (cross-jump merges post-alloc; a C-level merge deletes the reference that decides allocno order β€” func_80039DEC); T4b row +3962 779b55a497438d212efa6620bbeba7d15c801c8b 2026-09-05T13:24:05-06:00 2026-09-05T13:24:05-06:00 docs(phase-32): T4b (3) ledger β€” func_800CD674 banked (backlog 13 open), the Fable draft + report + verdict kept; bank.sh's verbatim check now refuses only instruction-bearing asm (zero-byte fences/launders pass) +3963 3a9c946d8d36e9dc4700676c8d109745a0d52e4a 2026-09-05T13:25:30-06:00 2026-09-05T13:25:30-06:00 docs(phase-32): T4b (3) ledger β€” backlog re-rendered after the real func_800CD674 bank; bank.sh refuses an empty function list and propagates a failed commit (R43 β€” it had built the unchanged tree and exited 0) +3964 b13e824f762ee5dd18530fc74cb9add212a86b26 2026-09-05T13:25:57-06:00 2026-09-05T13:25:57-06:00 feat(phase-32): T4b (3) β€” md_MAIN_009: func_800CD674 (174 ins) BANKED byte-identical d270f695 β€” the $a3<->$t1 REGALLOC-PERM plateau falls: prim 4 gets a fresh single-death masked-p (local-alloc's dying-input suggestion needs a pseudo BORN at the and) and prim 3's copy gets a trailing zero-byte asm set that defeats sched1's birthing boost (Fable agent). CORRECTION: commits commit:3962 and commit:3963 claimed this bank before it happened β€” bank.sh had been called without the function name, then with the wrong draft dir; both times it refused or built the unchanged tree +3965 1f024f8e4b6c7b4e8709fc49a15bb34e8e869028 2026-09-05T13:26:52-06:00 2026-09-05T13:26:52-06:00 docs(phase-32): cookbook Β§501-C β€” the dying-input suggestion vs the birthing boost (func_800CD674); backlog 13 open; bank.sh DRAFT_DIR + R43 hardening; T4b row (3 banked) +3966 b31084300fb7a0011a661c0ae222ce807014005e 2026-09-05T13:28:24-06:00 2026-09-05T13:28:24-06:00 feat(phase-32): T4b (4) β€” ov_SC06_022: func_8017DF28 (119 ins) BANKED byte-identical β€” a pinned WALL falls: one value-returning call made reg_n_sets[$v0]==1 and sched1's birthing boost scheduled it above the &mtx def (reorg then filled the jal slot); a second $v0 set via RotMatrixY's real pointer-returning type puts the def after the call and reorg fills the bnez slot (Fable agent) +3967 32ff170bf34a0120ed907dcea2c2354b8e060dca 2026-09-05T13:28:35-06:00 2026-09-05T13:28:35-06:00 docs(phase-32): T4b (4) ledger β€” func_8017DF28 unpinned (4 walls remain), backlog re-rendered, the Fable draft + report + verdict kept; bank.sh takes SPLIT for _jr_ TUs and prints rtu's tail when no verdict line appears +3968 ad62b693a1ede01ec878f757857031755e6e6ead 2026-09-05T13:29:17-06:00 2026-09-05T13:29:17-06:00 docs(phase-32): cookbook Β§501-D β€” one value-returning call makes the call a birthing insn (reg_n_sets[$v0]==1 β†’ sched1 max priority β†’ the def above the jal); a second $v0 set via the callee's real return type (func_8017DF28); T4b row (4 banked) +3969 b47bc2ea0beb15b8bc48437f8c6f8ff40d99c09a 2026-09-05T18:16:01-06:00 2026-09-05T18:16:01-06:00 feat(phase-32): T4b (5) β€” main: func_80020DA4 (100 ins) BANKED byte-identical 143dbb89 via gate_main β€” a pinned WALL falls: the $6 pin on e0 FORBADE $a2 at reload's retry_global_alloc (regs_ever_live seeds bad_spill_regs), so the product took $t0; unpinned + two zero-byte launders steer local-alloc's qty_compare to the target's allocation (Fable agent) +3970 9564314095d5c12304aba7ece47573863ffbfd39 2026-09-05T18:16:50-06:00 2026-09-05T18:16:50-06:00 docs(phase-32): T4b (5) ledger β€” func_80020DA4 unpinned (3 walls remain), backlog 11 open, the Fable draft + report + verdict kept; resume queue (3-at-a-time) tracked +3971 78613864e4350eb7e1c0d9dd727b2d27a201d22d 2026-09-05T18:16:51-06:00 2026-09-05T18:16:51-06:00 docs(phase-32): cookbook Β§501-E β€” a register pin forbids that register to every retried allocno (regs_ever_live β†’ bad_spill_regs β†’ retry_global_alloc; func_80020DA4); T4b row (5 banked) +3972 ff86e25729490a1d1ed904ec8dc4f666c51c562f 2026-09-05T18:25:13-06:00 2026-09-05T18:25:13-06:00 feat(phase-32): T4b (6) β€” ov_SC03_105: func_801834A4 (106 ins) BANKED byte-identical β€” a pinned WALL falls: a CSE-quantity split hoists only the division's sign correction (sign = half >> 31 at the loop top; the divide reads a hard-register copy so its mult is not a movable; expand_divmod's sra is CSE'd into sign) (Fable agent) +3973 1081b02b662c48bfcd78957795f1c42c95954a13 2026-09-05T18:25:29-06:00 2026-09-05T18:25:29-06:00 docs(phase-32): T4b (6) ledger β€” func_801834A4 unpinned (2 walls remain), backlog re-rendered, the Fable draft + report + verdict kept; queue updated +3974 ce4cdaf75025ad17abe049e4bff25e2e7f1e2fa4 2026-09-05T18:26:11-06:00 2026-09-05T18:26:11-06:00 docs(phase-32): cookbook Β§501-F β€” split the CSE quantity when loop.c proves the hoist split unreachable (hard-reg dividend copy + hoisted sign; func_801834A4); T4b row (6 banked) +3975 3c6d20991f273080c70b309a5c9c29788a062858 2026-09-05T18:35:27-06:00 2026-09-05T18:35:27-06:00 docs(phase-32): T4b β€” func_80032A74 stays NEAR 1 (Fable, 402k tokens): the 0x48 slot is a GHOST pseudo (combine.c:2306-2313), the caller-save-area hypothesis REFUTED with citations, the only memory-value ghost species is the lh SIGN_EXTEND split; pin annotated, backlog row, draft + report kept +3976 cb871087ec4aebab284ce5c62869831d1d9d4cb9 2026-09-05T18:43:03-06:00 2026-09-05T18:43:03-06:00 feat(phase-32): T4b (7) β€” md_MAIN_003: func_800CF3E8 (469 ins) BANKED byte-identical β€” the 27-off alias basin falls: a second live set of the loaded tag kills sched1's birthing boost, the phantom ot-USE that filled the load-delay slot only in the scheduler's model is removed, and the OT link spelled as libgpu's P_TAG bitfield lifts m24's flow ref count so it wins $a2 in local-alloc (Fable agent) +3977 5d8b8478fa7cbc579e5ac120d262e120282f0845 2026-09-05T18:43:11-06:00 2026-09-05T18:43:11-06:00 docs(phase-32): T4b (7) ledger β€” func_800CF3E8 banked (md_MAIN_003 100% C), backlog re-rendered, the Fable draft + report + verdict kept; queue updated +3978 d7561f268099beedb7663eaf435b94116e45a5a0 2026-09-05T18:43:53-06:00 2026-09-05T18:43:53-06:00 docs(phase-32): cookbook Β§501-G β€” three passes, three dials (sched1 birthing boost / a phantom USE nop in sched2's model / a local-alloc tie broken by the P_TAG bitfield's flow ref count; func_800CF3E8); T4b row (7 banked, 1 near-proved) +3979 4a9a67c59e57eaa9102680a5c789e5fde494ec2a 2026-09-05T18:54:50-06:00 2026-09-05T18:54:50-06:00 feat(phase-32): T4b (8) β€” md_MAIN_009: func_800CD92C (247 ins) BANKED byte-identical d270f695 β€” the prologue-weave NEAR falls with ZERO pins: m24 wins $t1 by flow ref count (the P_TAG bitfield's foldable re-mask), and the tpage constants float to the top because a multi-set tag load (bitfield RMW shape) fills the RMW latency stalls instead of being birthing-boosted (Fable agent); md_MAIN_009 is 100% C +3980 511afcf75c76441d179d4e31f482a2478a43351c 2026-09-05T18:55:02-06:00 2026-09-05T18:55:02-06:00 docs(phase-32): T4b (8) ledger β€” func_800CD92C banked (md_MAIN_009 100% C), backlog re-rendered, the Fable draft + report + verdict kept; queue updated +3981 066a2f1cce3ce7f69899ef940954ddbf8449144e 2026-09-05T18:55:38-06:00 2026-09-05T18:55:38-06:00 docs(phase-32): cookbook Β§501-H β€” large constants are unboosted floaters; the prologue weave is decided by which ready-list stalls eat them (func_800CD92C, zero pins); T4b row (8 banked) +3982 99b65ef94a0e95017304e35eb20a04268fb44bb7 2026-09-05T19:09:36-06:00 2026-09-05T19:09:36-06:00 docs(phase-32): T4b β€” func_80185810 35 -> 13 NEAR (Fable, 471k tokens): 3 of 4 windows closed (P_TAG bitfield qty priorities, sched1 flush_pending_lists load order, hard-reg dests not boosted); residual = the cl second-set fence; backlog row + draft + report kept +3983 825da37bc01ce128bdf5de1e08a39e4af542afea 2026-09-05T19:18:45-06:00 2026-09-05T19:18:45-06:00 feat(phase-32): T4b (9) β€” ov_SC07_002: func_8017DC80 (346 ins) BANKED byte-identical β€” the historic -33 LENGTH wall's last 46 rows: two combine USE-orphans from reading the s16 mode from memory at each use (Β§172 producer 2), ONE scratch variable carrying the len byte and the tpage word (the sb's anti-dependence), and a laundered first-statement arg = &D_800AF648 (Fable agent) +3984 d753c44172f64a0be37c494dcbb8bcca63e0c590 2026-09-05T19:19:06-06:00 2026-09-05T19:19:06-06:00 docs(phase-32): T4b (9) ledger β€” func_8017DC80 banked (ov_SC07_002), backlog re-rendered, the Fable draft + report + verdict kept; queue updated +3985 da90d3fc281de5ea35f1f03470bf9bcf332427c4 2026-09-05T19:19:42-06:00 2026-09-05T19:19:42-06:00 docs(phase-32): cookbook Β§501-I β€” manufacturing Β§172 producer-2 orphans (an s16 read from memory at each use), the shared-scratch store dependence, the laundered first-statement address (func_8017DC80); T4b row (9 banked) +3986 9189a7caeda44c4548256172c5b94874f3ba775e 2026-09-05T19:26:19-06:00 2026-09-05T19:26:19-06:00 docs(phase-32): T4b β€” func_80039308 17 -> 4 NEAR (Fable, 655k tokens): the alias block + rows 390/391 closed; residual = a phantom 8-byte spill slot at sp+8 (reload's $s7 spill register) + the hoisted constant's preheader order; corrected law: equal-priority load/store ties go to the store via potential_hazard; backlog row + draft + report kept +3987 5e8e22a93c13c6410ca8c5bb3ee980d8606059e2 2026-09-05T19:26:57-06:00 2026-09-05T19:26:57-06:00 docs(phase-32): πŸ›‘ checkpoint Β§1b β€” T4b state: 9 banked (commits listed), 3 NEAR improved with next levers, 3 agents in flight, queue empty; fleet R22 pending before any close +3988 d7d484ababb77f77e0526c4406fe8fa8dd1d8c31 2026-09-05T23:14:51-06:00 2026-09-05T23:14:51-06:00 docs(phase-32): T4b β€” Drew: no second round this session; close order after the three in-flight rows (R22, report, census, decision-log, accelerators, checkpoint) +3989 395333f233f7aaedc7124b3ecea32fd298433284 2026-09-05T23:16:50-06:00 2026-09-05T23:16:50-06:00 docs(phase-32): decision-log P32 S83 T4b (R31) β€” the final-15 directive: hand pass 0 banks, Fable agents 9 of 12 (six former walls), costs and outages; accelerators (10) Fable on the compiler-internals class, (11) attribute the residual to a pass before sweeping +3990 35fa116741cd04ef8c296c02b8f89340b098e428 2026-09-05T23:21:54-06:00 2026-09-05T23:21:54-06:00 feat(phase-32): T4b (10) β€” main: func_80011380 (192 ins, boot -O0) BANKED byte-identical 143dbb89 via gate_main β€” the Β§474 "PROVED C-level floor" falls: a proved TREE wall is not an RTL wall β€” `(D_80074784 * 2 + 1) * 2 - 2` keeps MULT(PLUS(MULT(i,2),1),2) past fold and the expander's distributive law rebuilds the nested multiply (Fable agent) +3991 444e8ab4b59bc50ca47d7503ad897bf806354800 2026-09-05T23:22:09-06:00 2026-09-05T23:22:09-06:00 docs(phase-32): T4b (10) ledger β€” func_80011380 unpinned (1 wall remains: func_80032A74), backlog re-rendered, the Fable draft + report + verdict kept +3992 228928dbecc5fb585a13e71c39eff96916494e78 2026-09-05T23:22:46-06:00 2026-09-05T23:22:46-06:00 feat(phase-32): T4b (11) β€” md_MAIN_007: func_800CF6D0 (249 ins) BANKED byte-identical 2ff702b6 β€” the 137-row plateau falls with zero pins: the QI/HI store split was sched2's true_dependence exemption for /s varying stores (cast field stores restore it), ob assigned before block 1 wins the $t2/$t3 flow ref-count tie, and the folded-sum pseudo's own 4-byte slot IS the 0x18 frame (Fable agent) +3993 6f2731f0dbfce26dc72f8aa3bd9bd0c5c96a7538 2026-09-05T23:22:56-06:00 2026-09-05T23:22:56-06:00 docs(phase-32): T4b (11) ledger β€” func_800CF6D0 banked, backlog re-rendered, the Fable draft + report + verdict kept +3994 90b2425ee01e5f5f7068d33dda2234e15d5d6ce8 2026-09-05T23:23:31-06:00 2026-09-05T23:23:31-06:00 docs(phase-32): cookbook Β§501-J (a proved tree wall is not an RTL wall β€” Β§474's floor built at RTL level via EXPAND_SUM, func_80011380) + Β§501-K (sched2's /s-store exemption and a pseudo's own slot vs a hand pad, func_800CF6D0); checkpoint Β§1b: 11 banked, 1 in flight, 1 pin left +3995 77b63f0bb5ab19a8e0c9b15ca8b65b002e861c41 2026-09-05T23:33:33-06:00 2026-09-05T23:33:33-06:00 docs(phase-32): T4b β€” func_800CF408 49 -> 3 NEAR, zero pins (Fable, 499k tokens): Β§501-H closers; residual = Β§501-H's floater mechanism coupled to the $t2/$t3 qty_compare contest; backlog row with the decoupling lever; all 15 first-pass rows complete (11 MATCH / 4 NEAR) +3996 fcec654163ed2c7abcece4f48b0b811d5c823463 2026-09-05T23:34:08-06:00 2026-09-05T23:34:08-06:00 docs(phase-32): cookbook Β§501-L β€” when two dials share a slot they couple (func_800CF408's floater cure vs the qty_compare contest; the decoupling lever) +3997 efdb4c12a29e209986c72b88847ef70687c36352 2026-09-05T23:52:36-06:00 2026-09-05T23:52:36-06:00 docs(phase-32): πŸ›‘ CHECKPOINT β€” T4b first pass complete (11 of 15 banked, 4 carried with hand-crack briefs; Drew: hand-crack next session, no agents); fleet R22 218/218 at 23:36; make report instr 100.0% / distinct 100.0% (90,982/90,984) / fn 100.00% / 4 stubs; census 4 / 1,607 ins +3998 f1f3346cdf038bee616e2cdde3915c51fff280de 2026-09-05T23:56:17-06:00 2026-09-05T23:56:17-06:00 docs(phase-32): T4b close β€” make tools-health OK quoted in the πŸ›‘ checkpoint; log kept +3999 bfeef0c3a18cc8aa8be5cf78c3b39cf654dff3b9 2026-09-05T23:56:32-06:00 2026-09-05T23:56:32-06:00 docs(phase-32): backlog ledger rows from the T4b close (render-time pruning of the banked rows) +4000 b6fd3fff28cb591ca4ca6e1bfe18697471713e15 2026-09-06T11:44:40-06:00 2026-09-06T11:44:40-06:00 docs(phase-32): T4b hand pass β€” func_80032A74 PROVED at 1 by producer census (Β§501-M); ghost_census.py + cc1_dumps.sh repair; backlog tie-break repair +4001 8fa12bc2269bed83a156e010d9496f2985028a87 2026-09-06T12:06:00-06:00 2026-09-06T12:06:00-06:00 feat(phase-32): T4b hand pass β€” md_MAIN_007:func_800CF408 (178 ins) BANKED byte-identical: the banked sibling func_800CD92C's spelling ported (libgpu P_TAG shape, u32 array view of the OT symbol via the fleet's asm-label alias); zero pins, zero asm bodies (S84) +4002 3e90db193f37522457b2ba8a6c1d5cb78fea03d7 2026-09-06T12:08:11-06:00 2026-09-06T12:08:11-06:00 docs(phase-32): T4b hand pass β€” row (b) harvest: cookbook Β§501-N (port the banked sibling's spelling; the asm-label u32 array alias unlocks cse's OT base binding), accelerators (13), NOTES + 7 measured variants; ledger 4 open; bank.sh session trailer from $CLAUDE_SESSION +4003 e7679b51ff1eef67a1f39d0e2ee02ea20d25a3eb 2026-09-06T12:31:08-06:00 2026-09-06T12:31:08-06:00 docs(phase-32): T4b hand pass β€” row (c) func_80039308 PLATEAU at 4 (Β§501-O phantom-slot census for a leaf; ledger row); πŸ›‘ CHECKPOINT refreshed for the pause: (a) PROVED Β· (b) BANKED commit:4001 Β· (c) PLATEAU 4 Β· (d) NEXT (sibling search first), then T4b close and T5 +4004 cdd9a2cb8e07149764908363d42a1070631d7ce0 2026-09-06T13:12:18-06:00 2026-09-06T13:12:18-06:00 feat(phase-32): T4b hand pass β€” ov_SC03_105:func_80185810 (489 ins) BANKED byte-identical: the banked cousin ov_SC02_027:func_80180B3C's packet-window spelling ported (cookbook Β§501-P); zero pins, zero fences, zero asm dials (S85) +4005 0ab474ed5dd281ccd7eb98963c0de68614d4ef31 2026-09-06T13:21:29-06:00 2026-09-06T13:21:29-06:00 docs(phase-32): T4b hand pass β€” row (d) harvest: cookbook Β§501-P (the atlas's 0.55 "weak cousin" was the same-shape sibling; its natural spelling ported with ZERO pins/fences; the 12-variant element census), accelerators (14), decision-log P32 S85, NOTES + 12 measured variants + rtu logs; backlog 3 open; census 2 stubs / 940 ins; T4b hand pass COMPLETE (13/15 banked + 2 verdicts) +4006 fe2f34b9f4b1a3bcdd8e50c78d4016f425ce8b6d 2026-09-06T13:38:01-06:00 2026-09-06T13:38:01-06:00 docs(phase-32): T4b CLOSE β€” hand pass complete (13/15 banked + 2 final verdicts); fleet R22 after the last bank 218 passed / 0 failed (exits 0/0/0, 13:21:49 MDT); make report: instr 13,487,557/13,488,497 = 100.0% Β· distinct 100.0% Β· fn-count 100.00% Β· INCLUDE_ASM 2; main 2,089/2,091 = 99.90% (143dbb89); tools-health OK; audit-disc UNCLAIMED 0; πŸ›‘ checkpoint refreshed as the T5 seed +4007 f9a90affbdf3f6d8c51bcd53a140bccb6f508926 2026-09-06T15:03:24-06:00 2026-09-06T15:03:24-06:00 feat(phase-32): T4c hand pass β€” main:func_80032A74 (422 ins) BANKED byte-identical: the "PROVED" 8-byte orphan slot was a missed producer β€” a combine ghost minted by a self-update whose deleted insn re-mentions its own dest (combine.c:2306 skips the ref decrement); a three-statement chain on the dd->unk07 compare buys the slot at zero instruction cost (S85) +4008 ffb1949a1b437e26d560917c8eb723d8cacd3fce 2026-09-06T16:02:03-06:00 2026-09-06T16:02:03-06:00 feat(phase-32): T4c hand pass β€” main:func_80039308 (518 ins) BANKED byte-identical with ZERO pins: the phantom frame slot is a combine ghost (a self-update chain on the s0[1] load), the hoisted volume base is three inline `(b2 * 0x100)` temps merged by loop.c's combine_movables with a `u16 vol` accumulator so cse leaves the arms on the hoisted register, and the else head reuses the note-on arm's s17/s18 (S85) β€” main has NO INCLUDE_ASM stubs left +4009 6e37e8ec6280bc862b7d6abb484fb84fb5785a92 2026-09-06T16:13:19-06:00 2026-09-06T16:13:19-06:00 docs(phase-32): T4c harvest + checkpoint β€” the frontier is EMPTY (census 0 stubs / 0 ins); cookbook Β§501-Q (the combine self-update ghost slot) + Β§501-R (a hoisted invariant read three times: inline temps merged by combine_movables, `u16` as a cse firewall, the allocation order IS the callee-saved bank; every pin came off), accelerators (15)(16), decision-log P32 S85 T4c, tools/cc1_dumps_tu.sh + tools/alloc_table.py promoted (+ SETUP rows, cc1_dumps.sh -dL), wave_exclude 0 entries, backlog 1 legacy row, .run/P32/t4e (56 variants, 18+8 reproducers, NOTES, banks, slates); πŸ›‘ checkpoint refreshed as the T5 seed (the fleet R22 + report chain runs in the background β€” its logs are recorded by the next session) +4010 ea27bceb1ea38377aecaa056eabdc43951d004fc 2026-09-06T16:20:59-06:00 2026-09-06T16:20:59-06:00 docs(phase-32): T4c CLOSE β€” fleet R22 after the last banks 218 passed / 0 failed (exits 0/0/0, 16:13:17 MDT); make report: 100.00% / 100.0% / 100.0%, INCLUDE_ASM 0, main 2,091/2,091 (143dbb89); gate 2 confirmed by Drew +4011 b5b79b3ac1aeb232b56db1124b2b941ee57a96d4 2026-09-06T16:29:00-06:00 2026-09-06T16:29:00-06:00 chore(phase-32): CLOSE β€” the frontier is empty: 0 stubs across 218 binaries, fleet 100.00 / 100.0 / 100.0, main 2,091/2,091 (v1.31.0) +4012 73068f39f0b979abf974917c8f38b1582ac5685b 2026-09-06T18:30:30-06:00 2026-09-06T18:30:30-06:00 docs(phase-33): A1 governance β€” R65–R73 ratified at gate 1 (DIGEST Β§3), CURRENT_PHASE.md opened with the approved plan (verbatim) + the first πŸ›‘ checkpoint; harness task list built (41 items, R28) +4013 b23300fc211ff09057d8752d2fb1f6ad3a1e5581 2026-09-06T18:46:52-06:00 2026-09-06T18:46:52-06:00 feat(phase-33): A2 reporting instruments β€” make sig-main rewritten (tools/main_seed_ends.py: main's game-code boundaries DERIVED from the link map + objects, tiling asserted; 809 fns / 45,150 ins), progress.py weighs main by the build-derived sig and EXITS with no sig (R32), the digest's oracle clause derived live (0 phantom / 0 truncated / 0 pad-tail), backlog.linked_closed retires the LINKED-range legacy row (0 open), dup_report on the derived sig; CORRECTED main denominator 45,150 (Ghidra's flow boundaries left 3,628 words of game code unowned) β€” fleet instr 13,492,113 / distinct 5,820,205, all 100%; make report BINARY=main EXIT=0, audit-digest OK; SETUP Β§6.8 + P33 A2 rows (R21) +4014 4bb29544a272ae95fd373c87fafbdfba580cb827 2026-09-06T18:51:19-06:00 2026-09-06T18:51:19-06:00 feat(phase-33): A3 the with/without-SDK dual β€” NO_SDK=1 knob (skips the eleven psyq_integrate rewrites AND the -T externals fragments), make sdk-dual (refuses without all 11 SDK object dirs; WITH β†’ extract β†’ rm build/psyq β†’ NO_SDK=1 β†’ extract β†’ WITH restore; map assertions; both legs == config/check.us.sha), wired into tools-health with a [skip] when the SDK is absent; proven: main 143dbb89… byte-identical WITH (1,288 psyq objects) and WITHOUT (12 libcd1 stub tiles), 28 s wall; SETUP P33 A3 (R21) +4015 62854caca029000bb51b097035b971fb49215139 2026-09-06T18:55:21-06:00 2026-09-06T18:55:21-06:00 fix(phase-33): A4 family map carries its own coverage β€” family_hseq.json records the 217 scanned binaries + open_instances (0), audit_binaries CHECK 4 reads that denominator instead of inferring it from (now empty) families; regenerating the map had turned the P32-close 6-binary warn into 217 'missing' from a COMPLETE map (R35); controls: 0 [warn] now, the old format warns 'predates the coverage field'; docs/family-hseq.md regenerated (0 families); SETUP P33 A4 (R21) +4016 026571291695d11eba63d01c7e37d4dd37d4eeda 2026-09-06T19:02:34-06:00 2026-09-06T19:02:34-06:00 feat(phase-33): B1 make disc-extract β€” the rom->decoder step in the build: extract.py --expect-manifest (compare against the committed oracle, never write it; mismatch -> .run/extract/ + diffs, exit 1) + --allow-missing-audio (explicit PARTIAL for Track-1-only dumps); disc-extract = probe (0.7 s no-op) -> disc presence -> redump SHA1/CRC32 -> extract+compare -> verify (15.7 s full); extract/extract-all call it; check-env WARN-on-absent EXE + oracle self-consistency; help rewritten; the 4 splat preset headers TRACKED (clean keeps them); .gitignore re-tightened to H1 (dumps/*.bin, ghidra/, tools/psyq/, session archive/, ghidra-ext zips, brave.exe; EXE re-include dropped); controls: no-disc exit 2, truncated disc FAILs with the oracle untouched, regenerated tree byte-identical to the previous (1,801 files) +4017 9be6364a5b1cb18db6c2033b9885f7e499ea78fd 2026-09-06T19:06:03-06:00 2026-09-06T19:06:03-06:00 feat(phase-33): B2 portable includes β€” 34 absolute #include lines in 19 overlay sources (15 binaries) respelled to ../shared/ (30 engine_core.h + 4 engine_types.h); audit_text_sources.py gains the portable-include class (absolute / angle-bracket / unresolvable / outside-repo), controls 34 offenders before -> 0 after over 4,299 sources; the 15 binaries re-gated byte-identical (15/15 OK, 29 s wall); SETUP P33 B2 (R21) +4018 89e087f52abb030b52016dc93a60627bde7aa1da 2026-09-06T19:14:11-06:00 2026-09-06T19:14:11-06:00 feat(phase-33): B3 tools/bootstrap.sh + make bootstrap (apt presence printed, venv from requirements, submodules, cc1 tarballs sha256-checked + extracted, check-env) + check-env gains submodule/preset-header/payload-census lines; PROVEN on a fresh clone: bootstrap from nothing -> check-env OK -> disc-extract OK -> extract-all 217/217 -> check-all 218/218 in 4m18s with no SDK objects (the public user's path); SETUP P33 B3 (R21) +4019 707ec491e44fd74a93c54e248c32dbfb47a60fd6 2026-09-06T19:19:06-06:00 2026-09-06T19:19:06-06:00 feat(phase-33): B4 tools/fetch_psyq.sh β€” the OPTIONAL PsyQ SDK objects, user-supplied and sha256-verified (parser tarball + binary, RTL 4.2 archive -> lib421, the 20 PsyQ 4.0 LIBs off the DTL-S2002 redump disc via tools/psyq_libs_from_disc.py or --from), then the existing builders + make sdk-dual; tools/psyq/CHECKSUMS.sha256 -> tools/psyq_CHECKSUMS.sha256 with 22 new rows; controls: refuse without a 4.0 source, die on a corrupted LIB; the disc-path run rebuilt every SDK dir and proved sdk-dual in 37 s; SETUP P33 B4 (R21) +4020 cabab00c0e94b9db0bacba128bfdec30a001f539 2026-09-06T19:31:34-06:00 2026-09-06T19:31:34-06:00 wip(phase-33): B5 Ghidra regenerability β€” ExportAnnotations.java + ghidra_export_annotations.sh PROVEN (all 129 programs exported to byte-stable JSONL in 18.5 s), ghidra_annotations_delta.py (live βˆ’ baseline), ImportAnnotations.java + ghidra_rebuild.sh WRITTEN but unproven (the resident rebuild hit an OSGi script-bundle load error β€” a compile error in the new importer breaks every script in the dir; the known bad LocalVariableImpl ctor is named in CURRENT_PHASE); Makefile print-% + GHIDRA_PROJ repo-relative; the six ghidra_*.sh repo-relative (BFM_GHIDRA_PROJ); DefineFunctions arg path; ImportPsyqGdt install-dir default; ExportSymbols R15 fix; scratch project under build/ (Ghidra refuses '.'-prefixed path components); SETUP P33 B5 section; checkpoint refreshed for the next session (S86 paused at 87% context) +4021 bc37b257eed7a525945d5ff46e37147c6b06f5e6 2026-09-06T19:32:10-06:00 2026-09-06T19:32:10-06:00 docs(phase-33): decision-log β€” the in-place flip pivot (why not the two-repo mirror; the fixed-point rule for hashes) and the build-derived main denominator (R31) +4022 936d7d741c87bba57282b5935366fdc9be291f65 2026-09-06T20:32:35-06:00 2026-09-06T20:32:35-06:00 feat(phase-33): B5 Ghidra regenerability PROVEN β€” the RE work as text (config/ghidra/*.jsonl + ROSTER.md), six programs rebuilt from disc + symbol files + that file with PROOF PASS +4023 d379537322156483d74efe76764658830666eea7 2026-09-06T20:33:29-06:00 2026-09-06T20:33:29-06:00 docs(phase-33): B6 dumps β€” dumps/CHECKSUMS.sha1 (28 rows, --check 28/28) committed before the .bin leave git; INDEX.md status rewritten (LOCAL-ONLY from the flip, archive repo holds the copy, a re-capture is a new snapshot never byte-identical); memory-map Source-index row for the corpus; checkpoint -> NEXT = B7 +4024 6732771fe0db7050285e7bed5914f9fddb6fa0d1 2026-09-06T20:50:11-06:00 2026-09-06T20:50:11-06:00 feat(phase-33): B7 the ROM-free CI β€” no-rom.yml (audits + compile-only), tools/audit_public.py (the first-push gate), tools/compile_only.py, tools/public_rewrite/purge_set.txt +4025 b2fb392adae23415936b65cd8d03f2328e97c90b 2026-09-06T20:52:07-06:00 2026-09-06T20:52:07-06:00 docs(phase-33): B8 β€” docs/verification.md (the public verify-it-yourself page: redump SHA1s, the R22 recipe with every expected last line, what is not our C, the recorded-run table pending A5, what CI proves) + SETUP as-built pointers (Β§4.4 disc-extract, Β§4.6 bootstrap, Β§4.8 fetch_psyq, Β§6.3 make help + the R22 line) + the backup-posture P33 update (R20's new home: config/ghidra + --proof; never git clean -x); checkpoint -> NEXT = P6 check, A5 +4026 1e3ce6c1c829f31f2d71bb0e40bb49bb7b12e265 2026-09-06T20:56:04-06:00 2026-09-06T20:56:04-06:00 chore(phase-33): A5 prep β€” tools/verify_contract.sh (the recorded contract run: per-step logs ending EXIT=rc, abort on first red, contract-line asserts, SUMMARY.md), .run/P33/verify/ allowlisted, audit_frontier's denominator lines DERIVED (1,258 stubs = main's LINKED regions, 0 game-code; disc UNCLAIMED from the ledger; the typed '39 modules / missing oracle' caveat was stale since P30/P31) +4027 8845fdd99493d08ac29217a50acd4fbf1a5425cb 2026-09-06T20:56:40-06:00 2026-09-06T20:56:40-06:00 fix(phase-33): audit_frontier keys main as SLUS_007.26 in the reference view (the derived LINKED-stub line read 0 β€” now 1,258 inside LINKED, 0 game-code); verify_contract step 00 checks tracked files only (-uno) so the run's own untracked logs cannot fail it +4028 3e0ecfaccf050fd4626d8e931c665760f242eef7 2026-09-06T20:58:29-06:00 2026-09-06T20:58:29-06:00 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the reference view holds addresses) β€” control: 1,258 total, 1,258 inside LINKED, 0 game-code; docs/family-hseq.md regenerated by the aborted run's step 02 +4029 19832e16931140c340cd6ea1e2d326bc513fc844 2026-09-06T21:13:09-06:00 2026-09-06T21:13:09-06:00 verify(phase-33): A5 THE RECORDED RUN β€” PASS on commit:4028: check-all 218/218 from a clean fleet (157 s), sdk-dual OK both legs, tools-health OK (0 PHANTOM/TRUNCATED/PAD-TAIL, 0 warns), audit-frontier 1,258 stubs all in main's LINKED regions / 0 game-code, audit-disc UNCLAIMED 0, report 363214/363214 Β· 13492113/13492113 Β· 5820205/5820205 Β· main 45150/45150, stubs 0, backlog 0; every step EXIT=0 with its contract line; logs + maps + SUMMARY tracked under .run/P33/verify/, SUMMARY pasted into docs/verification.md Β§2; checkpoint -> NEXT = B9/C3 +4030 2b45081b5fd35830eb0f40b82f00e075c7e5c523 2026-09-06T21:22:25-06:00 2026-09-06T21:22:25-06:00 chore(phase-33): C3 the preparatory commit β€” the purge set leaves the INDEX (251 entries, files stay on disk, all ignored): the retail EXE, 28 RAM dumps, ghidra/ (27), tools/psyq/ (189), session archive/ (3), the 2 extension zips, brave.exe +4031 fca38390494b24e1780f5e0409573bdbd8b2cf89 2026-09-06T22:37:10-06:00 2026-09-06T22:37:10-06:00 feat(phase-33): C1 the history-rewrite tooling β€” tools/public_rewrite/ (git-filter-repo 2.47.0), PROVEN by two trial rewrites on a scratch bare clone +4032 494fbd3c826356f6cb0bf013b123d38a565579e3 2026-09-06T22:42:09-06:00 2026-09-06T22:42:09-06:00 chore(phase-33): C2 the recorded controls on the final pre-rewrite tree β€” hash_dict 4,421 objects / 0 ambiguous / 0 collisions; scrub sample 732 tokens == git's own lookup; gate_scan --expect-fail PASS over 16.79 GB (every rule named, 0 strays, 268 ids, the shared empty blob excluded); audit_public OK; run_filter now refuses a stale dictionary (R43); checkpoint -> NEXT = C4 (waiting on Drew's archive mirror push) diff --git a/docs/decision-log.md b/docs/decision-log.md index 375ce183f6..2d0c1397a8 100644 --- a/docs/decision-log.md +++ b/docs/decision-log.md @@ -1162,7 +1162,7 @@ largest cheap win left") is byte-refuted. 2. **n=1, on the least representative family in the population.** `has_mid_jr` is **3 of 163** matched-exemplar families (120 of 13,232 members). The rarest class was generalized to the whole frontier. 3. **Its corroborating evidence was pre-fix.** The three Phase-26 exhaustion probes (tiny-IMM 0/241, - PURE 0/134, pinned 0/133) all predate `_carry_macros` (P27 T5, `commit:0637`). P27's decision-log calls its + PURE 0/134, pinned 0/133) all predate `_carry_macros` (P27 T5, `ee4b3a02e`). P27's decision-log calls its own re-probe *"a **fourth** phantom exhaustion proof"* β€” it named the mechanism that would have faked the first three and never re-ran them. **The β‰ˆ0% doctrine now has no surviving post-fix evidence.** 4. **A second instrument was lying underneath.** `family_remap.img_path` hardcoded `0.4.dec`, so the 4 SC07 @@ -1328,7 +1328,7 @@ dispatchers repeated per location) were the biggest unbanked pool (~5,116). `fam **Three wrong diagnoses, each refuted by the byte-gate/build (the R35 lesson, live, three times).** (1) I first read `diff_regions`'s `O2:MATCH(0)` as "just a symbol-definition gap" and committed that finding -(`commit:0665`) β€” WRONG: masked_diff masks `%hi/%lo`, so a masked-MATCH cannot prove the reloc target resolves. +(`53ee97494`) β€” WRONG: masked_diff masks `%hi/%lo`, so a masked-MATCH cannot prove the reloc target resolves. (2) I traced it to a "splat-local undefined symbol" β€” WRONG: the symbol (`D_801815EC`) is a defined `dlabel` in the data tail. (3) The failure is a **compile** error, not a link/symbol issue: substituting one member draft gave `conflicting types for func_8015FAAC` (cc1 exit 33), and the `family_sweep --reconcile` @@ -1475,7 +1475,7 @@ There is no extraction-order effect and no mid-flow asm. *batch* `_jtbl_prep` β€” the run that ended `6 table-bearing β†’ 1 carved, 4 isolate-FAILED, 1 stale-asm carve fail`, i.e. a tree carrying the residue of five failed preps (stranded carves, half-applied isolations). The per-function snapshot-restore that removes exactly that residue landed **after** those runs, in the very -commit that named the blocker (`commit:0803`). The measurement was real; the attribution was to the mechanism +commit that named the blocker (`41d65af73`). The measurement was real; the attribution was to the mechanism rather than to the tree it ran on. The failing tree is gone, so that stays the best-supported explanation rather than a byte-proof β€” but the load-bearing claim (the path is clean-invalid) is byte-refuted twice. @@ -2062,12 +2062,12 @@ tree (0 unresolved symbols): | | instr | distinct | unique fns | |---|---|---|---| -| `commit:1426` **true** | 12,394,533 | 5,022,306 | 77,895 | -| `commit:1426` *as committed* | 12,402,412 | 5,029,324 | **78,025** | +| `10f954627` **true** | 12,394,533 | 5,022,306 | 77,895 | +| `10f954627` *as committed* | 12,402,412 | 5,029,324 | **78,025** | | `HEAD` true **= committed** | 12,405,402 | 5,025,082 | 77,952 | True delta: **instr +10,869, distinct +2,776 ins / +57 unique fns β€” everything rose.** The -`commit:1426` digest was **committed stale** (generated from a working tree still holding work that was +`10f954627` digest was **committed stale** (generated from a working tree still holding work that was reverted before the commit landed; overstated +7,879 ins / +130 unique fns, never regenerated). The next honest digest was lower than the stale one, so the metric *appeared* to fall. @@ -2919,7 +2919,7 @@ sweeps the WHOLE binary, not the function just banked, and that overlay held **5 matched-but-never-shared functions**. The fleet census came to **~2,073 distinct functions / ~12,116 sweep items across 174 of 217 binaries**, every one already matched. -Origin: the July 2026 mechanical family sweeps (`commit:0476` +16,512 members, `commit:0531` +17,975 +Origin: the July 2026 mechanical family sweeps (`c993029f0` +16,512 members, `025cc03f6` +17,975 member-matches) bank a proven body as a **private copy per overlay** and register no dedup group. That was a deliberate throughput trade β€” it moved the fleet 66%β†’71% in one commit β€” and it left tidying behind that nobody has done since. @@ -3386,7 +3386,7 @@ sibling search; the twin oracle, the family maps and the atlas's own knn entry f A grep for the idiom's constant (`'0x200) << 2'`, the libgpu getTPage chain) across `src/` listed `ov_SC02_027:func_80180B3C` β€” which the atlas had recorded only as a reverse 0.55 "weak cousin" β€” and its objdump window was the target's rows 362–386 instruction for instruction. Porting its window spelling matched in the real TU on the first draft, then with every pin removed: -zero pins, zero fences, zero asm dials, BANKED `commit:4004`, ov_SC03_105 100% C. A 12-variant census then measured which spelling +zero pins, zero fences, zero asm dials, BANKED `cdd9a2cb8`, ov_SC03_105 100% C. A 12-variant census then measured which spelling elements carry the window (the fresh single-set masks, the branch polarity, the early unpinned shift) and refuted the S83 guess that a hard-register pin was what kept the `andi` alive (Β§501-P). @@ -3410,9 +3410,9 @@ PROVED at 1 (every stack-slot producer refuted), `func_80039308` PLATEAU at 4 (t ### What happened The Β§501-N step 0 found the shape cousins in main's own TUs but the cracks were compiler mechanisms the censuses lacked: -combine's self-update bookkeeping gap mints a no-traffic frame slot (Β§501-Q β€” one chain, first probe, `commit:4007`), and a +combine's self-update bookkeeping gap mints a no-traffic frame slot (Β§501-Q β€” one chain, first probe, `f9a90affb`), and a hoisted invariant read three times needs three inline temps merged by loop.c plus a `u16` accumulator so cse leaves the arms -on the hoisted register (Β§501-R β€” 56 variants, then MATCH with zero pins, `commit:4008`). Every pin the S79–S84 drafts carried +on the hoisted register (Β§501-R β€” 56 variants, then MATCH with zero pins, `ffb1949a1`). Every pin the S79–S84 drafts carried came off byte-identical. Census: 0 stubs. ### Why (measurement-grounded) diff --git a/docs/family-cousins.md b/docs/family-cousins.md index 42d3b5187d..8dee4cf5bb 100644 --- a/docs/family-cousins.md +++ b/docs/family-cousins.md @@ -1,6 +1,6 @@ # P30 S49 β€” cousin-unit survey (similarity tier over the open frontier) -> Generated by `tools/family_cousins.py` at HEAD `commit:3070` from `.run/family_hseq.json` + the binary sigs (R32-checked against an independent stub recount β€” a stale map fails loud). Compare digests only at the same HEAD. +> Generated by `tools/family_cousins.py` at HEAD `252dc930c` from `.run/family_hseq.json` + the binary sigs (R32-checked against an independent stub recount β€” a stale map fails loud). Compare digests only at the same HEAD. > > **A unit is a CANDIDATE grouping** β€” same-source cousins split by skeleton drift (insertion/deletion; the li-expansion class). Cousins need a per-member seeded CRACK, never a `family_sweep` remap. The whole-binary byte-gate stays the sole arbiter. diff --git a/docs/family-endgame-megaplan.md b/docs/family-endgame-megaplan.md index 888a93039f..905b3016cb 100644 --- a/docs/family-endgame-megaplan.md +++ b/docs/family-endgame-megaplan.md @@ -162,7 +162,7 @@ those (Drew's "convert to C to find groups" idea, done right): ## 6. CARRIED CONTEXT β€” this session's other findings (fold into the plan, most-value-first) -### Committed this session (`commit:0515`) +### Committed this session (`8270e7692`) - **🎯 FLAGSHIP `func_80133CD4` (399 ins) CRACKED Γ—134** (Fable5 gdb-on-cc1) β€” the ~22-phase "unsteerable whole-function register permutation" retired. Fleet instr-weighted 57.7β†’58.2%, distinct-code 29.3β†’30.3%. **Idiom β†’ cookbook Β§45** (READ IT β€” it's the template for the family-core cracks): (a) **merged-accumulator diff --git a/docs/family-hseq.md b/docs/family-hseq.md index 6ee8ec952f..de2e192488 100644 --- a/docs/family-hseq.md +++ b/docs/family-hseq.md @@ -5,7 +5,7 @@ > Generated by `tools/family_hseq.py` from the 217 binary sigs + per-binary src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members Γ— nins Γ— 4). The byte-gate is the arbiter. > -> **Scope (217 binaries): 141 location overlays + 75 md_* modules + the resident Β· MAIN IS EXCLUDED** Β· generated at HEAD `commit:4028` Β· stub set derived from `corpus.stubs` β€” the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD. +> **Scope (217 binaries): 141 location overlays + 75 md_* modules + the resident Β· MAIN IS EXCLUDED** Β· generated at HEAD `3e0ecfacc` Β· stub set derived from `corpus.stubs` β€” the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD. **Fleet (overlays):** 100.0% fn / 100.0% instr / 100.0% distinct-code matched. Unmatched: 0 instances / 0 ins (0 distinct classes). diff --git a/docs/frontier-atlas.md b/docs/frontier-atlas.md index 46643c9cbb..eebc71ab4e 100644 --- a/docs/frontier-atlas.md +++ b/docs/frontier-atlas.md @@ -1,6 +1,6 @@ # The Frontier Atlas (P31 T5) -> Generated at HEAD `commit:3070` by `tools/atlas.py` β€” REGENERATE, never edit. Groups are ADVISORY (the byte-gate is the arbiter). Calibration: warm merge at norm-ratio β‰₯ 0.7, kNN floor 0.55. +> Generated at HEAD `252dc930c` by `tools/atlas.py` β€” REGENERATE, never edit. Groups are ADVISORY (the byte-gate is the arbiter). Calibration: warm merge at norm-ratio β‰₯ 0.7, kNN floor 0.55. **Scope:** 2520 open instances / 1931 skeletons across 213 binaries (main: 151 β€” atlas-layer join (family maps stay non-main)). **Tiers:** T1.5 h_seqn merges 0 Β· warm merges 164 (from 3399 ratio calls) Β· seed sweep: 1443 skeletons carry a β‰₯0.55 seed from the 7700-skeleton matched pool. diff --git a/docs/frontier-p30.md b/docs/frontier-p30.md index 9c0653c3ff..7eee5ce0e3 100644 --- a/docs/frontier-p30.md +++ b/docs/frontier-p30.md @@ -1,6 +1,6 @@ # The P30 frontier report (T0(f) β€” report point #1) -> **Generated 2026-07-30 at HEAD `commit:1218`**, after the T0 instrument repairs (a–e), from +> **Generated 2026-07-30 at HEAD `407ff8f85`**, after the T0 instrument repairs (a–e), from > same-tree regenerations only: `progress.fleet.md` Β· `family-hseq.md` (+`.run/family_hseq.json`) Β· > `worklist.md` Β· `.run/fuel_manifest.json` Β· `.run/autopsy/residuals.jsonl` Β· `docs/autopsy.md`. > Every number below is re-derivable from those artifacts at this HEAD (R33/R35). This file is a diff --git a/docs/frontier-p32.md b/docs/frontier-p32.md index 03d53f4725..66f068d16c 100644 --- a/docs/frontier-p32.md +++ b/docs/frontier-p32.md @@ -102,7 +102,7 @@ asserts the residue-0 partition (UNCLAIMED = 5). main β†’ `tools/gate_main.py --apply` (clean rebuild; main TUs must be clean; its pre-check names decl clashes β†’ `sync_tu_decls` / `cast_self_callers --sync-decls`, committed byte-neutral first). **Commit every bank immediately (R42)**, then `tools/twin_rescan.py`. -* **The permuter is now honest on pinned and K&R seeds** (Β§493 S80 correction, `commit:3890`): `tools/permuter_ils.py +* **The permuter is now honest on pinned and K&R seeds** (Β§493 S80 correction, `7fbdb8fd6`): `tools/permuter_ils.py --draft --asm-subdir --klass REGALLOC|SCHEDULE --cycles 8 --secs 150 --j 3`; it re-hides pins on every warm restart, aborts exit-2 on a refusal, and flushes its log. **Read a waypoint's diff (`match_one`) before recording its score** β€” one S80 "1" was a divergent store rewrite. Winners β†’ `tools/p16_permute.winner_to_draft` diff --git a/docs/history/cheap-tier-ab-experiment.md b/docs/history/cheap-tier-ab-experiment.md index 5543507a9d..590b493b46 100644 --- a/docs/history/cheap-tier-ab-experiment.md +++ b/docs/history/cheap-tier-ab-experiment.md @@ -33,7 +33,7 @@ So `match_one` **over-counts bankable yield** on reach1/split-file functions. Th capability* comparison above still stands (Haiku ties Opus on the small tractable band at the proxy level), but BANKABLE yield is gated by a further, **model-independent** TU-plumbing filter. Of the 4 that banked, Haiku had proxy-matched 3 (the ≀52-ins ones) β€” the cheap tier still owns the small band. -Banked + committed @ commit:0307; ov_SC01_077 stays byte-identical (d19c9580). +Banked + committed @ 6d5fe3dfd; ov_SC01_077 stays byte-identical (d19c9580). **Haiku closes ~4.8Γ— as many functions per dollar as Opus.** Cost from measured workflow tokens (opus 1,968,371; haiku 1,365,666) at a 35%-in/65%-out split, June-2026 ladder (Opus $5/$25, Haiku @@ -73,7 +73,7 @@ around ~50–90 ins**. That boundary is the empirical Tier-2 β†’ Tier-3 line. extends the cheap band upward vs Haiku β€” worth an identical A/B next. 3. Score the cheap tier on the WHOLE-BINARY gate, not `match_one` β€” the proxy over-counts on reach1/split functions (15 proxy β†’ 4 banked here). The cheap-vs-Opus *drafting* delta is real, - but route/measure on banks. 4 fns banked from this experiment (@commit:0307); the rest are backlog fuel. + but route/measure on banks. 4 fns banked from this experiment (@6d5fe3dfd); the rest are backlog fuel. ## Artifacts - `tools/workflows/ab_match.js` β€” per-arm-model fan-out (reusable for glm/local arms) diff --git a/docs/matching-cookbook.md b/docs/matching-cookbook.md index bf392bc6fe..3a080d4033 100644 --- a/docs/matching-cookbook.md +++ b/docs/matching-cookbook.md @@ -1995,7 +1995,7 @@ byte-matched evidence fn. (Pins/array-decay/statement-order/shared-ret0/for-vs-d (`*(s16*)(iVar3+0x18)=*(s16*)(iVar3+0x1a)=*(s16*)(iVar3+0x1c)=sVar4`).* > **⚠ CANDIDATE (unverified) β€” the next two bullets are from `func_801775E0`, a NEAR-MISS (closeness 2, NOT -> byte-banked)**, appended directly by a wave-13 drafter (that drafterβ†’cookbook path is now blocked, `commit:0219`). +> byte-banked)**, appended directly by a wave-13 drafter (that drafterβ†’cookbook path is now blocked, `f13765817`). > They are plausible gcc-2.7.2 observations but were NOT confirmed by a byte-match. A drafter MAY try them β€” the > byte-gate (G3/P9) is the sole arbiter, so a wrong idiom can never bank β€” but VERIFY before trusting. Drew to > keep / refine / drop. @@ -2145,7 +2145,7 @@ justifies the wave vs pivoting (the wall is the same as the main vein's). src/ov_SC01_077/ov_SC01_077_a.c` reads `cur_stubs` + inline/extern canonical sigs from the split file (not the main `.c`), so `_a`/`_o0` drafts are no longer dropped and DO get the def-side arity-adopt recovery. Validated: 21 `_a` drafts unified WITH the flag vs 0 without; the `_a` close=0 recovery wave then banked func_8012F568 Γ—134 -(commit:0277). `gate_stage` passes `--src-file` to BOTH `cast_call_sites` and `sig_unify` now. See Β§25 for the +(e5ae5958d). `gate_stage` passes `--src-file` to BOTH `cast_call_sites` and `sig_unify` now. See Β§25 for the canon-first two-stage gate that makes this safe (sig_unify must be a FALLBACK, not unconditional). ## Β§25 β€” The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts Γ—134 (Phase 21, cont.6) @@ -4116,7 +4116,7 @@ The 0/8 was cited as the decisive input for two phases of planning. Three compou 2. **n=1, least-representative** β€” `has_mid_jr` is **3 of 163** matched-exemplar families; the rarest class was generalized to the whole frontier. 3. **The corroborating evidence was pre-fix** β€” the three Phase-26 exhaustion probes (tiny-IMM 0/241, - PURE 0/134, pinned 0/133) all predate `_carry_macros` (P27 T5, `commit:0637`). P27's own decision-log calls + PURE 0/134, pinned 0/133) all predate `_carry_macros` (P27 T5, `ee4b3a02e`). P27's own decision-log calls its re-probe *"a **fourth** phantom exhaustion proof"* β€” naming the mechanism that would have faked the first three, and never re-running them. @@ -4780,7 +4780,7 @@ ladder. The correct next step is to diagnose the divergence itself (diff the inc > `_jtbl_prep` β€” the same run that ended `6 table-bearing β†’ 1 carved, 4 isolate-FAILED, 1 stale-asm > carve fail`. That tree carried the residue of five failed preps (stranded carves and half-applied > isolations); the per-function snapshot-restore that removes exactly that residue landed **after** -> those runs, in the same commit that named the blocker (`commit:0803`). The measurement was real; its +> those runs, in the same commit that named the blocker (`41d65af73`). The measurement was real; its > attribution was to the wrong cause. The failing tree is not recoverable, so this is stated as the > best-supported explanation, not a byte-proof β€” but the claim that *matters* (the path is > clean-invalid) is byte-refuted twice, and that is the claim that was blocking the work. @@ -9702,8 +9702,8 @@ the ACCOUNTING is not."* The def-side asm-label alias had just cracked a 208-con | | instr | distinct | unique fns | |---|---|---|---| -| `commit:1426` **true** | 12,394,533 | 5,022,306 | 77,895 | -| `commit:1426` *as committed* | 12,402,412 | 5,029,324 | **78,025** | +| `10f954627` **true** | 12,394,533 | 5,022,306 | 77,895 | +| `10f954627` *as committed* | 12,402,412 | 5,029,324 | **78,025** | | `HEAD` true **= committed** | 12,405,402 | 5,025,082 | 77,952 | The real delta over that span is **instr +10,869, distinct +2,776 ins / +57 unique fns β€” everything @@ -10677,7 +10677,7 @@ zero, hand-disassemble ONE known-good case and check your tracker sees it (Β§155 > **F1** of `docs/concurrency-design.md`). **That was wrong.** No arity journal from that session > mentions `func_80146A6C` (checked: 74/26/4 entries), and the arity undo reported success in every > log. F1 is real and still worth guarding β€” it just did not cause this. The commit message on -> `commit:1519` carries the same wrong attribution; corrected forward here, history not rewritten. +> `dcc76228b` carries the same wrong attribution; corrected forward here, history not rewritten. **The real mechanism.** `dedup_propagate --recover`'s Part B reconciles an overlay's conflicting caller extern and, when that buys the byte-match, **deliberately leaves the edit on disk** @@ -11049,7 +11049,7 @@ agent's integration notes before diagnosing a gate failure β€” it has already se Provenance: 12 zero-crack sibling exemplars cracked by parallel agents against `match_one`, every claimed MATCH re-gated by an independent adversarial verifier, then gated whole-binary. **8 of 12 banked** -(`commit:1619`, R22 213/213); 3 NEAR and 1 that passed `match_one` + verification and STILL failed the +(`b83babbff`, R22 213/213); 3 NEAR and 1 that passed `match_one` + verification and STILL failed the binary gate (`func_8017F2D4` β€” the Β§52b gap in one line: the per-function gate is a candidate filter, the binary gate is the arbiter). Every entry below was deduped against the whole cookbook by a skeptic agent before it was written; each carries its own scope caveat, and the ones resting on a @@ -11091,7 +11091,7 @@ Take the entry count from the `sltiu` bound, never from the dlabel span (Β§8a-pa **NEGATIVE CONTROL (banked, same TU):** `func_80187AEC` (ov_SC06_018), also `lhu 0x34 ; sltiu …,6`, also 6 entries β€” but entry[0]=0x80187B3C and entry[5] are BOTH real bodies, so cases 0..5 are all real arms and *neither* empty-case construction applies. Two 6-entry tables, same dispatch shape, opposite C. The tell is the entry ADDRESS, never the entry count. -*Byte evidence:* `src/ov_SC06_018/ov_SC06_018_jr_80186270.c` (empty `case 5: break;`), carve `config/splat.ov_SC06_018.yaml` `0xab968β†’0xab980` = 0x18 = 6 entries, jtbl_801D3AC0 last entry 0x801866C0 = the function's own epilogue; banked in `commit:1619`, R22 213/213. Negative control `src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c`, carve `0xab998β†’0xab9b0`. *Scope: one banked positive against one banked negative β€” the mechanism is the proven Β§162a2 half read at the other edge, not an independently swept law.* +*Byte evidence:* `src/ov_SC06_018/ov_SC06_018_jr_80186270.c` (empty `case 5: break;`), carve `config/splat.ov_SC06_018.yaml` `0xab968β†’0xab980` = 0x18 = 6 entries, jtbl_801D3AC0 last entry 0x801866C0 = the function's own epilogue; banked in `b83babbff`, R22 213/213. Negative control `src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c`, carve `0xab998β†’0xab9b0`. *Scope: one banked positive against one banked negative β€” the mechanism is the proven Β§162a2 half read at the other edge, not an independently swept law.* **Β§162a3 β€” A SUBTRACT SEPARATED FROM ITS `sltiu` BY `sll 16 ; sra 16` IS THE SOURCE'S, NOT THE DISPATCH'S.** *(target-reading discriminator; the C-side form below is UNPROVEN β€” no gate has banked it.)* Contrast: @@ -11935,7 +11935,7 @@ Target shape β€” a symbol table reached twice, once through the gas macro and on **The lever β€” zero bytes.** After `e = (T *)SYM;` write `__asm__("" : "=r"(e) : "0"(e));`. `e` is now SET by an ASM_OPERANDS, which is not CONSTANT_P, so no `qty_const` is recorded, the swap never fires, and the base stays operand 0. Non-volatile is enough β€” it must be a SET, not a barrier. Same instrument as Β§153, aimed one pass later. -*Byte evidence β€” `func_8017ED5C` (ov_SC01_005, 147 ins, banked `commit:1652`, `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c:2792`); five A/Bs on the pinned triple:* +*Byte evidence β€” `func_8017ED5C` (ov_SC01_005, 147 ins, banked `50dd6b3c3`, `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c:2792`); five A/Bs on the pinned triple:* * banked: `la $4` / `sll $5` / `addu $2,$4,$5` β€” MATCH 147. * **drop the asm:** `la $5` / `sll $4` / `addu $2,$4,$5` β€” index is operand 0 and the two registers trade. * **drop the asm AND write the base first in source** (`off + (u8 *)e + 2`): output **byte-identical to the previous line**. Source order is inert. @@ -11962,7 +11962,7 @@ Target shape β€” a symbol table reached twice, once through the gas macro and on **It is NOT "the MULT operand is expanded first"** β€” `expand_expr`'s binop path expands operands in tree order, and `fold-const.c:3179-3190` reorders only literal constants. It is the explicit canonicalisation above, firing on the RTL SHAPE β€” which is why hoisting the scale into its own local (making op1 a plain REG) is the entire lever. -*Byte evidence β€” `func_8017ED5C` (ov_SC01_005, 147 ins, banked `commit:1652`), both variants compiled WITH Β§163f's asm so cse's swap is out of the picture:* `off = idx * 4; … (u8 *)e + off + 2` β‡’ `addu $2,$4,$5` (base first, MATCH); the same line as `(u8 *)e + idx * 4 + 2` β‡’ `addu $2,$5,$4`. Operands flip, **registers do not move**. +*Byte evidence β€” `func_8017ED5C` (ov_SC01_005, 147 ins, banked `50dd6b3c3`), both variants compiled WITH Β§163f's asm so cse's swap is out of the picture:* `off = idx * 4; … (u8 *)e + off + 2` β‡’ `addu $2,$4,$5` (base first, MATCH); the same line as `(u8 *)e + idx * 4 + 2` β‡’ `addu $2,$5,$4`. Operands flip, **registers do not move**. **DIAGNOSTIC TELL β€” this is also the discriminator against Β§163f.** *Sides wrong, registers right*, on an address sum whose index is a scaled subscript β‡’ split the scale into its own local (this section). *Sides wrong AND the two registers traded* β‡’ the cse swap (Β§163f); the expand-time edit alone will not reach it, because cse re-canonicalises whatever expand produced. @@ -12302,7 +12302,7 @@ jump.c's invert-a-cond-jump-that-skips-an-uncond-jump (Β§48-D's ratchet, used he Writing (a) where the target wants (b) puts the body on the wrong side of the fall-through and costs the whole block layout, not one instruction. Do NOT reach for Β§2-T4's polarity invert first β€” the polarity here is a *consequence* of the shape. -*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `commit:1671`) uses **both**, 30 lines apart, in one gated function: (a) at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:2962-2968`, (b) at `:2996-3015`. Neither position could be written in the other shape. +*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `de2ca3844`) uses **both**, 30 lines apart, in one gated function: (a) at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:2962-2968`, (b) at `:2996-3015`. Neither position could be written in the other shape. *Scope (honest):* **n = 1 per shape.** The pair is banked and each was necessary in situ, but the two-way oracle is a prediction over two instances, not a sweep. Re-measure on the next split-chain target before treating the tell as exhaustive. @@ -12443,7 +12443,7 @@ Five of the 16 measured spellings of one line (`a` = an s16 struct field, `J` = **When you use the variable-K form, SPEND AN EXISTING VARIABLE** (Β§78's two-effects rule): in this same sweep the fresh-temp forms (`t = a - K; a = t + J`, and its `s16` twin) get the tree right and still fail on allocation, while reusing the already-live `r` matches. -Evidence: `func_8017D7C0` (ov_SC02_041, 181 ins, zero-crack family exemplar Γ—4), 16-variant sweep in `.run/wave3/func_8017D7C0/try.py`; banked whole-binary as `rot.vx += ((rand() & 0x3f) << 4) - 0x200;` at `src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c:3404` (commit `commit:1652`). Supersedes the unvetted Β§163z claim on `func_80192B60` that PLUS/MINUS re-association is source-form invariant. +Evidence: `func_8017D7C0` (ov_SC02_041, 181 ins, zero-crack family exemplar Γ—4), 16-variant sweep in `.run/wave3/func_8017D7C0/try.py`; banked whole-binary as `rot.vx += ((rand() & 0x3f) << 4) - 0x200;` at `src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c:3404` (commit `50dd6b3c3`). Supersedes the unvetted Β§163z claim on `func_80192B60` that PLUS/MINUS re-association is source-form invariant. *(SHARPENS β€” sharpens Β§45 Lever D (L3309) β€” goto-shared-return isolates the exit `li`: a BB boundary stops the exit `li $v0,K` hoisting into a last-element load-delay slot ('use when a return-constant materializes one inst; evidence: byte-probed; from `func_8017DD28`)* @@ -12465,7 +12465,7 @@ Target shape β€” the LAST of several identical RMWs, and the only one whose load register u32 v __asm__("$2"); v = op[2]; v = (v & 0xFF000000) | ((u32)out & 0xFFFFFF); op[2] = v; -**Byte evidence.** `func_8017DD28` (ov_MAIN_012, 124 ins, banked whole-binary `commit:1629`, `src/ov_MAIN_012/ov_MAIN_012_jr_8017CF3C.c:4343-4352`): **16 mismatched β†’ MATCH**. The plain bitfield spelling put the loaded word in `$v1`/`$a0`, the `nop` vanished and the epilogue shifted βˆ’1. Target read off the still-unbanked family twin `asm/md_SC03_076/nonmatchings/md_SC03_076/func_801F1520.s:114-121`. **The discriminator lives in the same function:** its first two RMWs (`:100-106`, `:83-89`) have their load-delay slots filled by ordinary work (`lw $v1,0x0($s3)`, `and $v1,$s3,$s0`) and need no lever β€” only the LAST one, where the return insn is the sole remaining candidate, does. Apply it to that RMW and no other. +**Byte evidence.** `func_8017DD28` (ov_MAIN_012, 124 ins, banked whole-binary `95909749b`, `src/ov_MAIN_012/ov_MAIN_012_jr_8017CF3C.c:4343-4352`): **16 mismatched β†’ MATCH**. The plain bitfield spelling put the loaded word in `$v1`/`$a0`, the `nop` vanished and the epilogue shifted βˆ’1. Target read off the still-unbanked family twin `asm/md_SC03_076/nonmatchings/md_SC03_076/func_801F1520.s:114-121`. **The discriminator lives in the same function:** its first two RMWs (`:100-106`, `:83-89`) have their load-delay slots filled by ordinary work (`lw $v1,0x0($s3)`, `and $v1,$s3,$s0`) and need no lever β€” only the LAST one, where the return insn is the sole remaining candidate, does. Apply it to that RMW and no other. **THE DIAGNOSTIC TELL.** LENGTH-DRIFT **βˆ’1**; a missing `nop` immediately after the last `lw $rN,%lo(SYM)($at)`; the return-value `addiu $v0,…` sitting in that slot instead of after the final store; every other slot in the function filled exactly as the target has it. @@ -12556,7 +12556,7 @@ emits the target's `sll $a0,$a0,0x10 ; bnez $a0` **in place** β€” no temp, no `s **LAW: for a narrow-INTEGER by-value param, cast-at-use is a legitimate Β§73 T0 escape, not a pointer-only one.** Β§73's PARAMS row is byte-neutral for pointers *by construction* (all 32-bit); for integers it is byte-neutral only when the truncation's placement is unconstrained β€” **one use, dying immediately, no live range across a `jal`**. Try it BEFORE the Β§43/Β§99 K&R rewrite: it needs no `//@EDIT`, no canon-sig edit and no sibling coordination (the four `md_*` sibling TUs here carry no prototype at all, so the same body banks unchanged in both decl environments). -**Byte evidence** (`func_8017DF40`, ov_MAIN_012, 187 ins, reach 5). Both forms measured: `s16 arg0` MATCHes standalone under `match_one` but cc1 rejects it in the real TU (`conflicting types for 'func_8017DF40'`); `s32` + `(s16)` cast MATCHes **187/187** and adds **zero** diagnostics to the TU (whole-TU oracle β€” warning set byte-identical to the unmodified-TU baseline). Banked whole-binary Γ—5 (`commit:1652`); the shipped `ov_MAIN_012_jr_8017CF3C.o` still disassembles to `sll a0,a0,0x10 ; bnez a0`. +**Byte evidence** (`func_8017DF40`, ov_MAIN_012, 187 ins, reach 5). Both forms measured: `s16 arg0` MATCHes standalone under `match_one` but cc1 rejects it in the real TU (`conflicting types for 'func_8017DF40'`); `s32` + `(s16)` cast MATCHes **187/187** and adds **zero** diagnostics to the TU (whole-TU oracle β€” warning set byte-identical to the unmodified-TU baseline). Banked whole-binary Γ—5 (`50dd6b3c3`); the shipped `ov_MAIN_012_jr_8017CF3C.o` still disassembles to `sll a0,a0,0x10 ; bnez a0`. **DIAGNOSTIC TELL:** `sll $aN,$aN,16` with **no** following `sra` and no later read of `$aN` β‡’ the source truncated to 16 bits at exactly one use site, and **the bytes cannot distinguish `s16 p` from `s32 p` + `(s16)p`** β€” so take whatever width the fleet already declares. Add the `sra`, a raw `$aN` copy that outlives the extension, or a use after a `jal`, and you are back in Β§43/Β§99 K&R territory. @@ -12575,7 +12575,7 @@ Target shape: switch ((s16)arg1) { case 1 … case 10 } } s16 sel = (s16)arg1 - 1; switch (sel) { case 0 … case 9 } } same .s, byte for byte -*Byte evidence:* `func_8017EB44` (ov_SC01_005, 134 ins, banked `commit:1652`, `src/ov_SC01_005/ov_SC01_005_jr_8017EB44.c`) matches with the cases-1..10 spelling Β§162a3 forbids; a mechanical rewrite to Β§162a3's cases-0..9 form diffs to nothing on the pinned cc1 (only the `.file` line). Β§162a3's own cited neighbour `func_8017F2D4` shares this jtbl shape, and the wave-2 `func_8017ED5C` bank used the OTHER spelling β€” two banks, opposite spellings, same asm. +*Byte evidence:* `func_8017EB44` (ov_SC01_005, 134 ins, banked `50dd6b3c3`, `src/ov_SC01_005/ov_SC01_005_jr_8017EB44.c`) matches with the cases-1..10 spelling Β§162a3 forbids; a mechanical rewrite to Β§162a3's cases-0..9 form diffs to nothing on the pinned cc1 (only the `.file` line). Β§162a3's own cited neighbour `func_8017F2D4` shares this jtbl shape, and the wave-2 `func_8017ED5C` bank used the OTHER spelling β€” two banks, opposite spellings, same asm. **DIAGNOSTIC TELL.** Read the `sll/sra` as "the switch operand is a `short`" and stop. Do NOT let it pick your case numbering β€” pick that from the jtbl EDGES (Β§161a/Β§162a1/Β§162a2) and its LENGTH (Β§163c). Β§162a3's *second* tell survives untouched: a decremented value living in a callee-saved reg and re-read long after dispatch is a real source variable, because a compiler bias temp dies at the tablejump. @@ -12589,7 +12589,7 @@ Target shape: a bound/limit computed in bb0 and read once per switch arm, coming **THE LAW.** `global.c:594 allocno_compare` prices an allocno `floor_log2(refs)*refs/live_length`. A bb0 limit read once per arm loses to the arms' own temps by a hair. Writing ONE arm's generic body a SECOND time under an explicit `case N:` whose jtbl entry already resolves to the default block adds exactly one `REG_N_REFS` to that limit; when the count crosses a power of two (7β†’8 β‡’ `floor_log2` 2β†’3) its priority roughly doubles (0.318 β†’ 0.545), it allocates FIRST, and the arm temps fall through to the next free reg. **The duplicate costs zero bytes**: `jump_optimize(…, JUMP_CROSS_JUMP, …)` runs after reload (pass order, Β§45-B), the two blocks are register-identical, and the Β§50-B `minimum=1` fall-through path merges them β€” the surviving block simply carries both labels, so the jtbl entry still resolves. -*Byte evidence* (`func_8017EB44`, ov_SC01_005, 134 ins, banked `commit:1652`): the duplicated `case 1:` body emits `$L14:` and `$L22:` glued to ONE block, 107 cc1-insns β€” identical count to the un-duplicated source. Deleting it (`base19.c`, one-hunk diff) gives a clean 19-instruction permutation: `lbu $t0 / mult $t0,$v0 / mflo $t0` with the arm temp in $v1, versus `lbu $v1 / mult $v1,$v0 / mflo $v1` with the arm temp in $a0 when the duplicate is present. The equivalent RC-11 spelling (`__asm__ ("" :: "r"(lim));` in the default arm, `v73.c`) compiles to an instruction-for-instruction identical stream β€” same dial, two spellings. **Prefer the duplicate-arm form**: plain C, no extension, so it survives the Β§40 family remap and pycparser/permuter, where the asm dummy does not. +*Byte evidence* (`func_8017EB44`, ov_SC01_005, 134 ins, banked `50dd6b3c3`): the duplicated `case 1:` body emits `$L14:` and `$L22:` glued to ONE block, 107 cc1-insns β€” identical count to the un-duplicated source. Deleting it (`base19.c`, one-hunk diff) gives a clean 19-instruction permutation: `lbu $t0 / mult $t0,$v0 / mflo $t0` with the arm temp in $v1, versus `lbu $v1 / mult $v1,$v0 / mflo $v1` with the arm temp in $a0 when the duplicate is present. The equivalent RC-11 spelling (`__asm__ ("" :: "r"(lim));` in the default arm, `v73.c`) compiles to an instruction-for-instruction identical stream β€” same dial, two spellings. **Prefer the duplicate-arm form**: plain C, no extension, so it survives the Β§40 family remap and pycparser/permuter, where the asm dummy does not. **THE DOSE BOUND (measured, and NOT what the crack note said).** The refund does not stop at one duplicate. On this function, 2, 3, 4, 5, 6 and 7 total copies of the generic body ALL merge to the same 107 insns / 5 distinct jtbl targets. At EIGHT copies the merge fails completely β€” 172 insns, 10 distinct targets, nothing merged. And it is NOT allocation drift: the 7-copy and 8-copy builds have byte-identical prologues and dispatches (`lbu $3 / lbu $2 / mult $3,$2 / mflo $3`) and the eight un-merged blocks are byte-identical TO EACH OTHER. The cliff is inside `jump.c`'s cross-jump loop and is not yet root-caused. **Practical rule: use one duplicate, verify the instruction count, and never assume a copy count is free without recompiling.** @@ -12658,7 +12658,7 @@ Target shape: a bound/limit computed in bb0 and read once per switch arm, coming `reorg.c:675-701 stop_search_p` returns 1 on `ASM_INPUT` or any `asm_noperands(...) >= 0` insn. The forward scan for a delay-slot filler therefore **stops at the first asm in the target block** β€” the cost is not "this lever can't go in the slot", it is "nothing behind this lever can either". A zero-byte lever parked at the top of a branch target robs the preceding branch of its natural filler. -*Byte evidence (`func_8017ED5C`, ov_SC01_005, banked `commit:1652`):* with Β§163f's self-set asm in the block that DEFINES the base, `beq $2,$0,$L5 ; addu $2,$4,$5` β€” the `addu` takes the slot, 147 ins, MATCH. Move the **identical** asm to the first statement of the `if (t < lim)` body: the `addu` lands below `#APP/#NO_APP` inside the target block, the branch takes an unrelated `sll $2,$16,16`, and the function grows to **148**. Nothing else changed. +*Byte evidence (`func_8017ED5C`, ov_SC01_005, banked `50dd6b3c3`):* with Β§163f's self-set asm in the block that DEFINES the base, `beq $2,$0,$L5 ; addu $2,$4,$5` β€” the `addu` takes the slot, 147 ins, MATCH. Move the **identical** asm to the first statement of the `if (t < lim)` body: the `addu` lands below `#APP/#NO_APP` inside the target block, the branch takes an unrelated `sll $2,$16,16`, and the function grows to **148**. Nothing else changed. **PLACEMENT RULE.** Put a `qty_const` launder (Β§163f/Β§153), an allocno ref-boost (Β§148-C) or a range-extender (Β§158) in the block that **defines** the value. Never at the top of a block whose first insn the target steals into a delay slot. @@ -12687,7 +12687,7 @@ So the old text β€” "`expand_end_case` never puts a HImode sign-extension betwee **THE DISCRIMINATOR IS THE TABLE, NOT THE DISPATCH.** Take ncases from the `sltiu` bound (never the dlabel span β€” Β§8a-pad L394, Β§131), then read the entry ADDRESSES (Β§162a1, Β§163c). If the arms you must write start at slot 0 while the natural domain value there is 1, the `-1` is the source's; if the table is biased, it is expand's. Β§162a3's *secondary* tell survives and is the only dispatch-local evidence: **a compiler bias temp is dead the moment the table is indexed**, so a decremented value living in a callee-saved register and re-read long after dispatch (`beq $s0,$v0` at 8017F4C8/8017F4D0 in `func_8017F2D4`) is the source's variable. -**Status: PROMOTED, with the law replaced.** The C form is banked twice β€” `func_8017ED5C` 147/147 and `func_8017F2D4` 279/279, both `commit:1652`, `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c`. Drop the "UNPROVEN / bank it before promoting" flag; do NOT carry the shapeβ‡’source-subtract inference forward. +**Status: PROMOTED, with the law replaced.** The C form is banked twice β€” `func_8017ED5C` 147/147 and `func_8017F2D4` 279/279, both `50dd6b3c3`, `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c`. Drop the "UNPROVEN / bank it before promoting" flag; do NOT carry the shapeβ‡’source-subtract inference forward. *(SHARPENS β€” sharpens Β§36 (func_8013A530) bullet "CONDITION-OPERAND ORDER = LOAD PLACEMENT", L2496, Β§10 Residual A / Fix A1 (RTL operand order = source order; no swap_commutative_operands), L856-864, Β§88b + Β§88c (slti lite; evidence: byte-probed; from `func_8017F83C`)* @@ -13068,7 +13068,7 @@ local: `func_80182044`'s `D_8011F730 == 2` / `== 1` pair emits one `lw $v1`). **COROLLARY β€” KILL THE FALSE TELL.** "The discriminant is loaded once and stays in one register across every compare" is **not** evidence of a `switch`; a cached local (`t = *(s16*)(a0+0xFC);`) produces the identical single load. Only the topology discriminates. Β§55a's Ghidra warning is true of *decompiler output* and must not be carried over to the target's own compare topology. -**Byte evidence.** `func_80184938`, ov_SC03_093, banked whole-binary (`commit:1652`, R22 213/213). Draft #1 spelled case 5 as a nested `switch (*(s16*)(a0+0xFC))` β†’ **412 ins vs 406, 213 mismatched, LENGTH-DRIFT**, emitting exactly the median-split tree above. Draft #2 changed nothing but the construct (`src/ov_SC03_093/ov_SC03_093_jr_801825B8.c:4647-4711`) β†’ MATCH in one iteration. The outer 6-case `switch` in the same function is untouched and still emits `jtbl_801CAF74`, so the threshold AND both sub-threshold constructs are byte-witnessed in one banked function. +**Byte evidence.** `func_80184938`, ov_SC03_093, banked whole-binary (`50dd6b3c3`, R22 213/213). Draft #1 spelled case 5 as a nested `switch (*(s16*)(a0+0xFC))` β†’ **412 ins vs 406, 213 mismatched, LENGTH-DRIFT**, emitting exactly the median-split tree above. Draft #2 changed nothing but the construct (`src/ov_SC03_093/ov_SC03_093_jr_801825B8.c:4647-4711`) β†’ MATCH in one iteration. The outer 6-case `switch` in the same function is untouched and still emits `jtbl_801CAF74`, so the threshold AND both sub-threshold constructs are byte-witnessed in one banked function. **⚠ Bounds β€” three, all load-bearing.** - **Scope to β‰₯4 arms.** At 2-3 arms `emit_case_nodes` degenerates toward bare equality tests, so a `switch` and an if-chain can both emit a `bne` staircase. The oracle only bites once the tree would need a median. @@ -13131,7 +13131,7 @@ Yours, from `hit = x >= 0xF2 || x < -0x101 || z >= -0x106 || z < -0x4AA;` β€” ** * **The name.** `fold_range_test` is the gcc-2.8/egcs name and does **not exist** in `tools/reference/gcc-2.7.2` β€” grep returns nothing. Ours is the static `range_test`. (The banked source comment at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:2960` inherited the wrong name; read it as `range_test`.) * **`BRANCH_COST` is 1 here, so Β§21's second hazard is dead.** `fold_truthop`'s "it wins to evaluate the RHS unconditionally on machines with expensive branches" arm is guarded `result == 0 && BRANCH_COST >= 2` (`fold-const.c:2762`); `mips.h:2935` gives 2 only for R4000/R6000 and our cc1 runs `-mcpu=3000` (`tools/permuter/compile.sh:13`). **On BFM, the range fold is the ONLY thing an `||`/`&&` chain buys you** β€” nothing else about short-circuit spelling is observable. -*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `commit:1671`, checkpoint `commit:1674` R22 213/213); fix at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:2960-2968`. Arithmetic checksum on the reported A/B, recomputed from `range_test`: `x < -0x101 || x > 0xF1` β†’ `(u16)(x+0x101) > 0x1F2`, inverted at the branch = **`sltiu …,0x1F3`**; `z < -0x4AA || z > -0x107` β†’ `(u16)(z+0x4AA) > 0x3A3` β†’ **`sltiu …,0x3A4`**. Both immediates match the measured ones exactly β€” they are not guessable. +*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `de2ca3844`, checkpoint `72932899d` R22 213/213); fix at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:2960-2968`. Arithmetic checksum on the reported A/B, recomputed from `range_test`: `x < -0x101 || x > 0xF1` β†’ `(u16)(x+0x101) > 0x1F2`, inverted at the branch = **`sltiu …,0x1F3`**; `z < -0x4AA || z > -0x107` β†’ `(u16)(z+0x4AA) > 0x3A3` β†’ **`sltiu …,0x3A4`**. Both immediates match the measured ones exactly β€” they are not guessable. **DIAGNOSTIC TELL.** Count `andi $x,0xffff` sitting between an `addiu` and a `sltiu`. Target has N `slt`/`slti` on one operand and NO mask; yours has ⌈N/2βŒ‰ `addiu`+`andi 0xffff`+`sltiu` triples. That mask is `range_test`'s unsigned conversion of a HImode operand and nothing else puts it there. The fix is structural (separate statements) β€” casts, `__asm__` launders and barriers all fail, because gcc re-derives the range across them (Β§21). @@ -13157,7 +13157,7 @@ Write the two stores explicitly and the destinations are **MEMs**, `jump.c:731` **So Β§136d-2's escape has a sibling: a call is not a simple SET, and neither is a MEM.** Use the two-calls form when the selected value feeds a call; use two stores when it feeds memory. -*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `commit:1671`), banked shape at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:3029-3033`. Pass order matters and is checkable: jump1 runs at `toplev.c:2827`, **before** cse1 at `:2865`, so this reshaping is upstream of everything else you might blame. +*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `de2ca3844`), banked shape at `src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:3029-3033`. Pass order matters and is checkable: jump1 runs at `toplev.c:2827`, **before** cse1 at `:2865`, so this reshaping is upstream of everything else you might blame. **DIAGNOSTIC TELL.** Compare the branch's delay slot against the two constants. *Target: the **TRUE** arm's constant, on the polarity that reaches the FALSE arm by fall-through. Yours: the **FALSE** constant, opposite polarity, other scratch register.* That triple β€” polarity + which constant + which register, all flipped together β€” is the ternary's signature. **Do not chase it with Β§2-T4's polarity invert or a `register __asm__` pin; all three are symptoms of one source construct.** (Distinct from the index's `$v1`-vs-`$v0` entry β†’ Β§76, which is the same select landing in a LOCAL and is levered by variable reuse, not by block structure.) @@ -13538,7 +13538,7 @@ Target shape β€” the `-K` rides the SUBTRAHEND's register, and the sum is formed **THE LAW.** Written inline, `q->f0 + (n - K)` lets `fold` lift K out of the inner MINUS and re-attach it on the other side of the sum; the `addiu …,-K` then reads the LOAD's register, not `n`'s. Hoisting the subtract to its own statement β€” `d = n - K; … q->f0 + d;` β€” puts a tree boundary in fold's way and the `addiu` stays on `n`. Same phenomenon Β§78 measured on `|` chains (all seven parenthesisations reassociate) and Β§162c wrote as "the constant MOVES", one operator over. -**Byte evidence.** `func_8017DD28`, ov_MAIN_012, 124 ins, banked whole-binary in `commit:1629` β€” `src/ov_MAIN_012/ov_MAIN_012_jr_8017CF3C.c:4330-4331` (`d = n - 0x60;` then `q->f0 + d`). The inline spelling emitted `addiu $v0,$v0,-0x60` where the target has `addiu $v1,$a0,-0x60`. Target shape read off the still-unbanked family twin `asm/md_SC03_076/nonmatchings/md_SC03_076/func_801F1520.s:47,52-55`. +**Byte evidence.** `func_8017DD28`, ov_MAIN_012, 124 ins, banked whole-binary in `95909749b` β€” `src/ov_MAIN_012/ov_MAIN_012_jr_8017CF3C.c:4330-4331` (`d = n - 0x60;` then `q->f0 + d`). The inline spelling emitted `addiu $v0,$v0,-0x60` where the target has `addiu $v1,$a0,-0x60`. Target shape read off the still-unbanked family twin `asm/md_SC03_076/nonmatchings/md_SC03_076/func_801F1520.s:47,52-55`. **THE DIAGNOSTIC TELL.** An `addiu $rD,$rS,-K` whose `$rS` is the WRONG operand of a nearby `addu` β€” **same instruction count, one register wrong, no length drift.** Do not reach for pins: hoist the `x Β± K` sub-expression into its own local. Inversely β€” target puts the constant on the LOAD's register and your draft puts it on the variable's β€” inline the sub-expression. @@ -13589,7 +13589,7 @@ Symptom: your draft is exactly one instruction short, and the missing instructio **THE CANDIDATE MECHANISM (Β§48-B on a constant).** jump1 (`toplev.c:2827`) collapses the ternary *before* cse1 (`toplev.c:2865`) runs, so the two spellings present cse with different block structure and different reach for the `anim == 0xE` equivalence β€” the same rule Β§48-B states for a reg-reg copy and a held address, applied to a constant. **This attribution is INFERENCE.** The note quotes an instruction-count delta, not a diff isolating the `li`, and the ternaryβ†’if/else edit changed Β§163h's polarity, register and delay slot in the same step. Re-deriving it from `jump.c` does not close it either: both forms still leave a 2-predecessor label between the two writes (`jump.c:821` deletes the jump-around, not the branch target). **Cite this as a place to look, never as a proven pass behaviour.** -*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `commit:1671`, checkpoint `commit:1674` R22 213/213). *Scope: one function, one A/B, two effects not separated.* +*Byte evidence:* `func_80185EF8` (ov_SC03_014, 304 ins, MATCH, banked `de2ca3844`, checkpoint `72932899d` R22 213/213). *Scope: one function, one A/B, two effects not separated.* **DIAGNOSTIC TELL.** `LENGTH-DRIFT -1` **and** the missing insn is a constant load whose value is already live at that point. Before adding the statement (it is probably already there), walk UPSTREAM and find the nearest construct that could have removed a basic-block boundary between the two writes β€” a `?:`, a collapsed `if/else` (Β§136d-2), a merged tail (Β§46-L3). Re-writing the statement will not help while cse can still see across; you have to restore the boundary. @@ -13684,7 +13684,7 @@ so a future agent does not spend a wave rediscovering them. * **`func_801814D8`** β€” Statement grouping relative to a call is a THIRD register-pressure lever (beyond Β§161b's aliasing and Β§76/Β§136's scope): splitting the field stores away from the following call made the pointer's live *Why refuted:* The stated mechanism does not follow from the function. `func_8012B2CC(a0)` is the LAST statement of that arm and the function returns immediately after β€” nothing is used past it, so the pointer `dst` cannot be live across that call under ANY ordering of statements placed BEFORE it. Moving pre-call statements around changes a pseudo's death point, not whether it survives a CALL_INSN that has no su * **`func_8017EB44`** β€” An accumulator that must be zeroed after an entry-block temp dies must BE that temp: only an anti-dependence (one C variable serving as both the index and the result accumulator) can schedule `ret = 0 - *Why refuted:* Refuted by the banked function itself. `src/ov_SC01_005/ov_SC01_005_jr_8017EB44.c` (committed `commit:1652`) declares `s32 ret;` as its own variable, never merged with the index, writes a plain `ret = 0;`, and carries NO `register __asm__` pin and no asm of any kind β€” yet it emits exactly the disputed instruction. I compiled it on the pinned cc1: `beq $2,$0,$L22 / move $6,$0` β€” `ret = 0` IS in the d + *Why refuted:* Refuted by the banked function itself. `src/ov_SC01_005/ov_SC01_005_jr_8017EB44.c` (committed `50dd6b3c3`) declares `s32 ret;` as its own variable, never merged with the index, writes a plain `ret = 0;`, and carries NO `register __asm__` pin and no asm of any kind β€” yet it emits exactly the disputed instruction. I compiled it on the pinned cc1: `beq $2,$0,$L22 / move $6,$0` β€” `ret = 0` IS in the d * **`func_8017EB44`** β€” Two loads both pinned to hard registers are emitted in ascending hard-register order and no C perturbation can reorder them; rule of thumb, do not pin both operands of a mult when the target loads the *Why refuted:* Self-retracted by the successor agent ("TRUE but MOOT β€” it is an artifact of pinning both mult operands. Unpinned, the load order is correct and always was … Don't chase it"), and the retraction is right. I compiled the banked pin-free draft: it emits `lbu $3,D_80115159($6)` BEFORE `lbu $2,D_80115158($6)` β€” i.e. DESCENDING hard-reg order, $v1 then $v0, which is the very ordering the note says gcc * **`func_8017EB44`** β€” The duplicate-arm dial is not generalisable to N copies: exactly one duplicate is the working dose, because with seven duplicates the extra allocnos perturb the allocation so the copies stop being reg @@ -13873,7 +13873,7 @@ Target shape: **So the floor for two `j`s to one label is `minimum = 2` MINUS up to two discounts β€” one matching instruction is enough in the common case.** Discount 3 fires *exactly* when the earlier `j` is the last insn of an `if`-THEN arm: `i1` is that arm's guarding conditional branch and `JUMP_LABEL (i1)` is the `else` label, which sits immediately after `e1`. **Every `; j ` written as an `if`-then arm therefore merges on a one-instruction tail** β€” and the discount is named for the very transform that then fires, `jump.c:1737`'s invert-a-cond-jump-that-jumps-over-an-uncond-jump. -**BYTE EVIDENCE.** `func_8018308C` (ov_SC01_077, 166 ins, **banked** `commit:1678`). Common tail = the single insn `addu $s1,$zero,$zero`; two `j .L80183120` reach it; cc1 emits **exactly one copy** β€” in *both* A/B spellings of Β§164-83 (`grep -c 'move\t$17,$0'` = 1 in each `.s`, 139 instruction lines each). Under Β§50-B / Β§162g's stated floor neither should have merged. Trace: i1 = the arm's conditional branch, `JUMP_LABEL (i1)` = the `else` label, `prev_real_insn` of it = `e1` β‡’ discount 3 β‡’ `minimum` 2 β†’ 1 (one matching insn) β†’ 0 β‡’ merge. +**BYTE EVIDENCE.** `func_8018308C` (ov_SC01_077, 166 ins, **banked** `043532b47`). Common tail = the single insn `addu $s1,$zero,$zero`; two `j .L80183120` reach it; cc1 emits **exactly one copy** β€” in *both* A/B spellings of Β§164-83 (`grep -c 'move\t$17,$0'` = 1 in each `.s`, 139 instruction lines each). Under Β§50-B / Β§162g's stated floor neither should have merged. Trace: i1 = the arm's conditional branch, `JUMP_LABEL (i1)` = the `else` label, `prev_real_insn` of it = `e1` β‡’ discount 3 β‡’ `minimum` 2 β†’ 1 (one matching insn) β†’ 0 β‡’ merge. **THE DIAGNOSTIC TELL.** Before pricing a Β§48-A1/A4 duplicate-into-both-arms edit off Β§50-B's "tails must be β‰₯ 2 instructions" rule, ask whether the duplicated block **ends an `if`-then arm whose `else` label follows its `j`**. If it does, the tail merges at length 1 and the refund arrives. Β§50-B's 290-insn counterexample and Β§162g's bound remain valid *measurements* of tails that lacked that structure β€” **keep them as a conditional, not as a floor**, and settle any borderline case by reading the two streams' mismatch insn rather than by counting matching instructions. @@ -14334,7 +14334,7 @@ Bounds, every one byte-probed on the pinned cc1: **⚠ THIS INVERTS Β§3-T4 / Β§32.2.** Their rule β€” *"put the target's fall-through block in the `if`, the branched-to block in the `else`"* β€” reads `beqz $a0,.L801830F8` as "the zero-store is branched-to β‡’ make it the `else`", which is the losing spelling. **The polarity you can see is post-invert: jump.c manufactured it from a `bne` the source never asked for. When a conditional branch's target is a cross-jump SURVIVOR, its opcode carries no source-order information β€” read the survivor's position instead.** -**BYTE EVIDENCE.** `func_8018308C` (ov_SC01_077, 166 ins, **banked** `commit:1678`, `src/ov_SC01_077/ov_SC01_077_jr_80182E7C.c:3203`). A/B re-run at vetting time through the pinned triple, cc1 `.s` diffed directly (only the two spellings differ): +**BYTE EVIDENCE.** `func_8018308C` (ov_SC01_077, 166 ins, **banked** `043532b47`, `src/ov_SC01_077/ov_SC01_077_jr_80182E7C.c:3203`). A/B re-run at vetting time through the pinned triple, cc1 `.s` diffed directly (only the two spellings differ): | source spelling | outer branch | inner branch | survivor sits | result | |---|---|---|---|---| @@ -14640,7 +14640,7 @@ Three facts in the pinned tree, and they stack: **BOUND ON Β§162j1 β€” its lever cannot exist here, and the reason is the PORT, not the shape.** Β§162j1's cure is "make the use insn also SET src" (`local-alloc.c:732 reg_set_p`). The surviving use here is a `lw`, and `config/mips/mips.h:2173-2177` leaves `HAVE_POST_INCREMENT`, `HAVE_POST_DECREMENT` and `HAVE_PRE_INCREMENT` **all commented out** β€” no MIPS memory reference can modify its own base. **Whenever the surviving use is a MEM read, Β§162j1's lever is unreachable by construction: skip it and hoist.** The hoist also needs no `do{}while(0)` loop-note wedge (Β§162j1's second, untested suggestion at `:723`) and buys no extra allocno refs (Β§55a), so it is the zero-side-effect form for this branch. -**BYTE EVIDENCE.** `func_8018EDB8` (ov_SC06_018, 170 ins) β€” **banked MATCH**, `src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:6025-6039`, committed `commit:1679`, propagated to its 3 zero-crack siblings in `commit:1697`. With the `0x20` load left below `q = iv`: **172 ins plus the register diff**. ⚠ **Winner-only, n=1.** `.run/wave4/func_8018EDB8/` preserves exactly one file, so the 172-insn loser is quoted from the session and is not reproducible from disk; and the hoist was only ever measured against the *pinned* baseline β€” hoist-without-pin was never gated. Same honesty class as Β§164-80. +**BYTE EVIDENCE.** `func_8018EDB8` (ov_SC06_018, 170 ins) β€” **banked MATCH**, `src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:6025-6039`, committed `63dd763b9`, propagated to its 3 zero-crack siblings in `729f51eb7`. With the `0x20` load left below `q = iv`: **172 ins plus the register diff**. ⚠ **Winner-only, n=1.** `.run/wave4/func_8018EDB8/` preserves exactly one file, so the 172-insn loser is quoted from the session and is not reproducible from disk; and the hoist was only ever measured against the *pinned* baseline β€” hoist-without-pin was never gated. Same honesty class as Β§164-80. **⚠ THE +2 IS NOT AN ALIASING EFFECT β€” do not repeat that story.** See the companion refutation: the substitution moved the load ONTO the stores' base, which is the DISAMBIGUABLE case (Β§164-79, Β§135-14), not a barrier. The account that survives the source is a **register** dependence β€” after the rewrite the load's address reads `$a0`, a hard register SET by the copy, so it can no longer be scheduled above the copy, and the copy sits immediately in front of the store block. Effect confirmed, mechanism relabelled. Consistent with Β§162j1's own pass-order note (the substitution is invisible in `.sched`, present in `.lreg`): whatever reschedules is `sched2`, after reload, on hard registers. @@ -14697,10 +14697,10 @@ Used deliberately this is a **frame dial nobody has recorded** β€” the counterpa Two rules, both earned on `func_8017F2D4`: -1. **A function flagged "draft lost" often is not.** `find .run -name '*func_8017F2D4*'` returns FIVE byte-identical copies of the verified MATCH β€” `.run/wave1/func_8017F2D4.c`, `.run/wave3/func_8017F2D4/func_8017F2D4.c`, `.run/bank48/ov_SC01_005/`, `.run/bank51/ov_SC01_005/`, `.run/backlog_drafts/` β€” all sha1 `9fd76d10c5cfa9dc859b0ce51bb7bf78b8df05f3`. Re-deriving a 279-instruction jump-table body with a hand-placed cse barrier would have been pure waste. **Run the glob before you spend an agent**; wave 2's harness defect (`commit:1628`) lost 21 drafts to a shared output dir, so "lost" in a backlog row means "not where the harness looked", not "gone". +1. **A function flagged "draft lost" often is not.** `find .run -name '*func_8017F2D4*'` returns FIVE byte-identical copies of the verified MATCH β€” `.run/wave1/func_8017F2D4.c`, `.run/wave3/func_8017F2D4/func_8017F2D4.c`, `.run/bank48/ov_SC01_005/`, `.run/bank51/ov_SC01_005/`, `.run/backlog_drafts/` β€” all sha1 `9fd76d10c5cfa9dc859b0ce51bb7bf78b8df05f3`. Re-deriving a 279-instruction jump-table body with a hand-placed cse barrier would have been pure waste. **Run the glob before you spend an agent**; wave 2's harness defect (`0ec7d4c05`) lost 21 drafts to a shared output dir, so "lost" in a backlog row means "not where the harness looked", not "gone". 2. **Never trust a prior note's TU path or line numbers.** Those notes name `ov_SC01_005_jr_8017C340` as the destination TU and cite "TU:4164 splice / prototype at TU:3533". splat has since moved the function: the only two `.s` files repo-wide are under `..._jr_8017ED5C`, and the live splice is `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c:3115` (prototype at :2721). `.run/jr48/wave1_ready.json` still records the old subdir. **Re-resolve the splice from `asm/` plus a fresh grep of `src/` every time; carry forward the notes' REASONING, never their coordinates.** -**⚠ Provenance correction this earns.** Β§164-31 and Β§164-37 both state that `func_8017F2D4` is "banked ... 279/279 ... `commit:1652`". **It is not.** `git show commit:1652 -- src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c` carries no hunk for it, and the TU still holds `INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_8017ED5C", func_8017F2D4);` at line 3115. Β§164-37's "Status: PROMOTED" rests on ONE bank (`func_8017ED5C`), not two; Β§162g's "`match_one` MATCH β€” gate-blocked on TU plumbing, NOT yet banked" is still the true state. +**⚠ Provenance correction this earns.** Β§164-31 and Β§164-37 both state that `func_8017F2D4` is "banked ... 279/279 ... `50dd6b3c3`". **It is not.** `git show 50dd6b3c3 -- src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c` carries no hunk for it, and the TU still holds `INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_8017ED5C", func_8017F2D4);` at line 3115. Β§164-37's "Status: PROMOTED" rests on ONE bank (`func_8017ED5C`), not two; Β§162g's "`match_one` MATCH β€” gate-blocked on TU plumbing, NOT yet banked" is still the true state. *(SHARPENS β€” sharpens Β§161c, Β§52b, Β§8c; evidence: single-instance; from `func_8017F2D4`)* @@ -14814,7 +14814,7 @@ Target shape β€” ONE `andi 0xFFFF` in a block that uses the same `lhu`-loaded va **THE LAW (read out of the pinned gcc).** A switch arm's label always has `LABEL_NUSES > 1` β€” the `ADDR_VEC` word counts as a use β€” so `own_thread_p` returns 0 for it (`reorg.c:2151-2170`, the `insn != label || LABEL_NUSES (insn) != 1` test). With `own_thread == 0` the eager filler **cannot delete** what it takes: it puts `copy_rtx (trial)` in the slot and sets `new_thread = next_active_insn (trial)` (`reorg.c:3423-3433`), then `if (new_thread != thread)` mints a label at the next insn and retargets the branch β€” `label = get_label_before (new_thread); reorg_redirect_jump (insn, label);` (`reorg.c:3593-3616`). **`reorg_redirect_jump` rewrites JUMPs and never touches the `ADDR_VEC`**, so the table keeps the original address while every branch moves one instruction past it. **A table word 4 bytes below every branch target names the SAME arm β€” do not invent a case-4/6-only statement to explain it.** (Owned threads are sched.md D3's other branch: the insn is MOVED, and no second address appears.) This is cc1, not the assembler: the ASPSX slot-hop of L2497 can neither mint a label nor retarget a branch. -**BYTE EVIDENCE β€” the two halves of ONE banked function, from character-identical source.** `func_80180C90` (ov_SC01_077, 160 ins, banked `commit:1678`, `src/ov_SC01_077/ov_SC01_077_jr_80180B64.c:3116`). The body is an `if/else` whose arms carry the SAME switch written out twice (`:3128-3155` and `:3166-3193`, identical apart from the `goto` label name β€” Β§164-11's k-tables rule), and the two tables are structurally identical. +**BYTE EVIDENCE β€” the two halves of ONE banked function, from character-identical source.** `func_80180C90` (ov_SC01_077, 160 ins, banked `043532b47`, `src/ov_SC01_077/ov_SC01_077_jr_80180B64.c:3116`). The body is an `if/else` whose arms carry the SAME switch written out twice (`:3128-3155` and `:3166-3193`, identical apart from the `goto` label name β€” Β§164-11's k-tables rule), and the two tables are structurally identical. * **Arm A stole; arm B did not.** A: table entries 4/6 = `0x80180D44`, both `beqz` and the `j` target `0x80180D48`, and `addu $a0,$s0,$zero` appears THREE times β€” at `0x80180D44` and in both slots (`asm/ov_SC01_077/nonmatchings/ov_SC01_077_jr_80180B64/func_80180C90.s:10,12,62-63,75-76,84-86`). * B: table entries 4/6 = `0x80180E5C` = the branch target β€” ONE address β€” with the fall-through `sll $v0,$v1,2` in the first slot and `nop` in the second (`:24,26,139-140,151-152,160-161`). * **The price is exactly one instruction, and it is not the copy.** Dispatch `beqz` through the shared head is **21** insns in arm A against **20** in arm B: the second steal costs nothing (it replaces a `nop`), and the whole delta is that arm A's `sll` was left at its own address instead of being eaten by the slot. A draft that reproduces arm B's shape in arm A reads as **LENGTH-DRIFT βˆ’1 with every later branch target shifted** β€” this function's earlier 116-mismatch attempt (`.run/backlog_drafts/func_80180C90.c`) has exactly that, `sll $v0,$v1,2` in arm A's slot, its diff re-aligning one slot off from that instruction onward (`.run/backlog.jsonl`, residual idx 26). @@ -15725,7 +15725,7 @@ Duplicating the store hands the BASE POINTER one extra `REG_N_REFS` at allocatio So **`if (C) { P; return X; } Q; return Y;` emits Q-then-P**, branch-if-`C` to P, and **P β€” the arm you wrote FIRST β€” is the epilogue-adjacent block with no `j`.** Put the target's no-jump arm **inside the `if`**, never after it. **The spelling is inert:** `… return Y;` and `… else { return Y; }` are byte-identical, both ways round; only WHICH arm is the then-arm moves anything. -**Byte evidence β€” `func_80187130` (ov_SC06_018, 86 ins, banked `commit:1713`, `src/ov_SC06_018/ov_SC06_018_jr_80186270.c:3243`).** Five variants through the pinned triple, re-run at vetting (`cpp / cc1-2.7.2 -O2 -G0 -mips1 -mcpu=3000 / maspsx / as`; probe artifacts `.run/match/func_80187130.246967/` and `.242624/`): +**Byte evidence β€” `func_80187130` (ov_SC06_018, 86 ins, banked `874f942fe`, `src/ov_SC06_018/ov_SC06_018_jr_80186270.c:3243`).** Five variants through the pinned triple, re-run at vetting (`cpp / cc1-2.7.2 -O2 -G0 -mips1 -mcpu=3000 / maspsx / as`; probe artifacts `.run/match/func_80187130.246967/` and `.242624/`): | spelling | cc1 `.s` layout | verdict | |---|---|---| @@ -16186,7 +16186,7 @@ Anchoring on the earlier symbol and writing `rec2[1]` instead gives `sw 0x4($bas **PER-SITE, NOT PER-BLOCK.** Only the word the target routes through the base gets a pointer local; its neighbours (`D_800A5E9C` and the three `sb` bytes here) keep the plain symbol spelling. Converting the whole record to one struct-typed base is the failure mode β€” the same discipline as Β§162q1 and Β§165-27. -**BYTE EVIDENCE.** `func_80188F60` (ov_SC02_000 + ov_SC02_003, `jr_8018173C`, MATCH, banked `commit:1713` at `src/ov_SC02_000/ov_SC02_000_jr_8018173C.c:3890`); asm at `.run/wave4/func_80188F60/t.s:90-94, 113-118, 308-309`. *Honest scope: the preserved rungs (`v1.c` 149-off -> `v2.c` 98-off) change FOUR things at once β€” this anchor, the branch polarity, the `rec2 - 1` anchoring and a counter merge β€” so the direction is established by the banked body and the losing spellings are prose, not preserved probes. Re-measure single-axis before quoting a magnitude.* +**BYTE EVIDENCE.** `func_80188F60` (ov_SC02_000 + ov_SC02_003, `jr_8018173C`, MATCH, banked `874f942fe` at `src/ov_SC02_000/ov_SC02_000_jr_8018173C.c:3890`); asm at `.run/wave4/func_80188F60/t.s:90-94, 113-118, 308-309`. *Honest scope: the preserved rungs (`v1.c` 149-off -> `v2.c` 98-off) change FOUR things at once β€” this anchor, the branch polarity, the `rec2 - 1` anchoring and a counter merge β€” so the direction is established by the banked body and the losing spellings are prose, not preserved probes. Re-measure single-axis before quoting a magnitude.* *(SHARPENS β€” sharpens Β§164-80 Law 1 (L13566-13578), Β§20 cross-BB combine law (L2489), Β§165-06 (L13827), Β§164-24/Β§16x (L12405); evidence: single-instance; from `func_80188F60`)* @@ -16203,7 +16203,7 @@ Anchoring on the earlier symbol and writing `rec2[1]` instead gives `sw 0x4($bas **THE DIAGNOSTIC TELL (the new half).** **An instruction that appears BOTH in a branch delay slot and again at that branch's join, on a LENGTH-DRIFT +1, means your intermediate value is living in a scratch register.** Make the statement destructive on the variable before touching scheduling pins, allocno sliders or the permuter. **Discriminate against the one other cause of that exact signature:** Β§20's cross-BB combine law (L2489) produces a duplicated `sll` at a loop preheader *plus* the loop-back delay slot when a narrow value crosses a BACKEDGE β€” that one is a fold-defeat you WANT, and its duplicate straddles a loop, not an if-join. -**BYTE EVIDENCE.** `func_80188F60` (ov_SC02_000, MATCH, banked `commit:1713`): `.run/wave4/func_80188F60/v2.c:67` (compound, 98 off) vs `v4_MATCH.c:68-69` (destructive, MATCH). *Honest scope: that rung also splits a decrement/test and block-scopes a pointer local, so the +1 attribution is the agent's reading of an intermediate diff, not an isolated A/B. The underlying fact β€” an expression temp is a distinct pseudo at expand β€” is Β§164-80's and is source-read.* +**BYTE EVIDENCE.** `func_80188F60` (ov_SC02_000, MATCH, banked `874f942fe`): `.run/wave4/func_80188F60/v2.c:67` (compound, 98 off) vs `v4_MATCH.c:68-69` (destructive, MATCH). *Honest scope: that rung also splits a decrement/test and block-scopes a pointer local, so the +1 attribution is the agent's reading of an intermediate diff, not an isolated A/B. The underlying fact β€” an expression temp is a distinct pseudo at expand β€” is Β§164-80's and is source-read.* ### Β§167z β€” REFUTED IN WAVES 5/6: do NOT re-derive * **`func_8017FE38`** β€” GENERALIZATION: when a long-latency load heads a dependency chain whose consumer is far away, the SOURCE STATEMENT BOUNDARY decides whether sched1 hoists it β€” an inline s @@ -21513,7 +21513,7 @@ s32 aF8018280C(s32 a0) { ... } /* the byte-verified body, unchanged */ The TU's three `void` decls stay exactly as they are and keep serving their callers; the compiler never sees a conflict because the C identifiers differ; the linker resolves both to one symbol. -**Banked first try** (commit `commit:2559`), body untouched from the drafted MATCH. +**Banked first try** (commit `18b0eb40a`), body untouched from the drafted MATCH. **What is genuinely new.** The tree already used this idiom, but only ever on *declarations of externs* β€” `extern void aF80137030(s32 x, s32 y) __asm__("func_80137030");` in ov_SC03_099 / @@ -21558,7 +21558,7 @@ stripper delete the draft's copy as designed: typedef struct { u8 f0; u8 f1; u8 f2; u8 f3; } Quad4_800CCB14; ``` -Banked on the next gate (commit `commit:2558`). +Banked on the next gate (commit `fd7d26e3c`). **Correction, recorded because it bit the writer of this section (P31 S56).** The text that banked is the RENAMED variant, not the original draft β€” `gate_stage` calls `backlog.save_draft()` on @@ -24817,14 +24817,14 @@ Three byte-proofs, one per structural class, each carveβ†’draftβ†’bank through campaign running (per-binary flock + exclusive shared lock + the campaign's draw lock held across gate+commit β€” gates never overlap): -* **tail** (ov_SC03_014/func_8017DCC0, 45 ins, commit `commit:2661`): the Β§8b same-subseg ADJACENT +* **tail** (ov_SC03_014/func_8017DCC0, 45 ins, commit `b801b499e`): the Β§8b same-subseg ADJACENT MERGE + Β§8e single-table-predecessor pad recovery, untouched machinery β€” jr_8017AE2C.o .rodata 0x14β†’0x28 TIGHT, `JTBL_PADS := 0,0 tables=+0x0,+0x14` self-derived, sha `d84b01a2…` green. -* **covered** (md_SC03_076/func_801F218C, 83 ins, commit `commit:2663`): Β§260 STAGE 2 β€” the matched +* **covered** (md_SC03_076/func_801F218C, 83 ins, commit `bad793c73`): Β§260 STAGE 2 β€” the matched C emits the island table itself; sha `9a165e36…` IDENTICAL to stage 1, jr .rodata 0x14 now COMPILER-EMITTED, md .rodata 0x268. **The first md_* jr function ever banked.** `jtbl_carve` now reports this state as a no-op success instead of the historical refusal. -* **island-end** (md_SC03_135/func_801E5358, 83 ins, commit `commit:2664`): the FULL split done BY +* **island-end** (md_SC03_135/func_801E5358, 83 ins, commit `f74ad7ac8`): the FULL split done BY THE GATE on a virgin module β€” isolate β†’ insert `- [0x268, .rodata, _jr_]` β†’ re-extract β†’ covered no-op β†’ bank; sha `b901fda5…`, md.o 0x27cβ†’0x268 + jr.o 0x14. ~1.1 s wall (an md module is 34 KB; R40-checked against artifact mtimes before believing it). @@ -30036,7 +30036,7 @@ i.e. **a 2-instruction armA block placed BEFORE armB and reached only by a trail **MECHANISM β€” INFERRED, NOT TRACED. Cite it as a place to look, never as a proven pass behaviour (Β§164z's standard).** The reading is `jump.c:1737-1747`'s invert-a-cond-jump-that-jumps-over-an-uncond-jump (`invert_jump`/`delete_jump`) plus the swapped-inequality fold at `:1540-1640`: any single-test spelling leaves the stub as a lone self-terminating block landing right after an unconditional jump, which jump1 then inlines. The `&&` form is claimed to survive because `do_jump`'s TRUTH_ANDIF codegen (`expr.c:8970-8990`, Β§194-M/L19957) aims the positive branch at the drop-through and thread_jumps folds the duplicated `slti` into it, leaving the `j armB` un-collapsed. **Not verified against an RTL dump β€” the "what" is byte-proven, the "why" is a hypothesis.** -**BYTE EVIDENCE.** `func_80180808` (ov_SC01_005, 64 ins, target `asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_8017ED5C/func_80180808.s`), **banked** at `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c:3515` (commit `commit:3162`, wave t5i, whole-binary gate green). Ladder on the pinned triple: **v0** = Β§256's flat goto ladder (`if(v1<5) goto body0; if(v1==0x294) goto body1; goto skip;`) β†’ `near`, **nins 64**, closeness 2, residual = target `10620005 beq v1,v0,+0x68` vs mine `bne $v1,$v0`, and target `08000035 j +0xd4` vs mine `j .L80180870`. **v1** = Β§3-T4 applied literally, single-axis from v0 (second test's sense inverted, the two `goto` targets swapped β€” exactly Β§195-G ⚠'s "free" pair) β†’ `near`, **nins 62**, closeness **40**; the `j`/`nop` pair is gone. **v2** = full if/else restructure β†’ 63 ins, closeness 38. Nine further hand-probed spellings via direct cc1 `.s` dumps (`v4`, `v6-early`, `v8`, `sw1-sw4` switch forms, `w1-w4`, `y1-y4` with `__asm__("")` fences per Β§42/Β§73/Β§37/Β§5a/Β§34/Β§194-H, `z1`/`z4`/`z5`) all either kept the wrong `beq`/`bne` at 64 or collapsed to 62/63 β€” **none reached 0**. Winner = the `z1` shape above (`.run/t5i/opus/scratch_func_80180808/v6.c`, submitted verbatim as `.run/t5i/opus/func_80180808.c`): **`MATCH`, closeness 0, nins 64/64, residual `[]`**. +**BYTE EVIDENCE.** `func_80180808` (ov_SC01_005, 64 ins, target `asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_8017ED5C/func_80180808.s`), **banked** at `src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c:3515` (commit `9b9385afd`, wave t5i, whole-binary gate green). Ladder on the pinned triple: **v0** = Β§256's flat goto ladder (`if(v1<5) goto body0; if(v1==0x294) goto body1; goto skip;`) β†’ `near`, **nins 64**, closeness 2, residual = target `10620005 beq v1,v0,+0x68` vs mine `bne $v1,$v0`, and target `08000035 j +0xd4` vs mine `j .L80180870`. **v1** = Β§3-T4 applied literally, single-axis from v0 (second test's sense inverted, the two `goto` targets swapped β€” exactly Β§195-G ⚠'s "free" pair) β†’ `near`, **nins 62**, closeness **40**; the `j`/`nop` pair is gone. **v2** = full if/else restructure β†’ 63 ins, closeness 38. Nine further hand-probed spellings via direct cc1 `.s` dumps (`v4`, `v6-early`, `v8`, `sw1-sw4` switch forms, `w1-w4`, `y1-y4` with `__asm__("")` fences per Β§42/Β§73/Β§37/Β§5a/Β§34/Β§194-H, `z1`/`z4`/`z5`) all either kept the wrong `beq`/`bne` at 64 or collapsed to 62/63 β€” **none reached 0**. Winner = the `z1` shape above (`.run/t5i/opus/scratch_func_80180808/v6.c`, submitted verbatim as `.run/t5i/opus/func_80180808.c`): **`MATCH`, closeness 0, nins 64/64, residual `[]`**. **BOUNDS.** (1) n = 1 function. The refuted-alternative list is broad (13 spellings) but all inside one body β€” treat the `&&`+re-test prescription as a *first thing to try* on this tell, not a proven universal. (2) The re-test here is a RANGE compare, which Β§164-46 says survives free; an EQUALITY re-test in the same position would additionally need Β§165-03's zero-byte `__asm__("" : "=r"(t) : "0"(t))` tie, untested here. (3) Β§199-G's 2-node-switch tell does not fire β€” this header leads with a `bne` to the default, not the all-positive `beq` header β€” so the switch probes failing is consistent with Β§199-G, not evidence against it. (4) Do not read this as "always duplicate the guard": the extra conjunct costs nothing only because the guard and the dispatch test are the same range on the same value. @@ -30532,7 +30532,7 @@ So **two `copy;sll 1` pairs before an array's `lui/addiu/addu` base add mean the ### Addendum β€” A plain global-RMW triplet is a fillable scheduling window too β€” zero drift, and the fille (func_800CB058) -**Addendum (P31 S66, func_800CB058):** The fillable window needs **no long-latency instruction**. Here it is an ordinary global counter RMW β€” `cnt = D_800CB984++;` expanding to `lui/lw %lo` β†’ `addiu $v1,$v0,1` β†’ `lui/sw %lo` β€” whose interior sched1 fills with an unrelated `lw $a2,0x20($a0)` (r3000 load ready-delay 2, `mips.md:153-163`, quoted at L20967). So a statement's multi-insn expansion is not atomic to the scheduler even with no `mult`/`div` in the block, and Β§306's mechanism half (1) should be read as a property of *any* dependence gap, not of the `imuldiv` shadow. **Direction agrees with Β§306, not Β§16Xb:** the independent statement must be written **BEFORE** the RMW to sink into it β€” `fptr = *(s32 *)(p + 0x20);` then `cnt = D_800CB984++;` β†’ MATCH (closeness 0, 78 ins); the reverse order, everything else identical β†’ closeness 16. **New tell for this family β€” the drift is ZERO.** `nins` is equal both ways, so `match_one` classes it `ADDRESSING`/`li!=addu` over a ~15-19-instruction span rather than Β§306's `LENGTH-DRIFT +1` (no maspsx `nop`: that splicer is `--expand-div`-only), and ADDRESSING-class churn misroutes a drafter to Β§164-02's addressing laws instead of to statement order β€” route it here when the churn straddles a global's read and its store-back. **Two levers, both load-bearing (Β§266):** the Β§278/Β§74 co-pin of `fptr` onto `maska`'s `$6` was necessary but by itself left closeness 16; a zero-byte `__asm__ __volatile__("")` fence at the same spot (Β§194-A family) *regressed* it to 45 at +1 ins β€” one more row for Β§257/Β§268's barrier/pin dead-end ledger. **Provenance:** distilled from a wave whose byte-gate refused the draft (match_one-masked evidence only), but the identical body has **since banked byte-gate-green** at `src/md_MAIN_033/md_MAIN_033.c:93-131` (commit `commit:3304`, x1 wave, authoritative `make clean && make extract-all && make check-all` = 213/213) β€” read this addendum as byte-proven, not unproven. +**Addendum (P31 S66, func_800CB058):** The fillable window needs **no long-latency instruction**. Here it is an ordinary global counter RMW β€” `cnt = D_800CB984++;` expanding to `lui/lw %lo` β†’ `addiu $v1,$v0,1` β†’ `lui/sw %lo` β€” whose interior sched1 fills with an unrelated `lw $a2,0x20($a0)` (r3000 load ready-delay 2, `mips.md:153-163`, quoted at L20967). So a statement's multi-insn expansion is not atomic to the scheduler even with no `mult`/`div` in the block, and Β§306's mechanism half (1) should be read as a property of *any* dependence gap, not of the `imuldiv` shadow. **Direction agrees with Β§306, not Β§16Xb:** the independent statement must be written **BEFORE** the RMW to sink into it β€” `fptr = *(s32 *)(p + 0x20);` then `cnt = D_800CB984++;` β†’ MATCH (closeness 0, 78 ins); the reverse order, everything else identical β†’ closeness 16. **New tell for this family β€” the drift is ZERO.** `nins` is equal both ways, so `match_one` classes it `ADDRESSING`/`li!=addu` over a ~15-19-instruction span rather than Β§306's `LENGTH-DRIFT +1` (no maspsx `nop`: that splicer is `--expand-div`-only), and ADDRESSING-class churn misroutes a drafter to Β§164-02's addressing laws instead of to statement order β€” route it here when the churn straddles a global's read and its store-back. **Two levers, both load-bearing (Β§266):** the Β§278/Β§74 co-pin of `fptr` onto `maska`'s `$6` was necessary but by itself left closeness 16; a zero-byte `__asm__ __volatile__("")` fence at the same spot (Β§194-A family) *regressed* it to 45 at +1 ins β€” one more row for Β§257/Β§268's barrier/pin dead-end ledger. **Provenance:** distilled from a wave whose byte-gate refused the draft (match_one-masked evidence only), but the identical body has **since banked byte-gate-green** at `src/md_MAIN_033/md_MAIN_033.c:93-131` (commit `d20007e04`, x1 wave, authoritative `make clean && make extract-all && make check-all` = 213/213) β€” read this addendum as byte-proven, not unproven. ### Addendum β€” Shared arithmetic that CONSUMES the selected value cannot be hoisted above the `if` β€” narr (func_80183DA0) @@ -31699,7 +31699,7 @@ precisely when the carved region holds only the functions the shared header defi Both carve and bank are byte-gated: the carve must be **byte-NEUTRAL** (`sha1 == check..sha`, `interleave_check` ALIGNED, `config/overlays.mk` unchanged), and only then does the bank get gated. Derive AND carve under `.run/auto/gate..lock` β€” a plan derived outside the lock can describe a -tree state that never existed (the `commit:2791` rule; a concurrent recovery lane was observed editing +tree state that never existed (the `c03cd6f3a` rule; a concurrent recovery lane was observed editing the very TU this carve splits, mid-analysis). ## Β§363 β˜…β˜… β€” THE OVERLAY-LAYOUT ASSUMPTION IS A SYSTEMIC BUG CLASS, AND `main` IS THE EXCEPTION THAT FINDS IT (P31 S68; six instances, four of them in one session) @@ -37210,7 +37210,7 @@ regressed to 31 (S82) and the S83 hand pass measured three short-lived-temp spel an asm re-setting `pm2` β†’ `$a1` (a volatile asm re-lives all hard regs over the extended qty); asm on `pm3` only β†’ MATCH. Map corollaries (regalloc.md / sched.md): `reg_n_deaths` gates local vs global; `reg_n_sets == 1` gates the birthing boost; a `__asm__ volatile("" : "=r"(x))` on a variable is a dial for BOTH counters at zero bytes. -**Process note (coordinator, honest):** two ledger commits (`commit:3962`, `commit:3963`) claimed this bank before it existed β€” +**Process note (coordinator, honest):** two ledger commits (`779b55a49`, `3a9c946d8`) claimed this bank before it existed β€” the bank helper had been called without the function name (it built the unchanged tree and exited 0) and then with the wrong draft directory (it refused). Write the commit message FROM the tool's output, never before it; the helper now refuses an empty function list and propagates a failed commit (R43), and takes `DRAFT_DIR`. @@ -37436,7 +37436,7 @@ residual, enumerate the artefact's PRODUCERS from the source and refute each on producer without a compile. Probes and notes: `.run/P32/t4c/func_80032A74/`. **Β§501-N β€” A BANKED SIBLING'S SPELLING BEATS THE DRAFT'S DIALS; the `u32` array view of a `u8`-declared symbol is the fleet's -asm-label alias (P32 T4b hand pass, S84 2026-09-06; `md_MAIN_007:func_800CF408` 178/178 BANKED `commit:4001`, zero pins, zero asm +asm-label alias (P32 T4b hand pass, S84 2026-09-06; `md_MAIN_007:func_800CF408` 178/178 BANKED `8fa12bc22`, zero pins, zero asm bodies).** The 3-row prologue-weave residual (Β§501-L: the T-139 memory-unit bubble handing `ori 0x96` the wrong LUID, coupled to the `$t2/$t3` `qty_compare` contest) was a SHAPE symptom: the draft carried a named `mhi`, an `ob` base pointer, `y1/y2` temps and an `arg1 = 0` kill, each a dial against the previous dial. The same-family sibling `md_MAIN_009:func_800CD92C` (Β§501-H) had @@ -37479,7 +37479,7 @@ steering the hoisted invariant into `$s2` without the `$18` pin (X2 = 495) is th **Β§501-P β€” THE ATLAS'S "WEAK COUSIN" WAS THE SAME-SHAPE SIBLING; a ported natural spelling needs NO pins and NO fence, and the census shows WHICH spelling elements carry a scheduling window (P32 T4b hand pass, S85 2026-09-06; `ov_SC03_105:func_80185810` -489/489 BANKED `commit:4004` β€” the phase's last overlay stub; zero pins, zero fences, zero asm bodies).** The S83 Fable draft sat at +489/489 BANKED `cdd9a2cb8` β€” the phase's last overlay stub; zero pins, zero fences, zero asm bodies).** The S83 Fable draft sat at DIFF 13 (rows 363–380, the tpage/code RMW window) after 3,360 region-2 variants, five register pins, HI temps and a zero-byte fence; its report had correctly read the residual's mechanism (an unboosted 2nd set `cl &= 0xFFFF` whose anti-dependences hold the w-chain's reads; the fence releases them but forbids sched2's fillers) and concluded the honest fix was blocked by combine. @@ -37508,7 +37508,7 @@ census so the next row inherits the elements, not the dials; (3) a residual's me "blocked" verdict wrong: the block's OTHER births (2-set `uu`, the polarity) were what made the honest fix look blocked. **Β§501-Q β€” THE SELF-UPDATE GHOST: a no-traffic 8-byte frame slot from a combine bookkeeping gap (P32 T4c, S85 2026-09-06; -`main:func_80032A74` 422/422 BANKED `commit:4007` β€” the S84 "PROVED wall"; also the [arg1 @0][8 @8][cnt @0x10] slot of +`main:func_80032A74` 422/422 BANKED `f9a90affb` β€” the S84 "PROVED wall"; also the [arg1 @0][8 @8][cnt @0x10] slot of `main:func_80039308`).** The Β§501-M producer census missed one producer. In `try_combine` (combine.c:2306) the deleted i2's dest gets its `reg_n_sets`/`reg_n_refs` decremented ONLY `if (! added_sets_2 && newi2pat == 0 && ! i2dest_in_i2src)`: when the deleted insn is a SELF-UPDATE (`x = x op c`, its dest re-mentioned in its source) the bookkeeping is skipped. So the chain diff --git a/docs/phase25-t6-fable-brief.md b/docs/phase25-t6-fable-brief.md index 4d27074cf4..f70dde3f2d 100644 --- a/docs/phase25-t6-fable-brief.md +++ b/docs/phase25-t6-fable-brief.md @@ -17,7 +17,7 @@ INCLUDE_ASM (G4). Validate the top 3–5 before scaling (Phase-15/16 lesson). Ou is diagnosing the residual CLASS of each wall and splitting "a deterministic tool already cracks this" from "this needs a new idiom" β€” so the T7 execution session (back at Opus-Max + surgical tiers) doesn't waste effort. -## State (byte-verified, committed `commit:0492`) +## State (byte-verified, committed `20747321c`) - **Fleet 72.29%**, `check-all` **136/136 byte-identical**, dedup 1813/0, 0 NON_MATCHING (G4). - **127 draftable family exemplars** (all ov_SC01_077 members; `.run/t5_targets.json`): **32 banked** (each β†’Γ—134 via diff --git a/docs/roadmap-to-100.md b/docs/roadmap-to-100.md index 9610d8699b..22d942b1c8 100644 --- a/docs/roadmap-to-100.md +++ b/docs/roadmap-to-100.md @@ -1,9 +1,9 @@ # The Road to 100% β€” the BFM-decomp endgame roadmap (v2, Phase 30+) > **v2 re-baseline adopted:** 2026-07-30 (Drew, plan-mode gate at Phase-29 close; authored on -> Fable 5 at Max effort) Β· **Baseline:** the 2026-07-30 committed digests at HEAD `commit:1211` +> Fable 5 at Max effort) Β· **Baseline:** the 2026-07-30 committed digests at HEAD `f382a8180` > (post-T98/T99) Β· **Supersedes:** roadmap v1 (2026-07-15, this same file β€” full v1 text in git -> history at `commit:1210` and earlier; Β§7 records what changed and why) Β· **Status:** ACTIVE β€” +> history at `0e5d64956` and earlier; Β§7 records what changed and why) Β· **Status:** ACTIVE β€” > re-baselined by every PhaseEnd. > > v1 chartered P27 (honest frontier) β†’ P28 (endgame engine) β†’ P29 (family campaign) β†’ P30 @@ -298,7 +298,7 @@ Build-along-the-way remains the doctrine (R16) β€” this table is the *foreseen* ## 7. Superseded & side notes - **Roadmap v1 (2026-07-15) is superseded by this v2 (2026-07-30);** full v1 text in git - history (`commit:1210`). What v1 held open, P27–P29 resolved: the member-adapt swing number + history (`0e5d64956`). What v1 held open, P27–P29 resolved: the member-adapt swing number (dissolved β€” the "~3%" was an `-O0` compile-flag artifact; `member_adapt` + the family-adapt fine-tune vacated); the "structural families β‰ˆ0%" doctrine (retired β€” B2 lives, 102/115); the pin-crash wall (dissolved P27); the Fable5-window urgency (lapsed; availability proved diff --git a/docs/tool-designs/aprop-lane-s59.md b/docs/tool-designs/aprop-lane-s59.md index 86f13067e2..23797fcf34 100644 --- a/docs/tool-designs/aprop-lane-s59.md +++ b/docs/tool-designs/aprop-lane-s59.md @@ -196,7 +196,7 @@ session; my diff names only `func_80162CCC`): this lane; left RED and **named here rather than papered over** β€” needs the jtbl tooling owner. -The "how did that pass report green" question for commit:2694 is open and belongs to gate_stage's +The "how did that pass report green" question for 3e9ef768b is open and belongs to gate_stage's splice/undo ordering; the arity journals of that pass contain no entry for func_8017F2BC, so the `(void)` decl was reintroduced by a later splice or restore *after* the last green build. diff --git a/docs/tool-designs/frontier-analysis-s60.md b/docs/tool-designs/frontier-analysis-s60.md index 2b7a3de9f0..0aaf360728 100644 --- a/docs/tool-designs/frontier-analysis-s60.md +++ b/docs/tool-designs/frontier-analysis-s60.md @@ -60,7 +60,7 @@ instr-weighted **97.4%** (13,171,872 / 13,523,865); distinct-code **94.6%** (86, unique fns); **main game-code 23.5%** (18,697 / 79,510 weighted) β€” main is the largest coherent open mass left. Overlays excluding main: 97.8%. -Open pool (`.run/atlas.json`, regenerated 17:25 today at head commit:2911): **3,106 open non-main +Open pool (`.run/atlas.json`, regenerated 17:25 today at head dc70f5320): **3,106 open non-main instances** in 1,772 structural groups (2,245 distinct skeletons), plus **313 crackable main stubs** (atlas `main_open`; consistent with the owner's number). @@ -94,7 +94,7 @@ carves re-add stubs, hence gross > net). Attribution by diffing every commit: | main lane | 255 | its own clean-rebuild gate | `campaign_status.py`'s "today: 2185 banked" is a **regex undercount** β€” it sums "β€” N banked" -commit subjects, and e.g. the A-prop lane's 357 banks rode in a chore commit (commit:2904, 358 +commit subjects, and e.g. the A-prop lane's 357 banks rode in a chore commit (274932d20, 358 removals) that the regex cannot see. Count banks from the stub invariant, not from subjects (the derive-from-invariants rule; this is the R32 "silently narrowed scope" class again). @@ -105,15 +105,15 @@ dd **217/422** (12.4 min gate) Β· de **192/388** Β· df **124/278** Β· dg **100/2 eating the never-drafted pool at 20–51%. Then **dk 2/201** β€” the cliff. **It coincides exactly with the first `config/overlays.mk` wipe** -(dk's own gate commit commit:2863 at 12:37 committed the registry as a zero-line file). With no +(dk's own gate commit 7891069c4 at 12:37 committed the registry as a zero-line file). With no binaries registered, overlay builds cannot succeed; the gate verdicts of that window are measurements of a broken harness, not of the drafts. Recovery + mixed period: dl 12/160, dm 3/149 (re-gates), dp 54/233, dr 28/188, dt 9/169, dq 8/167, ds 35/159, du 3/159, dx 21/158, dy 12/127, eb–ee 1–10 each, **eh 129/380** (a fresh 625-target draw). Then **ei 1/221, ej 0/215, ek 0/220, el 0/211, em 1/225 β€” all inside wipe #2** -(committed by ei's gate commit ~17:14, restored 17:43:55 = commit:2913, root-caused 17:48:45 = -commit:2915: four truncating `open(mk,"w").write()` sites in `jr_isolate_all.py:593` and +(committed by ei's gate commit ~17:14, restored 17:43:55 = 3251a0600, root-caused 17:48:45 = +d801b8f17: four truncating `open(mk,"w").write()` sites in `jr_isolate_all.py:593` and `jtbl_carve.py:1077/1118/1165`). The giveaway is in the gate walls: those five "gates" ran **3.4–6 min for ~220 drafts each** β€” instant build failures, not judgments. Post-fix, honest: **en 14/227 (6.2%), eo 3/216 (1.4%), and a clean re-gate of ei banked 34/184 (18.5%) where its @@ -142,7 +142,7 @@ at zero tokens** (15:54–16:26, `.run/maintenance.log`). in the log is `time.time() βˆ’ wave_draft_t0` β€” it includes drafting and queue wait. Real gate walls today: 12–31 min healthy, 3–6 min when broken. The "-j was decorative" serialization (every worker taking the fleet lock exclusively because `GATE_NO_ARITY` was unset) was - diagnosed and **fixed at 10:43 today** (commit:2844). What remains is Β§3's failure-proportional + diagnosed and **fixed at 10:43 today** (ece28737b). What remains is Β§3's failure-proportional cost plus (inferred, see Β§3c) cross-gate lock contention. 5. **"5,388 backlog rows at closeness ≀2" is a row count, not a workload.** I count 8,596 such rows across the ledgers β€” but rows are re-attempts of the same functions. The de-duplicated, @@ -314,7 +314,7 @@ the architecture left 18% of the pool re-drafting solved functions and paid 3 bu - **Lead "the gate is mysteriously slow at 8% CPU":** resolved, not mysterious β€” a metric artifact (wall_min includes drafting), a real serialization bug already fixed at 10:43 - (commit:2844), failure-proportional ladder cost (Β§3), and probable cross-gate lock contention. + (ece28737b), failure-proportional ladder cost (Β§3), and probable cross-gate lock contention. A raw "make builds parallel within a binary" project is NOT the fix; builds within a binary are serial by design (each mutates the same tree), and the win is not running them at all (Β§3). - **Lead "the gen6+ wall hides an unnamed cookbook class":** refuted for the majority β€” 61% of @@ -334,11 +334,11 @@ the architecture left 18% of the pool re-drafting solved functions and paid 3 bu - Wave conversions/walls: `.run/gater.log` (`=== GATE ` to `GATE : banked` intervals); `.run/ox_campaign_ledger.jsonl` for lane/band/targets. -- Wipe windows: `git log/show commit:2863 commit:2913 commit:2915` + `config_sane()` docstring in +- Wipe windows: `git log/show 7891069c4 3251a0600 d801b8f17` + `config_sane()` docstring in `tools/ox_campaign.py`. - Bank attribution: for each `git log --since=00:00` commit, `git show --unified=0 -- src/ | grep -c '^-.*INCLUDE_ASM('`; net: `git grep -c 'INCLUDE_ASM(' |HEAD -- src/`. -- Atlas: `.run/atlas.json` (head commit:2911, 17:25) β€” groups/cat/inst/n_skel/ins/lever/members. +- Atlas: `.run/atlas.json` (head dc70f5320, 17:25) β€” groups/cat/inst/n_skel/ins/lever/members. - Generations: fn occurrences across `.run/wave_*_cards.json` (204 files) joined to atlas members. - Stock: `.run/backlog.jsonl` + `.run/auto/bulk/*.backlog.jsonl` (16,837 rows; closeness by fn), `.run/reloc_rejects.jsonl` (10,049 rows; `shape` field), `.run/backlog_drafts/` (5,010 files), diff --git a/docs/tool-designs/frontier-analysis-s61.md b/docs/tool-designs/frontier-analysis-s61.md index d745a625d8..e1081ec34a 100644 --- a/docs/tool-designs/frontier-analysis-s61.md +++ b/docs/tool-designs/frontier-analysis-s61.md @@ -1,6 +1,6 @@ # Frontier analysis β€” S61 (2026-08-26, midday; post-ox) -**What this is.** A read-only analysis of everything that remains between HEAD `commit:3070` and +**What this is.** A read-only analysis of everything that remains between HEAD `252dc930c` and 100%, written for a session that has NO memory of today, as the ground truth for a Phase-32-shaped FINISH PLAN. Every number carries its denominator and source; Appendix A lists the exact commands. Nothing in the tree was modified except `make atlas` and @@ -40,7 +40,7 @@ has already banked its kind β€” the only genuinely unproven territory is the dee **Verified against the tree by me today (commands in Appendix A):** the fleet digests (regenerated: 98.4% instr / 96.7% distinct / 99.31% fn-count / 2,517 stubs); the atlas -(regenerated at HEAD `commit:3070`: 2,520 open / 1,931 skeletons / 1,596 groups / 191,556 ins); +(regenerated at HEAD `252dc930c`: 2,520 open / 1,931 skeletons / 1,596 groups / 191,556 ins); the full stub-counter reconciliation to the last line (3,495 = 2,517 + 959 + 3 + 3 + 13, Β§1); the per-bucket `classify()` sums over all 213 binaries; the main weighted-metric divergence (Β§1.3 β€” sig-row join over `corpus.stubs('main')`, both sig files); the exhaustive class @@ -50,7 +50,7 @@ ds1/ds2 costs summed from per-shard agent logs ($1.9227 / $3.0413) and ds2 bank per-commit INCLUDE_ASM diffs; the resolver's converged state (last pass 12:09: 302 items β†’ 85 staged β†’ 0 banked); the grinder's S61 yield (0; its 29-bank file is dated Jul 24); the main-lane n-pass logs (drafts=0 β€” its ox half is dead); lane quiescence (`ps` empty); -`decl_from_use.py` exists (commit:3008) and no dup-def-demotion tool exists. +`decl_from_use.py` exists (0488903e5) and no dup-def-demotion tool exists. **Repo-recorded measurements I did not independently re-derive:** the S61 session narrative (resolver 63 banked, maintenance 24+11, wave re-gates fa–ff 17/~5,000, gen0 77+119+10+6 banks, @@ -107,7 +107,7 @@ total = 53 RODATA + 3 ASM). ### 1.2 The full open decomposition -At HEAD `commit:3070` (all three metrics regenerated today): +At HEAD `252dc930c` (all three metrics regenerated today): - **Fleet:** instr-weighted **98.4%** (13,306,357 / 13,523,865) Β· distinct-code **96.7%** (5,656,025 / 5,851,972; 89,008 / 90,929 unique fns) Β· fn-count **99.31%** (360,468 / @@ -383,7 +383,7 @@ not the belief. - Fleet: `.venv/bin/python tools/progress.py --fleet` β†’ `docs/progress.fleet.md` (also the per-binary table used for red-binary open counts). Atlas: `make atlas` β†’ - `.run/atlas.json` + `docs/frontier-atlas.md` (HEAD `commit:3070`; scope/totals blocks). + `.run/atlas.json` + `docs/frontier-atlas.md` (HEAD `252dc930c`; scope/totals blocks). - Counter reconciliation: `git grep -c 'INCLUDE_ASM(' HEAD -- src/ | awk -F: '{s+=$NF} END{print s}'` = 3,495; per-binary split with the n==2 path test (main = src/*.c top-level, 1,125); bucket sums via `.run/frontier_s61/recon2.py` (imports @@ -417,7 +417,7 @@ not the belief. 1997–2206), `docs/decision-log.md` last three entries, `phase-ends/PhaseEnd_Phase30.md`, `docs/roadmap-to-100.md` v2, `docs/disc-ledger.md:111` (5 UNCLAIMED of 220), `docs/calibration.md`, `.run/baseline_red.txt` = `.run/fleet_red.txt` (5). Tools: - `ls tools/decl_from_use.py` (exists; commit:3008); no dup-def-demotion tool matches + `ls tools/decl_from_use.py` (exists; 0488903e5); no dup-def-demotion tool matches `demot|dupsym|dup_def` in tools/. --- @@ -465,10 +465,10 @@ raise wave quality, priced in via the warm-start assumption), and the refuted Β§ ## Addendum 2 β€” 2026-08-26 (S62), plan step 1 executed: the falsifier FIRED; premises corrected -*Append-only. Every number below was measured on the tree at `commit:3078` β†’ `commit:3080`.* +*Append-only. Every number below was measured on the tree at `528f543d8` β†’ `f449a455b`.* **Premise corrections (R35/R40, checked before building anything).** (a) The dup-defβ†’extern -demotion was NOT "not yet built": `integration_resolver.dup_def_demote()` landed at `commit:3012` +demotion was NOT "not yet built": `integration_resolver.dup_def_demote()` landed at `3222eb454` (01:14, an ancestor of this document's HEAD) and had already BANKED its own probe case (md_MAIN_003/func_800D3204, ledger run 011436: `dupfix:backlog … BANKED`). (b) `decl_from_use` was already wired into A-prop (`aprop_autodraft.py` :522 branch, same commit); only the resolver's CC1 @@ -493,7 +493,7 @@ binary by ONE byte, inside the function, at a `j` word β€” a wrong internal jump rtu/match_one could not see because `R_MIPS_26 .text` (which the assembler DOES emit for an in-section `j`) was masked. Both drafts had a genuine control-flow error (goto-to-recheck vs the cross-jumped call; a shared post-join negation vs an else-arm `negu`); one-line fixes, gated -through `sweep_parallel`, **banked 2/2** (`commit:3080`). The comparer is fixed (`masked_diff` `jrel`; +through `sweep_parallel`, **banked 2/2** (`f449a455b`). The comparer is fixed (`masked_diff` `jrel`; `rtu_match` now shares `structured_diff`), positive-controlled (originals β†’ DIFF 1, fixes β†’ MATCH) and negative-controlled over all 3,475 stubs (`tools/stub_invariant_audit.py`: 1,097 stubs / 4,043 internal `j` exercised, 0 new mismatches). Cookbook Β§301. **Consequence for this document:** every @@ -501,7 +501,7 @@ internal `j` exercised, 0 new mismatches). Cookbook Β§301. **Consequence for thi `j` targets; re-judge under the new comparer before spending builds. **Β§295 sweep:** ResetEntryInt, HookEntryInt, read, SysEnqIntRP β†’ `gate_main` clean rebuild, main -SHA `143dbb89…` byte-identical, **banked 4/4** (`commit:3079`). +SHA `143dbb89…` byte-identical, **banked 4/4** (`80124c681`). **Net T1: +6 banks (2,517 β†’ 2,511 stubs; fleet 98.4% instr / 96.7% distinct), 1 instrument defect closed, 2 tools promoted.** The deterministic-first mass is unchanged in shape: the resolver's @@ -518,7 +518,7 @@ not compiled since an 08-13 propagation (four text defects incl. an offset/value `tools/interleave_check.py`, `tools/pads_audit.py` (derive, never search). Yield: **red list 5 β†’ 0**; the 40 held resolver drafts gated **39/40** (7+4+9+1+18; the 40th was already banked by propagation); the 241 held fns re-enter their natural classes; class A is -dissolved. Commits `commit:3084 … commit:3093`. The fleet-wide R22 proof (clean β†’ extract-all β†’ +dissolved. Commits `5a87e741e … b3e879a95`. The fleet-wide R22 proof (clean β†’ extract-all β†’ check-all, GREEN count) runs next and is quoted in CURRENT_PHASE.md. ## Addendum 4 β€” 2026-08-26 (S62), plan step 3 executed: classes E/F/J are engines now, not walls diff --git a/docs/tool-designs/jtbl-automation-s59.md b/docs/tool-designs/jtbl-automation-s59.md index 1d12254674..a8ef792fbb 100644 --- a/docs/tool-designs/jtbl-automation-s59.md +++ b/docs/tool-designs/jtbl-automation-s59.md @@ -175,10 +175,10 @@ $ .venv/bin/python tools/jtbl_lane.py --targets func_8017DCC0@ov_SC03_014 --draf [12:20:27] jtbl lane: 1 target(s): func_8017DCC0@ov_SC03_014[tail] [12:20:27] waiting for the campaign draw lock (gates never overlap) … [12:20:27] gating func_8017DCC0@ov_SC03_014 (per-binary flock + shared lock; the gate carves) -[12:23:48] BANKED func_8017DCC0@ov_SC03_014 -> commit commit:2661 +[12:23:48] BANKED func_8017DCC0@ov_SC03_014 -> commit b801b499e ``` -Byte evidence (commit `commit:2661`, live campaign running throughout): +Byte evidence (commit `b801b499e`, live campaign running throughout): | check | before | after | |---|---|---| @@ -190,7 +190,7 @@ Byte evidence (commit `commit:2661`, live campaign running throughout): ### 6b. md_SC03_076 / func_801F218C β€” `covered` class (83 ins; Β§260 stage 2, the missing half) -The committed S59 split (`commit:2646`) proved stage 1 (stub state byte-neutral). This bank is +The committed S59 split (`a931423c7`) proved stage 1 (stub state byte-neutral). This bank is stage 2: the matched C emits the table itself into the jr object at the same address. **First md_* jr function ever banked.** @@ -201,10 +201,10 @@ MATCH (83 ins) func_801F218C $ .venv/bin/python tools/jtbl_lane.py --targets func_801F218C@md_SC03_076 --draft-dir .run/s59_jtbl/drafts [12:24:21] jtbl lane: 1 target(s): func_801F218C@md_SC03_076[covered] -[12:26:58] BANKED func_801F218C@md_SC03_076 -> commit commit:2663 +[12:26:58] BANKED func_801F218C@md_SC03_076 -> commit bad793c73 ``` -| check | stub state (Β§260 stage 1, commit `commit:2646`) | matched (commit `commit:2663`) | +| check | stub state (Β§260 stage 1, commit `a931423c7`) | matched (commit `bad793c73`) | |---|---|---| | whole-binary sha1 | `9a165e368009a79bcc2ebb06bcb13e6da20d460e` | **`9a165e368009a79bcc2ebb06bcb13e6da20d460e`** β€” identical bytes | | `md_SC03_076.o` `.rodata` | 0x268 | 0x268 | @@ -232,7 +232,7 @@ MATCH (83 ins) func_801E5358 $ .venv/bin/python tools/jtbl_lane.py --targets func_801E5358@md_SC03_135 --draft-dir .run/s59_jtbl/drafts [12:27:28] jtbl lane: 1 target(s): func_801E5358@md_SC03_135[island-end] -[12:27:29] BANKED func_801E5358@md_SC03_135 -> commit commit:2664 +[12:27:29] BANKED func_801E5358@md_SC03_135 -> commit f74ad7ac8 ``` Yes, ~1.1 s wall for the WHOLE Β§260 pipeline β€” splice β†’ island refusal β†’ `jr_isolate_all --only` @@ -243,7 +243,7 @@ it: the artifact mtimes show the ld at 28.54 s, the re-extracted jr `.s` at 28.8 two TUs; its splat and cc1-2.7.2 really are that fast. (The ov gate above took ~40 s of real work β€” a 30-TU overlay.) -| check | before (virgin) | after (commit `commit:2664`) | +| check | before (virgin) | after (commit `f74ad7ac8`) | |---|---|---| | whole-binary sha1 | `b901fda5…` (locked) | **`b901fda523c83376bd8b7f1c57104d8e13aef5e4`** == `config/check.md_SC03_135.sha` | | config | `[0x0 island][0x27C c]` | + `[0x268, .rodata, md_SC03_135_jr_801E5358]` **and** + `[0x2d70, c, …_jr_801E5358]` β€” split AND isolation, both inserted by the gate | diff --git a/docs/tool-designs/main-lane-fix-s59.md b/docs/tool-designs/main-lane-fix-s59.md index e4935f946b..ca11abb61e 100644 --- a/docs/tool-designs/main-lane-fix-s59.md +++ b/docs/tool-designs/main-lane-fix-s59.md @@ -8,7 +8,7 @@ SHA lines. Companion docs: `main-gate-defects.md`, `docs/automation-runbook.md`, The main lane's drafts were fine and its gate was fine; **the committed baseline was RED**. From 14:57:01 to 18:43:23 on 2026-08-24, HEAD's `src/800.c` carried at least one byte-wrong body -(adopted by auto-commit `commit:2693`), so `make build BINARY=main` produced +(adopted by auto-commit `24bd25993`), so `make build BINARY=main` produced `307aa45dc2aff265043a60c9ad2f6b30777852b1` against the expected `143dbb89f34491258bbc27810d0a12ec8b43a8dd` **with no draft substituted at all**. Every batch gated in that window was doomed before its first draft was judged: four 200-card draft rounds @@ -24,21 +24,21 @@ Holding `.run/auto/gate.main.lock`, with `pgrep -f 'tools/gate_mai[n]\.py'` empt rm -f build/us/SLUS_007.26 && make extract BINARY=main && make build BINARY=main -* At `commit:2711` (HEAD during the failures): rc=2, binary produced, +* At `86ebc95a8` (HEAD during the failures): rc=2, binary produced, `307aa45d…` β€” **RED**. The build log also always carries `src/800.c:479: warning: previous implicit declaration of 'func_800143AC'` (line 479 calls it before its decl at 559 β€” harmless, but load-bearing below). -* With `src/800.c`+`src/800c.c` restored from `commit:2692` (the last lane-verified-green main +* With `src/800.c`+`src/800c.c` restored from `78db16c7c` (the last lane-verified-green main commit, m00baaa 14:56:47): rc=0, `143dbb89…` **BYTE-IDENTICAL** β€” so those two files carried the entire breakage. -* With the files from `commit:2693` (14:57:01): RED at **exactly HEAD's wrong SHA** β€” `commit:2693` - is the breaking commit, and the two later adopters (`commit:2694`, `commit:2706`) are byte-neutral +* With the files from `24bd25993` (14:57:01): RED at **exactly HEAD's wrong SHA** β€” `24bd25993` + is the breaking commit, and the two later adopters (`3e9ef768b`, `1f7fdc791`) are byte-neutral (their adopted bodies were correct; only never verified). ## 2. Root cause: adoption-during-gate (a TOCTOU race, not a bad tool) -`commit:2693` is ox_campaign's gate-entry auto-commit ("commit in-tree banked work before the next -gate"). Its main-source carve-out (from `commit:2638`, same morning) DID run β€” it reverted the dirty +`24bd25993` is ox_campaign's gate-entry auto-commit ("commit in-tree banked work before the next +gate"). Its main-source carve-out (from `d53c4bf79`, same morning) DID run β€” it reverted the dirty main TUs β€” but a `gate_main` bisect chunk was live at that moment (the commit landed 14 s after m00baaa banked, exactly one chunk cadence), and gate_main's `substitute()` re-wrote `src/800.c` between the carve-out's `git checkout` and the site's `git add -A src/`. The add swept the @@ -48,8 +48,8 @@ gate_main "reverted" β€” to the newly poisoned HEAD. Two unverified bodies (`fun Three separate adopters could do this (all blanket-add `src/`): ox_campaign's gate-entry commit, its pre-main-batch overlay commit ("Committed before the main batch…", which adopted five more -bodies at 16:50 `commit:2706` and β€” luckily β€” the *investigation's own green checkout* at 18:43 -`commit:2712`, which is what restored the baseline), and `maintenance.sh`. `gate_stage` +bodies at 16:50 `1f7fdc791` and β€” luckily β€” the *investigation's own green checkout* at 18:43 +`88673d370`, which is what restored the baseline), and `maintenance.sh`. `gate_stage` (`git add -u src/`), `gate_lane`, and `idiom_serial` had the same latent hazard. ## 3. The amplifier: why the gate LIED about why batches failed @@ -100,18 +100,18 @@ one: `BANKED 0 of 36 … STILL MISMATCHED`. **Recovery** * `.run/main_queue/s59_recovery.json`: the 56 unique falsely-rejected drafts from the m00–m04 slates (tries reset β€” their strikes were false verdicts) plus the 7 byte-correct bodies - (`func_8001D70C`, `func_800291A0/B4/C8/DC`, `func_8003A0D0`, `SYS_OBJ_E34`) that `commit:2712`'s - sweep re-stubbed, re-extracted from `commit:2694`/`commit:2706` into + (`func_8001D70C`, `func_800291A0/B4/C8/DC`, `func_8003A0D0`, `SYS_OBJ_E34`) that `88673d370`'s + sweep re-stubbed, re-extracted from `3e9ef768b`/`1f7fdc791` into `.run/s59_mainfix/recovered/`. ## 5. Proof -* Baseline at current HEAD (`commit:2712`), measured under the lock, no gate alive, clean sources: +* Baseline at current HEAD (`88673d370`), measured under the lock, no gate alive, clean sources: rc=0, `143dbb89f34491258bbc27810d0a12ec8b43a8dd build/us/SLUS_007.26` β€” **BYTE-IDENTICAL**. * Proof run (19:15–19:22): one `main_lane.py --once` cycle through the fixed machinery over the recovery queue β€” `--assert-baseline` GREEN, then **40 drafts β†’ 32 banked in ONE clean rebuild**, `sha1 143dbb89f34491258bbc27810d0a12ec8b43a8dd == config/check.us.sha (BYTE-IDENTICAL)`, - committed as `commit:2717` (feat(decomp): main lane m05 β€” 32 banked). The 32 include all 7 + committed as `2aea2261d` (feat(decomp): main lane m05 β€” 32 banked). The 32 include all 7 recovered bodies AND drafts the red-window gates had "rejected" by name (`func_80015A08`, `func_8002A520`, …). 8 genuinely failed and parked with a try count. The same draft population had banked 0/160 all day against the red baseline β€” the drafts were never the problem. diff --git a/docs/tool-designs/o0-path-s59.md b/docs/tool-designs/o0-path-s59.md index 718b00cb6c..7b973ef9e6 100644 --- a/docs/tool-designs/o0-path-s59.md +++ b/docs/tool-designs/o0-path-s59.md @@ -6,7 +6,7 @@ this session; the one build allowance was spent on the gate that BANKED `func_80 **Headline results:** 1. `func_80184058` (131 ins, `ov_SC03_014_o0c`) went **first-compile MATCH β†’ whole-binary - BYTE-IDENTICAL β†’ committed** (`commit:2659`). The -O0 idiom set exists, transfers from banked + BYTE-IDENTICAL β†’ committed** (`a1e8b9a5f`). The -O0 idiom set exists, transfers from banked siblings, and one-shots without iteration. Q3 is answered YES with bytes. 2. **md_MAIN_011 needs NO carve at all.** Its entire code subseg (0x7C..0x4400 = 17,284 B = 4,321 ins) is exactly the 21 stranded -O0 functions, and `src/md_MAIN_011/md_MAIN_011.c` is @@ -75,7 +75,7 @@ then spliced into the TU and gated under the binary's lock: sha1 d84b01a2bd4c712e1127707f5cd2007d79f4afb0 == config/check.ov_SC03_014.sha (BYTE-IDENTICAL) ``` -Committed as `commit:2659` (R42). The identical stub remains in `ov_SC03_015_o0c.c` β€” the same body +Committed as `a1e8b9a5f` (R42). The identical stub remains in `ov_SC03_015_o0c.c` β€” the same body banks it (byte-twin), one gate away; left for the campaign since the task's one-build allowance was spent. diff --git a/docs/tooling-audit.md b/docs/tooling-audit.md index e1639f5a04..4dda59431f 100644 --- a/docs/tooling-audit.md +++ b/docs/tooling-audit.md @@ -24,22 +24,22 @@ re-confirmed wall is as valuable as a dissolved one). | # | tool / defect | outcome | commit | |---|---|---|---| -| A1 | `dedup_integrate` β€” a fail-closed gate that printed **false greens** | 3 paths closed + negative controls; 7 ghost groups purged | `commit:0586` | -| A2 | THE FULL AUDIT (18 tools Β· 38 agents Β· 2.24M tok) | 32 raised β†’ **28 survived**, 4 refuted, 40 scanners clean | `commit:0588` | -| A3 | **`corpus.py`** (derived oracle) + **`cdecl.py`** (C-decl grammar oracle) + `gate_stage`/`harvest_verify`/`cast_call_sites`/`sig_unify` migrated; the fleet-majority oracle **RETIRED** for `reconcile_tu` | targets 30β†’263 Β· reach-134 10β†’127 Β· gain 83kβ†’**994,633 ins** Β· byte-gate reach 4.9%β†’**100%** Β· 3,717 actively-wrong canonicals removed | `commit:0589`..`commit:0602` | -| A4 | the `listCdBuffer` corpus defect | **193 unmatchable slices β†’ 0**; a banked phantom removed; 4 real fns un-hidden | `commit:0594` | -| A5 | closeness oracle (`masked_diff` PC16) | **150 lies β†’ 4** (coverage-asserted over 2,741 fns) | `commit:0594` | -| βž• | stale objects can produce a FALSE PASS | `extract` invalidates them β€” **structural, not advisory** | `commit:0595` | -| A6/A7 | family engine + `build_engine_types` un-blinded | 96 phantom exemplars β†’ 0; 17 fns banked Γ—134 free; type-lift now RUNS | `commit:0596` | -| A8 | `jr_isolate_all` dropped **683 prototypes** β€” a latent BYTE-CHANGER | fixed + coverage-asserted | `commit:0597` | -| A9a | `canon_sig_reconcile` blind to fn-ptr dispatch tables | cdecl-supplemented (0 regressions / 69,798 additions) | `commit:0609` | -| A9b | **wall re-test payoff** | `func_8017A4AC` (536Γ—134) β€” a many-phase "plumbing wall" β€” **banked Γ—134** by the fixed oracle | `commit:0611` | -| A9c | `lint_symbol_refs` (the only R22 rename-drift detector) RED + UNWIRED | green on HEAD + wired into `make report` | `commit:0613` | -| A9d | dead Phase-17 canonical-sig chain (`census_conflict_callees`+`derive_canonical_sigs`) | **DELETED** (R33 β€” the build answers it) | `commit:0615` | -| A9e | `reconcile_tu` into `bank_exemplar` | already wired via A3d (`fb.recover`) β€” null result, documented | `commit:0616` | -| A9f | `overlay_src_split` swallowed 2 real definitions; selftest was blind | force_decl latch fixed + `hidden_definitions()` R32 coverage oracle | `commit:0617` | -| A9g | `jr_inventory` read banked-roster from an EPHEMERAL gitignored file | derive `banked` from the image (R33); 1:1 carve-ownership assert; fleet 134/134 | `commit:0618` | -| A10 | **re-test the 5 walls** | β‘  closeness-0 **0/958 = REAL** Β· β‘‘ arity 13/18 fell (A3c) Β· β‘’ def-side dissolved (A9b) Β· β‘£ type-heavy tool unblocked (A7) β†’ Task-8 harvest Β· β‘€ h_seq +2,675 (A3h) | `commit:0620`,`commit:0621` | +| A1 | `dedup_integrate` β€” a fail-closed gate that printed **false greens** | 3 paths closed + negative controls; 7 ghost groups purged | `bb65d3634` | +| A2 | THE FULL AUDIT (18 tools Β· 38 agents Β· 2.24M tok) | 32 raised β†’ **28 survived**, 4 refuted, 40 scanners clean | `ffb6f1a40` | +| A3 | **`corpus.py`** (derived oracle) + **`cdecl.py`** (C-decl grammar oracle) + `gate_stage`/`harvest_verify`/`cast_call_sites`/`sig_unify` migrated; the fleet-majority oracle **RETIRED** for `reconcile_tu` | targets 30β†’263 Β· reach-134 10β†’127 Β· gain 83kβ†’**994,633 ins** Β· byte-gate reach 4.9%β†’**100%** Β· 3,717 actively-wrong canonicals removed | `f7b7399eb`..`b89fcc2ed` | +| A4 | the `listCdBuffer` corpus defect | **193 unmatchable slices β†’ 0**; a banked phantom removed; 4 real fns un-hidden | `af2f40d15` | +| A5 | closeness oracle (`masked_diff` PC16) | **150 lies β†’ 4** (coverage-asserted over 2,741 fns) | `af2f40d15` | +| βž• | stale objects can produce a FALSE PASS | `extract` invalidates them β€” **structural, not advisory** | `a2a507d07` | +| A6/A7 | family engine + `build_engine_types` un-blinded | 96 phantom exemplars β†’ 0; 17 fns banked Γ—134 free; type-lift now RUNS | `82d79e7a3` | +| A8 | `jr_isolate_all` dropped **683 prototypes** β€” a latent BYTE-CHANGER | fixed + coverage-asserted | `2086b15b4` | +| A9a | `canon_sig_reconcile` blind to fn-ptr dispatch tables | cdecl-supplemented (0 regressions / 69,798 additions) | `abbedcee8` | +| A9b | **wall re-test payoff** | `func_8017A4AC` (536Γ—134) β€” a many-phase "plumbing wall" β€” **banked Γ—134** by the fixed oracle | `3509acf4b` | +| A9c | `lint_symbol_refs` (the only R22 rename-drift detector) RED + UNWIRED | green on HEAD + wired into `make report` | `d7d2613ae` | +| A9d | dead Phase-17 canonical-sig chain (`census_conflict_callees`+`derive_canonical_sigs`) | **DELETED** (R33 β€” the build answers it) | `40477281c` | +| A9e | `reconcile_tu` into `bank_exemplar` | already wired via A3d (`fb.recover`) β€” null result, documented | `68d29ba8a` | +| A9f | `overlay_src_split` swallowed 2 real definitions; selftest was blind | force_decl latch fixed + `hidden_definitions()` R32 coverage oracle | `96e025a32` | +| A9g | `jr_inventory` read banked-roster from an EPHEMERAL gitignored file | derive `banked` from the image (R33); 1:1 carve-ownership assert; fleet 134/134 | `ea20bdf9f` | +| A10 | **re-test the 5 walls** | β‘  closeness-0 **0/958 = REAL** Β· β‘‘ arity 13/18 fell (A3c) Β· β‘’ def-side dissolved (A9b) Β· β‘£ type-heavy tool unblocked (A7) β†’ Task-8 harvest Β· β‘€ h_seq +2,675 (A3h) | `b1c58d766`,`e9038a04e` | **REMAINING (handed forward, not audit-blockers):** (1) the un-migrated `cdecl` consumers β€” `canon_sig_reconcile`'s non-fn-ptr classifier is still on its own regex (A9a supplemented only the fn-ptr data class, deliberately β€” @@ -101,13 +101,13 @@ byte-exact functions look like an intrinsic compiler wall.** We would have writt | tool | bug | commit | |---|---|---| -| `gen_harvest_targets.SIG_IN_BODY_RE` | `)\s*{` missed own-line braces β†’ **186 of 1801 (10%)** of the callee oracle | `commit:0561` | -| `family_remap.extract_unit` | read an m2c DECLARATION as a DEFINITION β†’ 15 of 35 exemplars phantom | `commit:0552` | -| `scope_data_externs` (NEW, Β§8d) | carried data externs at FILE scope established a global the TU never had | `commit:0551` | -| `scope_data_externs._body_open_brace` | own-line-brace only β†’ silently no-op'd on every ANSI draft | `commit:0555` | -| `progress.py classify()` | K&R defs invisible (`;` before `{`); phantom dedup members; **+ coverage assertion** | `commit:0574` | -| `jtbl_family_bank.revert()` / `jr_isolate_all` | config residue β†’ duplicate subseg β†’ "segments out of order"; **+ fail-loud validation** | `commit:0558` | -| `tools/reconcile_tu.py` (NEW) | TU-visible decl oracle + fn-ptr parsing + coverage assertion β€” **WRITTEN, VALIDATED, NOT WIRED IN** | `commit:0580` | +| `gen_harvest_targets.SIG_IN_BODY_RE` | `)\s*{` missed own-line braces β†’ **186 of 1801 (10%)** of the callee oracle | `6f3441d26` | +| `family_remap.extract_unit` | read an m2c DECLARATION as a DEFINITION β†’ 15 of 35 exemplars phantom | `cc6220eba` | +| `scope_data_externs` (NEW, Β§8d) | carried data externs at FILE scope established a global the TU never had | `1ab990536` | +| `scope_data_externs._body_open_brace` | own-line-brace only β†’ silently no-op'd on every ANSI draft | `a0e7ff7f6` | +| `progress.py classify()` | K&R defs invisible (`;` before `{`); phantom dedup members; **+ coverage assertion** | `329ab4cbe` | +| `jtbl_family_bank.revert()` / `jr_isolate_all` | config residue β†’ duplicate subseg β†’ "segments out of order"; **+ fail-loud validation** | `7e4165676` | +| `tools/reconcile_tu.py` (NEW) | TU-visible decl oracle + fn-ptr parsing + coverage assertion β€” **WRITTEN, VALIDATED, NOT WIRED IN** | `5b1de7aca` | ## Not yet audited (63 of 82 tools) @@ -775,14 +775,14 @@ scanners** β€” the "best outcome is a deleted scanner" rule (R33), applied at sc | # | tool | was | now | commit | |---|---|---|---|---| -| A1 | `dedup_integrate` | a **fail-closed gate that printed false greens**: 7 groups named a macro that did not exist; a missing sig β†’ *"0 validated, 0 failed"* + **exit 0**; the bank claim never checked | all three fail-closed with negative controls; the bank claim **derived** from the build invariant | `commit:0586` | -| A3 | **`tools/corpus.py`** *(new)* | β€” | the single derived oracle: files/stubs/matched/asm-path, coverage-asserted. Plus **`make audit-corpus`**, a *second oracle that can disagree with the corpus* | `commit:0589` | -| A3 | `build_fuel_manifest` | 3-file allowlist β†’ **30 of 264** stubs; **91.6% of all remaining gain invisible**; 117 of 127 reach-134 fns never nominated | **263** targets Β· **127** reach-134 Β· **994,633 ins** (the audit's predicted figure to the unit) | `commit:0590` | -| A3 | `wave_targets` | `REGION_SUB` 3-entry dict β†’ **78 of 87** targets handed an asm path **that does not exist** (wasted attempts booked as *matching* failures β†’ `reserved_walls()` β†’ **false walls**) | **0 of 263** missing; raises rather than guess | `commit:0590` | -| A3 | `harvest_verify` + `gate_stage` | **the byte-gate could see ONE TU**: 4.9% of ov_SC01_077, **96.6% of fleet stubs unreachable**, **1,290 of the grinder's own 1,298 queued fns unbankable** | **100%**; each draft spliced into the TU that holds its stub; verdict untouched | `commit:0591` | -| A3 | `family_manifest` | matched-set from **one overlay** β†’ the endgame plan advertised **2,758 families / 11.0 MB**; **1,071 (62% of the byte-weight) were ALREADY MATCHED** | **1,495 / 3.9 MB** β€” derived from the invariant; the dedup-hash scanner **deleted** | `commit:0593` | -| A3 | `family_hseq` | `func_`-only stub regex β†’ 3 phantom "matched" exemplars | corpus-derived (+100 curated stubs); stale hardcoded baseline labelled | `commit:0593` | -| A3 | `census_conflict_callees` | wave scope **2** when the truth is **57** (96% under-report) | **0/57**; **DELETED** with `derive_canonical_sigs` (its only consumer) β€” R33, the dead Phase-17 chain ceases to exist; `reconcile_tu` answers it from the build | `commit:0593`β†’A9d | +| A1 | `dedup_integrate` | a **fail-closed gate that printed false greens**: 7 groups named a macro that did not exist; a missing sig β†’ *"0 validated, 0 failed"* + **exit 0**; the bank claim never checked | all three fail-closed with negative controls; the bank claim **derived** from the build invariant | `bb65d3634` | +| A3 | **`tools/corpus.py`** *(new)* | β€” | the single derived oracle: files/stubs/matched/asm-path, coverage-asserted. Plus **`make audit-corpus`**, a *second oracle that can disagree with the corpus* | `f7b7399eb` | +| A3 | `build_fuel_manifest` | 3-file allowlist β†’ **30 of 264** stubs; **91.6% of all remaining gain invisible**; 117 of 127 reach-134 fns never nominated | **263** targets Β· **127** reach-134 Β· **994,633 ins** (the audit's predicted figure to the unit) | `a302908f2` | +| A3 | `wave_targets` | `REGION_SUB` 3-entry dict β†’ **78 of 87** targets handed an asm path **that does not exist** (wasted attempts booked as *matching* failures β†’ `reserved_walls()` β†’ **false walls**) | **0 of 263** missing; raises rather than guess | `a302908f2` | +| A3 | `harvest_verify` + `gate_stage` | **the byte-gate could see ONE TU**: 4.9% of ov_SC01_077, **96.6% of fleet stubs unreachable**, **1,290 of the grinder's own 1,298 queued fns unbankable** | **100%**; each draft spliced into the TU that holds its stub; verdict untouched | `70a99aa9f` | +| A3 | `family_manifest` | matched-set from **one overlay** β†’ the endgame plan advertised **2,758 families / 11.0 MB**; **1,071 (62% of the byte-weight) were ALREADY MATCHED** | **1,495 / 3.9 MB** β€” derived from the invariant; the dedup-hash scanner **deleted** | `9794b13ed` | +| A3 | `family_hseq` | `func_`-only stub regex β†’ 3 phantom "matched" exemplars | corpus-derived (+100 curated stubs); stale hardcoded baseline labelled | `9794b13ed` | +| A3 | `census_conflict_callees` | wave scope **2** when the truth is **57** (96% under-report) | **0/57**; **DELETED** with `derive_canonical_sigs` (its only consumer) β€” R33, the dead Phase-17 chain ceases to exist; `reconcile_tu` answers it from the build | `9794b13ed`β†’A9d | | A3 | **`tools/cdecl.py`** *(new)* + `make audit-cdecl` | **fifteen** tools each carried their own regex model of "what is a C declaration", and they disagreed; all fifteen were blind to fn-ptr / sized-array / multi-declarator decls | ONE recursive-descent parser of the C **declarator grammar** β€” total by construction, not by shape enumeration. **2,952,246 statements β†’ 2,731,521 declarators, 0 parser defects; 50,405 declarations round-tripped through the real cross-gcc, 0 rejected.** Cookbook **Β§51g** (LAWS 4–8) | *(this commit)* | ### What `cdecl` measured that the audit had not (all new, all reproducible via `make audit-cdecl`) @@ -993,7 +993,7 @@ Rebuilding the manifest both ways (.run/audit/hseq/a7.py): - **R33:** YES β€” DELETE, this is the poster child for R33. The proven invariant ('a function not wrapped in INCLUDE_ASM is byte-exact') is per-overlay and already fully implemented in family_hseq.load(). family_manifest re-derives it from ONE overlay's C text and thereby invents a matched set 23Γ— too small. The correct outcome is not a fixed regex but a deleted scanner + one shared invariant-derived loader. - **fix:** DELETE the matched-set derivation from family_manifest.py. Move family_hseq.load()'s per-overlay ground truth (stub-scan every src/ov_*/*.c, matched := addr not stubbed in its OWN overlay) into a single shared loader module (e.g. tools/fleet_truth.py) and have BOTH family tools import it; matched_hex := {h_exact of every non-stub sig function in any overlay} | dedup hashes. Keep the h_norm grouping/ranking; it is the oracle underneath that must go. - **assertion (R32):** R32: after building matched_hex, assert its instance-weighted coverage equals progress.py --weighted's fleet matched count (currently 82.8% fn / 283,050 non-stub fns) within 0; the ov077-only oracle would report 2,252 classes and fail instantly. Plus: assert matched_hex is a superset of every dedup hash AND of every non-stub sig addr in every overlay. -- **skeptic:** RAN (all read-only, scratch in .run/audit/skeptic/): s1.py validated the invariant over all 134 overlays (341,671 sig fns; 58,617 stubs; ZERO stubs outside sig; every overlay has .c) β€” "no INCLUDE_ASM stub in own src => byte-exact" is sound and is already implemented by tools/family_hseq.py:31-35 (docstring: reproduces progress.py 74.8/58.2/30.3 exactly). s2.py reimplemented family_manifest.py:33-37 verbatim vs the per-overlay oracle: TOOL matched_hex = 2,252 (exact match to claim); TRUE = 51,727; GAP = 49,475 (claim said 49,471 β€” noise); tool-minus-true = 0 (strict subset). Manifest rebuild: TOOL 44,087 fams / multi 2,757 / 10.9 MB vs FIXED 22,727 / 1,475 / 3.9 MB β€” reproduces the claim. s4.py: 1,071 fully-matched phantom multi-member families / 6.80 MB (exact) + 254 partially inflated / +0.14 MB (exact); 42 of the 60 PUBLISHED top-60 rows are fully-matched phantoms. s5.py + shell sweep ground-truthed the #1 published row func_80133CD4 (399 ins, GIANT): 0 overlays still stub it, 134 have a C body (banked by commit:0581), yet it is still rep_addr of row #1 in .run/family_manifest.json with bw=213864 β€” a 100%-banked function ranked as the top target. s3.py reconstructed the corpus at commit commit:0506 via git ls-tree/git show: tool saw 2,211 vs true 27,305 β€” the committed doc was ALREADY 12x wrong when written, not merely rotted. Evidence file:lines exist exactly as cited (family_manifest.py:33-36). +- **skeptic:** RAN (all read-only, scratch in .run/audit/skeptic/): s1.py validated the invariant over all 134 overlays (341,671 sig fns; 58,617 stubs; ZERO stubs outside sig; every overlay has .c) β€” "no INCLUDE_ASM stub in own src => byte-exact" is sound and is already implemented by tools/family_hseq.py:31-35 (docstring: reproduces progress.py 74.8/58.2/30.3 exactly). s2.py reimplemented family_manifest.py:33-37 verbatim vs the per-overlay oracle: TOOL matched_hex = 2,252 (exact match to claim); TRUE = 51,727; GAP = 49,475 (claim said 49,471 β€” noise); tool-minus-true = 0 (strict subset). Manifest rebuild: TOOL 44,087 fams / multi 2,757 / 10.9 MB vs FIXED 22,727 / 1,475 / 3.9 MB β€” reproduces the claim. s4.py: 1,071 fully-matched phantom multi-member families / 6.80 MB (exact) + 254 partially inflated / +0.14 MB (exact); 42 of the 60 PUBLISHED top-60 rows are fully-matched phantoms. s5.py + shell sweep ground-truthed the #1 published row func_80133CD4 (399 ins, GIANT): 0 overlays still stub it, 134 have a C body (banked by cc7ee23d0), yet it is still rep_addr of row #1 in .run/family_manifest.json with bw=213864 β€” a 100%-banked function ranked as the top target. s3.py reconstructed the corpus at commit b09916943 via git ls-tree/git show: tool saw 2,211 vs true 27,305 β€” the committed doc was ALREADY 12x wrong when written, not merely rotted. Evidence file:lines exist exactly as cited (family_manifest.py:33-36). TRIED TO REFUTE, FAILED: the gap is NOT justified exclusions. Every one of the 49,475 classes is a function whose C body exists in some overlay's own src today β€” exactly the condition matched_hex is defined to express. No overlay lacks src, no stub falls outside sig, no not-yet-split escape hatch. Real skips = 49,475, zero justified. @@ -1300,13 +1300,13 @@ SURVIVES: the fabricated fallback string is a genuine instrument defect β€” `els FLEET fn-count byte-ident: {BYTE:6d} / {MATCH} = {..:.2f}% (REAL+LINKED+empties; FUNCTION-count, x134-inflated ...) The literal 'byte-identical' does not occur β€” it is 'byte-ident:'. Verified directly: re.search(r"byte-identical\s+:\s+\d+\s*/\s*\d+\s*=\s*([\d.]+)%", "FLEET fn-count byte-ident: 12345 / 67890 = 64.86%") -> None -The label was renamed in commit commit:0512 (2026-07-11, 'progress.py --weighted β€” byte/instruction-weighted metrics'). gate_stage's regex was never updated. It is wrapped in `except Exception: pass` and a None-guard, so it fails in total silence. -The last gate_stage-authored commit is commit:0438 (2026-07-02) β€” BEFORE the rename β€” which is why `git log --grep 'fleet None%'` returns 0 today. The gun is loaded, not yet fired. +The label was renamed in commit c0379f073 (2026-07-11, 'progress.py --weighted β€” byte/instruction-weighted metrics'). gate_stage's regex was never updated. It is wrapped in `except Exception: pass` and a None-guard, so it fails in total silence. +The last gate_stage-authored commit is 9c8bb5183 (2026-07-02) β€” BEFORE the rename β€” which is why `git log --grep 'fleet None%'` returns 0 today. The gun is loaded, not yet fired. - **blast radius:** CORRUPT METRICS, LATENT-ARMED (fires on the very next gate run, and every one after). `fleet_pct` is now permanently None: (a) every future gate commit message reads 'feat(...): worker gate β€” +N fns xM propagated (fleet None%)'; (b) the JSON summary returned to orchestrator.py / grinder.py / bulk_harvest.py carries "fleet_pct": null β€” that is the number those loops use to judge whether a wave moved the needle. No lost matches, no wrong banks; a blind instrument on the steering wheel. - **R33:** YES β€” DELETE THE SCANNER OUTRIGHT. This is the purest R33 case in the group: gate_stage shells out to progress.py and regex-scrapes a human-formatted report line to recover a float that progress.weighted_metrics() returns as a native Python float, derived from the sig/SHA1 invariant. Import the function. The regex should not exist, and its non-existence would have made this bug impossible. - **fix:** Stop parsing stdout. `sys.path.insert(0,'tools'); from progress import weighted_metrics; wm = weighted_metrics(); fp = wm and wm['fleet_pct']` β€” an in-process call to the function that already computes it from the sig invariant, with no text in between. - **assertion (R32):** R32: if progress.py exits 0 and fleet_pct is still None, that is a hard error, not a shrug β€” `assert fp is not None, 'progress.py output shape changed'`. Any tool that scrapes another tool's stdout must fail loudly when the scrape returns nothing. -- **skeptic:** RAN: (1) `.venv/bin/python tools/progress.py --fleet`, captured real stdout, applied the EXACT regex from gate_stage.py:243 -> match=None, fp=None. Real line is `FLEET fn-count byte-ident: 283995 / 343774 = 82.61%`; literal 'byte-identical' absent. Mechanism REPRODUCES. (2) `git log -S` confirms label was live until commit:0512 (2026-07-11) β€” genuine regression, regex was correct before. (3) File:line citations both exist and are accurate. +- **skeptic:** RAN: (1) `.venv/bin/python tools/progress.py --fleet`, captured real stdout, applied the EXACT regex from gate_stage.py:243 -> match=None, fp=None. Real line is `FLEET fn-count byte-ident: 283995 / 343774 = 82.61%`; literal 'byte-identical' absent. Mechanism REPRODUCES. (2) `git log -S` confirms label was live until c0379f073 (2026-07-11) β€” genuine regression, regex was correct before. (3) File:line citations both exist and are accurate. COUNT IS WRONG β€” CLAIM UNDERCOUNTS 4x. `grep -rn` for the regex found FOUR identical stale copies, not one: gate_stage.py:243, bulk_harvest.py:182, auto_driver.py:107, lora_grind.py:242 β€” all scraping the same progress.py --fleet stdout, all now parsing to None. candidates=4, parsed=0, real_skips=4. @@ -1454,13 +1454,13 @@ SAME ROOT as the jtbl_family_bank finding: a func_-only name filter. Confirms th - **R33:** DELETE the scanner. Yes β€” this is a textbook case of re-deriving something the proven invariant already answers exactly. 'Is this function still work?' is answered, with zero ambiguity and zero parsing risk, by 'is it still wrapped in INCLUDE_ASM'. exemplar_miner instead asks a proxy question of config/dedup.us.yaml (a share registry) and gets a 60%-wrong answer. The registered_addrs() call should be removed from exemplar_miner entirely, not patched. - **fix:** Delete the `if ai in reg: continue` line and the dedup_propagate.registered_addrs() dependency. Replace with `if ai not in live_stubs(source): continue` using the shared invariant-derived helper. Additionally, assert the census is not stale: `assert set(live) <= set(census_addrs)`, and warn loudly on `census_addrs - live` (the phantom count) so a stale wall_taxonomy.json is visible rather than silently inflating the pools. - **assertion (R32):** `live = live_stub_addrs(source); phantom = {x['addr'] for x in rows} - live; assert not phantom, f'{len(phantom)} routed "residuals" are no longer INCLUDE_ASM stubs β€” census .run/wall_taxonomy.json is stale (snapshot {snap})'` β€” plus the reciprocal `assert live <= census_addrs` so a NEW stub missing from the census fails the run instead of vanishing from the curriculum. -- **skeptic:** RAN: .run/audit/skeptic/chk2.py+chk3.py (venv python) re-deriving from the real corpus β€” loaded .run/wall_taxonomy.json (915 rows), dedup_propagate.registered_addrs() (1807), and globbed live INCLUDE_ASM(func_XXXXXXXX) across ALL 14 src/ov_SC01_077/*.c (claimant's dp.overlay_files() misses the _jr_* splits). Also: git rev-list -1 --before=2026-06-20 -> commit:0139, counted INCLUDE_ASM at that commit; read build_fuel_manifest.py:95-160, wall_taxonomy.py:88-91, dedup_propagate.py:64-78. +- **skeptic:** RAN: .run/audit/skeptic/chk2.py+chk3.py (venv python) re-deriving from the real corpus β€” loaded .run/wall_taxonomy.json (915 rows), dedup_propagate.registered_addrs() (1807), and globbed live INCLUDE_ASM(func_XXXXXXXX) across ALL 14 src/ov_SC01_077/*.c (claimant's dp.overlay_files() misses the _jr_* splits). Also: git rev-list -1 --before=2026-06-20 -> f0dd9351e, counted INCLUDE_ASM at that commit; read build_fuel_manifest.py:95-160, wall_taxonomy.py:88-91, dedup_propagate.py:64-78. COUNTS mostly reproduce: census 915, reg∩census 260, emit-today 655, live stubs 263. But real=260/phantom=395, NOT 263/392: live∩reg = {801803B0,80182988,80183C50} β€” 3 LIVE stubs the filter wrongly drops (vaddr registered via another overlay's group; overlays share vaddr space). Those 3 are the only genuine silent skips (claim itself said real_skips=0, i.e. self-refuting as a silent-skip finding). WHY NOT HIGH: -(1) Root cause misattributed. wall_taxonomy.py:88 builds the census from LIVE INCLUDE_ASM. At commit:0139 (Jun 19 = the census's own snapshot date) there were 900 live stubs β€” the census was ACCURATE when generated. The 395 phantoms are functions matched Jun19β†’Jul14. Regenerating the census kills them regardless of the oracle. Worse: R33's prescribed 'delete registered_addrs()' against the current stale census raises emission 655β†’915. -(2) The '2.5x inflated doc' is artifact rot, not live tool output. docs/exemplar_curriculum.md: mtime Jun 20 23:54, single commit commit:0167, never regenerated; its 835 was ~right vs the 900 stubs live that day, and line 2 prints 'snapshot 2026-06-19'. +(1) Root cause misattributed. wall_taxonomy.py:88 builds the census from LIVE INCLUDE_ASM. At f0dd9351e (Jun 19 = the census's own snapshot date) there were 900 live stubs β€” the census was ACCURATE when generated. The 395 phantoms are functions matched Jun19β†’Jul14. Regenerating the census kills them regardless of the oracle. Worse: R33's prescribed 'delete registered_addrs()' against the current stale census raises emission 655β†’915. +(2) The '2.5x inflated doc' is artifact rot, not live tool output. docs/exemplar_curriculum.md: mtime Jun 20 23:54, single commit ba6cb87d3, never regenerated; its 835 was ~right vs the 900 stubs live that day, and line 2 prints 'snapshot 2026-06-19'. (3) Cited fuel-list evidence is fabricated/miscounted: the '## WAVE pool β€” reach-134' table has 60 rows (--top 60), not 120, and 28 of them are phantom, not 23 of 120. (4) Blast radius inert: .run/exemplar_routing.json is gitignored scratch; its only consumer build_fuel_manifest.py:132-152 iterates live_stubs(src) and .get()s routing by addr with lever default 'WAVE' β€” all 572 phantom entries never render, and all 263 live stubs do get an entry. Nothing is currently steered wrong. (5) dedup_propagate.py:77-78 bare 'except Exception: return set()' exists as cited but is silent-OPEN: it can only add phantoms, never lose work. Latent, LOW. @@ -1560,7 +1560,7 @@ Second hole, same file: the func_-only stub_re cannot see curated names. `listCd - **skeptic:** RAN: (1) grep -rhoE INCLUDE_ASM regex over src/ov_*/*.c => 58,617 fleet stubs (claim said 58,717) and exactly 1,975 in /.c β€” parsed count CONFIRMED. ov_SC01_077: cur_stubs=13 vs 263 across all 14 .c β€” CONFIRMED. Sub-claims confirmed too: listCdBuffer is an INCLUDE_ASM stub in exactly 100 src files; DATA decls 174 (.c) vs 1,021 (all *.c). The code shape is real. BUT the cited file:lines are all wrong β€” stub_re/cur_stubs are at :83-84 not :86-87, the `continue` is at :88 not :92, c_path at :64 not :60, DATA_DECL_RE at :30 not :36. WHAT KILLS THE SEVERITY: -(a) `git ls-tree --name-only commit:0110 src/ov_SC01_077/` β€” the commit that CREATED AND RAN canon_draft_decls (2026-06-17) β€” returns exactly ONE file: ov_SC01_077.c. The hardcoded src//.c path was CORRECT AND COMPLETE at authorship. Per-file `git log --diff-filter=A`: _a.c/_o0.c arrived 2026-06-20 (Phase 19), _after.c 2026-07-07, all ten _jr_*.c on 2026-07-13/14 β€” days-to-weeks AFTER. +(a) `git ls-tree --name-only 1d94f9ec9 src/ov_SC01_077/` β€” the commit that CREATED AND RAN canon_draft_decls (2026-06-17) β€” returns exactly ONE file: ov_SC01_077.c. The hardcoded src//.c path was CORRECT AND COMPLETE at authorship. Per-file `git log --diff-filter=A`: _a.c/_o0.c arrived 2026-06-20 (Phase 19), _after.c 2026-07-07, all ten _jr_*.c on 2026-07-13/14 β€” days-to-weeks AFTER. (b) Its real runs achieved ~100% coverage, not 0.6%. On-disk in/out pairs (tool mtime 00:15:13, output mtime 00:15:26 β€” 13s apart): drafts-T6-fail 145 in -> drafts-T6-recanon 144 out; drafts-recov 505 in -> drafts-recov-canon 505 out. Phase15.md confirms these are the only real runs (+19 recovered; 47 verified from the 505). (c) ZERO CALLERS. No Makefile/script/.py/.js invokes it; every grep hit is a docstring or doc mention. Superseded TWICE: sig_unify.py (2026-06-25) says it "extends canon_draft_decls" and ADDED `--src-file` (:160-161) β€” the project already fixed the split-file problem in the successor β€” and canon_sig_reconcile.py (2026-07-10) added `--tu`, which preprocesses the real target TU for file-scope ambient. That IS the "derive from what the TU compiles" remedy the claim proposes as NEW work; it already exists and is live. Live chain is canon_resident_calls -> cast_call_sites -> sig_unify. (d) The "10,669 silently dropped / 0.6% coverage" is SYNTHETIC: it runs today's filter over ~168 historical .run/drafts* dirs the tool was never pointed at, including OUTPUT dirs (.run/drafts-wave has 24 files but drafts-wave-cn has 610 and contains `_b.c`; 128 drafts corpus-wide aren't even func_XXXX.c-named and can never match any stub set), plus thousands of NOW-BANKED functions the filter is CORRECTLY supposed to skip (`# already banked elsewhere; skip`). My recount over all 10,731 drafts: shipped keeps 62, corrected all-.c filter keeps 2,523 β€” delta 2,461, not 10,669. The claim inflates the drop ~4.3x by counting justified exclusions as bugs. diff --git a/docs/verification.md b/docs/verification.md index 5bd452cca0..9048b20fc4 100644 --- a/docs/verification.md +++ b/docs/verification.md @@ -63,11 +63,11 @@ The project's own full run is recorded, log by log, under `.run/P33/verify/` (tr `EXIT=` and a timestamp, plus `SUMMARY.md`), produced by `tools/verify_contract.sh` on the committed tree. The table below is copied from that `SUMMARY.md`; regenerate it with the script, never by hand. -- **Tree:** `commit:4028` (2026-09-06) Β· **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 Β· **Run:** 2026-09-07T03:11:58Z +- **Tree:** `3e0ecfacc` (2026-09-06) Β· **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 Β· **Run:** 2026-09-07T03:11:58Z | # | Step | EXIT | wall | contract line | |---|---|---|---|---| -| 00 | `tree` | 0 | 1s | HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer | +| 00 | `tree` | 0 | 1s | HEAD 3e0ecfacc 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer | | 01 | `check-env` | 0 | 0s | check-env: OK β€” Phase-4 toolchain ready. | | 02 | `family-hseq` | 0 | 11s | family_hseq regenerated: 217 binaries scanned, 0 open instances | | 03 | `r22-clean-fleet` | 0 | 157s | check-all: 218 passed, 0 failed of 218 | diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index a5585f838c..0ce26f4bf1 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -4,7 +4,7 @@ > in `phase-ends/DIGEST.md` Β§3). The approved plan is reproduced VERBATIM at the end of this file (Β§"Approved plan") β€” its > `~/.claude/plans/` copy is not part of the repo. Roadmap: `docs/roadmap-to-100.md` v2 Β§3 P33 (all six items, Drew's > "everything as written"); `docs/gen2-roadmap.md` Phase 14's two-repo model is SUPERSEDED by the in-place flip. -> **Baseline HEAD at open: `commit:4011`** (the Phase-32 CLOSE commit; tree clean apart from the R23 `ghidra/` churn). +> **Baseline HEAD at open: `b5b79b3ac`** (the Phase-32 CLOSE commit; tree clean apart from the R23 `ghidra/` churn). ## Milestone (gate 2) 1. `.run/P33/verify/SUMMARY.md`: every step EXIT=0 (218/218 clean fleet; `sdk-dual` both legs; oracles green incl. `0 PAD-TAIL`; @@ -44,7 +44,7 @@ R20's new home = the Ghidra text export (`config/ghidra/*.jsonl`) + `ghidra_rebu one-time snapshot, `CLAUDE.md` gains "never `git clean -x`" (R20 amendment proposed at the PhaseEnd). ## Tasks (strict order; one commit per task after this file is updated; harness task list = the same 41 items, R28) -- [x] **A1** Governance commit (R65–R73 in DIGEST Β§3; this file; the harness list) β€” xHigh β€” `commit:4012` +- [x] **A1** Governance commit (R65–R73 in DIGEST Β§3; this file; the harness list) β€” xHigh β€” `73068f39f` - [x] **A2** Reporting-instrument fixes (pad-tail literal β†’ derived; backlog LINKED-aware prune; `sig-main` build-derived + `progress.py` loud-fail) β€” xHigh, R39 controls β€” see Log 2026-09-06 A2 - [x] **A3** `NO_SDK` knob + `make sdk-dual` (+ tools-health wiring, `[skip]` without SDK dirs) β€” Max β€” see Log 2026-09-06 A3 @@ -64,10 +64,10 @@ one-time snapshot, `CLAUDE.md` gains "never `git clean -x`" (R20 amendment propo decision-log entry) β€” Max (P5c-class) β€” see Log 2026-09-06 B9/C3 - [x] **C1** filter-repo 2.47.0 + `tools/public_rewrite/` β€” design Max, execution xHigh β€” see Log 2026-09-07 C1 - [x] **C2** Negative control + dictionary + sample β€” xHigh β€” see Log 2026-09-07 C2 -- [ ] **C4** Bundle + Drew's archive mirror push + bare clone + the rewrite β€” xHigh -- [ ] **C5** Verification suite on the rewritten clone β€” xHigh -- [ ] **C6** Adoption in `~/bfm-decomp` (no gc yet) β€” xHigh -- [ ] **C7** `docs/commit-map.tsv` + tip resolution commit β€” design Max, run xHigh +- [x] **C4** Bundle + Drew's archive mirror push + bare clone + the rewrite β€” xHigh β€” see Log 2026-09-07 C4 +- [x] **C5** Verification suite on the rewritten clone β€” xHigh β€” see Log 2026-09-07 C5 +- [x] **C6** Adoption in `~/bfm-decomp` (no gc yet) β€” xHigh β€” see Log 2026-09-07 C6 +- [x] **C7** `docs/commit-map.tsv` + tip resolution commit β€” design Max, run xHigh β€” see Log 2026-09-07 C7 - [ ] **C8** R22 clean rebuild on the adopted tree β€” xHigh - [ ] **C9** Final gate + Drew's force-push + local gc β€” xHigh - [ ] **C10** Support purge β†’ probe gate β†’ FLIP (Drew) β€” decision Max @@ -96,7 +96,7 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact (every blob on every ref; the Ghidra DB proven to embed the EXE bytes under the page XOR mask; 28/28 RAM dumps carry the EXE's code; no secrets in tree, history diffs or the 1.27 GB transcript archive); Drew's decisions 1–11 (above); three read-only exploration agents + three design agents; the plan approved via plan mode. No repo change before A1. -- **2026-09-06 (S86) β€” A1** `commit:4012`: R65–R73 appended to DIGEST Β§3; this file opened with the plan verbatim; 41 harness tasks. +- **2026-09-06 (S86) β€” A1** `73068f39f`: R65–R73 appended to DIGEST Β§3; this file opened with the plan verbatim; 41 harness tasks. - **2026-09-06 (S86) β€” A2 (reporting instruments).** `make sig-main` REWRITTEN: `tools/main_seed_ends.py` derives main's game-code function boundaries from the build (link-map `.text` sections Γ— each object's `nm` symbols; tiling asserted) and `sig_image` hashes the original EXE bytes at them β†’ `.run/sig.main.jsonl` (809 fns / 45,150 ins); wired into `tools-health` @@ -143,13 +143,13 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact Slip, recorded: the previous tree also held `extracted/proto/` (the two prototype EXEs from the prototype discs, not the retail one) and I removed the moved-aside copy in the same command as the diff β€” regenerated from `disks/` with `tools/bfm_extract/extract_proto_exe.py` (sep8 413,696 B sha1 `43006a31…`, aug31 415,744 B sha1 `6150b0f8…`). Commit - `commit:4016`. + `026571291`. - **2026-09-06 (S86) β€” B2 (portable includes).** `tools/audit_text_sources.py` gained the portable-include class (absolute / angle-bracket / unresolvable / outside-repo `#include`); positive control BEFORE the fix: 34 offenders in 19 files, all ABSOLUTE (4,299 sources scanned); the sed β†’ `../shared/engine_core.h` Γ—30 + `../shared/engine_types.h` Γ—4; `grep -rn /home/musashi src include` β†’ 0; negative control β†’ OK. Re-gate of the 15 binaries (derived from the diff, 5 in parallel): 15/15 `[ OK ]` BYTE-IDENTICAL in 29 s wall (`.run/P33/b2_gate/.log`). SETUP: P33 B2 section (R21). Commit - `commit:4017`. + `9be6364a5`. - **2026-09-06 (S86) β€” B3 (bootstrap + the fresh-clone proof).** `tools/bootstrap.sh` (apt presence β†’ printed install line; venv from `requirements-python.txt`; submodules; cc1 tarballs sha256-checked + extracted into their own dirs; `make check-env`), `make bootstrap`; check-env gained 4b (the other three submodules, WARN), 4c (the four tracked preset headers, @@ -158,7 +158,7 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact `tools/bootstrap.sh` created its own `.venv`, extracted both cc1s, fetched the submodules, `check-env: OK` β†’ `disks` symlinked β†’ `disc-extract: OK` β†’ `extract-all: 217 extracted, 0 failed of 217` β†’ **`check-all: 218 passed, 0 failed of 218`**, EXIT=0, **4 m 18 s wall** (user 45 m 48 s) β€” with NO SDK objects in the clone (`.run/obj40` absent), i.e. every binary built the way a - public user builds it. Clone deleted afterwards (3.1 GB). SETUP: P33 B3 section (R21). Commit `commit:4018`. + public user builds it. Clone deleted afterwards (3.1 GB). SETUP: P33 B3 section (R21). Commit `89e087f52`. - **2026-09-06 (S86) β€” B4 (the optional SDK, user-supplied and verified).** `git mv tools/psyq/CHECKSUMS.sha256 tools/psyq_CHECKSUMS.sha256` (done here rather than in C3 so the script's path is final) + rows for the parser tarball (`353495f1…`, decomp.me's release), the parser binary (`4fba623a…`, identical to our Phase-7 copy) and the 20 PsyQ 4.0 @@ -171,7 +171,7 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact `tools/psyq/lib40/` moved aside, `fetch_psyq.sh --disc ""` extracted the 20 LIBs from the disc (`diff -rq` against the tracked copies: identical), verified them, rebuilt `.run/obj40/*`, `.run/obj42/*`, `tools/psyq/lib40_elf/`, and `sdk-dual: OK` β€” **36.9 s wall**, EXIT=0 (`.run/P33/b4_fetch.log`). SETUP: P33 B4 (R21). Commit - `commit:4019`. + `707ec491e`. - **2026-09-06 (S86) β€” B5 IN PROGRESS (checkpointed at 87% context; WIP commit).** Done and proven: MCP stopped cleanly; `tools/ghidra_scripts/ExportAnnotations.java` + `tools/ghidra_export_annotations.sh` β€” byte-stable JSONL export of a program's container facts, LOCAL types, every function signature (params/locals/storage/sources), defined data, the 5 @@ -219,7 +219,7 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact current digest: 363,214 / 13,492,113 / 5,820,205 / main 45,150), what is NOT our C (1,256 LINKED + 5 verbatim), the last-recorded-run table (placeholder until A5 fills it from `SUMMARY.md`), what CI proves without the disc, the regenerable RE artifacts. `tools/verify_contract.sh` is A5's (next). Commit: see below. -- **2026-09-06 (S87) β€” A5 THE RECORDED RUN: PASS.** `tools/verify_contract.sh` on HEAD `commit:4028` β†’ `.run/P33/verify/` +- **2026-09-06 (S87) β€” A5 THE RECORDED RUN: PASS.** `tools/verify_contract.sh` on HEAD `3e0ecfacc` β†’ `.run/P33/verify/` (tracked): 00 tree Β· 01 `check-env: OK` Β· 02 family_hseq 217 scanned / 0 open Β· **03 `check-all: 218 passed, 0 failed of 218` (157 s, clean fleet)** Β· 04 `sdk-dual: OK β€” main 143dbb89… WITH and WITHOUT` (28 s) Β· 05 `tools-health: OK` (356 s; `sig-main-oracle: 0 PHANTOM, 0 TRUNCATED, 0 PAD-TAIL`; zero `[warn]`) Β· 06 audit-frontier (1,258 stubs = all in main's @@ -274,7 +274,7 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact Β§3/Β§5/Β§6/Β§10 updated with the measured facts and the strip-by-id lesson. Trial scratch deleted (C4 re-clones fresh). For Drew's decision (not in the plan's scope, reported by absent_scan as INFO): 370 bare session UUIDs across history / 68 at HEAD in checkpoint prose; no `claude.ai` URL anywhere. Commit: see below. -- **2026-09-07 (S87) β€” C2 the recorded controls on the final pre-rewrite tree (HEAD `commit:4031`, the C1 commit).** +- **2026-09-07 (S87) β€” C2 the recorded controls on the final pre-rewrite tree (HEAD `fca383904`, the C1 commit).** `hash_dict.py --write-mailmap`: 4,421 commit objects (4,031 main, 339 twins, 51 orphans), 150,314 prefixes, **0 ambiguous, 0 collisions** with 1,480 cited content hashes, 2 identities β†’ noreply. `scrub.py --test` 12/12; `scrub.py --sample`: 397 MB in 7.9 s, 1,239 replacements in 98 files, **732 distinct tokens == the 732 git's own lookup resolves** (only-git 0 / @@ -286,21 +286,57 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact drop rows from the public map; trial #2 matched by construction). **Sequencing law for C4:** the dictionary + ids are rebuilt from the FINAL tree right before the clone (4 s + 3 min) β€” any commit after that invalidates them (the guard enforces it). Commit: see below. +- **2026-09-07 (S87) β€” C4 the backups and THE REWRITE.** C4a: `.run/public_rewrite/pre-rewrite.bundle` (556 MB, `--all + --reflog`, `git bundle verify`: complete history, 6 refs) made after the C2 commit. C4b (Drew, R6): WSL had no GitHub + credentials (password auth refused) β†’ `gh auth login -h github.com -p https -w` (device flow, browser opened by hand β€” the + "failed opening a web browser" line is cosmetic, Ctrl-C cancels the login) + `gh auth setup-git`; `Druthulu/BFM-decomp-archive` + created (Private; it carried GitHub's own `.gitattributes` initial commit β€” force-updated, harmless) and `git push --mirror + archive` (176,533 objects, 530 MiB; GH001 large-file warnings for the 3 archive parts, accepted). Verified via `gh api`: + **private, not a fork, no parent**; `git ls-remote archive` == local refs except **`refs/stash`, which `--mirror` does not + push** (the bundle holds it; Drew may push it as a branch). C4c: FINAL dictionary on the committed tip (4,422 commit objects, + 4,032 main, 0 ambiguous, 0 collisions) + FINAL ids (`gate_scan --expect-fail` PASS; 268 ids, the shared empty blob + excluded) β†’ bare `--no-local` clone (1 pack, 0 loose) β†’ tag deleted (its tip recorded in scratch) β†’ **`run_filter.py`: + 311 s, commit-map 4,032 rows, exactly 1 pruned ("session archive update", ordinal 1712), main 4,032 β†’ 4,031, new tip + `494fbd3c8`, 1 pack / 0 loose / 500 MB, scrub stats: 72,568 hash replacements, 85 address replacements, 60 trailers dropped, + 192 binary blobs untouched.** Logs: `.run/public_rewrite/c4c5.log`, `filter.log` (scratch). +- **2026-09-07 (S87) β€” C5 the verification suite on the rewritten clone β€” ALL PASS.** `verify_rewrite.py`: **4,031 pairs / 0 + failures** (identities post-mailmap, both timestamps, message == scrub(old), parents with the pruned commit spliced, + 241,734 changed blobs re-derived as git-hash(scrub(old)), 989,166 path removals justified, no purge path survives in any new + tree, pruned set == the derived purge-only set, the pre-existing empty commit survived) in 433 s. `build_commit_map` (scratch + copy): 4,032 rows / 1 pruned / 0 old hashes / 1 unchanged (the noreply-authored "Initial commit", ordinal 1, byte-identical). + `absent_scan.py` on the clone: **0 offenders** across 112,138 blobs (16.2 GB text) + 4,031 commits + refs (INFO 370 bare + UUIDs) in 360 s. `gate_scan.py --all --repo `: **PASS, 0 offenders** over 16.22 GB in 56 s. +- **2026-09-07 (S87) β€” C6 adoption in `~/bfm-decomp` (NO gc).** `git fetch +refs/heads/main:refs/heads/main-rewritten`; + `git diff --name-only main main-rewritten` = **100 files, all text (0 binary), 0 purge paths, 0 added/deleted** (the + token-scrubbed docs/logs/tool comments at the tip); `git reset --hard main-rewritten` β†’ HEAD `494fbd3c8`; tracked 6,578 == + the clone's tree; `main-rewritten`, `refs/original/refs/heads/main`, the tag and the 1 stash dropped (bundle + archive hold + them); refs now: `main`, `remotes/origin/{HEAD,main}` (the P32 close, pinning the old lineage until Drew's push), + `remotes/archive/main` (the pre-rewrite tip); `rev-list --all --count` 8,143 (both lineages); the purged paths still on disk. +- **2026-09-07 (S87) β€” C7 the commit map + the tip resolution.** Repo-local identity β†’ `Drew T + <50529377+Druthulu@users.noreply.github.com>`. `build_commit_map.py` β†’ **`docs/commit-map.tsv` (4,032 rows, 1 pruned row of + zeros, 0 old hashes asserted)** + private `old-to-new.tsv` + `unchanged_commits.txt` (1). `resolve_tokens.py`: **1,238 tokens + β†’ shortest-unique β‰₯9-char new hashes in 98 files** (phase-ends 24, logs 20, docs 23, tools 14 β€” comments/docstrings only, + checked; 2 `src/` files β€” C comments only, checked; `.run/P33/verify` 3, `.run` notes); `--check` 0 remaining; **residue 8 + in 4 tokens: `commit:1712` Γ—4 (the pruned commit), `commit:orphan-24` Γ—2, `commit:orphan-26`, `commit:orphan-35` (cited + commits that exist in no lineage β€” one is the dropped TEMP commit in tools/verify_worktree.py)**. Defect caught and fixed + before the commit: the resolver had rewritten `scrub.py`'s self-test fixtures (`commit:0012` etc. are the grammar's own + examples) β€” restored from HEAD, and `tools/public_rewrite/` is now skipped by rule. `absent_scan --tree HEAD` PASS, + `audit_public` OK. The tip commit (this one) cites NEW hashes only. Commit: see below. -## πŸ›‘ SESSION CHECKPOINT β€” A1–A5 βœ“, B1–B9/C3 βœ“, C1–C2 βœ“; NEXT = C4 β€” WAITING ON DREW (the archive repo + mirror push, C4b) (2026-09-07 ~05:00 UTC, written by session fa49faf3 "S87" after the C2 commit; SUPERSEDES the earlier blocks) +## πŸ›‘ SESSION CHECKPOINT β€” A1–A5 βœ“, B1–B9/C3 βœ“, C1–C7 βœ“ β€” THE HISTORY IS REWRITTEN AND ADOPTED (tip 494fbd3c8 + this tip commit); NEXT = C8 (2026-09-07 ~05:45 UTC, written by session fa49faf3 "S87" after the C7 tip commit; SUPERSEDES the earlier blocks) ### 0. How to use this block You are a FRESH SESSION that has read `PROJECT_CONTEXT.md`, `phase-ends/DIGEST.md`, `PhaseEnd_Phase30/31/32.md` and this file, and nothing else (R64). Replay this block verbatim, state phase / done / NEXT / effort, list the rules from the digest -(R1–R73), then WAIT for Drew. **NEXT = C4** (xHigh): C4a the bundle is DONE by S87 if `.run/public_rewrite/pre-rewrite.bundle` exists and verifies (`git bundle verify`); **C4b is Drew's** (see Β§3 step 1 β€” do NOT clone or filter before Drew confirms the mirror push, and re-check `git ls-remote archive` yourself); then C4c. **The purge set has left the index: NEVER `git clean -x` (CLAUDE.md fail-safe).** The harness task list must be REBUILT (Drew wants to monitor it β€” -one TaskCreate per plan item A1…G2, 40 items, mark A1–A5 + B1–B9/C3 + C1–C2 completed; R28). The SessionStart hook restarts the headless +(R1–R73), then WAIT for Drew. **NEXT = C8** (xHigh): `tools/verify_contract.sh` on the ADOPTED tree (β‰ˆ14 min) β†’ commit the refreshed `.run/P33/verify/` evidence β†’ then **C9** (`gate_scan.py --refs main --worktree` PASS β†’ **Drew**: `git push --force origin main` + delete the remote tag if present + `git fetch --prune origin` β†’ Claude: reflog expire + the aggressive repack + `absent_scan`/`gate_scan --all` + size). **Every commit from here cites NEW hashes only (the fixed-point rule); `docs/commit-map.tsv` maps ordinals β†’ new hashes; `.run/public_rewrite/` (scratch: dict, mailmap, old-to-new, bundle 556 MB, the clone) holds the old ones β€” never commit it, keep it until the probe passes.** +one TaskCreate per plan item A1…G2, 40 items, mark A1–A5 + B1–B9/C3 + C1–C7 completed; R28). The SessionStart hook restarts the headless MCP server when `ghidra/bfm.rep` exists (it did not stay up in S87 β€” `ss -tln` showed nothing on :8080; harmless): B6/B7/B8 need no Ghidra; run `tools/ghidra_mcp_stop.sh` before any headless step (R23). ### 1. Where we are **Phase 33 β€” 100% verification + the public flip + Gen2 exit.** Gate 1 approved 2026-09-06 (plan mode, Max). R65–R73 ratified. -**Done: A1 (`commit:4012`), A2 (`commit:4013`), A3 (`commit:4014`), A4 (`commit:4015`), B1 (`commit:4016`), B2 (`commit:4017`), B3 -(`commit:4018`), B4 (`commit:4019`), B5 (`commit:4022`), B6 (`commit:4023`), B7 (`commit:4024`), B8 (`commit:4025`), A5 (`commit:4026` prep + `commit:4027`/`commit:4028` fixes + `commit:4029`), B9/C3 (`commit:4030` β€” 251 index entries removed), C1 (`commit:4031`), C2 (the S87 `chore(phase-33): C2 …` commit).** The approved plan is +**Done: A1 (`73068f39f`), A2 (`b23300fc2`), A3 (`4bb29544a`), A4 (`62854caca`), B1 (`026571291`), B2 (`9be6364a5`), B3 +(`89e087f52`), B4 (`707ec491e`), B5 (`936d7d741`), B6 (`d37953732`), B7 (`6732771fe`), B8 (`b2fb392ad`), A5 (`1e3ce6c1c` prep + `8845fdd99`/`3e0ecfacc` fixes + `19832e169`), B9/C3 (`2b45081b5` β€” 251 index entries removed), C1 (`fca383904`), C2 (the S87 `chore(phase-33): C2 …` commit).** The approved plan is VERBATIM at the end of this file β€” Blocks A–G give every task's files, commands and verification; "Execution order and why" is the sequence. Effort: Drew ran S87 at **medium** by explicit choice (the plan says Max for B5); the plan's annotations still stand for the tasks ahead β€” restate them, Drew decides (R7/R27). @@ -309,7 +345,7 @@ still stand for the tasks ahead β€” restate them, Drew decides (R7/R27). - **History / purge set / citations / identities / build facts / external facts:** unchanged from the S86 block β€” see the Log entries and the Approved plan (C1–C7 carry the numbers: main 4,011 commits, `--all` 4,282, 711 resolving hex citations, the purge paths and the two ghidra-ext zip sha256s `983e2add…` / `dc57cf1a…`, `brave.exe` `fdc9f486…`, the - Gmail identities Γ—3,816/Γ—162, the empty commit `commit:2782`, the purge-only commit `commit:1712`). + Gmail identities Γ—3,816/Γ—162, the empty commit `133c1d45a`, the purge-only commit `commit:1712`). - **Ghidra (B5, PROVEN S87):** the RE work is text now β€” `config/ghidra/{SLUS_007.26,resident,ov_SC01_077,ov_SC06_018, sep8_SLUS_007.26,aug31_USA_DEMO.EXE}.jsonl` (145 rows; only main carries hand-authored rows: 38) + `ROSTER.md` (`tools/ghidra_roster.py`, `--check` in tools-health). `tools/ghidra_rebuild.sh --proof` rebuilds from disc + @@ -317,7 +353,7 @@ still stand for the tasks ahead β€” restate them, Drew decides (R7/R27). in the psx_ldr extension, the built ELF, the extracted payload β€” protos need `extracted/proto/*` from `tools/bfm_extract/extract_proto_exe.py`). The delta filter's three drift classes are documented in SETUP (P33 B5). The live `ghidra/` project is untouched and still on disk (leaves git at B9/C3; the archive repo keeps its history). -- **Verification state:** **A5 PASS on `commit:4028`** (`.run/P33/verify/SUMMARY.md`: 218/218 clean fleet, sdk-dual both legs, +- **Verification state:** **A5 PASS on `3e0ecfacc`** (`.run/P33/verify/SUMMARY.md`: 218/218 clean fleet, sdk-dual both legs, tools-health OK with 0 PHANTOM/TRUNCATED/PAD-TAIL and zero warns, UNCLAIMED 0, report 100.00/100.0/100.0, stubs 0, backlog 0). C8 re-runs it on the adopted (rewritten) tree; a `--cached` removal (B9/C3) changes no tracked-content bytes. - **Environment:** the purge set is IGNORED-BUT-PRESENT on disk since C3 β€” never `git clean -x`; `gh` not authenticated; `git-filter-repo` 2.47.0 in the venv; disk β‰ˆ 13 GB free of 75 (`.run/` 38 GB β€” @@ -326,25 +362,25 @@ still stand for the tasks ahead β€” restate them, Drew decides (R7/R27). ### 3. NEXT β€” in order 0. **Preflight:** `git status --short | grep -v ghidra/` (empty) Β· `git log -1 --format='%h %s'` Β· `df -h ~`. -1. **C4b β€” DREW (R6), then C4c β€” Claude.** Drew: on GitHub create **`Druthulu/BFM-decomp-archive`**, Private, EMPTY (no README / - .gitignore / license; NOT an import, NOT a fork β€” those share GitHub's object store with the public repo); then in the WSL - clone: `git remote add archive https://github.com/Druthulu/BFM-decomp-archive.git && git push --mirror archive`. Claude - then checks `git for-each-ref --format='%(objectname) %(refname)' | sort` == `git ls-remote archive | sort` (every ref - incl. the tag and refs/stash; same hashes). ONLY THEN C4c: (i) `rm -rf .run/public_rewrite/repo.git && git clone --no-local - --bare ~/bfm-decomp .run/public_rewrite/repo.git && git -C .run/public_rewrite/repo.git tag -d S76-pre-scrub-backup && - git rev-parse S76-pre-scrub-backup > .run/public_rewrite/old_tag_tip.txt`; (ii) `hash_dict.py --write-mailmap` + `gate_scan.py - --all --expect-fail tools/public_rewrite/expected_offenders.txt` (the FINAL dictionary + ids β€” no commit may follow; - `run_filter` refuses a stale dictionary); (iii) `run_filter.py` (β‰ˆ5 min; expect "1 -> zeros = pruned", main N β†’ Nβˆ’1, - 1 pack, 0 loose). If the bundle from C4a predates any new commit, redo `git bundle create … --all --reflog` first. -2. The trial chain `.run/public_rewrite/trial2.sh` (scratch) is the template for C4c–C7: gate β†’ clone β†’ filter β†’ verify β†’ - map β†’ absent β†’ gate β†’ resolve β†’ absent-tree β†’ repack. -3. **C5** `verify_rewrite.py` (β‰ˆ7 min, 0 failures) + `absent_scan.py` (β‰ˆ7 min) + `gate_scan.py --all --repo .run/public_rewrite/ - repo.git` (β‰ˆ1 min) β†’ **C6** adopt β†’ **C7** `build_commit_map.py` (writes docs/commit-map.tsv) + `resolve_tokens.py` (noreply - identity first: `git config user.email 50529377+Druthulu@users.noreply.github.com`) + `absent_scan.py --tree HEAD` + the tip - commit β†’ **C8** `tools/verify_contract.sh` β†’ **C9** gate + Drew force-push + aggressive repack (80 MB) β†’ D/E/F during the - Support wait β†’ **C10** flip β†’ **C11**. +1. **C8 β€” R22 on the adopted tree** (xHigh): `nohup tools/verify_contract.sh > .run/P33/verify/driver.log 2>&1 &` (step 00 + requires a clean tracked tree: commit first); expect every step EXIT=0, `check-all: 218 passed, 0 failed of 218`, report + 100.00 / 100.0 / 100.0, stubs 0 β€” a content-preserving rewrite changed no tracked-content byte, this run proves it. Then + paste SUMMARY into `docs/verification.md` Β§2 (replace the previous table β€” the tree hash line now shows the NEW tip), + log, tick, refresh, commit (`verify(phase-33): C8 …`). +2. **C9** (xHigh; Drew pushes): Claude `tools/public_rewrite/gate_scan.py --refs main --worktree` β†’ PASS. **Drew:** `git ls-remote + --tags origin` (is `S76-pre-scrub-backup` on origin?) β†’ `git push --force origin main` β†’ `git push origin + :refs/tags/S76-pre-scrub-backup` if it was there β†’ `git fetch --prune origin` β†’ `git rev-parse origin/main main` equal. + **Claude after Drew's word:** `git reflog expire --expire=now --all && git -c pack.threads=16 repack -adf --window=250 + --depth=50 && git prune --expire=now`; checks: `git rev-list --all --count` == 4,031 + the tip commits (C7, C8, C9-era; + the map predicts: old main 4,032 βˆ’ 1 pruned = 4,031 rewritten + N new), `gate_scan.py --all` PASS, `absent_scan.py --repo + ~/bfm-decomp` PASS (β‰ˆ7 min), `.git` size (trial: 80 MB pack). Log, tick, refresh, commit. +3. **C10** (Drew; decision Max): the Support ticket (text in `docs/public-flip-runbook.md` Β§11), then `tools/public_rewrite/ + probe_github.sh` daily until PASS (needs `gh auth` β€” done in S87; `old-to-new.tsv` + `old_tag_tip.txt` are in scratch); + meanwhile Blocks D, E3–E6, F land on the still-private repo; the flip only after the probe passes. +4. Aftercare reminders (C11): `gh auth logout` in WSL after the flip; `git remote remove archive`; other clones reset, never + pull; `.run/public_rewrite/` deleted after the probe passes (keep the bundle off-machine if wanted). ### 4. Files S87 touched -C1: `tools/public_rewrite/{common,hash_dict,scrub,gate_scan,run_filter,verify_rewrite,build_commit_map,resolve_tokens,absent_scan}.py`, `probe_github.sh`, `expected_offenders.txt` (all new), `requirements-python.txt`, `docs/SETUP.md`, `docs/public-flip-runbook.md`. Scratch `.run/public_rewrite/`: `dict.json`, `mailmap`, `rom_blob_ids.txt`, `old_tag_tip.txt`, `trial*.{sh,log}`, `trial_commit-map.tsv`, `trial_old-to-new.tsv`, `unchanged_commits.txt`, `nonpurge_blob_ids.txt`, `filter.log`. B9/C3: 251 index removals (files on disk), `docs/public-flip-runbook.md` (new), `docs/SETUP.md` Β§2.3/Β§2.4, `docs/verification.md`, `CLAUDE.md`, `docs/decision-log.md`. A5: `tools/verify_contract.sh` (new), `tools/audit_frontier.py` (derived denominator lines), `.gitignore` (the `.run/P33/verify/` allowlist), `.run/P33/verify/*` (tracked evidence), `docs/verification.md` Β§2, regenerated `docs/family-hseq.md` + `docs/progress*.md`/`duplicates*.md`. B8: `docs/verification.md` (new), `docs/SETUP.md` (Β§4.4/Β§4.6/Β§4.8/Β§6.3 pointers, backup posture). B7: `.github/workflows/no-rom.yml`, `tools/audit_public.py`, `tools/compile_only.py`, `tools/public_rewrite/purge_set.txt` (all new), `docs/SETUP.md`. B6: `dumps/CHECKSUMS.sha1` (new), `dumps/INDEX.md`, `docs/memory-map.md`. B5: `tools/ghidra_scripts/ImportAnnotations.java` (3 compile fixes + the `/undefined` resolver), `tools/ghidra_rebuild.sh` +C4–C7: `docs/commit-map.tsv` (new), the 98 token-resolved files (see the C7 entry), `tools/public_rewrite/resolve_tokens.py` (the skip rule), `.git/config` (repo-local noreply identity). Scratch `.run/public_rewrite/`: `pre-rewrite.bundle`, `repo.git` (the rewritten bare clone, keep until C9), `c4c5.{sh,log}`, `old-to-new.tsv`, `unchanged_commits.txt`, `old_tag_tip.txt`, `c5_commit-map.tsv`, `ids_after.txt`, `refs_*.txt`. C1: `tools/public_rewrite/{common,hash_dict,scrub,gate_scan,run_filter,verify_rewrite,build_commit_map,resolve_tokens,absent_scan}.py`, `probe_github.sh`, `expected_offenders.txt` (all new), `requirements-python.txt`, `docs/SETUP.md`, `docs/public-flip-runbook.md`. Scratch `.run/public_rewrite/`: `dict.json`, `mailmap`, `rom_blob_ids.txt`, `old_tag_tip.txt`, `trial*.{sh,log}`, `trial_commit-map.tsv`, `trial_old-to-new.tsv`, `unchanged_commits.txt`, `nonpurge_blob_ids.txt`, `filter.log`. B9/C3: 251 index removals (files on disk), `docs/public-flip-runbook.md` (new), `docs/SETUP.md` Β§2.3/Β§2.4, `docs/verification.md`, `CLAUDE.md`, `docs/decision-log.md`. A5: `tools/verify_contract.sh` (new), `tools/audit_frontier.py` (derived denominator lines), `.gitignore` (the `.run/P33/verify/` allowlist), `.run/P33/verify/*` (tracked evidence), `docs/verification.md` Β§2, regenerated `docs/family-hseq.md` + `docs/progress*.md`/`duplicates*.md`. B8: `docs/verification.md` (new), `docs/SETUP.md` (Β§4.4/Β§4.6/Β§4.8/Β§6.3 pointers, backup posture). B7: `.github/workflows/no-rom.yml`, `tools/audit_public.py`, `tools/compile_only.py`, `tools/public_rewrite/purge_set.txt` (all new), `docs/SETUP.md`. B6: `dumps/CHECKSUMS.sha1` (new), `dumps/INDEX.md`, `docs/memory-map.md`. B5: `tools/ghidra_scripts/ImportAnnotations.java` (3 compile fixes + the `/undefined` resolver), `tools/ghidra_rebuild.sh` (`.proof` markers; dies unless `failed=0`), `tools/ghidra_annotations_delta.py` (the three drift classes), new `tools/ghidra_roster.py`, `tools/ghidra_mcp_start.sh` (silent no-op guard), `.claude/settings.json` (relative hooks), `Makefile` (roster check in tools-health), `docs/SETUP.md` (P33 B5 section, 5 inventory rows, Β§2.8), `config/ghidra/*` @@ -602,7 +638,7 @@ B7 β†’ B8 β†’ **A5 (the recorded run on the final tree)** β†’ B9 β†’ Block C. holds only `refs/heads/main` at the prep commit, one pack, zero loose objects; `run_filter.py` = `git filter-repo --invert-paths --paths-from-file purge_set.txt --strip-blobs-with-ids rom_blob_ids.txt --blob-callback … --message-callback … --prune-empty auto --replace-refs delete-no-add --mailmap …` (never `--prune-empty always`: - main has one pre-existing empty commit `commit:2782` that must survive; `delete-no-add` so no `refs/replace/` + main has one pre-existing empty commit `133c1d45a` that must survive; `delete-no-add` so no `refs/replace/` names are minted). Checks: exit 0; commit-map has 4,012 rows (4,011 + prep) with exactly one mapped to zeros (the pruned archive upload); no `refs/replace`; one pack; size recorded (expect 150–250 MB). - **C5 Verification suite on the rewritten clone** (xHigh; every check an exit code): `verify_rewrite.py` β€” for every diff --git a/phase-ends/PhaseEnd_Phase10.md b/phase-ends/PhaseEnd_Phase10.md index b35999a60f..66f597469d 100644 --- a/phase-ends/PhaseEnd_Phase10.md +++ b/phase-ends/PhaseEnd_Phase10.md @@ -108,19 +108,19 @@ byte-verified EXE↔resident pair (the Phase-9 sigs + this phase's `.run/sig.res ## Commit Message ``` -(Phase 10 landed as 4 per-task checkpoint commits commit:0054..commit:0057 + this PhaseEnd.) +(Phase 10 landed as 4 per-task checkpoint commits 95ade8476..03978ec4b + this PhaseEnd.) feat(phase-10): resident engine blob β€” 2nd binary byte-identical from source (v1.10.0) -- T1 (commit:0054): scaffold the `resident` binary β€” Makefile BINARIES+=resident, resident_* block, +- T1 (95ade8476): scaffold the `resident` binary β€” Makefile BINARIES+=resident, resident_* block, per-binary OBJS prune-list ($(BINARIES)-derived) + UNDEF aliases; config/splat.resident.yaml (flat: no header/gp_value, vram 0x800CEDF8, stacked symbols); proven a no-op on main (143dbb89) -- T2 (commit:0055): split iterated to byte-identical β€” [0x0,rodata,hdr]+[0x4,c]+[0x4610,data]; +- T2 (f06785bcf): split iterated to byte-identical β€” [0x0,rodata,hdr]+[0x4,c]+[0x4610,data]; leading data word emitted rodata (section_order first, no ld_interleave); build_path=build; make build BINARY=resident -> 8e17e02f BYTE-IDENTICAL (365,404 B), -G0, R22 clean-rebuild -- T3 (commit:0056): per-binary reports + diff_settings + per-binary-safe expected (no clobber); +- T3 (cc7395112): per-binary reports + diff_settings + per-binary-safe expected (no clobber); dup_report degrades on absent sig; progress linked_subsegs scoped to main; main reports unchanged -- T4 (commit:0057): tools/ghidra_import_raw.sh (raw-blob importer) + DefineFunctions.java; resident +- T4 (03978ec4b): tools/ghidra_import_raw.sh (raw-blob importer) + DefineFunctions.java; resident imported as the bfm project's 2nd binary @0x800CEDF8 (PsyQ 4.7.0 detected, DsMix=libsnd); 143 boundaries defined + R9-verified; config/symbols.resident.txt seeded; sig-refresh per-binary; Ghidra DB committed (R23) @@ -183,7 +183,7 @@ proven without them. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase10.md` (R19). The Phase-10 work is -committed (4 checkpoints `commit:0054`..`commit:0057` + this PhaseEnd commit, which also lands the SETUP Β§6.7 update); +committed (4 checkpoints `95ade8476`..`03978ec4b` + this PhaseEnd commit, which also lands the SETUP Β§6.7 update); **Drew pushes** (R6). Gen2 continues β€” do **NOT** start Phase 11 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 11 β€” Cross-binary dedup pipeline** (opening with the PsyQ 4.7 `.LIB` fetch). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase11.md b/phase-ends/PhaseEnd_Phase11.md index e22c51250c..1c1176d026 100644 --- a/phase-ends/PhaseEnd_Phase11.md +++ b/phase-ends/PhaseEnd_Phase11.md @@ -95,27 +95,27 @@ and the SQV driver β€” each engine match auto-credited across the 134 overlays v ## Commit Message ``` -(Phase 11 landed as 7 per-task checkpoint commits commit:0060..commit:0066 + this PhaseEnd.) +(Phase 11 landed as 7 per-task checkpoint commits 7cc291145..190afe10f + this PhaseEnd.) feat(phase-11): cross-binary dedup pipeline β€” one match unlocks many (v1.11.0) -- T1 (commit:0060): dup_report --cross -> docs/duplicates.cross.md (multi-binary bucketing, +- T1 (7cc291145): dup_report --cross -> docs/duplicates.cross.md (multi-binary bucketing, cross/intra split, collapsible-bytes ranking); per-binary reports byte-stable -- T2 (commit:0061): config/dedup.us.yaml registry + tools/dedup_integrate.py byte-honesty +- T2 (b06d74c1b): config/dedup.us.yaml registry + tools/dedup_integrate.py byte-honesty validator (fail-closed on sig-hash drift); make report gate. DEVIATION D1: game-code dedup is SOURCE-LEVEL (shared macro body), not a psyq_integrate object-swap (fns are interior to one object/binary); the byte-gate is per-binary make check -- T3 (commit:0062): intra-binary collapse PROOF β€” src/shared/clearTbl40.h CLEAR_TBL40 fills +- T3 (a8ae190fa): intra-binary collapse PROOF β€” src/shared/clearTbl40.h CLEAR_TBL40 fills func_80037004 + func_80037334 from one body; EXE 143dbb89 WITH the share AND WITHOUT (stub fallback); negative gate tests fail-closed; REAL 52->54 -- T4 (commit:0063): tools/sig_image.py Ghidra-free h_exact signer (raw-byte SHA1) + boundary +- T4 (685e35fdc): tools/sig_image.py Ghidra-free h_exact signer (raw-byte SHA1) + boundary detection; validated 100% on the resident contiguous/non-GTE set, 0 UNEXPLAINED -- T5 (commit:0064): sig_image self-consistent h_norm + h_seq (DEVIATION D2 β€” scope-guard, not +- T5 (81e33c7a1): sig_image self-consistent h_norm + h_seq (DEVIATION D2 β€” scope-guard, not a Ghidra-byte-exact normToken replica; byte-gate is the truth) -- T6 (commit:0065): make sig-overlays signs all 134 overlays (linear partition + code-end +- T6 (f672c709c): make sig-overlays signs all 134 overlays (linear partition + code-end detection; BFS dead-ends on function-pointer dispatch). Cross-report spans 136 binaries: 9366 h_exact groups / 28.5 MB collapsible; one 770-ins fn byte-identical in all 134 -- T7 (commit:0066): tools/psyq/CHECKSUMS.sha256 (4.7, R20/R24); cookbook Β§11; SETUP Β§6.8 + +- T7 (190afe10f): tools/psyq/CHECKSUMS.sha256 (4.7, R20/R24); cookbook Β§11; SETUP Β§6.8 + inventory; psyq-worklist + README - MILESTONE: clean dual-binary rebuild green (main 143dbb89, resident 8e17e02f); cross-report spans >=2 binaries; one shared body byte-gated in both states; 0 NON_MATCHING @@ -158,6 +158,6 @@ already had broke, and we now have a ranked to-do list of the highest-value func ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase11.md` (R19). The Phase-11 work is -committed (7 checkpoints `commit:0060`..`commit:0066` + this PhaseEnd commit); **Drew pushes** (R6). Gen2 continues β€” do +committed (7 checkpoints `7cc291145`..`190afe10f` + this PhaseEnd commit); **Drew pushes** (R6). Gen2 continues β€” do **NOT** start Phase 12 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 12 β€” Key engine systems**, opening with the resident's PsyQ 4.7 library linking. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase12.md b/phase-ends/PhaseEnd_Phase12.md index 27e132ea6b..0d7523aebe 100644 --- a/phase-ends/PhaseEnd_Phase12.md +++ b/phase-ends/PhaseEnd_Phase12.md @@ -90,7 +90,7 @@ task** (R26): prompt to enable it. ## Commit Message ``` -(Phase 12 landed as ~17 per-task/per-batch checkpoint commits commit:0068..commit:0082 + this PhaseEnd.) +(Phase 12 landed as ~17 per-task/per-batch checkpoint commits ce7909654..373418dc8 + this PhaseEnd.) feat(phase-12): key engine systems β€” resident harvest 1.4%->85.6% + script/save/SQV resolved (v1.12.0) @@ -148,7 +148,7 @@ enormously. Both the engine and the main program still rebuild perfectly. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase12.md` (R19). The Phase-12 work is committed -(~17 checkpoints `commit:0068`..`commit:0082` + this PhaseEnd commit, which also lands the gen2-roadmap amendment); **Drew +(~17 checkpoints `ce7909654`..`373418dc8` + this PhaseEnd commit, which also lands the gen2-roadmap amendment); **Drew pushes** (R6). Gen2 continues β€” do **NOT** start Phase 13 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 13 β€” Representative location overlays**; the 134-overlay harvest is the canonical Ultracode breadth task (R26 β€” prompt to enable it). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase13.md b/phase-ends/PhaseEnd_Phase13.md index ab61c49420..455cc570e7 100644 --- a/phase-ends/PhaseEnd_Phase13.md +++ b/phase-ends/PhaseEnd_Phase13.md @@ -105,7 +105,7 @@ decision for Drew. Start a fresh session (effort **Max**, plan mode). ## Commit Message ``` -(Phase 13 landed as ~18 per-task/per-batch checkpoint commits commit:0084..commit:0099 + this PhaseEnd.) +(Phase 13 landed as ~18 per-task/per-batch checkpoint commits 50c5c9ea3..52514b5f4 + this PhaseEnd.) feat(phase-13): representative location overlays β€” 6 binaries byte-identical + fleet runbook (v1.13.0) @@ -164,6 +164,6 @@ optional to-do list β€” deliberately not blocking the project. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase13.md` (R19). The Phase-13 work is committed -(~18 checkpoints `commit:0084`..`commit:0099` + this PhaseEnd commit); **Drew pushes** (R6). Gen2 continues β€” do **NOT** +(~18 checkpoints `50c5c9ea3`..`52514b5f4` + this PhaseEnd commit); **Drew pushes** (R6). Gen2 continues β€” do **NOT** start the next phase here. Start a **fresh session** (effort **Max**, plan mode) to plan **Phase 14 (public flip β€” Gen2 EXIT)** or **Phase 15 (overlay long-tail)** β€” Drew's choice at the Phase-Start gate. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase15.md b/phase-ends/PhaseEnd_Phase15.md index a7759c01df..01ac414eec 100644 --- a/phase-ends/PhaseEnd_Phase15.md +++ b/phase-ends/PhaseEnd_Phase15.md @@ -89,7 +89,7 @@ manual RE on them). ~4.1M tokens; the **deterministic recovery** (types-header + permuter + `sig_unify` + the `find_site` bug-fix + types follow-up) added **+2.67% for ~0 agent tokens** β€” ~7Γ— the agent wave's yield, free. - `git status`: only `config/`/`tools/`/`src/`/`docs/`/`phase-ends/` tracked; **zero ROM-derived/generated bulk - staged**. Session committed as `commit:0117 β†’ commit:0118 β†’ commit:0119 β†’ commit:0120` (+ this PhaseEnd), each clean-rebuild-verified. + staged**. Session committed as `be0ceae55 β†’ 4b0f4d100 β†’ a10f7f8a1 β†’ ab8b857cd` (+ this PhaseEnd), each clean-rebuild-verified. **Milestone achieved (confirmed by Drew, gate 2):** the fleet rebuilds **136/136 binaries byte-identical from a clean tree** at **54.48% byte-identical-from-source** (was 3.82% at phase start, 51.41% at this session's start); @@ -117,7 +117,7 @@ design phase). First task: validate the actor-struct + m2c-context + permuter pi ## Commit Message ``` -(Phase 15 landed across many session commits; this session: commit:0117..commit:0120 + this PhaseEnd.) +(Phase 15 landed across many session commits; this session: be0ceae55..ab8b857cd + this PhaseEnd.) feat(phase-15): close β€” fleet 3.82% -> 54.48%, dedup-propagate + sig_unify proven (v1.14.0) @@ -228,7 +228,7 @@ broke. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase15.md` (R19). The Phase-15 matching work is -committed (`commit:0117`..`commit:0120` + this PhaseEnd commit, which lands the PhaseEnd + cookbook Β§14d/Β§14e + SETUP + +committed (`be0ceae55`..`ab8b857cd` + this PhaseEnd commit, which lands the PhaseEnd + cookbook Β§14d/Β§14e + SETUP + gen2-roadmap); **Drew pushes** (R6). No Ghidra DB change this phase (pure build-tooling/matching β€” R23 no-op). Gen2 continues β€” do **NOT** start Phase 16 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 16 β€” Crack the diff --git a/phase-ends/PhaseEnd_Phase16.md b/phase-ends/PhaseEnd_Phase16.md index e2d17d234e..eab8df9f4c 100644 --- a/phase-ends/PhaseEnd_Phase16.md +++ b/phase-ends/PhaseEnd_Phase16.md @@ -134,7 +134,7 @@ still rebuild perfectly. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase16.md` (R19). The Phase-16 work is -committed (`commit:0122`..`commit:0127` + this PhaseEnd commit); **Drew pushes** (R6). No Ghidra DB change this phase +committed (`7141e9752`..`9062f0fcc` + this PhaseEnd commit); **Drew pushes** (R6). No Ghidra DB change this phase (pure tooling/matching β€” R23 no-op). Gen2 continues β€” do **NOT** start the next phase here. Start a **fresh session** (effort **Max**) for the **deep-research** (the 3 questions in `docs/struct-core-pivot.md`), then plan the new **type-recovery** phase. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase17.md b/phase-ends/PhaseEnd_Phase17.md index ecda45d43c..01c7e302f1 100644 --- a/phase-ends/PhaseEnd_Phase17.md +++ b/phase-ends/PhaseEnd_Phase17.md @@ -28,7 +28,7 @@ is BUILT; the "~2Γ— lever" framing was wrong; the gate pipeline is now **draft β†’ `sig_unify` (MANDATORY) β†’ `harvest_verify --chunk 1`**; the finding + the leverage analysis + the deferred-wave handoff. -*Earlier this phase (sessions 1–3, already committed `commit:0132`β†’`commit:0139`):* +*Earlier this phase (sessions 1–3, already committed `1431b523a`β†’`f0dd9351e`):* - `tools/wall_taxonomy.py` + `docs/wall-taxonomy.md` (T1 census); the T3 K&R sig_unify wins (+0.52%); `tools/ram_probe.py` + `docs/actor-struct.md` + `.run/actor_*` (T5 actor struct, recovered + live-verified, byte-neutral for matching); the guided-hand-matching demo + idioms; `docs/hand-matching-process.md` (created, diff --git a/phase-ends/PhaseEnd_Phase18.md b/phase-ends/PhaseEnd_Phase18.md index ef9c939ed2..bd41f8e33f 100644 --- a/phase-ends/PhaseEnd_Phase18.md +++ b/phase-ends/PhaseEnd_Phase18.md @@ -99,7 +99,7 @@ gcc-research spike on the last residual classes). The infra is BUILT and staged. ## Commit Message ``` -(Phase 18 landed as 16 commits commit:0141..commit:0156 + this PhaseEnd.) +(Phase 18 landed as 16 commits d20b20c64..151da542a + this PhaseEnd.) feat(phase-18): compiler-quirk research -> the matching TOOLKIT, taught to waves (v1.17.0) @@ -216,7 +216,7 @@ route stays parked β€” we already have the answer it would give. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase18.md` (R19). **Drew commits AND pushes** -this PhaseEnd + any uncommitted Phase-18 work (R6/R8 β€” the matching commits `commit:0152`..`commit:0156` are already +this PhaseEnd + any uncommitted Phase-18 work (R6/R8 β€” the matching commits `d593ee20f`..`151da542a` are already landed; this PhaseEnd + the archived log are the close). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise, do NOT stage it). Gen2 continues β€” do **NOT** start Phase 19 here. Start a **fresh session** (plan mode) for **Phase 19 β€” Scale the toolkit** (the backlog above; -O0 fix first, then diff --git a/phase-ends/PhaseEnd_Phase19.md b/phase-ends/PhaseEnd_Phase19.md index 8002f243c9..4ceb5e5aea 100644 --- a/phase-ends/PhaseEnd_Phase19.md +++ b/phase-ends/PhaseEnd_Phase19.md @@ -101,16 +101,16 @@ reach-134, R23/R29) and the deferred -O0 Γ—134 rollout. See the Phase-20 Backlog ## Commit Message ``` -(Phase 19 landed as commits commit:0158..commit:0164 + this PhaseEnd.) +(Phase 19 landed as commits be33b887f..c43b6d083 + this PhaseEnd.) feat(phase-19): scale the toolkit β€” 2 waves (88%/92%), fleet 56.64%->58.00%, propagation is the cap (v1.18.0) -- T1 (prior session, commit:0158/commit:0159): per-file -O0 split infra + 6 -O0 matches; deferred the +- T1 (prior session, be33b887f/c8e925842): per-file -O0 split infra + 6 -O0 matches; deferred the 10 %lo-folding-quirk fns + the Γ—134 rollout (R14 corrected "free Γ—134") -- T2 (commit:0161): recovery tooling. R14: the 3 Phase-18 "implicit-int" near-misses are NOT +- T2 (85afa0dc8): recovery tooling. R14: the 3 Phase-18 "implicit-int" near-misses are NOT implicit-int -> resident-callee link-miss (NEW canon_resident_calls.py) + shared-caller arity (no-proto caller-extern fix). 3 matches; cookbook Β§17a-3 corrected -- T3 (commit:0162/commit:0163/commit:0164): 2 Ultracode waves over reach-134 tractable residuals. batch-1 +- T3 (2f9b0d990/3e99d2836/c43b6d083): 2 Ultracode waves over reach-134 tractable residuals. batch-1 44/50 match_one (30 banked, 25 propagated Γ—134); batch-2 35/38 (25 banked, 10 propagated). NEW fix_arity_callers.py (no-proto, ALL 18 batch-2 failures were the arity class); canon-first 2-stage gate (sig_unify REGRESSES canonical drafts); gen_harvest_targets garbled-sig fix @@ -198,7 +198,7 @@ grind for a higher number, with everything we learned written down. Nothing we a ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase19.md` (R19). The Phase-19 matching work is -committed (`commit:0158`..`commit:0164`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8). No Ghidra +committed (`be33b887f`..`c43b6d083`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise, do NOT stage it). Gen2 continues β€” do **NOT** start Phase 20 here. Start a **fresh session** (plan mode) for **Phase 20 β€” close the propagation cap, then scale** (the backlog above; the typedef/local-type lift first). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase20.md b/phase-ends/PhaseEnd_Phase20.md index 08cc56c8c4..7c90e94e41 100644 --- a/phase-ends/PhaseEnd_Phase20.md +++ b/phase-ends/PhaseEnd_Phase20.md @@ -90,7 +90,7 @@ below β€” plan from it. ## Commit Message ``` -(Phase 20 landed across multi-session commits; final session commit:0173..commit:0177 + this PhaseEnd.) +(Phase 20 landed across multi-session commits; final session 6c5bd1c4a..f1a7e518f + this PhaseEnd.) feat(phase-20): close β€” cap tool + T3a %lo crack + 3 byte-proven findings; fleet 58.00%->58.82% (v1.19.0) @@ -202,7 +202,7 @@ phase, planned from the design captured below. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase20.md` (R19). **Drew commits AND pushes** -this PhaseEnd + the archived log + the final-session matching commits (`commit:0173`..`commit:0177`) (R6/R8 β€” Drew's +this PhaseEnd + the archived log + the final-session matching commits (`6c5bd1c4a`..`f1a7e518f`) (R6/R8 β€” Drew's commit is the gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise, do NOT stage it). Gen2 continues β€” do **NOT** start Phase 21 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 21 β€” the automation manager** (the Backlog above; verify giants β†’ prefetch fuel β†’ diff --git a/phase-ends/PhaseEnd_Phase21.md b/phase-ends/PhaseEnd_Phase21.md index 64f0609693..7426d35d28 100644 --- a/phase-ends/PhaseEnd_Phase21.md +++ b/phase-ends/PhaseEnd_Phase21.md @@ -57,7 +57,7 @@ ## Commit Message ``` -(Phase 21 landed across ~10 sessions of checkpoint commits; this close = commit:0292..commit:0294 + this PhaseEnd.) +(Phase 21 landed across ~10 sessions of checkpoint commits; this close = 1f4aac62f..b70c9c863 + this PhaseEnd.) feat(phase-21): close β€” automation manager built + run + ceiling byte-proven; fleet 58.82%->63.18% (v1.20.0) @@ -90,4 +90,4 @@ feat(phase-21): close β€” automation manager built + run + ceiling byte-proven; Over about ten sessions we built and ran an "automation factory" for reconstructing the game's code: swarms of AI agents draft the C, a token-free brute-forcer polishes the near-misses, and an automatic bit-for-bit referee accepts only perfect matches β€” nothing wrong can ever slip in. It pushed the game from **58.8% to 63.2%** rebuilt exactly, every piece still byte-perfect. Then it hit a ceiling, and β€” importantly β€” we **proved** it's a real ceiling, not a gap in our effort: the cheap automatic wins are used up, the biggest "giant" functions won't auto-finish (they need a human brain for the last stretch), and a thorough investigation of *every* outside shortcut you asked about β€” AI/GPU tricks, scanning a hundred other games, debug symbols, and borrowing code from sister Square games β€” came back with a clean, well-evidenced **"no shortcut exists."** That's genuinely valuable: it stops us chasing dead ends. Along the way we banked real bonuses β€” named 62 functions for free, built a reusable reference library, and invented a brand-new tool that finds shared code across *any* game decompilation (worth open-sourcing). So we're closing this phase having gotten everything the automation could give, and pivoting to the one path that's left and is actually high-value: **hand-finishing the giant functions** (each one, once cracked, copies into all 134 levels at once) and learning any reusable tricks they teach us. The wall is the 1990s compiler itself β€” and from here, beating it is careful human-guided craft, exactly where we're pointing next. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase21.md` (R19, via `git mv` β€” left uncommitted). **Drew commits AND pushes** this PhaseEnd + the archived log + tonight's session commits (`commit:0292`..`commit:0294`) (R6/R8 β€” the milestone-close commit is the gate-2 sign-off, under human control). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage it). Gen2 continues β€” do **NOT** start Phase 22 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 22 β€” Hand-grind the high-value residuals (giants Γ—134) + idiom distillation**. Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase21.md` (R19, via `git mv` β€” left uncommitted). **Drew commits AND pushes** this PhaseEnd + the archived log + tonight's session commits (`1f4aac62f`..`b70c9c863`) (R6/R8 β€” the milestone-close commit is the gate-2 sign-off, under human control). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage it). Gen2 continues β€” do **NOT** start Phase 22 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 22 β€” Hand-grind the high-value residuals (giants Γ—134) + idiom distillation**. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase22.md b/phase-ends/PhaseEnd_Phase22.md index 7a9ceb9289..c2659c65cd 100644 --- a/phase-ends/PhaseEnd_Phase22.md +++ b/phase-ends/PhaseEnd_Phase22.md @@ -38,7 +38,7 @@ ## Commit Message ``` -(Phase 22 landed across the 06-26/27 giant sessions + the 06-29 pivot; checkpoint commits commit:0296..; this close = the archived log + this PhaseEnd.) +(Phase 22 landed across the 06-26/27 giant sessions + the 06-29 pivot; checkpoint commits 013806b07..; this close = the archived log + this PhaseEnd.) feat(phase-22): close β€” tractable giants banked Γ—134 (fleet 63.18->63.66%), irreducible tail byte-deferred; pivot to the LLM tier (v1.21.0) diff --git a/phase-ends/PhaseEnd_Phase23.md b/phase-ends/PhaseEnd_Phase23.md index ee9c6cc0d5..a05a32766b 100644 --- a/phase-ends/PhaseEnd_Phase23.md +++ b/phase-ends/PhaseEnd_Phase23.md @@ -47,7 +47,7 @@ ## Commit Message ``` -(Phase 23 landed across many sessions T1–T10.9 + the 07-02 giant/map session; commits commit:0424..commit:0433 + this PhaseEnd.) +(Phase 23 landed across many sessions T1–T10.9 + the 07-02 giant/map session; commits 09e80573b..da4eb3ff6 + this PhaseEnd.) feat(phase-23): LLM matching tier + the Fable5 wall-breaker + the gcc-2.7.2 codegen map (v1.22.0) @@ -106,4 +106,4 @@ This was the phase where the project cracked its hardest problem. We started by **Carried LLM-tier state:** v3 = `models/bfm-match-7b-v3`; serve via `tools/serve_local.py` (Unsloth GPU, NOT LM Studio); `bulk_harvest.py` for the ≀15 tail (~92% saturated, ~383 low-value untried left); corpus `datasets/match_pairs/`; OpenRouter key in `.env` (`open_router_key`, ~$21/$25 left). serve_local is DOWN, GPU free. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase23.md` (R19). The Phase-23 work is committed across the session (`commit:0424`..`commit:0433`); **Drew commits AND pushes** this PhaseEnd + the archived log + the regenerated digests (`docs/progress.fleet.md`) (R6/R8 β€” the milestone-close is the human-controlled gate). No Ghidra DB change (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage; the pre-session `.gitignore`/`docs/backlog.md` edits are unrelated). Keep this file forever. Gen2 continues β€” do **NOT** start Phase 24 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 24 β€” Fix + evolve the permuter (Β§31-class-aware) Β· build the integration-recovery tool Β· scale the Β§31 wave** (the Backlog above; permuter first β€” it's the highest byte-weight lever, and the flagship `func_80132784` is 4 instructions from Γ—134). +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase23.md` (R19). The Phase-23 work is committed across the session (`09e80573b`..`da4eb3ff6`); **Drew commits AND pushes** this PhaseEnd + the archived log + the regenerated digests (`docs/progress.fleet.md`) (R6/R8 β€” the milestone-close is the human-controlled gate). No Ghidra DB change (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage; the pre-session `.gitignore`/`docs/backlog.md` edits are unrelated). Keep this file forever. Gen2 continues β€” do **NOT** start Phase 24 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 24 β€” Fix + evolve the permuter (Β§31-class-aware) Β· build the integration-recovery tool Β· scale the Β§31 wave** (the Backlog above; permuter first β€” it's the highest byte-weight lever, and the flagship `func_80132784` is 4 instructions from Γ—134). diff --git a/phase-ends/PhaseEnd_Phase24.md b/phase-ends/PhaseEnd_Phase24.md index c8f73feb38..b9db7e5545 100644 --- a/phase-ends/PhaseEnd_Phase24.md +++ b/phase-ends/PhaseEnd_Phase24.md @@ -58,8 +58,8 @@ ## Commit Message ``` -(Phase 24 landed across many sessions of checkpoint commits commit:0438..commit:0467; this close = the -archived log + this PhaseEnd. Key hashes: whale commit:0463/commit:0464, Β§G commit:0462, this session commit:0466/commit:0467.) +(Phase 24 landed across many sessions of checkpoint commits 9c8bb5183..f62cd42c3; this close = the +archived log + this PhaseEnd. Key hashes: whale 3b0cc190b/8cfbbf2d4, Β§G c10677477, this session 8e6658ee8/f62cd42c3.) feat(phase-24): permuter overhaul + integration-recovery + the giant endgame (all giants Γ—134); fleet 64.86->66.02% (v1.23.0) @@ -131,4 +131,4 @@ Each family is byte-*variant* (127 distinct h_exact), so it is **not** an automa - **Gen2 public-flip release candidates** (Drew, carried from Phase 24): upstream an ILS/warm-restart mode to decomp-permuter; release the gcc-2.7.2 codegen map (Β§31/Β§36) + the "shipped cc1 RTL dumps are NOT stripped" method; the `xsig` cross-project dedup tool. Sequence at the public flip (Gen3+). ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase24.md` (R19, via `git mv` β€” left uncommitted). The Phase-24 matching work is committed across the session (…`commit:0466`, `commit:0467`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage; the untracked `gccdump.lreg` is scratch, do NOT stage). Gen2 continues β€” do **NOT** start Phase 25 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 25 β€” The structural-family endgame (idiom curriculum)**, opening from the Backlog above (re-run the surveys β†’ the `func_80133CD4` relocation-vs-immediate probe β†’ Step A data-prep β†’ the Fable5Max plan-mode evaluation β†’ the curriculum). Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase24.md` (R19, via `git mv` β€” left uncommitted). The Phase-24 matching work is committed across the session (…`8e6658ee8`, `f62cd42c3`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage; the untracked `gccdump.lreg` is scratch, do NOT stage). Gen2 continues β€” do **NOT** start Phase 25 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 25 β€” The structural-family endgame (idiom curriculum)**, opening from the Backlog above (re-run the surveys β†’ the `func_80133CD4` relocation-vs-immediate probe β†’ Step A data-prep β†’ the Fable5Max plan-mode evaluation β†’ the curriculum). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase25.md b/phase-ends/PhaseEnd_Phase25.md index da54d2ebfb..cff11811c4 100644 --- a/phase-ends/PhaseEnd_Phase25.md +++ b/phase-ends/PhaseEnd_Phase25.md @@ -22,7 +22,7 @@ *Config / source (the harvest β€” fleet 66.02% β†’ ~74.6% fn-count):* - The 134 overlay `src/ov_*/*.c` files β€” thousands of member-matches banked via the mechanical family sweeps (T7 M1 37 + M2 4,389 + M3 268; waves 2–4; the matched-free +16,512 / type-lift +1,729 / h_exact stragglers). `src/shared/engine_core.h` + `engine_types.h` (typedef/struct lifts). `config/dedup.us.yaml` (1813 groups, 0 failed). -- **The giant campaign** (Task A, tonight + prior): all matchable region-a giants Γ—134 β€” batch 1 (`func_80166994` 369 Β§43 K&R-s16, `func_80135480` 258, `func_80163EC8` 234) + **the flagship `func_80133CD4` (399 ins) Γ—134** (Β§45 Fable5 crack, `commit:0515`). `func_8014FBC0` (22Γ—1996 inline-asm trampoline) + `func_80132144` (27Γ—539) among the wave banks. +- **The giant campaign** (Task A, tonight + prior): all matchable region-a giants Γ—134 β€” batch 1 (`func_80166994` 369 Β§43 K&R-s16, `func_80135480` 258, `func_80163EC8` 234) + **the flagship `func_80133CD4` (399 ins) Γ—134** (Β§45 Fable5 crack, `8270e7692`). `func_8014FBC0` (22Γ—1996 inline-asm trampoline) + `func_80132144` (27Γ—539) among the wave banks. *Docs / knowledge base (the mature gcc-2.7.2 + family toolkit):* - `docs/matching-cookbook.md` **Β§40–§45**: Β§40/Β§40a (structural-family mechanical-remap), Β§41/Β§41a–c (canon_sig_reconcile + the Γ—134 per-sibling re-reconcile law + the object-probeβ‰ gate correction), Β§42/Β§42a–e (density-lever catalog, the stale-object gate trap, rtu_match, the wave-4 levers, the `--edit-remap` propagation), Β§43 (K&R s16-param dissolves the narrow-param wall), Β§44 (cheap-Opus giant batch, 5 levers + "each giant is its own class"), **Β§45 (the flagship crack β€” merged-accumulator-variables + the 1-death local-alloc in-out-asm + offset-0 /s + goto-shared-return; the template for the family-core cracks)**. @@ -54,8 +54,8 @@ ## Commit Message ``` -(Phase 25 landed across many sessions of checkpoint commits; key closes: commit:0514 giant batch 1, -commit:0515 flagship Γ—134 + Β§45, commit:0516 family-endgame megaplan + checkpoint, + this PhaseEnd.) +(Phase 25 landed across many sessions of checkpoint commits; key closes: 89162fd6b giant batch 1, +8270e7692 flagship Γ—134 + Β§45, b438ee184 family-endgame megaplan + checkpoint, + this PhaseEnd.) feat(phase-25): close β€” structural-family endgame + the giant endgame + the h_seq family reframe (v1.24.0) @@ -88,4 +88,4 @@ feat(phase-25): close β€” structural-family endgame + the giant endgame + the h_ This was a huge, multi-day push, and it ended on a discovery that changes the whole finish line. First, we built a "stamp" machine: once we reconstruct one copy of a piece of engine code, the tool automatically produces the matching copy for all ~120 game locations and checks each is bit-perfect β€” so **tens of thousands of functions got reconstructed for almost no extra effort**. That pushed the game from ~66% to ~75% (by function count). We also finished off the "giant" functions β€” the biggest, most-reused engine routines β€” including a 400-instruction monster we'd literally called "impossible" for most of the project; the top AI model, reading the actual 1990s compiler's source code, cracked it cleanly, and we wrote the trick down so cheaper AI can reuse it. But the **biggest win was a course-correction Drew pushed for**: the ~36,000 leftover functions looked like a hopeless one-by-one grind, but that was an illusion caused by how strictly we were grouping them. When we grouped them more loosely β€” by their *instruction skeleton* instead of exact details β€” **90% of them turned out to be the same handful of functions repeated once per game location**, just with different numbers filled in. So instead of 36,000 unique puzzles, it's really about **986 puzzles, each of which stamps into ~120 places once solved.** That makes "finish the decomp this weekend" genuinely plausible. We wrote all of this β€” the data, the plan, and exactly what to point the best AI model at before it goes away in two days β€” into a single handoff document for the next planning session. Everything still rebuilds perfectly; nothing broke. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase25.md` (R19, via `git mv` β€” left uncommitted). **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off; tonight's matching/docs commits `commit:0514`..`commit:0516` are already landed). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 26 here. Start a **fresh session** (effort **Max**, **plan mode**, Fable5 for the plan-draft) for **Phase 26 β€” the family-endgame (finish the decomp)**, opening from `docs/family-endgame-megaplan.md` (Step A cheap map+triage first β€” the measured foundation). Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase25.md` (R19, via `git mv` β€” left uncommitted). **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off; tonight's matching/docs commits `89162fd6b`..`b438ee184` are already landed). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 26 here. Start a **fresh session** (effort **Max**, **plan mode**, Fable5 for the plan-draft) for **Phase 26 β€” the family-endgame (finish the decomp)**, opening from `docs/family-endgame-megaplan.md` (Step A cheap map+triage first β€” the measured foundation). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase26.md b/phase-ends/PhaseEnd_Phase26.md index 7d7d233805..7c61de57da 100644 --- a/phase-ends/PhaseEnd_Phase26.md +++ b/phase-ends/PhaseEnd_Phase26.md @@ -52,8 +52,8 @@ ## Commit Message ``` -(Phase 26 landed across ~13 sessions of checkpoint commits; the 26-A audit close = commit:0622; -this session's Β§52 flywheel = commit:0623..commit:0626; this close = the archived log + this PhaseEnd.) +(Phase 26 landed across ~13 sessions of checkpoint commits; the 26-A audit close = a33c6f85f; +this session's Β§52 flywheel = 8f3e4a12b..d40711fe5; this close = the archived log + this PhaseEnd.) feat(phase-26): close β€” family engine + the tooling-integrity audit + the Β§52 discovery-flywheel; mechanical harvest byte-proven exhausted; fleet 58.2->68.9% instr (v1.25.0) @@ -94,4 +94,4 @@ mechanical harvest byte-proven exhausted; fleet 58.2->68.9% instr (v1.25.0) This was the longest stretch of the project, and it ended by *changing what we believe about the finish line*. Three things happened. **First**, we built a "stamp machine" β€” reconstruct one copy of an engine function, and the tool stamps the matching copy into all ~130 game locations, each checked bit-for-bit. **Second β€” the big one β€” we audited our own tools and discovered that many of the "unbeatable compiler walls" we'd been recording for months were actually *bugs in our own scanners*: tools that silently skipped work and made it look like there was nothing there.** We fixed them, deleted the worst ones, and built new tools that *derive* the truth from the build instead of guessing, plus a second independent tool whose whole job is to *disagree* and catch the first one's blind spots. That alone recovered a couple percent of the game. **Third**, we hit a real wall on the single hardest function even with the best AI in the world β€” but that failed attempt *taught us the compiler's exact behavior*, which cheaper AI then used to reconstruct **670 more pieces** and to explain precisely which remaining ones are genuinely impossible. Finally, we proved β€” by actually testing it β€” that the "stamp everything" approach has now given all it can (the leftover functions aren't clean copies of each other; they genuinely differ). So we're **closing this phase honestly**: we went from ~58% to ~69% of the game rebuilt bit-for-bit, we made our tools trustworthy, and we learned that the rest of the work is a *different kind* of work β€” hard, one-at-a-time reconstruction β€” which deserves a fresh start with clean tools and an honest re-scan of exactly what's left. The most important lasting win isn't the percentage; it's that our instruments no longer lie to us, and we wrote down three rules to keep it that way. Everything still rebuilds perfectly; nothing broke. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase26.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-26 matching + audit work is committed across the phase (26-A close `commit:0622`; this session `commit:0623`..`commit:0626`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 27 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 27 β€” the hard-remainder endgame**, opening with a byte-gate-honest re-scan of the frontier (the now-bugfree tools + templatability validated against the gate, not h_seq prediction), then scope the wall-cracks + hand-decomp residue. Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase26.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-26 matching + audit work is committed across the phase (26-A close `a33c6f85f`; this session `8f3e4a12b`..`d40711fe5`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 27 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 27 β€” the hard-remainder endgame**, opening with a byte-gate-honest re-scan of the frontier (the now-bugfree tools + templatability validated against the gate, not h_seq prediction), then scope the wall-cracks + hand-decomp residue. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase27.md b/phase-ends/PhaseEnd_Phase27.md index 6ce5daca90..a4d45fe0fb 100644 --- a/phase-ends/PhaseEnd_Phase27.md +++ b/phase-ends/PhaseEnd_Phase27.md @@ -52,7 +52,7 @@ ## Commit Message ``` -(Phase 27 landed as 14 per-task commits commit:0629..commit:0642 + this PhaseEnd.) +(Phase 27 landed as 14 per-task commits 002f6d7c7..d1ef983af + this PhaseEnd.) feat(phase-27): the honest frontier β€” fix the instruments, audit the disc, dissolve a wall (v1.26.0) @@ -95,4 +95,4 @@ This was a "fix the instruments, then look" phase β€” and looking through honest - **B4 dissolved** (its remedy was already run 1/7; the residuals are the T4 debts). The `func_80178004` ledger myth is corrected. `worklist --assert-partition` is the standing R32 partition guard. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase27.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-27 work is committed across the session (`commit:0629`..`commit:0642`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 28 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 28 β€” The Endgame Engine**, opening by measuring the member-adapt close-rate (`docs/calibration.md`). Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase27.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-27 work is committed across the session (`002f6d7c7`..`d1ef983af`); **Drew commits AND pushes** this PhaseEnd + the archived log (R6/R8 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 28 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 28 β€” The Endgame Engine**, opening by measuring the member-adapt close-rate (`docs/calibration.md`). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase28.md b/phase-ends/PhaseEnd_Phase28.md index 11d05a4a26..75ea974819 100644 --- a/phase-ends/PhaseEnd_Phase28.md +++ b/phase-ends/PhaseEnd_Phase28.md @@ -67,7 +67,7 @@ ## Commit Message ``` -(Phase 28 landed as 16 commits commit:0644..commit:0659 + this PhaseEnd. Fleet 67.0 -> 68.9% instr, +(Phase 28 landed as 16 commits 76db32455..6996d2537 + this PhaseEnd. Fleet 67.0 -> 68.9% instr, 140/140 byte-identical, 0 NON_MATCHING throughout. The granular trail -> logs/Phase28.md.) feat(phase-28): the endgame engine -> the instrument-repair phase; B2 lives, SC07 wired, R36 (v1.27.0) @@ -123,4 +123,4 @@ Chasing it, we found four game levels that had been added last phase but **never The game went from **67% to 68.9%** rebuilt bit-for-bit β€” but the real story is *how*: almost none of it came from beating the compiler, and a lot came from **fixing our own instruments**, including three mistakes that were mine β€” a tool that quietly destroyed a documentation file (caught and repaired), two miscounts I reported before checking, and a match-checker that faked the isolation it advertised (caught by one of the AI agents mid-run). On the headline question, we were deliberately honest: the leftover "harder" families rebuild at only ~3% *with today's tools* β€” but we did **not** call that a ceiling, because the way they fail is the exact same "is it the tool or the compiler?" ambiguity that kept turning out to be the *tool* this phase. So we wrote down precisely the one experiment that settles it, for next phase, rather than guess. Nothing broke; all 140 pieces of the game still rebuild perfectly. The lasting win isn't the percentage β€” it's that our instruments lie to us a lot less than they did, and there's now a gate that keeps it that way. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase28.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-28 work is committed across the session (`commit:0644`..`commit:0659`); **Drew commits AND pushes** this PhaseEnd + the archived log + the two regenerated digests (`docs/progress.fleet.md`, `.run/backlog.jsonl`) (R6/R20 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 29 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 29 β€” The Family Campaign**, opening with the T3b disambiguating probe before scaling any yield arithmetic. Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase28.md` (R19, via `git mv` β€” left uncommitted for Drew's milestone-close commit). The Phase-28 work is committed across the session (`76db32455`..`6996d2537`); **Drew commits AND pushes** this PhaseEnd + the archived log + the two regenerated digests (`docs/progress.fleet.md`, `.run/backlog.jsonl`) (R6/R20 β€” the milestone-close is the human-controlled gate-2 sign-off). No Ghidra DB change this phase (R23 no-op β€” the `db.*.gbf` churn is restart-noise; do NOT stage). Gen2 continues β€” do **NOT** start Phase 29 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 29 β€” The Family Campaign**, opening with the T3b disambiguating probe before scaling any yield arithmetic. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase29.md b/phase-ends/PhaseEnd_Phase29.md index 65c8aa19d3..e07c9f3a32 100644 --- a/phase-ends/PhaseEnd_Phase29.md +++ b/phase-ends/PhaseEnd_Phase29.md @@ -1,7 +1,7 @@ # PhaseEnd β€” Phase 29: The Family Campaign (cores + members) β€” the biggest gain in project history, and the engine honestly spent **Date:** 2026-07-30 Β· **Project Version:** 1.28.0 Β· **Phase Status:** Complete (milestone confirmed by Drew, gate 2) Β· **Generation:** Gen2 (21st phase of the arc) -> Gen2 phase 21 (8→…→28β†’**29**). Third phase off the roadmap (v1 Β§3 P29). Ran **25 sessions over 15 days** (2026-07-16 β†’ 2026-07-30), **552 commits** (`commit:0661..commit:1212`) β€” the longest and highest-yield phase of the project. The granular per-task trail (every wave verdict, every probe, the session checkpoints v1–v9, the error ledgers) is preserved on-demand at **`phase-ends/logs/Phase29.md`** (R19 β€” NOT auto-loaded; ~805 KB, consult only when researching a mechanism). This file is the synthesis. Owner decisions (Drew): the 2026-07-16 charter (longer multi-session campaign, ROI-gated, Fable5 reserved for new wall classes); the SESSION-16 integration-recovery re-plan (probe-then-continue with kill gates); the 2026-07-30 close call + the roadmap-v2 re-baseline directive (plan-mode gate, Fable 5/Max); milestone confirmed 2026-07-30. +> Gen2 phase 21 (8→…→28β†’**29**). Third phase off the roadmap (v1 Β§3 P29). Ran **25 sessions over 15 days** (2026-07-16 β†’ 2026-07-30), **552 commits** (`2e84b53b2..8c7395027`) β€” the longest and highest-yield phase of the project. The granular per-task trail (every wave verdict, every probe, the session checkpoints v1–v9, the error ledgers) is preserved on-demand at **`phase-ends/logs/Phase29.md`** (R19 β€” NOT auto-loaded; ~805 KB, consult only when researching a mechanism). This file is the synthesis. Owner decisions (Drew): the 2026-07-16 charter (longer multi-session campaign, ROI-gated, Fable5 reserved for new wall classes); the SESSION-16 integration-recovery re-plan (probe-then-continue with kill gates); the 2026-07-30 close call + the roadmap-v2 re-baseline directive (plan-mode gate, Fable 5/Max); milestone confirmed 2026-07-30. ## Build Log @@ -52,12 +52,12 @@ | **Task 16 β€” integration-recovery pass** | (not in the original plan) | **ADDED mid-phase (Drew-approved plan, SESSION-16), measured, delivered** | the SESSION-15 audit found the wave bottleneck is INTEGRATION (~92% of drafts byte-correct, ~27% bank) β€” recovering stranded byte-correct work beat drafting more | | **The `-O0` Γ—138 rollout** | implied by the Task-1 verdict ("the pool is back on the table") | **WALLED β€” the Arm-A splat `%lo +0x20` re-carve defect; CARRIED β†’ P30 T2 as a named instrument task** | the fix is splat-layer, not matching-layer; forcing it mid-campaign risked the fleet gate; the no-recarve driver alternative is sketched in the log | | **Roadmap maintenance** | a PhaseEnd "Roadmap delta" line | **full roadmap v2 rewrite at close** | Drew's 2026-07-30 directive: 25 sessions of campaign had invalidated v1's numbers wholesale; a delta line couldn't carry the re-baseline | -| **My errors (recorded, not buried β€” the SESSION-25 ledger + earlier)** | (n/a) | Β§116 written with the wrong fix (refuted in 56s) Β· a bank predicted against a disqualifier I'd printed myself Β· "126 entries" that were 8 Β· T84's banks mis-attributed (committed wrong, corrected `commit:1198`) Β· T92's wrong recipe + phantom blocker (corrected `commit:1204`) Β· the wrong staging site patched twice β†’ a lever mis-judged from a patch that never ran Β· T97 costed as a 3-part 2,022-decl job that was one 4-line edit Β· **and the month-old shared byte-gate defect found+fixed (SESSION-11: one binary verified against another's hash because a default was truthy)** | the common root: **asserting the composition of a number, or the effect of a change, I did not derive** β€” distilled into Β§120 ("prove it RAN") and the R37 candidate below | +| **My errors (recorded, not buried β€” the SESSION-25 ledger + earlier)** | (n/a) | Β§116 written with the wrong fix (refuted in 56s) Β· a bank predicted against a disqualifier I'd printed myself Β· "126 entries" that were 8 Β· T84's banks mis-attributed (committed wrong, corrected `f7c6d2eb2`) Β· T92's wrong recipe + phantom blocker (corrected `9a1507462`) Β· the wrong staging site patched twice β†’ a lever mis-judged from a patch that never ran Β· T97 costed as a 3-part 2,022-decl job that was one 4-line edit Β· **and the month-old shared byte-gate defect found+fixed (SESSION-11: one binary verified against another's hash because a default was truthy)** | the common root: **asserting the composition of a number, or the effect of a change, I did not derive** β€” distilled into Β§120 ("prove it RAN") and the R37 candidate below | ## Commit Message ``` -(Phase 29 landed as 552 commits commit:0661..commit:1212 + this PhaseEnd. Fleet 68.9 -> 87.5% instr / +(Phase 29 landed as 552 commits 2e84b53b2..8c7395027 + this PhaseEnd. Fleet 68.9 -> 87.5% instr / 49.5 -> 78.0% distinct / 83.94 -> 92.00% fn-count; 140/140 byte-identical throughout; 0 NON_MATCHING. The granular trail -> logs/Phase29.md.) @@ -96,7 +96,7 @@ feat(phase-29): the family campaign β€” +18.6pp instr in 25 sessions; engine spe ## Roadmap delta (roadmap Β§0 β€” what Phase 29 changed about the road ahead) -**The delta IS roadmap v2** (`docs/roadmap-to-100.md`, committed `commit:1212` at close, Drew's plan-mode gate). Headlines: the family-remap engine is **spent on measurement** (W4 = 173 distinct); the three biggest un-spent levers are **stranded-draft recovery** (39% measured), the **`-O0` Arm-A splat instrument wall** (~1,287 distinct), and the **fresh-crack concentration head** (top-100 β‰ˆ 53% of remaining instr; 61 zero-crack families); **main (0.7%), resident (14), and the 39 type-1 modules** are the P31 flag-plant arc; behemoth ledger REBUILT (`0x80183814`, 5,122 ins, is the game's largest fn and was missing from v1); `member_adapt` + the family-adapt fine-tune VACATED; scale estimate P30 β‰ˆ 10–18 sessions Β· P31 β‰ˆ 4–8 Β· P32 unknown Β· P33 β‰ˆ 2–4, with the flip-timing checkpoint live at every close. +**The delta IS roadmap v2** (`docs/roadmap-to-100.md`, committed `8c7395027` at close, Drew's plan-mode gate). Headlines: the family-remap engine is **spent on measurement** (W4 = 173 distinct); the three biggest un-spent levers are **stranded-draft recovery** (39% measured), the **`-O0` Arm-A splat instrument wall** (~1,287 distinct), and the **fresh-crack concentration head** (top-100 β‰ˆ 53% of remaining instr; 61 zero-crack families); **main (0.7%), resident (14), and the 39 type-1 modules** are the P31 flag-plant arc; behemoth ledger REBUILT (`0x80183814`, 5,122 ins, is the game's largest fn and was missing from v1); `member_adapt` + the family-adapt fine-tune VACATED; scale estimate P30 β‰ˆ 10–18 sessions Β· P31 β‰ˆ 4–8 Β· P32 unknown Β· P33 β‰ˆ 2–4, with the flip-timing checkpoint live at every close. ## Plain-English Recap @@ -107,4 +107,4 @@ Three things mattered beyond the number. First, the phase opened by **settling a I also kept an honest list of my own mistakes this phase β€” seven times I asserted a number or an effect I hadn't actually checked, plus one verification defect that had sat unnoticed for a month β€” each is recorded, fixed, and distilled into a proposed new working rule: **probe one example before pricing the job**. The road ahead is now re-mapped on today's real numbers: recover the stranded correct code, fix one known extraction bug that's hiding ~1,300 functions, crack the biggest remaining function families, then finish the main program and plant the first 100% flags. ## πŸ›‘ Stop Here -PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase29.md` (R19, via `git mv` β€” **left uncommitted with this file for Drew's milestone-close commit**, R6 gate-2 sign-off). The Phase-29 work is committed across the sessions (`commit:0661..commit:1212`, 552 commits incl. T99 + roadmap v2); **Drew commits AND pushes** this PhaseEnd + the archived log. No Ghidra DB staging (R23 β€” the `db.*.gbf` churn is restart-noise). The pre-existing `.run/backlog.jsonl` edit rides along or is discarded at Drew's discretion (it is a regenerable digest input). Gen2 continues β€” do **NOT** start Phase 30 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 30 β€” The Recovery & Concentration Campaign** (roadmap v2 Β§3), opening with T0 frontier regen + instrument repair before any wave is scoped. Keep this file forever. +PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase29.md` (R19, via `git mv` β€” **left uncommitted with this file for Drew's milestone-close commit**, R6 gate-2 sign-off). The Phase-29 work is committed across the sessions (`2e84b53b2..8c7395027`, 552 commits incl. T99 + roadmap v2); **Drew commits AND pushes** this PhaseEnd + the archived log. No Ghidra DB staging (R23 β€” the `db.*.gbf` churn is restart-noise). The pre-existing `.run/backlog.jsonl` edit rides along or is discarded at Drew's discretion (it is a regenerable digest input). Gen2 continues β€” do **NOT** start Phase 30 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 30 β€” The Recovery & Concentration Campaign** (roadmap v2 Β§3), opening with T0 frontier regen + instrument repair before any wave is scoped. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase31.md b/phase-ends/PhaseEnd_Phase31.md index 6211081d96..5913b5a6e2 100644 --- a/phase-ends/PhaseEnd_Phase31.md +++ b/phase-ends/PhaseEnd_Phase31.md @@ -153,7 +153,7 @@ payloads, close with the final ledger; then P33 = verify + flip. ## Commit Message ``` -(Phase 31 landed as ~1,660 commits 2026-08-14 β†’ 2026-09-05; the last in-phase commit is commit:3898 (docs/frontier-p32.md). +(Phase 31 landed as ~1,660 commits 2026-08-14 β†’ 2026-09-05; the last in-phase commit is 3c292ef09 (docs/frontier-p32.md). This close = the archived log + this PhaseEnd, Drew's milestone-close commit.) chore(phase-31): CLOSE β€” the frontier atlas & wide-tolerance campaign; fleet 95.3% -> 100.0% instr (213/213), main 1,041 -> 12 open, the last 21 ledgered (v1.30.0) @@ -245,7 +245,7 @@ careful attempt), plus five small disc files we have never seen the game load. T ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase31.md` (R19, via `git mv` β€” **left uncommitted with this file for Drew's milestone-close commit**, R6 gate-2 sign-off). The Phase-31 work is committed across the -sessions (through `commit:3898`); **Drew commits AND pushes** this PhaseEnd + the archived log. The Ghidra MCP was +sessions (through `3c292ef09`); **Drew commits AND pushes** this PhaseEnd + the archived log. The Ghidra MCP was stopped cleanly (R23); no DB change to commit (the `db.*.gbf` churn is restart-noise β€” do NOT stage it). Gen2 continues β€” do **NOT** start Phase 32 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 32 β€” the last 21 + the parked 5**, opening from `docs/frontier-p32.md`. Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase32.md b/phase-ends/PhaseEnd_Phase32.md index 494e8bab79..dc223133de 100644 --- a/phase-ends/PhaseEnd_Phase32.md +++ b/phase-ends/PhaseEnd_Phase32.md @@ -3,7 +3,7 @@ > Gen2 phase 23 (8→…→31β†’**32**). Fifth phase off `docs/roadmap-to-100.md` v2 (Β§3 P32 as written was already consumed by > P31; this phase was chartered from `docs/frontier-p32.md` as the 21-row census + the 5 parked payloads, short and kill-gated). -> Ran **5 sessions (S81–S85, 2026-09-05 β†’ 2026-09-06)** and **111 commits** (`commit:3900..HEAD`). The granular trail (every +> Ran **5 sessions (S81–S85, 2026-09-05 β†’ 2026-09-06)** and **111 commits** (`77df1092e..HEAD`). The granular trail (every > variant, verdict, instrument defect and its repair, and the session checkpoints) is preserved on-demand at > **`phase-ends/logs/Phase32.md`** (R19 β€” NOT auto-loaded). Owner decisions (Drew): gate 1 (2026-09-05, plan mode, Max; > R44–R63 ratified); the T4b directive (2026-09-05: "anything that isn't the original hand-written asm or the PsyQ libs needs @@ -20,18 +20,18 @@ reads **100.00% fn-count / 100.0% instruction-weighted / 100.0% distinct-code wi register pins, fences or asm bodies in the final two banks**. **Files created/changed and complete β€” do not recreate** (category summaries; the per-commit list is `git log -commit:3900..HEAD` and `phase-ends/logs/Phase32.md`): +77df1092e..HEAD` and `phase-ends/logs/Phase32.md`): -- **Source β€” 77 functions banked byte-identical** (`src/**`): T1a `resident:func_800D128C` (`commit:3904`, a stored - closeness-0 draft freed by three instrument fixes), T1b `ov_SC02_017:func_80186C64` (`commit:3907`, a RELOC-ONLY twin - remap), T1c `md_MAIN_034:func_800CB00C` (`commit:3908`, a stored S72 body the census had mis-keyed), T2c Γ—20 (twins, +- **Source β€” 77 functions banked byte-identical** (`src/**`): T1a `resident:func_800D128C` (`c513e1fbb`, a stored + closeness-0 draft freed by three instrument fixes), T1b `ov_SC02_017:func_80186C64` (`c7f5b498a`, a RELOC-ONLY twin + remap), T1c `md_MAIN_034:func_800CB00C` (`059266afc`, a stored S72 body the census had mis-keyed), T2c Γ—20 (twins, constant flips, pass-throughs β€” 0 drafting tokens), T3 Γ—39 (the one-agent-per-function pass), T4b Γ—13 (the Fable first pass - Γ—11 incl. the Β§474 "PROVED" wall `func_80011380` `commit:3990`; the hand pass `md_MAIN_007:func_800CF408` `commit:4001` and - `ov_SC03_105:func_80185810` `commit:4004`), T4c Γ—2 (`main:func_80032A74` `commit:4007`, `main:func_80039308` `commit:4008`). + Γ—11 incl. the Β§474 "PROVED" wall `func_80011380` `35fa11674`; the hand pass `md_MAIN_007:func_800CF408` `8fa12bc22` and + `ov_SC03_105:func_80185810` `cdd9a2cb8`), T4c Γ—2 (`main:func_80032A74` `f9a90affb`, `main:func_80039308` `ffb1949a1`). `config/dedup.us.yaml` 2,220 groups / 0 failures (unchanged count; 255,708 instances). - **Five binaries onboarded** (T2b, `config/splat.md_*.yaml`, `config/check.md_*.sha`, `config/overlays.mk`, `src/md_*/`): - `md_MAIN_007` @0x800CEDF8 (`commit:3911`), `md_MAIN_009` @0x800CD348 (`commit:3912`), `md_SC03_053` + `md_SC03_054` @0x801EF468 - (`commit:3913`), `md_SC03_056` @0x801CBB50 (`commit:3914`) β€” every base static-derived (`tools/payload_base_evidence.py`, controls + `md_MAIN_007` @0x800CEDF8 (`1a696a851`), `md_MAIN_009` @0x800CD348 (`10aaf5c29`), `md_SC03_053` + `md_SC03_054` @0x801EF468 + (`b52d67be0`), `md_SC03_056` @0x801CBB50 (`1e843c607`) β€” every base static-derived (`tools/payload_base_evidence.py`, controls 7/7) and byte-proven by the first internal-call C bank; `make audit-disc` residue 0, **UNCLAIMED 0 of 220**; `docs/disc-completeness.md` P32 section, `docs/memory-map.md` Β§S45 p7. - **Instruments (new/repaired, all under `tools/`, SETUP rows per R21):** `payload_base_evidence.py` (T2a); @@ -40,7 +40,7 @@ commit:3900..HEAD` and `phase-ends/logs/Phase32.md`): --work` dir β€” the standalone compile is NOT faithful on main TUs) + **`alloc_table.py`** (global's allocation order / priorities / hard regs from the dumps) (S85); `backlog.py` tie-break repair (a re-verdict could never render); the `jr_isolate_all` provided-types fix (Β§496), `jtbl_carve --pre` + `harvest_verify` extract-rc + `interleave_check --pre` - fixes (Β§498); the Makefile `C_SRCS` dotfile guard (`commit:3949`); `.run/P32/t3s3/bank.sh` + `splice.py` (the overlay bank + fixes (Β§498); the Makefile `C_SRCS` dotfile guard (`563a21144`); `.run/P32/t3s3/bank.sh` + `splice.py` (the overlay bank chain: verbatim grep β†’ rtu β†’ splice β†’ one build β†’ sha β†’ commit-on-green; session trailer from `$CLAUDE_SESSION`); `exclude_audit --write` drops banked pins; `frontier_classify` census JSONs for every step (`.run/P32/frontier_*.json`). - **Knowledge base:** `docs/matching-cookbook.md` **Β§496–§501-R** (the four T1a instrument classes; Β§499 module onboarding; Β§500 @@ -62,7 +62,7 @@ commit:3900..HEAD` and `phase-ends/logs/Phase32.md`): never written to; the `ghidra/` churn is R23 restart-noise, never staged). **Verification results (literal, at close):** -- `make clean && make extract-all && make check-all` (after the last bank, `commit:4008`) β†’ clean EXIT=0 Β· **extract-all: 217 +- `make clean && make extract-all && make check-all` (after the last bank, `ffb1949a1`) β†’ clean EXIT=0 Β· **extract-all: 217 extracted, 0 failed of 217 (+ main, serial)** EXIT=0 Β· **check-all: 218 passed, 0 failed of 218** EXIT=0 at 16:13:17 MDT (`.run/P32/t4e/r22_{clean,extract,check}.log`). R22 was also run after every earlier banked batch of the phase (T1a 213/213; T1b+T1c 213/213; T2c 218/218; T3 218/218 Γ—3; T4b 218/218 Γ—2; the row-(d) bank 218/218) β€” no batch closed red. @@ -156,7 +156,7 @@ the three-metric dashboard) as one recorded run, then the public-flip checklist. ## Commit Message ``` -(Phase 32 landed as 111 commits commit:3900..HEAD, 2026-09-05 β†’ 2026-09-06 (S81–S85). This close = the archived log + +(Phase 32 landed as 111 commits 77df1092e..HEAD, 2026-09-05 β†’ 2026-09-06 (S81–S85). This close = the archived log + this PhaseEnd + the DIGEST update, Drew's milestone-close commit.) chore(phase-32): CLOSE β€” the frontier is empty: 0 stubs across 218 binaries, fleet 100.00 / 100.0 / 100.0, main 2,091/2,091 (v1.31.0) @@ -230,7 +230,7 @@ verifying the whole thing once more end to end, cleaning the repository's histor ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase32.md` (R19, via `git mv`); `phase-ends/DIGEST.md` appended (step 3b) β€” **all three left uncommitted for Drew's milestone-close commit** (R6 gate-2 sign-off). The Phase-32 work -is committed across the sessions (`commit:3900..HEAD`); **Drew commits AND pushes** this PhaseEnd + the archived log + the +is committed across the sessions (`77df1092e..HEAD`); **Drew commits AND pushes** this PhaseEnd + the archived log + the digest. The Ghidra MCP (the SessionStart hook's headless server) was stopped cleanly (R23); no DB change to commit β€” the `db.*.gbf` churn is restart-noise, do NOT stage it. Gen2 continues β€” do **NOT** start Phase 33 here. Start a **fresh session** (effort **Max**, **plan mode**) for **Phase 33 β€” 100% verification + the public flip + Gen2 exit**, planning from roadmap v2 diff --git a/phase-ends/PhaseEnd_Phase8.md b/phase-ends/PhaseEnd_Phase8.md index cd580ef667..6e9d5f921b 100644 --- a/phase-ends/PhaseEnd_Phase8.md +++ b/phase-ends/PhaseEnd_Phase8.md @@ -132,6 +132,6 @@ that Gen2's binary-agnostic refactor (Phase 9), resident-blob (Phase 10), and ov ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase8.md` (R19). The Phase-8 work is -committed (`commit:0030`β†’ this commit); **Drew pushes** (R6). Gen2 is underway β€” do NOT start Phase 9 here. +committed (`c27a4432e`β†’ this commit); **Drew pushes** (R6). Gen2 is underway β€” do NOT start Phase 9 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 9 β€” Binary-agnostic toolchain refactor** (a Tier-1 Phase-Start planning task). Keep this file forever. diff --git a/phase-ends/PhaseEnd_Phase9.md b/phase-ends/PhaseEnd_Phase9.md index 253824632f..8fe8b8a3c3 100644 --- a/phase-ends/PhaseEnd_Phase9.md +++ b/phase-ends/PhaseEnd_Phase9.md @@ -105,7 +105,7 @@ extracted payload. The Phase-9 parameterized tools + the documented convention ( ## Commit Message ``` -(Phase 9 landed as 11 per-tool checkpoint commits commit:0042..commit:0052 + this PhaseEnd.) +(Phase 9 landed as 11 per-tool checkpoint commits 170586d6b..6345b5012 + this PhaseEnd.) feat(phase-9): binary-agnostic toolchain refactor β€” one pipeline builds any binary (v1.9.0) @@ -159,6 +159,6 @@ first overlay binary. ## πŸ›‘ Stop Here PhaseEnd written; `CURRENT_PHASE.md` archived β†’ `phase-ends/logs/Phase9.md` (R19). The Phase-9 work is -committed (11 checkpoints `commit:0042`..`commit:0052` + this PhaseEnd commit, which also reconciles the Ghidra DB per +committed (11 checkpoints `170586d6b`..`6345b5012` + this PhaseEnd commit, which also reconciles the Ghidra DB per R23); **Drew pushes** (R6). Gen2 continues β€” do **NOT** start Phase 10 here. Start a **fresh session** (effort **Max**, plan mode) for **Phase 10 β€” Resident engine blob**. Keep this file forever. diff --git a/phase-ends/logs/Phase11.md b/phase-ends/logs/Phase11.md index 26334f168a..6884f30bb4 100644 --- a/phase-ends/logs/Phase11.md +++ b/phase-ends/logs/Phase11.md @@ -19,7 +19,7 @@ ## Task checklist - [x] **T1** [xHigh] β€” `dup_report.py --cross` β†’ `docs/duplicates.cross.md` (multi-sig ingest, binary tag, cross/intra split, `(countβˆ’1)Γ—ninsΓ—4` rank, per-member rows); wired `make report` (gated BINARY=main). Per-binary reports - byte-stable. **DONE** (commit `commit:0060`). EXE↔resident cross groups = 0 (confirms the byte-finding). + byte-stable. **DONE** (commit `7cc291145`). EXE↔resident cross groups = 0 (confirms the byte-finding). - [x] **T2** [Max] β€” `config/dedup.us.yaml` schema + `tools/dedup_integrate.py` (byte-honesty VALIDATOR, fail-closed on hash drift) + `make report` dedup-check gate. **DONE.** Verified: --check passes on empty registry; clean rebuild main β†’ `143dbb89` (no-op proven, R22). *Refinement below.* @@ -74,7 +74,7 @@ change; 0 NON_MATCHING in default build. ## Progress log - 2026-06-16: Phase planned at Max via 3 Explore + 2 Plan agents; owner approved. Key finding (EXE↔resident share nothing) reshaped the milestone to "report + machinery; defer collapse." -- 2026-06-16: **T1 done** (`commit:0060`) β€” `dup_report --cross` β†’ `duplicates.cross.md`; per-binary reports byte-stable; +- 2026-06-16: **T1 done** (`7cc291145`) β€” `dup_report --cross` β†’ `duplicates.cross.md`; per-binary reports byte-stable; EXE↔resident cross groups = 0. - 2026-06-16: **T2 done** β€” `dedup.us.yaml` registry + `dedup_integrate.py` validator + `make report` gate; clean rebuild main `143dbb89` (no-op, R22). Recorded deviation D1 (source-level share). Next: T3 proof. diff --git a/phase-ends/logs/Phase12.md b/phase-ends/logs/Phase12.md index 316813b0cb..5e6192a41b 100644 --- a/phase-ends/logs/Phase12.md +++ b/phase-ends/logs/Phase12.md @@ -46,10 +46,10 @@ - **T2 β€” Resident compiler-fingerprint (DONE; triple confirmed = EXE's).** Opt level = **-O2** (resident has 0 `21f0a003` frame-ptr sigs vs the EXE's 54; the EXE's `800` game module is also -O2). The resident uses the Makefile's default pinned triple (no override): `gcc-2.7.2-psx -O2 -G0 -mips1 -mcpu=3000 -mgas -msoft-float -fgnu-linker` + `maspsx --aspsx-version=2.56 --expand-div`. **Two byte-exact matches** confirm it across idiom classes: `func_800CF854` (the `lbu`+`sltu $zero` unsigned-β‰ 0 accessor) and `func_800CEE84` (8-call init with branch-store `D_80127084=0; if(D_800B9A00) =1` + a delay-slot-filled `func_80010AE0(0x3E0)` + early-scheduled load). **Clean rebuild (R22): resident `8e17e02f`, main `143dbb89` β€” both byte-identical.** `make report BINARY=resident` β†’ REAL 0β†’**2**. The "resident is 4.7" was a coincidental DsMix signature; the actual compiler == the EXE's (R24 provenance: resident triple = main triple, byte-confirmed). No candidate ladder; STOP-cond did not fire. - **T3 β€” Resident harvest (IN PROGRESS; ULTRACODE workflow harvest).** - **Batch 1** (hand-matched): 6 trivial accessors. REAL 2β†’8. - - **Batch 2** (workflow): `resident-harvest-draft` (16 parallel agents) drafted matching C for all 135 unmatched fns (asm + cookbook + worked examples β†’ `.run/drafts/.c`, no builds/no Ghidra; 14/16 agents ok, 2 hit API-500); `tools/harvest_verify.py` (new) byte-gated each draft vs `8e17e02f` (chunk+bisect, self-correcting). **62/127 verified byte-identical in one pass.** Cleaned 35 redundant `#include`. **REAL 8β†’70 (48.28%); byte-identical 49.66%.** Clean rebuild green both binaries. Commit `commit:0071`. - - **Batch 3** (`commit:0071`β†’ this): two redraft workflow passes (`resident-harvest-redraft` + retry-resilient `resident-harvest-redraft3`, both seeded by prior drafts + a debugging checklist; the first hit transient server rate-limiting β†’ 8 landed, the retry-wave second pass recovered all 13 batches β†’ +9). Byte-gated via `tools/harvest_verify.py` (drafts2 then drafts3). **REAL 70β†’78β†’87 (60.0%); byte-identical 61.38%.** Both binaries clean-rebuild green. - - **Batches 3b–5** (`commit:0073`β†’`commit:0075`): two more workflow passes β€” retry-resilient redraft (+9β†’REAL 87), then `tools/match_one.py` (new: per-function isolated compile + relocation-masked diff vs the `.s`) enabling an **iteration loop** (agents compileβ†’read diffβ†’fix), +13β†’REAL 102. Plus a typedef-strip fix (some drafts inlined `typedef ... u8;` β†’ C89 redefinition compile-fail, not a byte miss; +2). - - **T3a β€” extern-conflict recovery (`commit:0078`): +20 β†’ REAL 123.** The pass-4 functions that match_one matched standalone but the single-TU build rejected on conflicting shared-symbol extern types were recovered by unifying ~20 symbol types in `resident.c` (widening definitions' return types where byte-identical β€” `u16 f(){return u16g}` ≑ `s32 f(){…}`; asm-correct widths for globals; per-site `*(u16*)&g` where a neighbor pins the type). 20/21; `func_800D00E4` stays an honest stub (its switch needs the external `jtbl_80113ED8` relocation β€” analysis preserved under `#if 0`). + - **Batch 2** (workflow): `resident-harvest-draft` (16 parallel agents) drafted matching C for all 135 unmatched fns (asm + cookbook + worked examples β†’ `.run/drafts/.c`, no builds/no Ghidra; 14/16 agents ok, 2 hit API-500); `tools/harvest_verify.py` (new) byte-gated each draft vs `8e17e02f` (chunk+bisect, self-correcting). **62/127 verified byte-identical in one pass.** Cleaned 35 redundant `#include`. **REAL 8β†’70 (48.28%); byte-identical 49.66%.** Clean rebuild green both binaries. Commit `c37332fa1`. + - **Batch 3** (`c37332fa1`β†’ this): two redraft workflow passes (`resident-harvest-redraft` + retry-resilient `resident-harvest-redraft3`, both seeded by prior drafts + a debugging checklist; the first hit transient server rate-limiting β†’ 8 landed, the retry-wave second pass recovered all 13 batches β†’ +9). Byte-gated via `tools/harvest_verify.py` (drafts2 then drafts3). **REAL 70β†’78β†’87 (60.0%); byte-identical 61.38%.** Both binaries clean-rebuild green. + - **Batches 3b–5** (`8dbaa489f`β†’`393d34604`): two more workflow passes β€” retry-resilient redraft (+9β†’REAL 87), then `tools/match_one.py` (new: per-function isolated compile + relocation-masked diff vs the `.s`) enabling an **iteration loop** (agents compileβ†’read diffβ†’fix), +13β†’REAL 102. Plus a typedef-strip fix (some drafts inlined `typedef ... u8;` β†’ C89 redefinition compile-fail, not a byte miss; +2). + - **T3a β€” extern-conflict recovery (`a480d83be`): +20 β†’ REAL 123.** The pass-4 functions that match_one matched standalone but the single-TU build rejected on conflicting shared-symbol extern types were recovered by unifying ~20 symbol types in `resident.c` (widening definitions' return types where byte-identical β€” `u16 f(){return u16g}` ≑ `s32 f(){…}`; asm-correct widths for globals; per-site `*(u16*)&g` where a neighbor pins the type). 20/21; `func_800D00E4` stays an honest stub (its switch needs the external `jtbl_80113ED8` relocation β€” analysis preserved under `#if 0`). - **HARVEST RESULT (this session): REAL 1 β†’ 123 / 146 = 85.62% byte-identical**, all hand-matched engine C, via 5 ultracode workflow passes + a deterministic byte-gate + the extern recovery. Both binaries byte-identical (resident `8e17e02f`, main `143dbb89`). New reusable tooling: `harvest_verify.py`, `match_one.py` (β†’ Phase-13 overlays). - **T3b β€” REASSESSED & deferred (Max, 2026-06-16).** Intra-resident **dedup collapse**: all 12 members of the 6 h_exact (and the 9 h_norm) groups are now *individually matched byte-identical* β†’ the collapse has **no recovery/count value**, only source-DRY elegance; the Β§11 share mechanism is already proven (Phase 11), and the real dedup leverage is cross-binary/overlay (Phase 13). Deferred as optional elegance. **Permuter residuals**: the ~21 remaining stubs are the documented compiler-internal tail (cross-jump/block-reorder/regalloc β€” `func_800D06E8` 257β†’118, `func_800D128C` cross-jump, etc.) β€” **honest P9 deferrals**, each documented in its draft header; decomp-permuter is deliberate per-function work, not a blind sweep. **T3 substantively COMPLETE at 85.62%** ("substantial not exhaustive", Drew's bar β€” crushed). - **Cookbook-worthy idioms found** (folded into cookbook Β§12 at the ultracode write-up; R16): struct-copy prologue (local = global table), void-dispatcher-is-actually-s32-returning, `*10`β†’`2x+8x` decomposition, masked-compare `andi` survives only when the load's range is unprovable, callee-return-type-forces-the-cast. diff --git a/phase-ends/logs/Phase13.md b/phase-ends/logs/Phase13.md index 687b5f1efc..9b2c4b689a 100644 --- a/phase-ends/logs/Phase13.md +++ b/phase-ends/logs/Phase13.md @@ -23,7 +23,7 @@ - [ ] **T6** β€” docs (cookbook Β§13 runbook + overlay-handling additions, SETUP, gen2-roadmap status, per-ov digests) + PhaseEnd (Tier-1 Max). Includes the clean fleet proof (`make clean` β†’ extract-all β†’ `check-all`, R22). ## Commits (this phase) -commit:0084 T0 Β· commit:0085 T1a/b Β· commit:0086 T1c Β· commit:0088/commit:0089/commit:0090/commit:0091/commit:0092 harvest p1-5 Β· commit:0087 T1c-Ghidra Β· commit:0093 T3+T4 Β· commit:0094 T2 Β· commit:0095 T5 +50c5c9ea3 T0 Β· 144839f24 T1a/b Β· 3b59354c7 T1c Β· 0278a902d/fdc9e22a8/b6a82b8c4/5ccdd2b22/ce07b7279 harvest p1-5 Β· 3262cbca3 T1c-Ghidra Β· 67592993e T3+T4 Β· eee4cb319 T2 Β· e2200e17d T5 ## Blockers / next β†’ **Gate 2** (Drew confirms milestone) + **T7** (needs `/effort ultracode` for arm A, then `/effort max` for arm B) β†’ **T6** PhaseEnd at Max. diff --git a/phase-ends/logs/Phase15.md b/phase-ends/logs/Phase15.md index bc735062ee..ffd659620c 100644 --- a/phase-ends/logs/Phase15.md +++ b/phase-ends/logs/Phase15.md @@ -14,7 +14,7 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor - Top cross groups: ex0=770 ins @0x80144b9c Γ—134; ex1=476 @0x80141ca4; ex3=41 ins Γ—1104 β€” mostly unmatched even in 077. ## Tasks (harness IDs in brackets; one at a time, P4) -- [x] **T0 [#1] β€” DONE** (commit commit:0101) β€” Phase-14 deferral recorded in `docs/gen2-roadmap.md`. +- [x] **T0 [#1] β€” DONE** (commit 324ad1c3a) β€” Phase-14 deferral recorded in `docs/gen2-roadmap.md`. - [x] **T1 [#2] β€” DONE** β€” onboarded diverse wave-1 (12 overlays, all 7 SC areas + 2 dup pairs); `check-all` **18/18 byte-identical**, 0 anomalies. - [x] **T2 [#3] β€” DONE** β€” `tools/dedup_propagate.py` + `src/shared/engine_core.h` built & proven: 4 funcs propagated across all 16 onboarded overlays, clean `check-all` **18/18**, dedup_integrate green, idempotent, negative-test fails-closed. Also added Makefile `-MMD` header-dep tracking (closed a stale-build gap the negative test exposed). - [x] **T3 [#4] β€” DONE** β€” onboarded all remaining 118 overlays (0 failed) β†’ full fleet **136 binaries**; **clean rebuild `check-all` 136/136 byte-identical** (R22, 0 extract fails, ~8 min). @@ -33,7 +33,7 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor ## RESUME HANDOFF (fresh session β€” start here; T0–T5 done, T6+T7 remain, then T8 PhaseEnd) -**State:** 136 binaries byte-identical from clean (`make check-all` 136/136, last verified after the leaf pass). Fleet **25.38% byte-identical** (REAL 85,651 / matchable 344,010; `docs/progress.fleet.md`). Effort: **Ultracode is ON** (Drew) β€” good for the harvest; drop to Max for the PhaseEnd (T8). All work T0–T5 committed (Drew pushes, R6); commits `commit:0101 commit:0102 commit:0103 commit:0104 commit:0105 commit:0106 commit:0107` + the leaf-pass commit. +**State:** 136 binaries byte-identical from clean (`make check-all` 136/136, last verified after the leaf pass). Fleet **25.38% byte-identical** (REAL 85,651 / matchable 344,010; `docs/progress.fleet.md`). Effort: **Ultracode is ON** (Drew) β€” good for the harvest; drop to Max for the PhaseEnd (T8). All work T0–T5 committed (Drew pushes, R6); commits `324ad1c3a e5a2bd408 0c7619231 87136a024 c716eb15e aefe2eac1 2ac97878b` + the leaf-pass commit. **The harvest machine (all proven this phase):** - `tools/dedup_propagate.py --auto-from ov_SC01_077` β€” propagates every NEW matched+shared+self-contained inline-def in 077 across the fleet (skips registered; per-overlay byte-gate; shorthand registry; compile pre-filter). Re-run anytime to top up. @@ -52,15 +52,15 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor ## Log - 2026-06-17 β€” **T6 v3 missing-harvest (GROUPS OF 10) β€” fleet 48.02% β†’ 51.41% (OVER HALF). (+20.2 session.)** Drew: "do groups of 10 instead of 100+". Rebuilt the harvest workflow to process the 375 never-drafted shared stubs (leaf-first sorted) in SEQUENTIAL WAVES of ≀10 agents w/ intra-wave retry. Result: **0 dead batches** (vs 33 from the 48-batch burst), ~42 drafts/60s (vs ~1/45s), 374/375 drafted. Gate-fill found 1 missing (func_8017C710). Gate: **85 verified** (incl. high-yield leaf), β†’ **79 propagated** fleet-wide (7 struct/local skipped), 134 byte-identical, dedup 1237β†’1316 (0 failed). REAL ~164k β†’ 175,212; **fleet byte-identical 51.41%**. Cookbook Β§12 updated (the rate-limit-gentle wave pattern). R22 clean running pre-commit. Residual: 289 quarantined (hard) + the 33 earlier-dead from the burst (now in land_missing) + 077-unique + giants β€” all permuter-class / low-leverage tail. -- 2026-06-17 β€” **T6 v3 final harvest β€” SERVER-RATE-LIMITED, consolidated at 47.70%.** Landscape: 568 remaining shared stubs (110 leaf + 458 call-heavy, richly resolved). Launched the v3 harvest (48 agents, `.run/land_all.json`); sustained server-side API rate limiting (93 agent failures) stalled it at ~31/568 drafts; gated β†’ only 4 verified (the 31 were the harder call-heavy residual; the easy leaf ones never drafted). Stopped the workflow, reverted the 4 (kept the clean committed milestone), preserved `.run/drafts-T6d` + `.run/land_all.json` for resume. **CONSOLIDATED: committed milestone commit:0114, fleet 47.70%, R22 136/136 clean; session 31.22% β†’ 47.70% (+16.5).** RESUME (when rate limiting clears): re-run the v3 harvest on `.run/land_all.json` (gap-fill + gate the 32 already-drafted), then OPTIONALLY T8 PhaseEnd to close Phase 15. The remaining shared core is the hard tail (regalloc/GTE/Β§10 β€” low yield even unthrottled, permuter-class). 4 typedef'd-struct fns + 27 giants/large + 077-unique are minor residual. +- 2026-06-17 β€” **T6 v3 final harvest β€” SERVER-RATE-LIMITED, consolidated at 47.70%.** Landscape: 568 remaining shared stubs (110 leaf + 458 call-heavy, richly resolved). Launched the v3 harvest (48 agents, `.run/land_all.json`); sustained server-side API rate limiting (93 agent failures) stalled it at ~31/568 drafts; gated β†’ only 4 verified (the 31 were the harder call-heavy residual; the easy leaf ones never drafted). Stopped the workflow, reverted the 4 (kept the clean committed milestone), preserved `.run/drafts-T6d` + `.run/land_all.json` for resume. **CONSOLIDATED: committed milestone 5c5e9fb97, fleet 47.70%, R22 136/136 clean; session 31.22% β†’ 47.70% (+16.5).** RESUME (when rate limiting clears): re-run the v3 harvest on `.run/land_all.json` (gap-fill + gate the 32 already-drafted), then OPTIONALLY T8 PhaseEnd to close Phase 15. The remaining shared core is the hard tail (regalloc/GTE/Β§10 β€” low yield even unthrottled, permuter-class). 4 typedef'd-struct fns + 27 giants/large + 077-unique are minor residual. - 2026-06-17 β€” **T6 struct follow-up β€” fleet 46.27% β†’ 47.70% (+1.43).** Built `tools/build_engine_types.py` β†’ `src/shared/engine_types.h` (the 34 named struct/union types, forward decls + defs in source order; consumes trailing `__attribute__((packed))` + aliases through the `;`). Included it via `engine_core.h`; STRIPPED the 34 inline defs from 077.c (byte-neutral, verified). Relaxed `dedup_propagate`'s guard to skip only inline named-struct/typedef DEFINITIONS (header-type USAGES + anonymous local structs propagate) and added `engine_types.h` to its compile pre-filter. β†’ **37 struct-using shared fns propagated** fleet-wide (was [skip] 41 β†’ now 4, the overlay-local typedef'd types β€” tiny residual), 134 byte-identical, dedup 1183β†’1220 (0 failed). REAL 157,541 β†’ 162,462. **Session total: 31.22% β†’ 47.70% (+16.5).** R22 clean running pre-commit. - 2026-06-17 β€” **T6 tail: quarantine recovery β€” fleet 44.64% β†’ 46.27% (+1.63).** `canon_draft_decls` on the combined 505 quarantined (now canonicalizing against the much-larger banked set: 268 decls rewritten) β†’ **47 verified** (1175β†’1128 stubs) β†’ **42 propagated** fleet-wide (41 struct/local skipped), dedup 1141β†’1183 (0 failed). REAL 151,908 β†’ 157,541. **Session total: 31.22% β†’ 46.27% (+15.0).** **Struct-landscape scoped (read-only): 34 named struct/union types in 077, ZERO same-name-different-layout collisions + 9 anonymous β†’ a shared-types-header (`src/shared/engine_types.h`) is a CLEAN path to propagate the ~100 struct-using shared fns (the recurring "[skip] N local types"), β‰ˆ+3.8% fleet.** NEXT (after this commit, H4): build engine_types.h, strip inline struct defs from 077.c (byte-neutral), relax dedup_propagate's struct guard for header-shared types, propagate. - 2026-06-17 β€” **T6g medium band β€” fleet 42.14% β†’ 44.64% (+2.5).** Regenerated `.run/t6_med2.json` (293 medium still-stub call-heavy, nins 41-150; fresh callee+data resolution). Harvest Workflow (30 agents) + 3-target gap-fill (R: mandatory reconcile). Gate: **73 verified** (25% β€” harder fns: GTE/matrix/regalloc residuals; 220 quarantined `.run/drafts-T6c-fail/`). `dedup_propagate` (struct-guarded) β†’ **65 propagated fleet-wide** (37 struct/local-type skipped), 134 byte-identical, dedup 1076β†’1141 (0 failed). REAL 143,322 β†’ 151,908. R22 clean running pre-commit. **Session total: 31.22% β†’ 44.64% (+13.4).** Open tail: 285+220 quarantine (regalloc/struct/Β§10 residuals), struct-using shared fns (shared-types-header follow-up), 077-unique remainder, T7 giants. - 2026-06-17 β€” **T6 v2 (resumed after 2 crashes) β€” fleet 31.22% β†’ 42.14% (+10.83 this pass).** Extended `gen_harvest_targets.py` to ALSO resolve canonical DATA-symbol declarations per target (scan the .s for D_XXXX refs β†’ `extern D_XXXX;` from banked code) β€” the Β§14c(c) fix at the source. Regenerated the manifest (884 still-stub call-heavy; 1836 callees + 374 data refs resolved). v2 harvest Workflow (43 agents) on the 591 small still-stub (nins 8-40) + a **gap-fill agent** for 6 dropped-by-connection-failure targets (R: the retry-wave misses truncated-non-null results β†’ now a MANDATORY cookbook post-step). Gate: **306 verified** (1554β†’1248 stubs). Propagation hit a struct-redefinition abort (agents named structs with colliding generic names `struct S`/`struct vec` inline) β†’ broadened `dedup_propagate.py` to skip any struct/union-touching body (34 skip) β†’ **281 propagated fleet-wide**, all 134 byte-identical. **REAL 105,764 β†’ 143,322; dedup 795 β†’ 1076 groups (0 failed); fleet 42.14%.** R22 clean check-all running pre-commit. NEXT: commit, then T6g medium band (293) + the struct-using-fns shared-types-header follow-up. - 2026-06-16 β€” **NEW SESSION (resume T6).** Read full load order + cookbook + SETUP Β§5.4. Drew: Ultracode ON (R27 toggle landed), build task list (R28: tasks #1-7). **T6a done** β€” built `tools/gen_harvest_targets.py` (callee-sig-aware manifest; Β§14b wall-breaker). Found+fixed a resolver bug (macro-body split artifact β†’ 0/640 sigs extracted; line-by-line fix β†’ 479 defined + 376 extern-declared resolved on the small band) AND added extern-declaration harvesting (a stub callee already extern-declared elsewhere must reuse that sig β€” caught by the func_80150BA4 pilot, void-vs-s32). 3 pilots gated: func_8012A0E0 βœ“, func_80150BA4 βœ“, func_8017AE08 = T6D-WIDEN (narrow s16 return forces sll/sra the target lacks β†’ widen the def, byte-identical). **T6b** Workflow (44 agents) launched on `.run/t6_small.json`. Drafts β†’ `.run/drafts-T6/`; gate = `harvest_verify --binary ov_SC01_077 --good-sha d19c9580…`. -- 2026-06-17 β€” **T6 pass-1 (small band) BANKED β€” fleet 25.38% β†’ 30.48% (+5.10).** The callee-sig-aware manifest (`gen_harvest_targets.py`) gave **60-67% gate yield** on the call-heavy residual (vs Β§14b naive 16%) by pre-resolving every callee's EXACT sig (defined bodies + extern decls + inline defs). Despite SERVER-SIDE API rate limiting that stalled the draft Workflow at ~246/616 (stopped it deliberately), the incremental gateβ†’propagate loop (deterministic, throttle-immune) banked **142 functions in ov_SC01_077** (1716β†’1574 stubs) β†’ **~132 propagated fleet-wide** (134 overlays each, every round byte-gated). **REAL 85,651 β†’ 103,217; dedup 644 β†’ 776 groups (0 failed).** Cookbook Β§14c written (the wall-breaker + 4 conflict flavors + the `git checkout` hazard + the rate-limit-resilient loop). **Committed `commit:0109`** (R22 136/136 clean). Then **T6d deterministic recovery** (no API): new `tools/canon_draft_decls.py` rewrites each quarantined draft's decls to the banked-consistent set (byte-gate = safety net) β†’ **+19 more** recovered + propagated (of the 90 match_one-MATCH-but-conflicting; the other ~70 need definition-WIDENING Β§14c(d) or true data-type resolution β€” next pass). **Fleet β†’ 31.22% (+5.84 session); REAL substantive 85,651 β†’ 105,764; dedup 644 β†’ 795 groups (0 failed); 162 fns banked in ov_SC01_077 (1716β†’1554 stubs).** (Correction: commit:0110's message said "1535 stubs" β€” arithmetic slip conflating the 19 fleet-propagated with stub reduction; on-disk truth is 1554, verified post-crash. Fleet % is authoritative from make report.) Residual for next session: (a) narrow-return-widening pass (Β§14c(d), recovers the ~70); (b) the data-symbol canonical-decls structural fix; (c) the medium band (430, un-started); (d) the 54 genuine instruction-misses β†’ permuter/Β§3a. R22 #2 running pre-commit-of-the-+19. +- 2026-06-17 β€” **T6 pass-1 (small band) BANKED β€” fleet 25.38% β†’ 30.48% (+5.10).** The callee-sig-aware manifest (`gen_harvest_targets.py`) gave **60-67% gate yield** on the call-heavy residual (vs Β§14b naive 16%) by pre-resolving every callee's EXACT sig (defined bodies + extern decls + inline defs). Despite SERVER-SIDE API rate limiting that stalled the draft Workflow at ~246/616 (stopped it deliberately), the incremental gateβ†’propagate loop (deterministic, throttle-immune) banked **142 functions in ov_SC01_077** (1716β†’1574 stubs) β†’ **~132 propagated fleet-wide** (134 overlays each, every round byte-gated). **REAL 85,651 β†’ 103,217; dedup 644 β†’ 776 groups (0 failed).** Cookbook Β§14c written (the wall-breaker + 4 conflict flavors + the `git checkout` hazard + the rate-limit-resilient loop). **Committed `ef1cf9f05`** (R22 136/136 clean). Then **T6d deterministic recovery** (no API): new `tools/canon_draft_decls.py` rewrites each quarantined draft's decls to the banked-consistent set (byte-gate = safety net) β†’ **+19 more** recovered + propagated (of the 90 match_one-MATCH-but-conflicting; the other ~70 need definition-WIDENING Β§14c(d) or true data-type resolution β€” next pass). **Fleet β†’ 31.22% (+5.84 session); REAL substantive 85,651 β†’ 105,764; dedup 644 β†’ 795 groups (0 failed); 162 fns banked in ov_SC01_077 (1716β†’1554 stubs).** (Correction: 1d94f9ec9's message said "1535 stubs" β€” arithmetic slip conflating the 19 fleet-propagated with stub reduction; on-disk truth is 1554, verified post-crash. Fleet % is authoritative from make report.) Residual for next session: (a) narrow-return-widening pass (Β§14c(d), recovers the ~70); (b) the data-symbol canonical-decls structural fix; (c) the medium band (430, un-started); (d) the 54 genuine instruction-misses β†’ permuter/Β§3a. R22 #2 running pre-commit-of-the-+19. - 2026-06-16 β€” Session start: read load order (PROJECT_CONTEXT + all 14 PhaseEnds, no prior CURRENT_PHASE). Drew: skip Phase 14, do Phase 15, Max effort, plan mode. Verified ground truth (overlay count, dup pairs, cross-report, per-overlay counts) directly, correcting several sub-agent overclaims (R14). Plan approved (gate 1). Task list created (R28). Starting T0. -- 2026-06-16 β€” **T0 done** (commit:0101): Phase-14 deferral propagated through gen2-roadmap (additive, H5). +- 2026-06-16 β€” **T0 done** (324ad1c3a): Phase-14 deferral propagated through gen2-roadmap (additive, H5). - 2026-06-16 β€” **T1 done**: onboarded wave-1 = ov_{SC01_000, SC01_001, SC02_000, SC02_003, SC03_002, SC03_006, SC04_000, SC04_018, SC04_019, SC05_000, SC06_000, SC07_000} (all byte-identical at 100% INCLUDE_ASM in ~50s; dup pairs SC02_000≑003=5ece4bca, SC04_018≑019=fe9b413f). Fleet `make check-all` = **18/18 passed**. Position-lock risk retired across all 7 areas β€” no anomalies. Next: T2 (dedup_propagate.py). - 2026-06-16 β€” **KEY FINDING (reshapes T5):** of `ov_SC01_077`'s 785 matched signed functions, **577 are h_exact-identical across ALL 134 overlays** (2.19 MB collapsible) β€” already matched, just need propagating (free credit, no harvest). 204 are 077-unique. So T5 has two parts: (a) bulk-propagate these 577 already-matched shared funcs fleet-wide (mechanical, after T3); (b) Ultracode-harvest the still-UNMATCHED shared core (the big ex0–ex50 giants/mediums, mostly unmatched even in 077). - 2026-06-16 β€” **T5(b) pass 2 (leaf-first) done**: identified 52 pure-LEAF unmatched-shared funcs (no jal/%hi/%lo β†’ match_one is an exact gate); 5-agent Workflow β†’ **36/52 verified (69%)** in ov_SC01_077 β†’ **34 propagated** fleet-wide (644 groups, 0 failed). Fleet 24.05% β†’ **25.38%** (REAL 85,651). R22 clean-verify running pre-commit. **Stopping point here (Drew): no PhaseEnd; T6 + T7 remain. Fresh session resumes β€” see RESUME HANDOFF below.** diff --git a/phase-ends/logs/Phase16.md b/phase-ends/logs/Phase16.md index b615518afc..d3eb5b94af 100644 --- a/phase-ends/logs/Phase16.md +++ b/phase-ends/logs/Phase16.md @@ -44,12 +44,12 @@ - **Pending fixes for next gate:** (1) add `NULL` to common.h (recovers ~58); (2) re-include recovered CC1-fails; (3) try `--stack-structs` for sp* cases. ### Yield reality + overnight test (2026-06-18 late Thu) β€” the go/no-go crux -- **NULL fix DONE** (byte-neutral, committed commit:0124): recovers **54/106** CC1-fails. Compiling drafts now 341/393. +- **NULL fix DONE** (byte-neutral, committed c8c9fd20c): recovers **54/106** CC1-fails. Compiling drafts now 341/393. - **Known-answer WHOLE-BINARY capability (the honest number):** m2c+sig_unify = **4/16 = 25%** on KNOWN-matchable fns (match_one's 9/16 over-counts β€” masks relocations). Unmatched hard tail β‰ˆ **1%** (the 964 are the residual Phase-15 couldn't crack β€” hard by selection). - **THE KEY UNKNOWN = the permuter close-rate on near-misses.** One 120s test didn't close (out-of-search-space). Built `tools/p16_permute.py` (M2C_FIELDβ†’cast expander + permuter setup/run/parse). **Overnight test RUNNING:** macro+sig_unify+NULL full gate (banks direct matches) β†’ then 40 near-misses Γ— 7min permuter each (~4.5h) β†’ `.run/permute_overnight.log`. **Friday AM: read the close-rate = the 5-day-run go/no-go.** - **Honest framing (P9):** the "85-90% ceiling" was theoretical. Practical reality: modest-but-real yield. Even 10% of 964 Γ— 134 propagation β‰ˆ +3-4% fleet β€” worth the CHEAP compute run IF the permuter adds meaningful lift. The weekend tests (small tonight β†’ overnight β†’ analyze Fri β†’ trial Sat β†’ go Sun) resolve it β€” exactly the de-risk Drew wanted. - **S5 driver/supervisor/safe-exit BUILT + committed** (untested end-to-end β€” test Fri after the yield read). S1 struct_infer RESOLVED as not-needed-for-matching (struct typing byte-neutral vs macros). -- Commits this session: commit:0122 (S0+common.h) β†’ commit:0123 (known-answer 67%) β†’ commit:0124 (S5+NULL+sig_unify). Working .c has ~5 banked leaf matches (uncommitted; the running gate will add more). +- Commits this session: 7141e9752 (S0+common.h) β†’ 381b0652a (known-answer 67%) β†’ c8c9fd20c (S5+NULL+sig_unify). Working .c has ~5 banked leaf matches (uncommitted; the running gate will add more). ## New tools/files `tools/struct_infer.py`, `tools/m2c_ctx.py`, `src/shared/engine_struct.h` (#ifdef M2C skeleton / #else real layout), `tools/auto_driver.py`, `tools/auto_supervisor.sh`, opt `src/shared/engine_decls.h`. Reused: sig_unify, match_one, harvest_verify, dedup_propagate (patch compiles_standalone += struct header), decompile.py --context, permuter/compile.sh, progress.py --fleet, build_engine_types.py (additive). m2c context MUST be flat directive-free C (rejects #include/#ifndef). diff --git a/phase-ends/logs/Phase17.md b/phase-ends/logs/Phase17.md index b93e14d6e7..53ff0cd4f7 100644 --- a/phase-ends/logs/Phase17.md +++ b/phase-ends/logs/Phase17.md @@ -1,7 +1,7 @@ # CURRENT PHASE β€” Phase 17: Raise the harness ceiling to "eureka level", then gate the compute run **Generation:** Gen2 (9th phase) Β· **Arc:** 8β†’9β†’10β†’11β†’12β†’13β†’15β†’16β†’**17** (14 deferred to Gen3+) -**Plan approved (gate 1):** 2026-06-19 (Drew) Β· **Status:** T1–T6 DONE & committed (`commit:0129`β†’`commit:0133`). +**Plan approved (gate 1):** 2026-06-19 (Drew) Β· **Status:** T1–T6 DONE & committed (`edb0360d3`β†’`40f2bc8bd`). The "raise the ceiling" thesis FAILED across all 5 avenues β†’ **PIVOT to guided hand-matching** (see START HERE). T7 (go/no-go + PhaseEnd) is reframed: NO-GO on brute force, GO on hand-matching pending the demo. @@ -10,7 +10,7 @@ HERE). T7 (go/no-go + PhaseEnd) is reframed: NO-GO on brute force, GO on hand-ma ## 🚩 START HERE (fresh session 4, after session 3) β€” BUILD THE CANONICAL-SIG LAYER, then scale the wave **Guided hand-matching is GO and proven at scale.** Demo (session 2) = 4/5; session 3 = the calibration -Ultracode wave (+0.47% β†’ fleet **55.51%**, 136/136 byte-identical, committed `commit:0136`/`commit:0137`/`commit:0138`). +Ultracode wave (+0.47% β†’ fleet **55.51%**, 136/136 byte-identical, committed `28c23f4be`/`0dd9bf6ba`/`d369da816`). **The bottleneck is now identified and singular** β€” read `docs/hand-matching-process.md` Β§7 first. **THE FINDING:** in the calibration wave the agents hit **60% match_one MATCH but only 33% whole-binary**, and @@ -241,7 +241,7 @@ types β€” 67% reach incl. the giants) β†’ T6 (validate the 146 permuter candidat build the canonical-widening pass + harvest β†’ document fully + automate.** Tasks 5/6/7 created. **NEXT: sample 2 more, then the giant.** Effort: Max (hand-matching, Tier-1). - 2026-06-19 (session 3, normal Maxβ†’Ultracode): **TASK 1 (sample 2 more) DONE + DECISION + CALIBRATION WAVE DONE.** - - **Task 1:** banked **func_8015F9A4** (fnptr, Γ—1, CLEAN) `commit:0136`; 3 struct near-misses had 100%-correct + - **Task 1:** banked **func_8015F9A4** (fnptr, Γ—1, CLEAN) `28c23f4be`; 3 struct near-misses had 100%-correct bodies but gcc-quirk tails (Β§10 remat, phantom -O2 frame, v0/v1 coalescing β€” even the permuter couldn't close relocs=0 func_8014C308 in 12min). New idioms β†’ hand-matching-process.md Β§2 (mask-local; shared-ret0 goto). **Selection lesson:** low-m2c-mismatch struct = the quirk tail; clean closes = fnptr/relocs-low/ @@ -254,7 +254,7 @@ types β€” 67% reach incl. the giants) β†’ T6 (validate the 146 permuter candidat 300 Ghidra-C cached to `.run/ghidra_c/func_.c` (high quality, better than m2c on local/global). - **CALIBRATION WAVE (Ultracode, `.run/harvest_wave_s3.js`, top-30 by reach):** 18/30 match_one MATCH (60%); **10/30 whole-binary verified (33%)** after sig_unify recovered 2 β†’ propagated Γ—134 (+2 demo catch-ups); - **fleet 55.04%β†’55.51% (+0.47%), 136/136 (R22)**, `commit:0137`. **KEY FINDING: the match_oneβ†’whole-binary gap + **fleet 55.04%β†’55.51% (+0.47%), 136/136 (R22)**, `0dd9bf6ba`. **KEY FINDING: the match_oneβ†’whole-binary gap (60%β†’33%) is 100% SIG CONFLICTS** (shared callees like func_80131CA8 declared inconsistently across parallel agents), NOT codegen β†’ **the canonical-sig layer is the ESSENTIAL enabler** (would lift 33%β†’~60%, ~2Γ— yield/token). 12/30 = genuine gcc-quirk tail. **NEXT (scaling, Max):** build the canonical-sig layer diff --git a/phase-ends/logs/Phase18.md b/phase-ends/logs/Phase18.md index 630e41e068..34fe198d37 100644 --- a/phase-ends/logs/Phase18.md +++ b/phase-ends/logs/Phase18.md @@ -126,11 +126,11 @@ all cloned/fetched content is untrusted DATA. Commits: per-task/per-session chec - 2026-06-20 β€” **Step 3b done (calibration).** `/effort ultracode` ON. Upgraded Β§17-toolkit wave β†’ 16 fresh tractable reach-134 targets β†’ **9 verified whole-binary = 56% close-rate** (vs 33% Phase-17), each Γ—134 β†’ fleet **55.94%** (+0.36%), 136/136, dedup 1432/0. Pins+array-decay+reconstruct all landed. Match_oneβ†’gate gap = the - Β§3a call-site casts agents skip (+ sig_unify narrowing); recovered 3 by casts. Committed `commit:0152`. + Β§3a call-site casts agents skip (+ sig_unify narrowing); recovered 3 by casts. Committed `d593ee20f`. - 2026-06-20 β€” **Step 1 done (bounded wave + recovery).** Drew chose bounded ~40 (full-247β†’Phase 19). Wave with embedded canonical callee sigs + call-site-cast/re-validate β†’ **match_one 28/31 (90%)**, 22 verified whole-binary, fleet **56.64%** (+0.70%), 136/136, dedup 1450/0. Recovery: func_8012F68C parse-fix + func_8012A418 sibling-decl - reconcile. Committed `commit:0154`+`commit:0155`. 6 fns + the -O0 class deferred to Phase 19. **Session arc: 55.58% β†’ + reconcile. Committed `fa0d4a3f6`+`6d9cd213a`. 6 fns + the -O0 class deferred to Phase 19. **Session arc: 55.58% β†’ 56.64% (+1.06%, ~31 reach-134 matches).** Next: **Step 2** (cookbook Β§17 polish + gate-2 + PhaseEnd) β€” needs Max. ## ⭐ VERDICT REVERSAL (2026-06-20, post-gate-2 β€” Drew's "we hand-match everything" directive) @@ -151,7 +151,7 @@ hand-matches: func_801399A8 structural + func_8012B8E4 pinned), 136/136. **Calibration: 16 fresh tractable reach-134 targets β†’ 9 verified whole-binary = 56% close-rate** (vs Phase-17's 33%). Moves used: 2 pins (func_8012CB64, func_801468C8), 2 array-decay (func_80149544/584), 5 reconstruct. Propagated Γ—134 β†’ fleet **55.58% β†’ 55.94%** (+0.36%), 136/136 byte-identical, dedup 1432 validated / 0 failed. - Committed `commit:0152`. **KEY FINDING (R16 β†’ feeds Step 1):** the match_oneβ†’gate gap (12 match_one MATCH β†’ 6 gate, + Committed `d593ee20f`. **KEY FINDING (R16 β†’ feeds Step 1):** the match_oneβ†’gate gap (12 match_one MATCH β†’ 6 gate, recovered to 9) is dominated by the **Β§3a call-site CASTS the agents skip** (arity-cast when a callee is called with more args than its canonical extern; fn-ptr cast when a void-canonical callee's $v0 is used) + **sig_unify narrowing the extern to canonical** turning a K&R no-proto into a hard conflict. Fix recovered 3 by codegen-neutral @@ -166,7 +166,7 @@ hand-matches: func_801399A8 structural + func_8012B8E4 pinned), 136/136. +call-site-cast/re-validate): **match_one 28/31 (90%)**, whole-binary **22 verified** (18 propagated Γ—134 + 4 local REAL: func_80168664/AD0C/BA10 membership<134, func_8012A418 local-type body). Moves: 7 pins, 5 barrier, 1 array-decay, 2 call-site-cast, the rest reconstruct. **Fleet 55.94% β†’ 56.64%** (+0.70%), 136/136, dedup 1450/0. - Committed `commit:0154` (20) + `commit:0155` (recovery +2). **Deferred to Phase 19** (documented): 3 TU-integration cases + Committed `fa0d4a3f6` (20) + `6d9cd213a` (recovery +2). **Deferred to Phase 19** (documented): 3 TU-integration cases (func_80147514/8017209C/80168F40 β€” standalone-MATCH, implicit-int caller plumbing); 3 codegen DIFFs (func_80131CA8/80150528/8014E5B4); the **per-file -O0 class** (func_8013C360 + ~17 siblings β€” agent's C is byte-exact at -O0; needs an -O0 split file like src/boot.c β†’ ~18 fns Γ—134, HIGH ROI); 2 genuine residuals @@ -225,7 +225,7 @@ single-$s0, i.e. reconstruction not pins; true $s0/$s1 swaps are rarer), `.run/g `tools/ghidra_scripts/DecompileFunctions.java` (headless, no /mcp) if a fn isn't cached. **Fleet baseline (this session's close):** byte-identical **191,217 / 344,010 = 55.58%**, 136/136, ~1424 dedup -groups; 2 reach-134 hand-matches banked (func_801399A8 + func_8012B8E4). Tree clean at `commit:0150`. +groups; 2 reach-134 hand-matches banked (func_801399A8 + func_8012B8E4). Tree clean at `23666cb28`. **After Step 3b (calibration) β†’ Step 1** (scale the wave on the circular tail + hand-match the residue, each Γ—134) **β†’ Step 2** (final Β§17 polish, gate-2 re-confirm with the wave's match-% delta, PhaseEnd_Phase18.md = diff --git a/phase-ends/logs/Phase19.md b/phase-ends/logs/Phase19.md index c274b7f08e..4e3c388c8d 100644 --- a/phase-ends/logs/Phase19.md +++ b/phase-ends/logs/Phase19.md @@ -26,7 +26,7 @@ ## Progress log *(append one line per task as completed)* - 2026-06-20 β€” Phase started; plan approved (gate 1); task list built (R28); CURRENT_PHASE.md created. Beginning T1. -- 2026-06-20 β€” T1: built + proved the 3-object -O0 split infra; matched 6/16 -O0 fns (ov_SC01_077 d19c9580). Two consults with Drew on T1 scope: (1) full -O0 rollout chosen, then (2) on discovering the remaining fns are research-grade (the %lo quirk), Drew chose "bank 6 + infra, defer rest to Phase 20." Fleet unchanged (the 6 are ov_SC01_077-local until rollout). Verified main/resident/ov_SC01_077/+2 byte-identical. Committed (commit:0158 + cookbook Β§18 commit:0159). β†’ T2. +- 2026-06-20 β€” T1: built + proved the 3-object -O0 split infra; matched 6/16 -O0 fns (ov_SC01_077 d19c9580). Two consults with Drew on T1 scope: (1) full -O0 rollout chosen, then (2) on discovering the remaining fns are research-grade (the %lo quirk), Drew chose "bank 6 + infra, defer rest to Phase 20." Fleet unchanged (the 6 are ov_SC01_077-local until rollout). Verified main/resident/ov_SC01_077/+2 byte-identical. Committed (be33b887f + cookbook Β§18 c8e925842). β†’ T2. - 2026-06-20 β€” T2 scoping finding (R14): examined Phase-18's actual near-misses (.run/drafts-p18s1-recover*/) β€” the recoveries were mostly **def-signature canonicalization** (retβ†’void, paramsβ†’void*/int), which **`sig_unify` already does**, + a data-type reconcile (`struct Q16`β†’`BigCopy`) + a whitespace fix. The Β§17a "call-site casts = #1 miss" did NOT show up in these. So T2 is lighter than planned: confirm sig_unify is wired draftβ†’`sig_unify`β†’gate, add the implicit-int **propagate-first** helper (3 fns: func_80147514/80168F40/8017209C β†’ def into engine_core.h, gate after) + a small data-type-reconcile, and treat call-site-casts as a thin add only if T3's real near-misses need it. **SESSION CHECKPOINT here (Drew) β€” resume fresh.** - 2026-06-20 β€” **T2 DONE.** Resumed fresh, rebuilt task list (R28), /effort max. Reproduced the 3 deferred near-misses through the gate (R14) β†’ the "implicit-int / propagate-first" premise was WRONG: real classes are (a) resident-callee link-miss β†’ new `tools/canon_resident_calls.py` (func_8017209C βœ“), (b) shared-caller arity conflict β†’ caller-extern no-proto fix (func_80147514 + func_80168F40 βœ“). func_8012A418 isn't a stub in ov_SC01_077 (not a target; already Phase-18-reconciled). **3 matches banked**, 2 engine_core.h no-proto lines, **make check-all 136/136 byte-identical** (full extract + R22), dedup 1450/0, fleet 56.64% (194,848 β€” the 3 are ov_SC01_077-local, Γ—134 propagation rides T3/Phase-20: func_80147514/F40 inline named structs need engine_types.h lifting, func_8017209C propagatable). Cookbook Β§17a corrected, SETUP inventory updated. Pipeline now `draft β†’ canon_resident_calls β†’ sig_unify β†’ harvest_verify`. β†’ **T3 (the +3-5% lever).** @@ -46,7 +46,7 @@ 2. ~~T2~~ **DONE** (committed) β€” `canon_resident_calls.py` + the no-proto caller-extern fix; 3 matches banked; check-all 136/136. Recovery pipeline = `draft β†’ canon_resident_calls β†’ sig_unify β†’ harvest_verify`. 3. **T3 (the main lever, +3-5%):** regen Ghidra-C for fresh tractable reach-134 fns (`DecompileFunctions.java`, headless β€” MCP stopped, R23/R29); `gen_harvest_targets.py` manifest; then **PROMPT Drew for `/effort ultracode` (R26/R27) and WAIT** before launching the wave. Run 2-3 batches of 50 (recoverβ†’gateβ†’`dedup_propagate` Γ—134β†’checkpointβ†’improve between batches). 4. Then T4 (conditional) / PhaseEnd. -- State after T2: commits commit:0158, commit:0159, commit:0160 (T1) + the T2 commit landed; fleet 56.64% (T1's 6 + T2's 3 are ov_SC01_077-local, not yet fleet-counted β€” they bank fleet-% only after the Γ—134 rollout). Next = T3. +- State after T2: commits be33b887f, c8e925842, dce768a26 (T1) + the T2 commit landed; fleet 56.64% (T1's 6 + T2's 3 are ov_SC01_077-local, not yet fleet-counted β€” they bank fleet-% only after the Γ—134 rollout). Next = T3. ## Blockers *(none)* diff --git a/phase-ends/logs/Phase21.md b/phase-ends/logs/Phase21.md index 5b3b9dc32b..96c6be4cbd 100644 --- a/phase-ends/logs/Phase21.md +++ b/phase-ends/logs/Phase21.md @@ -15,7 +15,7 @@ **Fleet 63.18%** (217,332/344,010, +0.01% this session β€” reach-1 is Γ—1, % negligible BY DESIGN; value = ov_SC01_077 completeness + idiom-mining) Β· 136/136 byte-identical Β· 0 NON_MATCHING. -**β˜… ARC:** reach-1 wave-1 (69-86 ins) **+10 Γ—1** (`commit:0289`) Β· distill **+1 idiom** (chained-store-fanout `*a=*b=*c=v;` from func_80143D28, `commit:0290`) Β· wave-2 (76-101) **+6 Γ—1** (`commit:0291`). Self-MATCHβ†’bank gap stark (21β†’10, 21β†’6 β€” the whole-binary gate is the honest arbiter; the rest = loose-typing/regalloc walls). **Yield 42%β†’25%β†’falling as the band climbs** (EASY reach-1 fuel consumed; remaining reach-1 is medium-large). +**β˜… ARC:** reach-1 wave-1 (69-86 ins) **+10 Γ—1** (`3d9e8f0a9`) Β· distill **+1 idiom** (chained-store-fanout `*a=*b=*c=v;` from func_80143D28, `2b6931696`) Β· wave-2 (76-101) **+6 Γ—1** (`ac7f2dcdd`). Self-MATCHβ†’bank gap stark (21β†’10, 21β†’6 β€” the whole-binary gate is the honest arbiter; the rest = loose-typing/regalloc walls). **Yield 42%β†’25%β†’falling as the band climbs** (EASY reach-1 fuel consumed; remaining reach-1 is medium-large). **β˜… GIANTS PIVOT (Drew's gate-2 AskUserQuestion):** reach-1's cheap vein thinned β†’ pivot waves to the reach-134 GIANTS as **backlog-fuel** (NOT for %): workers get them structurally close + log ranked near-misses for hand-finish (the Phase-21 backlog's purpose). 14 stubbed giants cached; **6 fresh tractable (167-254 ins) batched first** (func_80163C2C/801571C4/80148094/80156B74/8014EE14/8015126C); the 770-ins monster func_80144B9C deferred to a deep session. **CAVEAT (cont.7d, unfixed):** gate_stage's canon/cast/sig_unify can REGRESS giant near-miss closeness β†’ log the WORKER's self-reported closeness (true source) + raw draft to the backlog, not the post-transform value. @@ -217,7 +217,7 @@ token-heavy (fresh-session work, Drew's ROI greenlight per R26/R27/Β§20):** silently DROPPED every `_a`/`_o0` split-file draft (0 unified vs 21 with the flag) β†’ split-file near-misses never got the def-side arity-adopt recovery. Now `--src-file src/ov_SC01_077/ov_SC01_077_a.c` reads the split file. `gate_stage` passes it to BOTH `cast_call_sites` and `sig_unify` in `--src-file` mode. β†’ banked - func_8012F568 Γ—134 from the `_a` close=0 backlog (commit:0277). + func_8012F568 Γ—134 from the `_a` close=0 backlog (e5ae5958d). 2. **`gate_stage.py` is now CANON-FIRST two-stage (Β§19 design folded into the shared gate).** It ran canonβ†’castβ†’sig_unify in ONE pass; sig_unify REGRESSED the func_80128ED8 crack (rewrote its byte-correct def `s32 f(s32,s32*)` β†’ a banked caller's `void* f(void*,void*)` β†’ gate reject). Fix: **stage 1** canon+cast β†’ @@ -240,7 +240,7 @@ count is OPTIMISTIC; the `schedule` class is NOT a confirmed Γ—134 vein (its 2 c coalescing crack + 1 Β§10 wall). **Before a token-heavy wave, probe Γ—134-shareability on the cracked exemplar** (`dedup_propagate --addr `), don't trust the h_exact count. -**β˜… SESSION BANKS:** func_8012F568 Γ—134 (commit:0277, `_a` recovery) + func_80128ED8 Γ—1 (commit:0278, schedule crack). +**β˜… SESSION BANKS:** func_8012F568 Γ—134 (e5ae5958d, `_a` recovery) + func_80128ED8 Γ—1 (1ca0faef2, schedule crack). The MAIN-region close=0 recovery banked 0/40 (the Β§20 def-side wall, as expected β€” sig_unify already tried on them). **β˜… NEXT β€” the schedule WAVE (cont.5 step 4) is NOT yet justified (ROI-gated, Β§20 "don't wave a wall"):** the @@ -306,26 +306,26 @@ the first idiom wall.** HEAD = the commit below. Grinder still running (token-free, banked 0 β€” the permuter-resistant hard tail; don't stop). Local, not pushed (R6). **β˜… THE RESULT β€” `_a` is a Γ—134 lever (probe-proven):** -- Wave: 24 xHigh agents over `wave_targets.py --pool tractable --region a` (61–129 ins) β†’ **16/24 self-MATCH, 11 byte-banked** in `ov_SC01_077_a.c` (commit `commit:0266`). All 11 are reach-134 (members=134). +- Wave: 24 xHigh agents over `wave_targets.py --pool tractable --region a` (61–129 ins) β†’ **16/24 self-MATCH, 11 byte-banked** in `ov_SC01_077_a.c` (commit `19c163d3b`). All 11 are reach-134 (members=134). - The gate reported **`propagated: 0`** β€” a TOOLING artifact, NOT the Β§24 wall. Two stacked bugs: 1. **`dedup_propagate` batch propagation is ALL-OR-NOTHING** (lines 456–464): one cross-overlay-incompatible fn reverts the whole batch. 2. The poison was **`func_8013C360`** β€” the pre-existing **-O0 overlay-local** straggler (Β§18/Β§20: masked h_exact falsely reports reach-134, but its real bytes reference per-overlay data β†’ fails the cross-overlay byte-gate). Swept into `--auto-from`, it reverted all 10 clean matches. 3. **`gate_stage`'s `sh()` swallows dedup_propagate's non-zero exit** (no return-code check) β†’ reported 0 with no error surfaced. - **Per-function probe (each vs ov_SC01_000, gate.lock held): 10/11 PASS, 1 FAIL** (the FAIL = func_8013C360 ONLY). -- **Realized the gain:** propagated the 10 clean fns Γ—134 (`dedup_propagate --addr <10> --source-overlay ov_SC01_077 --min-reach 2`, straggler excluded) β†’ `[ OK ] 134 overlays byte-identical`, 10 new dedup groups β†’ **commit `commit:0267`, fleet 62.31β†’62.70%**. +- **Realized the gain:** propagated the 10 clean fns Γ—134 (`dedup_propagate --addr <10> --source-overlay ov_SC01_077 --min-reach 2`, straggler excluded) β†’ `[ OK ] 134 overlays byte-identical`, 10 new dedup groups β†’ **commit `1e3410ffc`, fleet 62.31β†’62.70%**. **β˜… THE 10 PROPAGATED Γ—134:** `0x80128DB4 0x801300F4 0x80136D08 0x80130AF0 0x8012944C 0x8012D4B4 0x80137030 0x80132288 0x8012DBD0 0x8013339C`. **Γ—1 (local-types-skip β†’ needs the Β§20 type-lift):** func_8012EA90 (banked in `_a.c` only). **Excluded straggler:** func_8013C360 (-O0 overlay-local β€” keep OUT of cross-overlay propagation). **β˜… ENABLER FIX (committed this session):** `worker_wave.js` now derives each agent's `match_one` self-check `--asm-subdir` from `t.asm` (was hardcoded to the MAIN subdir β†’ every `_a` agent self-check crashed on a missing `.s` β†’ blind drafting). THIS produced the high close rate (16/24); without it the `_a` wave drafts blind. **β˜… FIXES DONE + VALIDATED (this session) β€” the `_a` pipeline is now HANDS-FREE:** -1. **`gate_stage` surfaces propagation failures** (`commit:0269`): `prop_error` + `.run/auto/last_propagate_error.log` β€” no more silent swallow (it caught wave-2's failure live). -2. **`dedup_propagate` excludes -O0 overlay-local fns from `--auto-from`** (`commit:0269`): `*_o0.c` defs (incl. func_8013C360) never cross-overlay-propagate (find_site-detected; --addr still forces). +1. **`gate_stage` surfaces propagation failures** (`04c5c9b47`): `prop_error` + `.run/auto/last_propagate_error.log` β€” no more silent swallow (it caught wave-2's failure live). +2. **`dedup_propagate` excludes -O0 overlay-local fns from `--auto-from`** (`04c5c9b47`): `*_o0.c` defs (incl. func_8013C360) never cross-overlay-propagate (find_site-detected; --addr still forces). 3. **`dedup_propagate` DROP-STRAGGLER retry** (refactor): on a byte-gate fail it isolates the culprit(s) for the failing overlay (per-fn trial), drops them (kept Γ—1), and retries the survivors β€” handles BOTH straggler classes (-O0 byte-mismatch + cross-overlay loose-typing compile-error) failing ANY overlay. Byte-gate stays sole arbiter; the plan strictly shrinks so it always terminates. -**β˜… WAVE-2 (validated the fixes end-to-end):** 24 fresh `_a` targets β†’ 13 self-MATCH β†’ gate banked **6** (the `_a` path SKIPS sig_unify, so def-side near-misses don't auto-recover β†’ lower bank rate than main). Drop-straggler `--auto-from` then auto-dropped 2 loose-typing stragglers (func_8012E5CC/func_8012C750 β€” compile-fail ov_SC01_000, kept Γ—1) + propagated **3 clean Γ—134** (`commit:0271`). The 11 near-misses are permuter-class schedule/regalloc walls (grinder fuel; 7 were last wave's re-attempts, still walls). +**β˜… WAVE-2 (validated the fixes end-to-end):** 24 fresh `_a` targets β†’ 13 self-MATCH β†’ gate banked **6** (the `_a` path SKIPS sig_unify, so def-side near-misses don't auto-recover β†’ lower bank rate than main). Drop-straggler `--auto-from` then auto-dropped 2 loose-typing stragglers (func_8012E5CC/func_8012C750 β€” compile-fail ov_SC01_000, kept Γ—1) + propagated **3 clean Γ—134** (`05e98070b`). The 11 near-misses are permuter-class schedule/regalloc walls (grinder fuel; 7 were last wave's re-attempts, still walls). -**β˜… SESSION ARC: 62.31% β†’ 62.82% (+0.51%):** wave-1 +10 Γ—134 (`commit:0267`) Β· wave-2 +6 Γ—1 (`commit:0270`) +3 Γ—134 (`commit:0271`). 136/136 byte-identical, 0 NON_MATCHING throughout. +**β˜… SESSION ARC: 62.31% β†’ 62.82% (+0.51%):** wave-1 +10 Γ—134 (`1e3410ffc`) Β· wave-2 +6 Γ—1 (`881e462e0`) +3 Γ—134 (`05e98070b`). 136/136 byte-identical, 0 NON_MATCHING throughout. **β˜… NEXT β€” the `_a` scaling loop is now hands-free (~55 fresh `_a` reach-134 fns remain):** `wave_targets --pool tractable --region a` β†’ worker_wave β†’ `gate_stage --src-file --commit` (auto-drops stragglers + auto-propagates clean Γ—134). ~+0.2–0.4% fleet/wave. **Improvement idea:** a def-side recovery that doesn't drop `_a` drafts would lift the `_a` bank rate (sig_unify-skip is the current cap). **Pending Drew's direction** (continue scaling vs checkpoint/close). @@ -396,7 +396,7 @@ correctness either way (a wrong/conflicting draft reverts, never banks). Cookboo > near-miss; the rest are stale-draft RE-DRAFT work. A diag self-correction (R14) β€” the byte-gate was right. **Fleet 62.31%** (214,358/344,010) Β· 136/136 byte-identical Β· 0 NON_MATCHING Β· banked_total 288 Β· waves 34. -**No new banks this turn** (func_80153E00 Γ—134 was the prior turn). HEAD `commit:0261`+ (docs). Grinder STOPPED. +**No new banks this turn** (func_80153E00 Γ—134 was the prior turn). HEAD `72a5da614`+ (docs). Grinder STOPPED. **β˜… THE GIANT VERDICT (byte-proven, P9/R14):** the 14 MAIN-file giants' prior-wave drafts are **STALE + INCOMPLETE** vs the grown `engine_core.h` β€” `conflicting types` (draft `u8 D_80126B58` vs canonical `s32`; @@ -432,7 +432,7 @@ Recommendation: (b) for steady % now, with (a) as a focused deep session for the > corrected by cont. 2 (most giant drafts are stale+incomplete β†’ re-draft, not recover). **Fleet 62.31%** byte-identical (**214,358 / 344,010**, +134 vs the checkpoint) Β· 136/136 binaries byte-identical Β· 0 NON_MATCHING. -banked_total 288 Β· waves 34 Β· grinder STOPPED (`.run/auto/STOP` present). Committed locally (`commit:0260`), **not pushed** (R6). +banked_total 288 Β· waves 34 Β· grinder STOPPED (`.run/auto/STOP` present). Committed locally (`ccd61d652`), **not pushed** (R6). This session (Drew's `/loop`, one giants cycle): **banked `func_80153E00` Γ—134** (the 195-ins giant), fleet 62.27β†’62.31%. **β˜… THE CORRECTED GIANTS FINDING (R14, byte-proven β€” supersedes the FINAL HANDOFF "callee-declaration plumbing" claim):** @@ -453,7 +453,7 @@ instructions + bank Γ—134.** Full write-up: **cookbook Β§23**. **β˜… NEXT (fresh cycle) β€” diagnose the OTHER 4 giants the same way (drafts in `.run/drafts-wave-cn/`):** `func_8013339C` (schedule), `func_8012EC04` (GTE β€” verify on RAW bytes via objcopy, NOT objdump/match_one, idiom -`commit:0253`), `func_8012D098` (struct), `func_80129CF8` (struct; its note already flags `D_80126DB8` lh-vs-lw β€” likely the +`f555a441a`), `func_8012D098` (struct), `func_80129CF8` (struct; its note already flags `D_80126DB8` lh-vs-lw β€” likely the SAME scalar-data-cast class). For each: `cp .run/drafts-wave-cn/.c .run/dg/` β†’ `diag_funcdiff` β†’ fix the diffs β†’ `cp` to `.run/drafts-wave/` β†’ `orchestrator.py finish --drafts .run/drafts-wave --commit` (BACKGROUNDED + dangerouslyDisableSandbox). **Struct-class giants** (D_*-struct local typedefs) also need the type-lift @@ -483,9 +483,9 @@ The giants prove the BODIES are crackable; the wall is purely **callee-declarati **SECONDARY:** (a) more giant-scout waves to grow the body-correct Γ—134 backlog (only valuable once recovery banks them β€” the 28 giants are in `.run/fuel_manifest.json` class=GIANT; 5 body-banked, rest fresh/near); (b) the grinder (relaunch, token-free) for permuter-walls; (c) the reach-1 big-fn tail remains (Γ—1, low-ROI β€” skip). -**12 NEW COOKBOOK IDIOMS this session** (the durable knowledge): `commit:0225 commit:0227 commit:0230 commit:0232 commit:0235 commit:0237 commit:0240 commit:0243 commit:0245 commit:0247 commit:0249 commit:0253`. The last CRACKED the GTE-sqr "unproducible" false dead-end β€” **verify GTE/cop2-nop fns on RAW bytes (`objcopy -O binary --only-section=.text`), NOT objdump/match_one** (they elide zero-word runs β†’ false mismatch). `func_8012EC04` confirms a 2nd GTE fn matches this way. +**12 NEW COOKBOOK IDIOMS this session** (the durable knowledge): `bbfe27d09 478aeeee2 43d089ec6 c694c9d7a 279662bbe 1e5cc1b28 8e892ad49 934c007df d07c6edb0 28afb3c49 e8b1f8f25 f555a441a`. The last CRACKED the GTE-sqr "unproducible" false dead-end β€” **verify GTE/cop2-nop fns on RAW bytes (`objcopy -O binary --only-section=.text`), NOT objdump/match_one** (they elide zero-word runs β†’ false mismatch). `func_8012EC04` confirms a 2nd GTE fn matches this way. -**3 POOL-TOOLING FIXES this session:** `commit:0228` (plumbing_blocked scans ALL raw backlog records) Β· `commit:0239` (NEW reserved_walls skips β‰₯2Γ—-redrafted near-miss walls) Β· `commit:0257` (--class filters to still-unbanked genuine near-misses) β†’ ~149+ churners correctly skipped from worker waves. +**3 POOL-TOOLING FIXES this session:** `d09248361` (plumbing_blocked scans ALL raw backlog records) Β· `39164b7b6` (NEW reserved_walls skips β‰₯2Γ—-redrafted near-miss walls) Β· `90b94971c` (--class filters to still-unbanked genuine near-misses) β†’ ~149+ churners correctly skipped from worker waves. **RESUME COMMANDS (fresh session):** - **Grinder** (token-free, relaunch): `rm -f .run/auto/STOP && DRIVER=tools/grinder.py setsid nohup bash tools/auto_supervisor.sh --permute-secs 120 -j 14 >/dev/null 2>&1 &` (dangerouslyDisableSandbox). Stop: `bash tools/auto_stop.sh`. Monitor: `bash tools/auto_status.sh`. @@ -510,13 +510,13 @@ scheduler/regalloc walls). **Wave 30 = the PIVOT (Drew's call): worker β†’ `any- `tractable` pool never covered) is the live Γ—134 fuel. **GRINDER RUNNING** (token-free decomp-permuter on backlog close≀30 near-misses; `.run/auto/STOP` CLEARED per Drew's explicit authorization "run the grinder / permission to do whatever"; kill switch is now `bash tools/auto_stop.sh` / interrupt). **12 new cookbook idioms** distilled -(`commit:0225 commit:0227 commit:0230 commit:0232 commit:0235 commit:0237 commit:0240 commit:0243 commit:0245 commit:0247 commit:0249 commit:0253`); the last CRACKS +(`bbfe27d09 478aeeee2 43d089ec6 c694c9d7a 279662bbe 1e5cc1b28 8e892ad49 934c007df d07c6edb0 28afb3c49 e8b1f8f25 f555a441a`); the last CRACKS a false dead-end β€” the GTE-`sqr` cop2-nop family was wrongly recorded "unproducible" (objdump elides zero-word runs β†’ -false match_one miss; verify on RAW bytes via `objcopy`). **TWO pool-exclusion bugs FIXED** (`commit:0228` -`plumbing_blocked` scans ALL raw backlog records; `commit:0239` NEW `reserved_walls` skips β‰₯2Γ—-redrafted near-miss walls) +false match_one miss; verify on RAW bytes via `objcopy`). **TWO pool-exclusion bugs FIXED** (`d09248361` +`plumbing_blocked` scans ALL raw backlog records; `39164b7b6` NEW `reserved_walls` skips β‰₯2Γ—-redrafted near-miss walls) β†’ ~149+ churners skipped. **CURRENT:** orch_state `pool=any-reach134 waves=30`; worker continues reach-134 (fresh `any-reach134` thinning β†’ then `--mode auto`/`--class` to re-attempt reach-134 backlog walls with the 12 new idioms, -each Γ—134); grinder grinds alongside. NEXT cookbook fuel: the ~7-fn GTE-sqr family (idiom `commit:0253`). +each Γ—134); grinder grinds alongside. NEXT cookbook fuel: the ~7-fn GTE-sqr family (idiom `f555a441a`). **Fleet β‰ˆ 61.16% byte-identical** *(↑ 61.19% β€” see SESSION UPDATE above)* Β· 136/136 binaries byte-identical Β· 0 NON_MATCHING. **Nothing running** β€” grinder STOPPED (Drew; `.run/auto/STOP` present), no worker wave in flight. Paused at a @@ -527,7 +527,7 @@ clean, committed checkpoint (HEAD = the reach-1 handoff commit). Committed local + 1 grinder bank; **fleet 60.93% β†’ 61.16%**. Yield diminished 3β†’2β†’0β†’1: the reach-134 ≀150-ins cached fuel is now **confirmed walls** (Β§20 IV-combine / LICM-hoist / schedule + DEF-side loose-typing; o0 pool empty; the capped-7 = the Phase-16 loose-typing wall). Re-firing them is the poor-ROI anti-pattern (Drew agreed). -- **Guard committed (`commit:0219`):** worker drafters now write ONLY their draft `.c` β€” a wave-13 drafter had +- **Guard committed (`f13765817`):** worker drafters now write ONLY their draft `.c` β€” a wave-13 drafter had appended UNVERIFIED near-miss idioms to the cookbook directly (distill owns the cookbook). See "Open for Drew". - **PIVOT (Drew's call, gate-2 AskUserQuestion):** stop the reach-134 wall-waves + grinder; harvest the **reach-1 (overlay-unique) fuel** instead β€” abundant, small, far less loose-typed β†’ much higher crack rate. @@ -571,15 +571,15 @@ instruction; the fresh session launches them.) **Fleet: 209,593 / 344,010 = 60.93% byte-identical** Β· 136/136 binaries byte-identical Β· 0 NON_MATCHING. **Nothing running** β€” grinder STOPPED (`.run/auto/STOP` present; `rm` it to allow relaunch), no worker wave in flight. -The loop is **paused at a clean, fully-committed checkpoint** (HEAD = `commit:0214`). All work committed locally; **not pushed** (R6 β€” Drew pushes). +The loop is **paused at a clean, fully-committed checkpoint** (HEAD = `9e9278d4a`). All work committed locally; **not pushed** (R6 β€” Drew pushes). **What this (overnight `/loop`) session did** (Drew: "keep waves going, don't stop till I check in ~8h" β†’ ran 12 worker waves + the grinder): - Fleet **59.05% β†’ 60.93%** (+1.88%); ~55 functions banked (worker gates + 1 recovery gate + 1 grinder bank), each propagated Γ—134 where shared. dedup groups β†’ 1560. - **3 gate-safe tooling upgrades** (Option C + follow-ons), all committed: - - `tools/sig_unify.py` β€” **DEF-side arity-extend recovery**: adopt the canonical engine_core.h param list on arity mismatch (unused params free at -O2). Banks the DEF-side loose-typing wall. (`commit:0200`) - - `tools/grinder.py` β€” **blacklist** of permuter-won-but-gate-rejected (plumbing) fns β†’ `.run/auto/grinder_blacklist.json` (13 fns); stops the futile churn. (`commit:0200`) - - `tools/wave_targets.py` β€” **pool excludes self-MATCH-but-gate-rejected** near-misses (closeness==0 OR drafter "none β€” MATCH" verdict) so waves draft FRESH targets. (`commit:0205`, `commit:0208`) -- **6 new cookbook idioms** (4 distilled + 2 drafter-authored): cookbook Β§21 + Β§22. (`commit:0194 commit:0196 commit:0198 commit:0203 commit:0211`) + - `tools/sig_unify.py` β€” **DEF-side arity-extend recovery**: adopt the canonical engine_core.h param list on arity mismatch (unused params free at -O2). Banks the DEF-side loose-typing wall. (`4927f38c4`) + - `tools/grinder.py` β€” **blacklist** of permuter-won-but-gate-rejected (plumbing) fns β†’ `.run/auto/grinder_blacklist.json` (13 fns); stops the futile churn. (`4927f38c4`) + - `tools/wave_targets.py` β€” **pool excludes self-MATCH-but-gate-rejected** near-misses (closeness==0 OR drafter "none β€” MATCH" verdict) so waves draft FRESH targets. (`40fa76284`, `7b477c82b`) +- **6 new cookbook idioms** (4 distilled + 2 drafter-authored): cookbook Β§21 + Β§22. (`fc3b7d25e 0744e5ad8 9dcabfbdc 29858df0b 0b77956d5`) - **Grinder's work:** banked 1 (`func_801493D0`, permuter), blacklisted 13 plumbing-bound near-misses, token-free. It went 0β†’1 banks *after* the Option-C fixes. **Key finding (where the wall is now):** the **tractable reach-134 ≀150-ins pool is depleting** β€” easy fresh wins are banked; close-rate fell from ~0.25 to **0.037 on wave 12**. What remains in this size-band is the genuine hard tail: DEF-side plumbing (`sig_unify` handles the simple arity case; the rest is multi-way loose typing) + the Β§20 **IV-combine** (`combine_givs` won't fold byte+halfword-RMW) and **LICM-hoist** (`move_movables` threshold) walls β€” drafters correctly stub these "unsteerable from C." They are **backlog / hand-finish fuel**, not re-draftable. @@ -722,12 +722,12 @@ Both engines are RUNNING: **Run progress (worker waves):** | Cycle | Wave drafted | Byte-banked | Fleet | Commit | |---|---|---|---|---| -| 1 | 24 (19 self-MATCH) | 7 (4 Γ—134) | 59.05β†’59.21% | `commit:0193`; distill `commit:0194` (cookbook Β§21 added) | -| 2 | 24 (18 self-MATCH) | 5 (4 Γ—134) | 59.21β†’59.37% | `commit:0195` | -| 3 | 24 (17 self-MATCH) | 7 (6 Γ—134) | 59.37β†’59.60% | `commit:0197`; distill `commit:0198` | -| recovery | 7 close=0 re-gated | 2 (Γ—134) | 59.60β†’**59.68%** | `commit:0199` (sig_unify DEF-side fix) | -- **Distill flywheel:** 3 NEW byte-verified cookbook idioms added across the 3 waves (`commit:0194` Blk16/memcpy - unaligned-copy; `commit:0196` disjoint-bits addβ†’ori re-tie barrier; `commit:0198` giv-anchor store-order). +| 1 | 24 (19 self-MATCH) | 7 (4 Γ—134) | 59.05β†’59.21% | `1d7c31393`; distill `fc3b7d25e` (cookbook Β§21 added) | +| 2 | 24 (18 self-MATCH) | 5 (4 Γ—134) | 59.21β†’59.37% | `7f272eb6b` | +| 3 | 24 (17 self-MATCH) | 7 (6 Γ—134) | 59.37β†’59.60% | `125222d14`; distill `9dcabfbdc` | +| recovery | 7 close=0 re-gated | 2 (Γ—134) | 59.60β†’**59.68%** | `a1b29eac8` (sig_unify DEF-side fix) | +- **Distill flywheel:** 3 NEW byte-verified cookbook idioms added across the 3 waves (`fc3b7d25e` Blk16/memcpy + unaligned-copy; `0744e5ad8` disjoint-bits addβ†’ori re-tie barrier; `9dcabfbdc` giv-anchor store-order). - **Wave-2 "6.5h" was NOT throttling** β€” it was idle on a CC **permission prompt** (Drew approved on check-in); waves 1 & 3 ran in ~25–32 min. (R14: corrected my earlier rate-limit read.) @@ -742,7 +742,7 @@ cycle; after idle it did `tried.clear()` and looped forever (Β§20 trap). Fixed B `conflicting types`). `rewrite_def` previously only rewrote params on arity MATCH (return-type-only fallback otherwise). Patched it to **adopt the canonical param list on arity mismatch** (draft names + synth `_argN` for the unused extras; they sit in `$a0–$a3`, free at -O2). Validated: banked `func_8016EDEC` + `func_8016EE40` - through the real gate (`commit:0199`). **Compounds: it's in the gate pipeline, so every future wave + the grinder + through the real gate (`a1b29eac8`). **Compounds: it's in the gate pipeline, so every future wave + the grinder now auto-recover DEF-side near-misses.** (Remaining close=0: a data-conflict + narrow-param arity gcc's promotion rule blocks + multi-way loose typing β€” genuinely harder, diminishing returns.) @@ -763,7 +763,7 @@ scripts have no fs access; transcribe carefully). Gate/finish run **backgrounded via re-drafting β€” they're hand-finish fuel. - **Running tally (this session, fleet 59.05% start):** waves 1-6 launched; banked via worker gates + the sig_unify recovery. Fleet **59.87%** after wave 5 (wave 6 in flight). 4 new cookbook idioms distilled - (`commit:0194 commit:0196 commit:0198 commit:0203`). Commits `commit:0193…commit:0202` + option-C `commit:0200`. + (`fc3b7d25e 0744e5ad8 9dcabfbdc 29858df0b`). Commits `1d7c31393…1332f43d5` + option-C `4927f38c4`. - **To resume after compaction:** read this section + `docs/automation-runbook.md`; the next step is always gate the in-flight wave (`.run/auto/finish_wave.log` / orchestrator finish) β†’ distill β†’ prep --mode pool β†’ launch. Stop only when Drew says so (`bash tools/auto_stop.sh` halts the grinder). diff --git a/phase-ends/logs/Phase22.md b/phase-ends/logs/Phase22.md index db59d8132e..e2773f51a9 100644 --- a/phase-ends/logs/Phase22.md +++ b/phase-ends/logs/Phase22.md @@ -19,16 +19,16 @@ C. If general β†’ fan out a few waves (Ultracode, prompt R26/R27) applying it D. Rinse and repeat (next giant, highest byte-weight first). ## Tasks -- [x] **T0 β€” Unified byte-weighted ranked worklist** *(done β€” `commit:0296`)* β€” `tools/worklist.py` β†’ `docs/worklist.md` + `.run/worklist.json`. +- [x] **T0 β€” Unified byte-weighted ranked worklist** *(done β€” `013806b07`)* β€” `tools/worklist.py` β†’ `docs/worklist.md` + `.run/worklist.json`. - [x] **T1 β€” Calibrate on func_8015126C** *(done β€” banked Γ—134, fleet 63.18β†’63.22%, check-all 136/136)* β€” pin idiom + canonical-extern/block-scope recovery cracked it; all 23 giants confirmed Ghidra-C-cached (no prefetch needed). - [ ] **T2 β€” Hand-decomp giants by byte-weight (loop)** β€” func_8014EE14 β†’ … β†’ func_80144B9C; one at a time, byte-gated, propagated Γ—134, committed. Report each (P3). -- [x] **T3 β€” Distill idioms β†’ cookbook** *(done for func_8015126C β€” cookbook Β§28/Β§28a + `tools/recover_giant.py`, `commit:0298`)* β€” recurring per future crack. +- [x] **T3 β€” Distill idioms β†’ cookbook** *(done for func_8015126C β€” cookbook Β§28/Β§28a + `tools/recover_giant.py`, `0375cd529`)* β€” recurring per future crack. - [ ] **T4 β€” Idiom fan-out waves (Ultracode)** β€” a few waves per learned idiom over its class (prompt R27). *(close=0 canonical-extern "wave" was probed β†’ R14 refuted near-free; only func_8015126C banked.)* - [x] **T5 β€” Background grinder** *(started + STOPPED for handoff; STOP sentinel set; banked 0 on the hard giants it sampled)* β€” RESUME: `rm .run/auto/STOP` then `DRIVER=tools/grinder.py setsid nohup bash tools/auto_supervisor.sh --permute-secs 120 -j 14 >/dev/null 2>&1 & disown`; monitor `bash tools/auto_status.sh`. - [ ] **T6 β€” Progress honesty + PhaseEnd** β€” keep worklist/backlog/progress.fleet.md fresh; track both %s; PhaseEnd_Phase22.md at close (Tier-1 Max). ## β–Ά RESUME HERE (fresh session) -**State:** Phase 22 in progress (NOT a phase end β€” no PhaseEnd file). 3 commits this session on top of Phase-21 close `commit:0295`: `commit:0296` (T0 worklist) Β· `commit:0297` (T1 func_8015126C Γ—134) Β· `commit:0298` (T3 cookbook Β§28 + recover_giant.py) + a reports-regen checkpoint commit. All 136 binaries byte-identical (`make check-all` 136/136); fleet **63.22%** function-count; dedup-check 1617/0. Working tree clean except the R23 `db.*.gbf` churn (do NOT stage). **Drew commits AND pushes the session work (R6/R8).** Grinder STOPPED (STOP sentinel set). +**State:** Phase 22 in progress (NOT a phase end β€” no PhaseEnd file). 3 commits this session on top of Phase-21 close `ddf9266ab`: `013806b07` (T0 worklist) Β· `75dc86909` (T1 func_8015126C Γ—134) Β· `0375cd529` (T3 cookbook Β§28 + recover_giant.py) + a reports-regen checkpoint commit. All 136 binaries byte-identical (`make check-all` 136/136); fleet **63.22%** function-count; dedup-check 1617/0. Working tree clean except the R23 `db.*.gbf` churn (do NOT stage). **Drew commits AND pushes the session work (R6/R8).** Grinder STOPPED (STOP sentinel set). **NEXT TASK β€” T2: hand-decomp the next giants by byte-weight** (effort **Max**; the loop is A hand-crack β†’ B distill β†’ C fan-out). Use `docs/worklist.md` (the GIANT queue, refreshed) as the decision spine. Concrete queue: 1. **func_80132784** (400 ins, #2 byte-weight giant; backlog close=240: prologue+GTE pipelines match, residual = else-branch `$s0` pointer regalloc + GTE-section stack-ptr allocation β†’ Β§17 pins). The biggest reachable hand target. @@ -55,7 +55,7 @@ orchestrator / wave_targets / worker_wave.js / distill.js / gate_stage / idiom_l ## Progress log - 2026-06-26: Phase plan approved (gate 1). Task list built (R28). CURRENT_PHASE.md written. Starting T0. -- 2026-06-26: **T0 done** (commit `commit:0296`) β€” `tools/worklist.py` + `docs/worklist.md` + `.run/worklist.json`. 451 live stubs / 1.85M ins remaining gain; GIANT queue = 23 fns = 37.2% of remaining gain; top = func_80144B9C (770 ins, 5.58%). +- 2026-06-26: **T0 done** (commit `013806b07`) β€” `tools/worklist.py` + `docs/worklist.md` + `.run/worklist.json`. 451 live stubs / 1.85M ins remaining gain; GIANT queue = 23 fns = 37.2% of remaining gain; top = func_80144B9C (770 ins, 5.58%). - 2026-06-26: **T1 calibration on func_8015126C (254 ins, top-5 giant) β€” CRACKED, byte-identical in ov_SC01_077; Γ—134 propagation running (bg bl73feigi).** Key findings (β†’ T3 distill): - **(idiom) Β§17 pin for the coalescing residual:** the `(s16)p[0x79]!=1000` compare wanted `$a0` (coalesced) not `$v1`. Lever: `register s32 cmp79 __asm__("$4")` + assign **inside** the `&&` (lazy, not hoisted) β†’ MATCH. Reusable for the regalloc-coalescing giant group. - **(THE close=0 wall, byte-proven) why match_one MATCH β‰  whole-binary bank:** the saved draft's *self-contained file-scope externs* conflict with engine_core.h's canonical sigs (e.g. my `extern void func_8015173C(void*)` vs canonical `void func_8015173C(s32*)`). `cast_call_sites`/`sig_unify` do NOT canonicalize these β†’ the close=0 giants sit unbanked. **Fix (deterministic):** rewrite each engine_core.h-callee extern to its canonical def-sig AND move ALL externs **block-scope** (inside the body) so `find_site`/`compiles_standalone`/`dedup_propagate` accept them (file-scope externs are excluded from the lifted body β†’ "not self-contained"). This is a missing gate-stage recovery step. diff --git a/phase-ends/logs/Phase23.md b/phase-ends/logs/Phase23.md index 765ffc361d..eef2a6fb14 100644 --- a/phase-ends/logs/Phase23.md +++ b/phase-ends/logs/Phase23.md @@ -24,17 +24,17 @@ D. Periodically: `export_pairs β†’ format_finetune β†’ train_lora β†’ redeploy` - [x] **T2 β€” Stock-local floor** β€” Qwen3.6-35B-A3B (LM Studio): structurally smart but **0 reliable byte-matches** (can't refine to byte-exact); format-robust; full-cookbook context made it *worse* (dilution). The floor to beat. - [x] **T3 β€” The LoRA specialist pipeline** β€” `export_pairs.py` (mine banked asm↔C from build objects) β†’ `format_finetune.py` (Qwen chat-template, compile-filtered) β†’ `train_lora.py` (Unsloth QLoRA, Qwen2.5-Coder-7B, GPU on the 3080 Ti) β†’ `eval_lora.py` (held-out gate-true). Corpus `datasets/match_pairs/` (gitignored). - [x] **T4 β€” Corpus-v2 = the extern-block fix (THE unlock)** β€” capture the `extern D_xxx;` block the src declares above each def (correct byte-verified types) β†’ self-contained completions, compile 52%β†’92%, train 638β†’1111 (non-trivial 257β†’813). Same 7B retrained: held-out **6–15 ins 0%β†’85%**, non-trivial 0β†’26, meaningful(>15) 0β†’3. **Data was the bottleneck, confirmed.** -- [x] **T5 β€” First REAL banks on open stubs** β€” the v2 model drafted real open ov_SC01_077 stubs (LEAN, raw `.s` β€” model is format-robust, no bridge needed); whole-binary gate **banked 4** (func_80160B34, func_8015CC74, func_8016084C, func_801705C0; @commit:0320). Sample rate: 9/22 match_one proxy β†’ **4/22 (18%) whole-binary** (the proxyβ†’gate TU-plumbing gap). +- [x] **T5 β€” First REAL banks on open stubs** β€” the v2 model drafted real open ov_SC01_077 stubs (LEAN, raw `.s` β€” model is format-robust, no bridge needed); whole-binary gate **banked 4** (func_80160B34, func_8015CC74, func_8016084C, func_801705C0; @b4c312a30). Sample rate: 9/22 match_one proxy β†’ **4/22 (18%) whole-binary** (the proxyβ†’gate TU-plumbing gap). - [x] **T6 β€” The mass-run driver** β€” `tools/lora_grind.py`: rotates every binary (config/check.*.sha), drafts the served model, banks via gate_stage (commit), defers/periodic-propagates, writes the **classified near-miss histogram** (the flywheel "missing idioms" signal). STOP/heartbeat/stats like grinder.py. -- [x] **T7 β€” Calibration run + the 0/222 puzzle β€” DEBUGGED + FIXED (2026-06-30).** Root cause = TWO independent harness bugs in `lora_grind`'s use of `gate_stage.run_gate` (R14, by reading the code + the run's backlog β€” which resolved a direct contradiction between two scout agents): **Bug A** β€” `good_sha()` passed the whole sha1sum line `" "` vs harvest_verify's bare `sha1()` β†’ **0 banks for EVERY binary incl. 077** (the "0/12" was a bug artifact, NOT an exhausted tail β€” the prior "`.sha` files carry the filename" note was the unfollowed thread); **Bug B** β€” the gate call left `src/asm/out` at the hardcoded ov_SC01_077 defaults β†’ non-077 drafts dropped at the 077 stub-filter, **silently** (and the asm mis-resolution contaminated the backlog near-miss classes). Fix (`tools/gate_stage.py`): `run_gate` is binary-agnostic (resolve src/asm/out/good_sha from `binary`; good_sha bare-hash normalized) + a **loud negative-control guard**; `lora_grind.good_sha` fixed at source; byte-neutral (check-all 136/136). **Proof:** ov_SC01_000 spot-run banked **7/15 (47%) byte-identical** (was 0; @commit:0322). **ROI finding:** 6/7 banks are reach-1 (overlay-unique Γ—1) β†’ broad rotation = high bank-RATE, low fleet-% ROI; the fleet lever is reachβ‰₯2 targeting (T9) + corpus-v3 (T8). Full write-up: `docs/gen2-mips-matching-model.md` β†’ "T7 RESULT". +- [x] **T7 β€” Calibration run + the 0/222 puzzle β€” DEBUGGED + FIXED (2026-06-30).** Root cause = TWO independent harness bugs in `lora_grind`'s use of `gate_stage.run_gate` (R14, by reading the code + the run's backlog β€” which resolved a direct contradiction between two scout agents): **Bug A** β€” `good_sha()` passed the whole sha1sum line `" "` vs harvest_verify's bare `sha1()` β†’ **0 banks for EVERY binary incl. 077** (the "0/12" was a bug artifact, NOT an exhausted tail β€” the prior "`.sha` files carry the filename" note was the unfollowed thread); **Bug B** β€” the gate call left `src/asm/out` at the hardcoded ov_SC01_077 defaults β†’ non-077 drafts dropped at the 077 stub-filter, **silently** (and the asm mis-resolution contaminated the backlog near-miss classes). Fix (`tools/gate_stage.py`): `run_gate` is binary-agnostic (resolve src/asm/out/good_sha from `binary`; good_sha bare-hash normalized) + a **loud negative-control guard**; `lora_grind.good_sha` fixed at source; byte-neutral (check-all 136/136). **Proof:** ov_SC01_000 spot-run banked **7/15 (47%) byte-identical** (was 0; @801648103). **ROI finding:** 6/7 banks are reach-1 (overlay-unique Γ—1) β†’ broad rotation = high bank-RATE, low fleet-% ROI; the fleet lever is reachβ‰₯2 targeting (T9) + corpus-v3 (T8). Full write-up: `docs/gen2-mips-matching-model.md` β†’ "T7 RESULT". - [x] **T8 β€” Corpus-v3 β€” DONE (2026-06-30).** Mined the **1623 `engine_core.h` `DEFINE_func` macro bodies** (the shared setters/return-const the model was blind to β€” 96.6% of v2 was overlay-unique) + `format_finetune` inlines `engine_types.h` structs β†’ corpus **1312β†’2891**, trainable **2534+291** (2.5Γ— v2). **v3 trained** (loss 1.275β†’0.085), held-out eval **23/40 (57.5%)**; production batch banked ~352 fns + 45 shared groups β†’ fleet **63.67β†’63.82%** ($0). The empty-leaf/setter class v2 couldn't draft is now banked. Struct-GIANT types deferred β†’ **corpus-v4** (with a 14B). Details: `docs/gen2-mips-matching-model.md`. - [x] **T9 β€” Operating loop β€” WIRED + RUN (2026-06-30/07-01).** Local GPU serving stood up (`tools/serve_local.py`, Unsloth); retrain cycle + reachβ‰₯2 targeting + propagate sweeps run end-to-end. Grinder concurrent = 0 banks (permuter tail exhausted). **2026-07-01:** measured v3-on-reachβ‰₯2 (banks 6/15), built `inject_capped_externs` (+0.34% fleet, 11 reach-134 fns Γ—134), and found the saturation campaign needs a throughput rebuild (≀15 band = ~4.6k unique funcs; current tooling ~48s/func + GPU-idle-during-gate) β†’ **T10**. -- [x] **T10 β€” PHASE-SEPARATED + PARALLEL-GATE HARVESTER β€” BUILT + MEASURED (2026-07-01).** `tools/bulk_harvest.py` (bulk-draft GPU β†’ `ProcessPool` parallel-gate over DISTINCT binaries β†’ dedupe-once + ONE commit) + the back-compat `gate_stage`/`harvest_verify` parallel-safe params (T10.1: `lock_path`/`verified_out`/`failed_out`/`compute_fleet`; defaults = serial, so lora_grind/grinder unaffected). Validated (12β†’9 banked, 136/136, R23-clean commit) then MEASURED on 80 fresh SC03 ≀15-ins: **65% bank-rate** (52/80; 75% on the tiny band), gate **0.4s/fn** (8 workers, ~75Γ— the serial gate) β†’ **drafting (13.5s/fn serial) is now the SOLE bottleneck**. Commits: tooling `commit:0379`, validation `commit:0380`, measurement `commit:0381`; fleet 64.19β†’64.20%, dedup 1687β†’1715/0, 136/136 throughout. Details: `docs/gen2-mips-matching-model.md` "T10 RESULT". `lora_grind` kept as the serial fallback. +- [x] **T10 β€” PHASE-SEPARATED + PARALLEL-GATE HARVESTER β€” BUILT + MEASURED (2026-07-01).** `tools/bulk_harvest.py` (bulk-draft GPU β†’ `ProcessPool` parallel-gate over DISTINCT binaries β†’ dedupe-once + ONE commit) + the back-compat `gate_stage`/`harvest_verify` parallel-safe params (T10.1: `lock_path`/`verified_out`/`failed_out`/`compute_fleet`; defaults = serial, so lora_grind/grinder unaffected). Validated (12β†’9 banked, 136/136, R23-clean commit) then MEASURED on 80 fresh SC03 ≀15-ins: **65% bank-rate** (52/80; 75% on the tiny band), gate **0.4s/fn** (8 workers, ~75Γ— the serial gate) β†’ **drafting (13.5s/fn serial) is now the SOLE bottleneck**. Commits: tooling `c5cca1c6d`, validation `a36c5ded0`, measurement `aa2af72f0`; fleet 64.19β†’64.20%, dedup 1687β†’1715/0, 136/136 throughout. Details: `docs/gen2-mips-matching-model.md` "T10 RESULT". `lora_grind` kept as the serial fallback. - [ ] **T10.5 β€” vLLM batched serving (the drafting lever) β€” DEFERRED, Drew-go.** The measurement JUSTIFIES it (65% bank-rate; the full ~4,087-unique ≀15 campaign is ~15h serial drafting @ 13.5s/fn; vLLM continuous-batching 5–20Γ— β†’ ~1–3h). Path: separate `.venv-vllm`; try bnb-direct + runtime LoRA first, fall back to mergeβ†’fp16β†’AWQ 4-bit (12 GB fit); serve the same `/v1/chat/completions` on :1234 so `bulk_harvest`/`api_draft` are unchanged. Quantization = throughput risk only, never correctness (byte-gate). **Do NOT install without Drew's go** (P5d toolchain add). Meanwhile the campaign can run on the serial path in resumable background chunks ($0). - [ ] **T11 β€” Progress honesty + PhaseEnd** β€” track fleet % + bank-rate (function-count AND the decomp.dev-comparable byte-weighted ~30%); PhaseEnd_Phase23 at a clean checkpoint (Tier-1 Max). ## β–Ά RESUME HERE (fresh session) -**State:** Phase 23 in progress (NOT a phase end). **v3 is the current model** β€” `bfm-match-7b-v3` (Qwen2.5-Coder-7B QLoRA on **corpus-v3**), adapter at `models/bfm-match-7b-v3` (v2 kept as fallback at `models/bfm-match-7b`). **LM Studio is EJECTED** β€” serve via **`tools/serve_local.py`** (Unsloth GPU, OpenAI endpoint), NOT LM Studio. The **8-hour autonomous run (2026-06-30)** built local serving + the prompt fix + corpus-v3 + v3 + a production batch β†’ **fleet 63.82%** (+502 byte-identical, $0), 136/136 byte-clean, 27 commits this session (local β€” **Drew pushes**, R6). Pipeline validated end-to-end: a free local model banks the small/setter bulk, including the empty-leaf class v2 couldn't. Corpus `datasets/match_pairs/` + `.venv-train` gitignored. (Phase 22 close `PhaseEnd_Phase22.md` is committed `commit:0325`.) **UPDATE 2026-07-01 (this session):** measured v3-on-reachβ‰₯2 (banks 6/15, the band is reachable) + built **`tools/inject_capped_externs.py`** (the macro-extern-injection lever) and freed **11 reach-134 propagation-capped fns Γ—134** β†’ **fleet 64.16%** (+0.34%, $0), 136/136 byte-clean, 1687 groups. v3 still served via `serve_local.py`. See the 2026-07-01 progress-log entry for the full arc + the deferred type-walled-14 + the strategic fork. **2026-07-01 close: fleet 64.19%** (injection lever +0.34% + a small campaign bank), 136/136 byte-clean. **The session ended at an ARCHITECTURE DECISION (Drew confirmed option c β€” build the factory fresh):** the saturation campaign needs a throughput rebuild before it's worth running. `serve_local.py` may still be UP holding the GPU (~8.7 GB) β€” stop it (`pkill -f serve_local`) if you want the GPU free. +**State:** Phase 23 in progress (NOT a phase end). **v3 is the current model** β€” `bfm-match-7b-v3` (Qwen2.5-Coder-7B QLoRA on **corpus-v3**), adapter at `models/bfm-match-7b-v3` (v2 kept as fallback at `models/bfm-match-7b`). **LM Studio is EJECTED** β€” serve via **`tools/serve_local.py`** (Unsloth GPU, OpenAI endpoint), NOT LM Studio. The **8-hour autonomous run (2026-06-30)** built local serving + the prompt fix + corpus-v3 + v3 + a production batch β†’ **fleet 63.82%** (+502 byte-identical, $0), 136/136 byte-clean, 27 commits this session (local β€” **Drew pushes**, R6). Pipeline validated end-to-end: a free local model banks the small/setter bulk, including the empty-leaf class v2 couldn't. Corpus `datasets/match_pairs/` + `.venv-train` gitignored. (Phase 22 close `PhaseEnd_Phase22.md` is committed `64cc91ee8`.) **UPDATE 2026-07-01 (this session):** measured v3-on-reachβ‰₯2 (banks 6/15, the band is reachable) + built **`tools/inject_capped_externs.py`** (the macro-extern-injection lever) and freed **11 reach-134 propagation-capped fns Γ—134** β†’ **fleet 64.16%** (+0.34%, $0), 136/136 byte-clean, 1687 groups. v3 still served via `serve_local.py`. See the 2026-07-01 progress-log entry for the full arc + the deferred type-walled-14 + the strategic fork. **2026-07-01 close: fleet 64.19%** (injection lever +0.34% + a small campaign bank), 136/136 byte-clean. **The session ended at an ARCHITECTURE DECISION (Drew confirmed option c β€” build the factory fresh):** the saturation campaign needs a throughput rebuild before it's worth running. `serve_local.py` may still be UP holding the GPU (~8.7 GB) β€” stop it (`pkill -f serve_local`) if you want the GPU free. --- ## β˜… NEXT TASK (fresh session) β€” BUILD THE PHASE-SEPARATED + BATCHED HARVESTER (Drew-confirmed, 2026-07-01) @@ -83,19 +83,19 @@ The **whole-binary byte-gate** (`gate_stage`/`harvest_verify`, G3/P9) is the sol - **(cleared) T7 β€” the 0/222 broad-rotation banking.** Two harness bugs (good_sha sha1sum-format + the src/asm/out 077-default) fixed + proven (ov_SC01_000 7/15 byte-identical, check-all 136/136). ## Progress log -- 2026-06-29: **Phase opened at PhaseEnd_Phase22 close (Drew).** Built across this session: cheap-tier A/B (T1, Haiku 4.8Γ—/$), stock-local floor (T2, 0), the LoRA pipeline (T3) + corpus-v2 extern-fix (T4, 6–15 ins 0%β†’85%), first 4 real open-stub banks (T5, @commit:0320), the `lora_grind` mass-run driver (T6). Calibration run (T7) launched (500 fns) β€” **18% on ov_SC01_077 but 0/222 broad rotation β†’ #1 debug.** gate_stage commit tag made phase-agnostic. The whole arc + measured numbers: `docs/gen2-mips-matching-model.md`; memory `cheap-tier-ab-validated`. NEXT: T7 debug, then bounded mass-runs + corpus-v3. -- 2026-06-30: **T7 DEBUGGED + FIXED.** 3 Explore scouts (tooling / run-evidence / corpus) + a direct code read (R14 β€” which resolved a flat contradiction between two scouts) found **two independent bugs** in `lora_grind`'s gate path: **(A)** `good_sha()` passed `" "` vs harvest_verify's bare `sha1()` β†’ 0 banks for ALL binaries incl. 077 (so 077's "0/12" was a bug artifact); **(B)** `src/asm/out` defaulted to ov_SC01_077 β†’ non-077 drafts dropped at the 077 stub-filter, silently. Fixed `gate_stage.run_gate` (binary-agnostic resolution + bare-hash normalize + a loud negative-control guard) + `lora_grind.good_sha`; byte-neutral (check-all 136/136). ov_SC01_000 spot-run **banked 7/15 (47%) byte-identical** (@commit:0322) β†’ reach-2 `func_8017CE24` propagated Γ—2. **ROI:** 6/7 reach-1 β†’ broad rotation is high bank-rate / low fleet-% ROI; the fleet lever is **reachβ‰₯2 targeting** + corpus-v3. Backlog now correctly classified (4Γ— close=1 = grinder fuel). NEXT: **T8 corpus-v3** (struct types) + **T9 reachβ‰₯2 selection** + concurrent grinder. +- 2026-06-29: **Phase opened at PhaseEnd_Phase22 close (Drew).** Built across this session: cheap-tier A/B (T1, Haiku 4.8Γ—/$), stock-local floor (T2, 0), the LoRA pipeline (T3) + corpus-v2 extern-fix (T4, 6–15 ins 0%β†’85%), first 4 real open-stub banks (T5, @b4c312a30), the `lora_grind` mass-run driver (T6). Calibration run (T7) launched (500 fns) β€” **18% on ov_SC01_077 but 0/222 broad rotation β†’ #1 debug.** gate_stage commit tag made phase-agnostic. The whole arc + measured numbers: `docs/gen2-mips-matching-model.md`; memory `cheap-tier-ab-validated`. NEXT: T7 debug, then bounded mass-runs + corpus-v3. +- 2026-06-30: **T7 DEBUGGED + FIXED.** 3 Explore scouts (tooling / run-evidence / corpus) + a direct code read (R14 β€” which resolved a flat contradiction between two scouts) found **two independent bugs** in `lora_grind`'s gate path: **(A)** `good_sha()` passed `" "` vs harvest_verify's bare `sha1()` β†’ 0 banks for ALL binaries incl. 077 (so 077's "0/12" was a bug artifact); **(B)** `src/asm/out` defaulted to ov_SC01_077 β†’ non-077 drafts dropped at the 077 stub-filter, silently. Fixed `gate_stage.run_gate` (binary-agnostic resolution + bare-hash normalize + a loud negative-control guard) + `lora_grind.good_sha`; byte-neutral (check-all 136/136). ov_SC01_000 spot-run **banked 7/15 (47%) byte-identical** (@801648103) β†’ reach-2 `func_8017CE24` propagated Γ—2. **ROI:** 6/7 reach-1 β†’ broad rotation is high bank-rate / low fleet-% ROI; the fleet lever is **reachβ‰₯2 targeting** + corpus-v3. Backlog now correctly classified (4Γ— close=1 = grinder fuel). NEXT: **T8 corpus-v3** (struct types) + **T9 reachβ‰₯2 selection** + concurrent grinder. - 2026-06-30 (cont.): **T9 reachβ‰₯2 targeting built + measured.** Added `lora_grind --min-reach N` (lazy sig-based reach oracle == `dedup_propagate`, validated 0-mismatch/60 + the func_8017CE24=2 ground truth; `--min-reach 2` ranks high-reach-first, naturally restricts to overlays). Bounded reachβ‰₯2 mass-run: ov_SC01_000's 15 reachβ‰₯2 (shared) stubs banked **0/15** (vs the reach-1 spot-run's 7/15) β€” the model is **weakest on shared code** (corpus skipped the `DEFINE_func` bodies + it's the regalloc/schedule tail). But **5/15 are close≀3 reach-134 near-misses** (3Γ— close=1 = func_8012E27C/BF4C/AD64) β†’ high-value permuter fuel (Γ—134 each). **FINDING: reachβ‰₯2 model-only β‰  a fleet lever; the lever is reachβ‰₯2-draft β†’ grinder-close (Γ—134)**, which needs `grinder.py`'s per-binary fix (same class as T7) + a backlog `binary` field. (A foreground mass-run hit the 10-min Bash cap mid-2nd-batch; tree recovered clean via `git checkout`, check-all 136/136.) Details: `docs/gen2-mips-matching-model.md` "T9 RESULT". NEXT: the grinder per-binary fix (realize the reach-134 Γ—134 fuel), then corpus-v3. -- 2026-06-30 (cont.): **Grinder per-binary fix (5-layer) β€” built + validated; reachβ‰₯2 fuel re-characterized.** The grinder/backlog were ov_SC01_077-hardcoded **5 layers deep** β€” fixed all: `gate_stage` records `binary`, `backlog.FIELDS` keeps it, `backlog.load_best`/`_open_stubs` fleet-aware (stuck-local fns surface via their overlay record), `p16_permute.setup` takes asm-subdir, `grinder` per-binary resolution + grouped gating + None-`nins` allow. Validated: the 3 fresh reach-134 close=1 ov_SC01_000 fns now surface + resolve + gate per-000. **FINDINGS (byte-evidenced):** (a) the reachβ‰₯2 close=1 fuel is **MODEL semantic-misses** (7B drafts empty `void f(void){}` for trivial `return 1`/setters), NOT permuter fuel β€” a corrected draft banks them (**+3 byte-identical** via the fixed gate, @commit:0326); (b) Γ—reach is **propagation-capped** (inline-matched in `ov_SC01_077_a.c` β†’ dedup "nothing to propagate" β†’ banked Γ—1). So the reach-134 Γ—134 payoff routes through **corpus-v3** (leaf variety) + the **dedup-collapse**, NOT the permuter. check-all 136/136 throughout. Details: `docs/gen2-mips-matching-model.md` (grinder fix). NEXT: corpus-v3 + dedup-collapse. +- 2026-06-30 (cont.): **Grinder per-binary fix (5-layer) β€” built + validated; reachβ‰₯2 fuel re-characterized.** The grinder/backlog were ov_SC01_077-hardcoded **5 layers deep** β€” fixed all: `gate_stage` records `binary`, `backlog.FIELDS` keeps it, `backlog.load_best`/`_open_stubs` fleet-aware (stuck-local fns surface via their overlay record), `p16_permute.setup` takes asm-subdir, `grinder` per-binary resolution + grouped gating + None-`nins` allow. Validated: the 3 fresh reach-134 close=1 ov_SC01_000 fns now surface + resolve + gate per-000. **FINDINGS (byte-evidenced):** (a) the reachβ‰₯2 close=1 fuel is **MODEL semantic-misses** (7B drafts empty `void f(void){}` for trivial `return 1`/setters), NOT permuter fuel β€” a corrected draft banks them (**+3 byte-identical** via the fixed gate, @117081c7d); (b) Γ—reach is **propagation-capped** (inline-matched in `ov_SC01_077_a.c` β†’ dedup "nothing to propagate" β†’ banked Γ—1). So the reach-134 Γ—134 payoff routes through **corpus-v3** (leaf variety) + the **dedup-collapse**, NOT the permuter. check-all 136/136 throughout. Details: `docs/gen2-mips-matching-model.md` (grinder fix). NEXT: corpus-v3 + dedup-collapse. - 2026-07-01 (**A: reachβ‰₯2 measurement + the macro-extern-injection lever β€” fleet 63.82%β†’64.16%, $0 LLM**): served v3 (`serve_local.py`, ~15s). **(1) Measured v3 on reachβ‰₯2** (`lora_grind --min-reach 2`, bounded): banked **6/15 in ov_SC01_005** (+1 in 006) β€” **v3 banks the reachβ‰₯2 band**, vs v2-pre-fix's 0/15 (T9). But the banks are mostly low-reach (the 005≑006 pair = Γ—2) and re-bank inline per overlay β†’ the fleet-% needs the COLLAPSE. **(2) Scoped the dedup-collapse:** the broad-overlay inline banks are mostly already-propagated (8-hr sweeps) or reach-1; the real Γ—134 fuel is **29 reach-134 fns matched INLINE in ov_SC01_077 but `dedup_propagate`-skipped as "not self-contained"** (the Β§19/20 propagation cap; the Phase-20 backlog list). Diagnosed (R14): they fail `compiles_standalone` on **file-scope callee/data externs** (clean lever) or **local types** (fiddly). **(3) Built `tools/inject_capped_externs.py`** (the Phase-20-backlog "macro-extern-injection", never built): source each capped fn's externs from 077's OWN file-scope decls, inject block-scope β†’ self-contained β†’ liftable Γ—134. Byte-neutral (077 stays `d19c9580…`), fail-safe (only rewrites if then `compiles_standalone`). **Freed 8 (main .c) + 3 (`_a.c`) = 11 reach-134 fns**, propagated Γ—134, **9 new shared groups (1678β†’1687)**, fleet **63.82%β†’64.16%** (+0.34%, +1204 byte-identical), check-all **136/136**, dedup-check 0 failed, **$0 LLM**. cookbook **Β§28d** + SETUP inventory (R16/R21/R30). **(4) Type-walled subset (14 reach-134 fns) DEFERRED:** the Β§28b type-lift (`build_engine_types --strip`) is **collision-blocked** (`typedef vec differs between header and source`) β€” the inline-invented types (MATRIX/Buf/Vec3/Loc/vec/…) need manual name-collision reconciliation; low-ROI/fiddly, byte-gate+collision-guard correctly refused. The 14: `0x8014964C 0x8014A048 0x8014C8C8 0x801678F0 0x8016A8FC 0x801749C8 0x80177EA4` (main) + `0x8012A418 0x8012A464 0x8012C658 0x8012E778 0x8012EA90 0x80134310 0x801395D4` (_a). Blast radius of a lift = overlays ONLY (engine_types.h does NOT reach main/resident). **(5) Launched a bounded broad v3 harvest** (12 batches, propagate-every-4) for $0 corpus growth + incremental banks β€” running at write time. **NEXT:** verify+commit the harvest; then the strategic fork β€” (a) v3.1 flywheel retrain on the grown corpus (compounding, ~2h GPU), (b) the type-collision reconciliation (~+0.5%, fiddly), or (c) accept the automated ceiling and head to PhaseEnd. The injection lever now CLOSES the v3-reachβ‰₯2β†’Γ—134 loop for future 077 banks (idempotent re-run). **(6) Saturation-campaign scoping (Drew's "10,000 small funcs" directive β€” exhaust ≀15 fleet-wide before bigger):** measured the real fuel β€” **~32,636 open ≀15-ins stub-instances / ~4,597 unique-by-name / 4,087 untried** (NOT saturated β€” my "saturated" claim from the SC01-only sample was an over-extrapolation Drew caught, R14; SC03 alone has 12,497). Sample shows ~all untried ≀15 are reach-1 (location-unique, Γ—1) β€” the shared band was matched/propagated in earlier phases. **THROUGHPUT WALL (the real blocker):** drafting is ~15–18s/func SERIAL (the real draft = full .s input + recovery pipeline), so exhausting ~4k unique funcs is ~a day and the full per-overlay set is multi-day; and the whole-overlay byte-gate (~1s warm) is fast but a big-overlay gate hung 11+ min once. **Fixes applied:** `lora_grind` runs `progress.py --fleet` only on propagate sweeps (was every batch = ~14s overhead dominating small batches); `--min-nins` (target a fresh band w/o re-grinding small failures); `api_draft` max_tokens 4096β†’512 (the model rambled to 4096 = ~80–130s on no-stop-token drafts). **ARCHITECTURE CONCLUSION (Drew's phase-separation idea = right):** the interleaved draft(GPU)β†’gate(CPU) per-batch design idles the GPU during every gate (the "low GPU usage" Drew saw). The path: **phase-separate** (bulk-draft GPU β†’ bulk-gate parallel-across-cores CPU β†’ dedupe once) + **pipeline** (draft N+1 while gating N) + **batched inference via vLLM** (the real GPU-saturation lever β€” Unsloth serve does ~18s/func serial; vLLM continuous-batching is 5–20Γ—). This is a substantial focused build (the proper `bulk_harvest` + a vLLM serving swap) β€” deferred to a fresh focused effort (R30: capture findings now, the build is continuable). v3 bank-rate on the fresh location code = STILL UNMEASURED (the SC03 measurement hung on the slow gate); measure it first thing (it decides ~8k vs ~2k yield β†’ whether the multi-day campaign is worth it). - 2026-06-30 (**8-hour autonomous run, Drew away**): prompt-fix + local serving + corpus-v3 + v3 + big batch. **LM Studio ejected** β†’ built **`tools/serve_local.py`** (Unsloth GPU serving as an OpenAI endpoint; the prebuilt llama-cpp-python CUDA wheel SIGILLs on this no-AVX-512 CPU, so the Unsloth/torch path is the reliable one). **PROMPT FIX** (`api_draft.LEAN_SYS` + `format_finetune.SYS`, synced): "translate EVERY instruction, never an empty body" β€” the v2 empty-leaf overfit, small-leaf band **0/3β†’2/3**, banked 3 on a fresh ov_SC01_001 batch. **CORPUS-V3**: `export_pairs` now mines the **1623 engine_core.h `DEFINE_func` macros** (the shared setters/return-const the model was blind to β€” 96.6% of v2 was overlay-unique) + `format_finetune` inlines `engine_types.h` structs β†’ corpus **1312β†’2891**, trainable **2534+291** (2.5Γ— v2). **v3 trained** (Qwen2.5-Coder-7B QLoRA, loss 1.275β†’0.085, ~2h), held-out gate-true eval **MATCH 23/40 (57.5%)** (generalizing; v2's mixed-set rate was lower). Grinder concurrent during training = 0 banks (permuter tail exhausted, Phase-22 reality). **Big batch** (v3, broad rotation, 25 binaries, propagate-every-3, **$0 LLM**): banked **~352 fns inline + 45 new shared groups** (1633β†’1678) β†’ fleet **63.67% β†’ 63.82%** (+502 byte-identical), **136/136 byte-clean**, 25 auto-commits. v3 repeatedly banked the **empty-leaf/setter class v2 couldn't** (func_8012E27C=return 1, 8012AD64/BF4C=setters). **Pipeline validated end-to-end:** a free local fine-tuned model harvests the small/setter bulk at $0, gated identically (G3/P9). Details: `docs/gen2-mips-matching-model.md` ("Corpus-v3 ... 8-hour autonomous run"). **NEXT (fresh session):** (1) **shared/reachβ‰₯2 targeting** (`lora_grind --min-reach 2` with v3 β€” so the setter banks propagate Γ—134 instead of re-banking inline per binary β€” the fleet-% lever); (2) **dedup-collapse** the per-binary inline setters; (3) **corpus-v4** = struct-giant types; raise `--max-nins` as the band lifts. Serve: `tools/serve_local.py --adapter models/bfm-match-7b-v3` (R21 / SETUP Β§Tooling inventory). -- 2026-07-01 (**T10 β€” the phase-separated + parallel-gate harvester, BUILT + MEASURED**): plan-mode Tier-1, harvester-first (Drew picked it over vLLM-first β€” the exploration showed parallel-gate is the bigger single lever, no install, and unblocks the measurement). **Built** `tools/bulk_harvest.py` (bulk-draft GPU β†’ `ProcessPoolExecutor` byte-gate over DISTINCT binaries β†’ dedupe-once + one commit; round-robin fuel spread) on back-compat `gate_stage`/`harvest_verify` params (T10.1 β€” `lock_path`/`verified_out`/`failed_out`/`compute_fleet`, all default to serial; `backlog` redirected per-worker via its module global, no edit). Tooling commit `commit:0379`. **Validated** (count=12/workers=4): 9/12 banked, 136/136 byte-identical, R23-clean commit `commit:0380`, dedup 0 failed. **MEASURED** (count=80/workers=8 fresh SC03 ≀15-ins, commit `commit:0381`): **bank-rate 52/80 = 65%**; gate **0.4s/fn amortized** (8 workers) vs lora_grind's ~30s/fn serial β‰ˆ **75Γ—**; draft **13.5s/fn serial = 97% of wall-clock** β†’ the parallel gate moved the bottleneck ENTIRELY to drafting. Fleet 64.19β†’64.20% (61 tiny reach-1 banks barely move the byte-weighted % β€” the ≀15 campaign's value is bank COUNT + completeness, freeing the heavy model for giants; honest P9). check-all 136/136, dedup-check 1687β†’1715/0. **DECISIONS SETTLED:** (1) campaign is GO (65% over ~4,087 untried uniques β‡’ ~2,650 free banks); (2) drafting is now the only lever; (3) **vLLM is JUSTIFIED** (~15h serial β†’ ~1–3h batched) β€” deferred to Drew-go (T10.5). Details: `docs/gen2-mips-matching-model.md` "T10 RESULT". Serve still up via `serve_local.py` (v3). NEXT: Drew's call β€” vLLM install (T10.5) now, or run the ≀15 campaign on the serial path in background chunks, then PhaseEnd (T11). **Drew chose B (serial campaign now, defer vLLM).** **T10.6 LAUNCHED (2026-07-01):** `bulk_harvest --binary-glob 'ov_*' --count 150 --cycles 40 --workers 8` on `serve_local` v3 β€” the full ≀15-ins overlay saturation ($0), self-terminating on dry fuel (~15h max), **per-cycle commits (crash-safe/resumable via `.run/auto/lora_grind_tried.json`), STOP-able** (`touch .run/auto/STOP`). Monitor: `.run/auto/bulk_harvest_{heartbeat,stats}.json` + `.run/bulk_campaign.log`. Region bank-rate varies (SC03 fresh ~65%, SC01 dregs ~40%). `--cycles` campaign mode is committed (`commit:0384`); the `run_cycle` loop was validated (2-cycle run, per-cycle commits `commit:0385`/`commit:0386`). If a fresh session finds the campaign stopped: re-launch the same command (resumes from `tried`), or `touch .run/auto/STOP` to halt. After the campaign: `make check-all` (R22) + T11 PhaseEnd_Phase23. **Drew's new direction (2026-07-01), the NEXT step after the campaign:** test a HUGE-parameter cloud model via **OpenRouter** (GLM-4.6 / the current big GLM Drew called "glm5.2" β€” confirm the exact id on OpenRouter at run time) as a DRAFTER β€” `api_draft.py` already speaks the OpenAI endpoint (OpenRouter is OpenAI-compatible: set `API_BASE`=OpenRouter + key, `MODEL`=the GLM id). A/B vs local v3 on a sample (bank-rate + $/match), focused on the harder band the 7B plateaus on (>15-ins / struct). Byte-gate keeps it correctness-safe (throughput/cost lever only). **PARKED at Drew's direction:** the batching levers β€” DIY static batching (~3–4Γ—, VRAM-capped on 12 GB) and vLLM (5–20Γ—, needs a separate venv + tighter quant) β€” both on HOLD; revisit after the OpenRouter test. "We can move forward after that" (Drew). **T10.6 CAMPAIGN RESULT (2026-07-01):** ran **23 cycles β†’ 1,297 fns banked ($0) + 52 propagated groups**, fleet 64.21β†’**64.6%** (+0.39%), tried 764β†’**4,214** (**~92% of the ~4,597 ≀15-ins unique fuel saturated**). **check-all 136/136 byte-identical**, dedup 0 failed. **Ended gracefully on a serve_local crash** (bitsandbytes `ops.cu:81` after ~14h continuous serving β€” the serial 4-bit server's long-run fragility, NOT a code bug; bulk_harvest's per-cycle endpoint-check caught the dead server, committed the partial cycle 23, and exited clean). Commits `commit:0387..commit:0410` + digests `commit:0411`. **Remaining ≀15 tail (resumable, low-value ~28% yield):** ~383 untried + ~132 skipped-marked-`tried` in the crashed cycle 23 (prune those from `.run/auto/lora_grind_tried.json` if resuming). To resume: restart `serve_local.py` then `bulk_harvest --binary-glob 'ov_*' --cycles N`. Wrapped up per Drew β†’ **NEXT: T10.7 OpenRouter** (cloud, no local GPU). Serve_local is DOWN, GPU freed. **T10.7 RESULT (OpenRouter GLM5.2 A/B, 2026-07-01):** on 18 hard-band fns (16-22 ins, P16-walled `ov_SC01_077`), **GLM5.2 10/18 match_one vs v3 1/18** (~10Γ— codegen edge) but **whole-binary banks only 3/18** (2 direct + `func_801577C8` via `fix_arity_callers`) β€” the **DEF-side loose-typing wall (Phase 16/20) HOLDS** and caps ANY drafter (Fable5 Β§3c re-test confirmed). 6 hardest fns beyond GLM too (0/6 at MAXTOK=16000). Cost ~$1.02 of $25. Banked 3 GLM fns (`commit:0416`); `api_draft` gained `MAXTOK` env + cost capture (`commit:0414`). Details: `docs/gen2-mips-matching-model.md` "T10.7 RESULT". **DECISION PENDING (Drew):** how to use GLM β€” (1) direct drafter on def-conflict-free hard fns ($0.03/fn, ~17% wall-capped), (2) corpus-v4 flywheel/retrain (also wall-capped, ~2h GPU, uncertain), or (3) point GLM at the def-side-wall RECONCILIATION (reasoning-shaped unlock, new harness). T10.7c retrain NOT started (wall caps its value β†’ checkpoint for Drew). **T10.7 Option-3 probe DONE (`tools/glm_reconcile.py`, +$0.23):** aimed GLM's REASONING at the def-side wall β€” expert-grade reasoning (store-width/`sh`-vs-`sw` awareness, K&R promotion, independently derives the Β§17a-1 cast idiom), captured to `.run/glm_reason/` for idiom mining (R16 β†’ cookbook **Β§29**). Banked **1/7** (`func_80175184`); mechanical `--any-proto` **0/7**. **VERDICT: the def-side wall is INTRINSIC** (frontier reasoning model + full toolkit cracks ~1/7; residual = narrow-param K&R limit + byte-addressing). **GLM total banks 4/18** vs v3 ~1/18. Tooling: `glm_reconcile.py` (NEW), `api_draft` REASON-capture, `fix_arity_callers --any-proto` (`commit:0418`); cookbook Β§29 + doc T10.7 RESULT. **GLM's role settled:** (a) $0.03–0.08/fn DIRECT drafter for the def-conflict-FREE hard band (~22%, v3 can't reach), (b) idiom TEACHER β€” NOT a wall-breaker. Per Fable5 Β§4.3 the real lever past the wall is the public flip (community), not a bigger model. Total T10.7 spend ~$1.25/$25. **NEXT (Drew's call):** (i) a bounded GLM DIRECT hard-band campaign (bank the conflict-free ~22% at scale, money-open), (ii) the public-flip pivot (Fable5 Β§6.3), or (iii) close Phase 23 β†’ PhaseEnd (T11). -- 2026-07-01 (**evening β€” T10.6 ≀15 campaign + T10.7/8/9 the OpenRouter/GLM5.2 frontier-model exploration**): CONTEXT CHECKPOINT (85% ctx, wind-down). **T10.6 DONE:** `bulk_harvest.py` ≀15 saturation campaign ran 23 cycles β†’ **1,297 banks, fleet 64.6%, ~92% of the ≀15 band saturated**, 136/136, crash-graceful exit (serve_local bnb `ops.cu:81` after 14h β€” not our bug). **T10.7 DONE (GLM5.2 A/B, `z-ai/glm-5.2` via OpenRouter):** on 18 hard-band fns (16-22 ins), **GLM 10/18 match_one vs v3 1/18** (~10Γ— CODEGEN edge) but **whole-binary banks 4/18** β€” the **DEF-side loose-typing wall (Phase 16/20) is INTRINSIC** (caps ANY drafter; it's overlay-decl-vs-true-sig, a C/ABI limit). Option-3 probe (`glm_reconcile.py`): GLM reasons the wall EXPERTLY (store-width `sh`/`sw`, K&R promotion, independently derives the Β§17a-1 cast idiom) but banks only 1/7 β€” reconciliation idioms β†’ cookbook **Β§29**. **T10.8 DONE (`idiom_hunt.py`, $0.51):** batch-clustered the FAILED backlog by class β†’ GLM re-derives our OWN idioms (pins Β§17, array-of-struct Β§18) + confirms walls, **0 new bankable idioms** (the failed residual is the worst discovery material β€” Drew's catch). **T10.9 IN FLIGHT (bg task `bmv1wxzdz`, `.run/glm_fresh.log`):** Drew's CORRECT reframe β€” the idiom engine is DEEP hand-solving of FRESH never-tried hard fns (like Opus Max), then mining the byte-correct cracks for NEW idioms (idiom lives in the correct BODY, not the bank). GLM deep-solving **15 fresh 25-118-ins fns** (`ov_SC01_077`/`SC03_001`/`SC02_005`), LEAN, MAXTOK=32k, iters=3, **reasoning captured** (`.run/glm_fresh/*.reasoning.txt`, `REASON=1`). **TOOLING BUILT this session:** `tools/bulk_harvest.py` (phase-separated parallel-gate harvester + `--cycles`), `tools/glm_reconcile.py` (Option-3 wall reconciler), `tools/idiom_hunt.py` (idiom researcher, `--budget`-capped), `api_draft` (`MAXTOK` env + `usage.cost` + `REASON=1` reasoning capture), `fix_arity_callers --any-proto`, `gate_stage.run_gate` parallel params (`lock_path`/`verified_out`/`failed_out`/`compute_fleet`), `harvest_verify --verified-out/--failed-out`. **Commits:** `commit:0379` (T10 tooling)…`commit:0410`/`commit:0412` (≀15 campaign)…`commit:0414`(MAXTOK)…`commit:0418`(glm_reconcile+Β§29)…`commit:0420`(idiom_hunt+T10.8). **OpenRouter setup:** key in `.env` as `open_router_key` (gitignored, `sk-or-`); GLM5.2 is a REASONING model (needs MAXTOKβ‰₯8k or it returns empty content β€” burns budget on reasoning tokens); ~**$23.6 left of $25** (spent ~$1.90); the key shows `"limit": 20` (possibly a $20 spend cap β€” raise in the OpenRouter dashboard before a bigger run); no hard concurrency cap (~6 providers serve glm-5.2). **STRATEGIC STATE:** the LLM matching tier is now THOROUGHLY explored β€” local v3 saturated ≀15 ($0); frontier GLM confirmed the hard-band def-side wall is INTRINSIC (triple-confirmed) + banks a modest ~22% of the conflict-free hard band at ~$0.05/fn; the new-idiom well is DRY on the failed residual (T10.8), with T10.9 testing whether FRESH hand-solving still yields NEW idioms (Drew's hypothesis). **DREW CHOSE: (A) a bounded GLM fresh-hard-band campaign** (which T10.9 pilots). Per the Fable5 strategy review (`docs/fable5-strategy-review-2026-07.md`), the real lever PAST the wall is the **public flip / community labor** (Β§4.3), not a bigger model. **RESUME (fresh session):** (1) read `.run/glm_fresh.log` + gate the correct bodies (bank the def-conflict-free ones; use `glm_reconcile`/`inject_capped_externs` recovery), (2) MINE `.run/glm_fresh/*.reasoning.txt` for NOVEL idioms (vs cookbook Β§17-Β§29) β†’ distill real ones to cookbook, (3) decide the fork: scale the GLM fresh-hard campaign (money-open but modest), pivot to the public flip (Fable5 Β§6.3, the strategic lever), or PhaseEnd_Phase23 (the LLM tier is well-characterized β€” a clean Tier-1 close). **T11 (PhaseEnd) remains.** serve_local is DOWN (GPU free). Cost discipline: Drew is cost-conscious β€” calibrate cheap, `--budget`-cap, no surprise overnight bills. -- 2026-07-02 (**T10.9 RESULT + STOPPING POINT β€” the fresh-hand-solve idiom test**): Drew's fair test of "does GLM hand-solving FRESH hard funcs teach NEW idioms?" (the mechanism that gave us pins/array-of-struct via Opus-Max). GLM deep-solved **15 fresh 25-118-ins fns** (LEAN, MAXTOK=32k, iters=3, reasoning captured `.run/glm_fresh/*.reasoning.txt`): **4/15 match_one, 2 whole-binary banks** (`func_8017DE28`, `func_8015EEE0`; @`commit:0422`, check-all 136/136), **$2.00**. **IDIOM VERDICT (the point):** GLM's 4 correct bodies reason entirely about **KNOWN gcc mechanics** β€” delay-slot scheduling, callee-saved `$s0` preservation, reload-after-call aliasing, switch jump tables β€” all already in cookbook Β§10/Β§17/jump-table. **NO new idiom emerged.** GLM is a strong reasoner *applying* mapped idioms, not finding unmapped quirks (expected β€” 22 phases of Opus-Max mining charted the common gcc-2.7.2 quirks). **So the new-idiom well is DRY, now confirmed from BOTH angles: failed-residual (T10.8) AND fresh-hand-solve (T10.9).** 8/15 were reasoning-truncated empties (giants overrun 32k); near-misses `func_8018119C` (near-4) / `func_80187DAC` (near-5) are grinder/reconcile fodder. **ROBUST STRATEGIC CONCLUSION (multi-angle):** the LLM matching tier is exhausted of cheap+idiom leverage β€” (1) local v3 saturated ≀15 ($0, ~1300 banks), (2) frontier GLM = a modest ~22% hard-band drafter at ~$0.05-0.13/fn (def-side wall caps banking; wall is INTRINSIC, triple-confirmed), (3) no new idioms from either failed-residual or fresh cracks. Total OpenRouter spend ~$4/$25. **Per the Fable5 strategy review (`docs/fable5-strategy-review-2026-07.md` Β§4.3/Β§6.3), the real lever past the wall is the PUBLIC FLIP (community hand-matching), not a bigger model.** - **β˜… CLEAN STOPPING POINT (fresh session, Tier-1 Max, plan mode):** the LLM-tier exploration is comprehensively concluded. Options for the fresh session, in recommended order: **(A) PhaseEnd_Phase23** β€” write it (the LLM tier is fully characterized: local grinder + frontier test + idiom hunt, all byte-proven; a clean Tier-1 close), then **(B) plan the PUBLIC FLIP as the next phase** (Fable5 Β§6.3: R20 clean mirror, romβ†’decoder, CI, a naming pass on major systems, contributor on-ramp from `docs/backlog.md` β€” the strategic lever). A bounded GLM fresh-hard-band campaign remains available (money-open, modest fleet%) but is NOT the high-leverage move. Fleet stands at **~64.2%** (function-count) / ~30% byte-weighted, 136/136 byte-identical, 0 NON_MATCHING. All work committed (`commit:0379`…`commit:0422`); Drew pushes (R6). serve_local DOWN, GPU free. `db.*.gbf` churn is R23 restart-noise (do NOT stage). +- 2026-07-01 (**T10 β€” the phase-separated + parallel-gate harvester, BUILT + MEASURED**): plan-mode Tier-1, harvester-first (Drew picked it over vLLM-first β€” the exploration showed parallel-gate is the bigger single lever, no install, and unblocks the measurement). **Built** `tools/bulk_harvest.py` (bulk-draft GPU β†’ `ProcessPoolExecutor` byte-gate over DISTINCT binaries β†’ dedupe-once + one commit; round-robin fuel spread) on back-compat `gate_stage`/`harvest_verify` params (T10.1 β€” `lock_path`/`verified_out`/`failed_out`/`compute_fleet`, all default to serial; `backlog` redirected per-worker via its module global, no edit). Tooling commit `c5cca1c6d`. **Validated** (count=12/workers=4): 9/12 banked, 136/136 byte-identical, R23-clean commit `a36c5ded0`, dedup 0 failed. **MEASURED** (count=80/workers=8 fresh SC03 ≀15-ins, commit `aa2af72f0`): **bank-rate 52/80 = 65%**; gate **0.4s/fn amortized** (8 workers) vs lora_grind's ~30s/fn serial β‰ˆ **75Γ—**; draft **13.5s/fn serial = 97% of wall-clock** β†’ the parallel gate moved the bottleneck ENTIRELY to drafting. Fleet 64.19β†’64.20% (61 tiny reach-1 banks barely move the byte-weighted % β€” the ≀15 campaign's value is bank COUNT + completeness, freeing the heavy model for giants; honest P9). check-all 136/136, dedup-check 1687β†’1715/0. **DECISIONS SETTLED:** (1) campaign is GO (65% over ~4,087 untried uniques β‡’ ~2,650 free banks); (2) drafting is now the only lever; (3) **vLLM is JUSTIFIED** (~15h serial β†’ ~1–3h batched) β€” deferred to Drew-go (T10.5). Details: `docs/gen2-mips-matching-model.md` "T10 RESULT". Serve still up via `serve_local.py` (v3). NEXT: Drew's call β€” vLLM install (T10.5) now, or run the ≀15 campaign on the serial path in background chunks, then PhaseEnd (T11). **Drew chose B (serial campaign now, defer vLLM).** **T10.6 LAUNCHED (2026-07-01):** `bulk_harvest --binary-glob 'ov_*' --count 150 --cycles 40 --workers 8` on `serve_local` v3 β€” the full ≀15-ins overlay saturation ($0), self-terminating on dry fuel (~15h max), **per-cycle commits (crash-safe/resumable via `.run/auto/lora_grind_tried.json`), STOP-able** (`touch .run/auto/STOP`). Monitor: `.run/auto/bulk_harvest_{heartbeat,stats}.json` + `.run/bulk_campaign.log`. Region bank-rate varies (SC03 fresh ~65%, SC01 dregs ~40%). `--cycles` campaign mode is committed (`35bc7c387`); the `run_cycle` loop was validated (2-cycle run, per-cycle commits `5ba5500f8`/`337e120c2`). If a fresh session finds the campaign stopped: re-launch the same command (resumes from `tried`), or `touch .run/auto/STOP` to halt. After the campaign: `make check-all` (R22) + T11 PhaseEnd_Phase23. **Drew's new direction (2026-07-01), the NEXT step after the campaign:** test a HUGE-parameter cloud model via **OpenRouter** (GLM-4.6 / the current big GLM Drew called "glm5.2" β€” confirm the exact id on OpenRouter at run time) as a DRAFTER β€” `api_draft.py` already speaks the OpenAI endpoint (OpenRouter is OpenAI-compatible: set `API_BASE`=OpenRouter + key, `MODEL`=the GLM id). A/B vs local v3 on a sample (bank-rate + $/match), focused on the harder band the 7B plateaus on (>15-ins / struct). Byte-gate keeps it correctness-safe (throughput/cost lever only). **PARKED at Drew's direction:** the batching levers β€” DIY static batching (~3–4Γ—, VRAM-capped on 12 GB) and vLLM (5–20Γ—, needs a separate venv + tighter quant) β€” both on HOLD; revisit after the OpenRouter test. "We can move forward after that" (Drew). **T10.6 CAMPAIGN RESULT (2026-07-01):** ran **23 cycles β†’ 1,297 fns banked ($0) + 52 propagated groups**, fleet 64.21β†’**64.6%** (+0.39%), tried 764β†’**4,214** (**~92% of the ~4,597 ≀15-ins unique fuel saturated**). **check-all 136/136 byte-identical**, dedup 0 failed. **Ended gracefully on a serve_local crash** (bitsandbytes `ops.cu:81` after ~14h continuous serving β€” the serial 4-bit server's long-run fragility, NOT a code bug; bulk_harvest's per-cycle endpoint-check caught the dead server, committed the partial cycle 23, and exited clean). Commits `6eee685ac..6069eaa72` + digests `70aaad4ef`. **Remaining ≀15 tail (resumable, low-value ~28% yield):** ~383 untried + ~132 skipped-marked-`tried` in the crashed cycle 23 (prune those from `.run/auto/lora_grind_tried.json` if resuming). To resume: restart `serve_local.py` then `bulk_harvest --binary-glob 'ov_*' --cycles N`. Wrapped up per Drew β†’ **NEXT: T10.7 OpenRouter** (cloud, no local GPU). Serve_local is DOWN, GPU freed. **T10.7 RESULT (OpenRouter GLM5.2 A/B, 2026-07-01):** on 18 hard-band fns (16-22 ins, P16-walled `ov_SC01_077`), **GLM5.2 10/18 match_one vs v3 1/18** (~10Γ— codegen edge) but **whole-binary banks only 3/18** (2 direct + `func_801577C8` via `fix_arity_callers`) β€” the **DEF-side loose-typing wall (Phase 16/20) HOLDS** and caps ANY drafter (Fable5 Β§3c re-test confirmed). 6 hardest fns beyond GLM too (0/6 at MAXTOK=16000). Cost ~$1.02 of $25. Banked 3 GLM fns (`b1e0391c5`); `api_draft` gained `MAXTOK` env + cost capture (`1caff3dc4`). Details: `docs/gen2-mips-matching-model.md` "T10.7 RESULT". **DECISION PENDING (Drew):** how to use GLM β€” (1) direct drafter on def-conflict-free hard fns ($0.03/fn, ~17% wall-capped), (2) corpus-v4 flywheel/retrain (also wall-capped, ~2h GPU, uncertain), or (3) point GLM at the def-side-wall RECONCILIATION (reasoning-shaped unlock, new harness). T10.7c retrain NOT started (wall caps its value β†’ checkpoint for Drew). **T10.7 Option-3 probe DONE (`tools/glm_reconcile.py`, +$0.23):** aimed GLM's REASONING at the def-side wall β€” expert-grade reasoning (store-width/`sh`-vs-`sw` awareness, K&R promotion, independently derives the Β§17a-1 cast idiom), captured to `.run/glm_reason/` for idiom mining (R16 β†’ cookbook **Β§29**). Banked **1/7** (`func_80175184`); mechanical `--any-proto` **0/7**. **VERDICT: the def-side wall is INTRINSIC** (frontier reasoning model + full toolkit cracks ~1/7; residual = narrow-param K&R limit + byte-addressing). **GLM total banks 4/18** vs v3 ~1/18. Tooling: `glm_reconcile.py` (NEW), `api_draft` REASON-capture, `fix_arity_callers --any-proto` (`8562aa89c`); cookbook Β§29 + doc T10.7 RESULT. **GLM's role settled:** (a) $0.03–0.08/fn DIRECT drafter for the def-conflict-FREE hard band (~22%, v3 can't reach), (b) idiom TEACHER β€” NOT a wall-breaker. Per Fable5 Β§4.3 the real lever past the wall is the public flip (community), not a bigger model. Total T10.7 spend ~$1.25/$25. **NEXT (Drew's call):** (i) a bounded GLM DIRECT hard-band campaign (bank the conflict-free ~22% at scale, money-open), (ii) the public-flip pivot (Fable5 Β§6.3), or (iii) close Phase 23 β†’ PhaseEnd (T11). +- 2026-07-01 (**evening β€” T10.6 ≀15 campaign + T10.7/8/9 the OpenRouter/GLM5.2 frontier-model exploration**): CONTEXT CHECKPOINT (85% ctx, wind-down). **T10.6 DONE:** `bulk_harvest.py` ≀15 saturation campaign ran 23 cycles β†’ **1,297 banks, fleet 64.6%, ~92% of the ≀15 band saturated**, 136/136, crash-graceful exit (serve_local bnb `ops.cu:81` after 14h β€” not our bug). **T10.7 DONE (GLM5.2 A/B, `z-ai/glm-5.2` via OpenRouter):** on 18 hard-band fns (16-22 ins), **GLM 10/18 match_one vs v3 1/18** (~10Γ— CODEGEN edge) but **whole-binary banks 4/18** β€” the **DEF-side loose-typing wall (Phase 16/20) is INTRINSIC** (caps ANY drafter; it's overlay-decl-vs-true-sig, a C/ABI limit). Option-3 probe (`glm_reconcile.py`): GLM reasons the wall EXPERTLY (store-width `sh`/`sw`, K&R promotion, independently derives the Β§17a-1 cast idiom) but banks only 1/7 β€” reconciliation idioms β†’ cookbook **Β§29**. **T10.8 DONE (`idiom_hunt.py`, $0.51):** batch-clustered the FAILED backlog by class β†’ GLM re-derives our OWN idioms (pins Β§17, array-of-struct Β§18) + confirms walls, **0 new bankable idioms** (the failed residual is the worst discovery material β€” Drew's catch). **T10.9 IN FLIGHT (bg task `bmv1wxzdz`, `.run/glm_fresh.log`):** Drew's CORRECT reframe β€” the idiom engine is DEEP hand-solving of FRESH never-tried hard fns (like Opus Max), then mining the byte-correct cracks for NEW idioms (idiom lives in the correct BODY, not the bank). GLM deep-solving **15 fresh 25-118-ins fns** (`ov_SC01_077`/`SC03_001`/`SC02_005`), LEAN, MAXTOK=32k, iters=3, **reasoning captured** (`.run/glm_fresh/*.reasoning.txt`, `REASON=1`). **TOOLING BUILT this session:** `tools/bulk_harvest.py` (phase-separated parallel-gate harvester + `--cycles`), `tools/glm_reconcile.py` (Option-3 wall reconciler), `tools/idiom_hunt.py` (idiom researcher, `--budget`-capped), `api_draft` (`MAXTOK` env + `usage.cost` + `REASON=1` reasoning capture), `fix_arity_callers --any-proto`, `gate_stage.run_gate` parallel params (`lock_path`/`verified_out`/`failed_out`/`compute_fleet`), `harvest_verify --verified-out/--failed-out`. **Commits:** `c5cca1c6d` (T10 tooling)…`6069eaa72`/`14fbc0039` (≀15 campaign)…`1caff3dc4`(MAXTOK)…`8562aa89c`(glm_reconcile+Β§29)…`d71305fa5`(idiom_hunt+T10.8). **OpenRouter setup:** key in `.env` as `open_router_key` (gitignored, `sk-or-`); GLM5.2 is a REASONING model (needs MAXTOKβ‰₯8k or it returns empty content β€” burns budget on reasoning tokens); ~**$23.6 left of $25** (spent ~$1.90); the key shows `"limit": 20` (possibly a $20 spend cap β€” raise in the OpenRouter dashboard before a bigger run); no hard concurrency cap (~6 providers serve glm-5.2). **STRATEGIC STATE:** the LLM matching tier is now THOROUGHLY explored β€” local v3 saturated ≀15 ($0); frontier GLM confirmed the hard-band def-side wall is INTRINSIC (triple-confirmed) + banks a modest ~22% of the conflict-free hard band at ~$0.05/fn; the new-idiom well is DRY on the failed residual (T10.8), with T10.9 testing whether FRESH hand-solving still yields NEW idioms (Drew's hypothesis). **DREW CHOSE: (A) a bounded GLM fresh-hard-band campaign** (which T10.9 pilots). Per the Fable5 strategy review (`docs/fable5-strategy-review-2026-07.md`), the real lever PAST the wall is the **public flip / community labor** (Β§4.3), not a bigger model. **RESUME (fresh session):** (1) read `.run/glm_fresh.log` + gate the correct bodies (bank the def-conflict-free ones; use `glm_reconcile`/`inject_capped_externs` recovery), (2) MINE `.run/glm_fresh/*.reasoning.txt` for NOVEL idioms (vs cookbook Β§17-Β§29) β†’ distill real ones to cookbook, (3) decide the fork: scale the GLM fresh-hard campaign (money-open but modest), pivot to the public flip (Fable5 Β§6.3, the strategic lever), or PhaseEnd_Phase23 (the LLM tier is well-characterized β€” a clean Tier-1 close). **T11 (PhaseEnd) remains.** serve_local is DOWN (GPU free). Cost discipline: Drew is cost-conscious β€” calibrate cheap, `--budget`-cap, no surprise overnight bills. +- 2026-07-02 (**T10.9 RESULT + STOPPING POINT β€” the fresh-hand-solve idiom test**): Drew's fair test of "does GLM hand-solving FRESH hard funcs teach NEW idioms?" (the mechanism that gave us pins/array-of-struct via Opus-Max). GLM deep-solved **15 fresh 25-118-ins fns** (LEAN, MAXTOK=32k, iters=3, reasoning captured `.run/glm_fresh/*.reasoning.txt`): **4/15 match_one, 2 whole-binary banks** (`func_8017DE28`, `func_8015EEE0`; @`00d9d9d49`, check-all 136/136), **$2.00**. **IDIOM VERDICT (the point):** GLM's 4 correct bodies reason entirely about **KNOWN gcc mechanics** β€” delay-slot scheduling, callee-saved `$s0` preservation, reload-after-call aliasing, switch jump tables β€” all already in cookbook Β§10/Β§17/jump-table. **NO new idiom emerged.** GLM is a strong reasoner *applying* mapped idioms, not finding unmapped quirks (expected β€” 22 phases of Opus-Max mining charted the common gcc-2.7.2 quirks). **So the new-idiom well is DRY, now confirmed from BOTH angles: failed-residual (T10.8) AND fresh-hand-solve (T10.9).** 8/15 were reasoning-truncated empties (giants overrun 32k); near-misses `func_8018119C` (near-4) / `func_80187DAC` (near-5) are grinder/reconcile fodder. **ROBUST STRATEGIC CONCLUSION (multi-angle):** the LLM matching tier is exhausted of cheap+idiom leverage β€” (1) local v3 saturated ≀15 ($0, ~1300 banks), (2) frontier GLM = a modest ~22% hard-band drafter at ~$0.05-0.13/fn (def-side wall caps banking; wall is INTRINSIC, triple-confirmed), (3) no new idioms from either failed-residual or fresh cracks. Total OpenRouter spend ~$4/$25. **Per the Fable5 strategy review (`docs/fable5-strategy-review-2026-07.md` Β§4.3/Β§6.3), the real lever past the wall is the PUBLIC FLIP (community hand-matching), not a bigger model.** + **β˜… CLEAN STOPPING POINT (fresh session, Tier-1 Max, plan mode):** the LLM-tier exploration is comprehensively concluded. Options for the fresh session, in recommended order: **(A) PhaseEnd_Phase23** β€” write it (the LLM tier is fully characterized: local grinder + frontier test + idiom hunt, all byte-proven; a clean Tier-1 close), then **(B) plan the PUBLIC FLIP as the next phase** (Fable5 Β§6.3: R20 clean mirror, romβ†’decoder, CI, a naming pass on major systems, contributor on-ramp from `docs/backlog.md` β€” the strategic lever). A bounded GLM fresh-hard-band campaign remains available (money-open, modest fleet%) but is NOT the high-leverage move. Fleet stands at **~64.2%** (function-count) / ~30% byte-weighted, 136/136 byte-identical, 0 NON_MATCHING. All work committed (`c5cca1c6d`…`00d9d9d49`); Drew pushes (R6). serve_local DOWN, GPU free. `db.*.gbf` churn is R23 restart-noise (do NOT stage). -- 2026-07-02 (**THE GIANT CAMPAIGN β€” Fable5 wall-break + toolkit generalization; SUPERSEDES the "PhaseEnd next" stopping point above**): Drew redirected from PhaseEnd to hand-solving giants + a Fable5 experiment. **RESULT: 3 giants banked Γ—134, fleet 64.67% β†’ 64.82%, check-all 136/136, all committed** (`commit:0427`, `commit:0428`, `commit:0429`). +- 2026-07-02 (**THE GIANT CAMPAIGN β€” Fable5 wall-break + toolkit generalization; SUPERSEDES the "PhaseEnd next" stopping point above**): Drew redirected from PhaseEnd to hand-solving giants + a Fable5 experiment. **RESULT: 3 giants banked Γ—134, fleet 64.67% β†’ 64.82%, check-all 136/136, all committed** (`6678c6868`, `396fd2839`, `e74dd52b1`). - **Fable5Max (`Agent` model=fable) CRACKED `func_8014EE14`** (248 ins, reach-134) β€” a Β§20/Β§10 store-vs-load **"CONFIRMED unsteerable"** giant β€” by reading the **gcc-2.7.2 SOURCE** (`tools/reference/gcc-papermario`) + RTL `-da` dumps. **This REFUTES the T10.8/T10.9 "wall intrinsic / idiom well dry" verdict: it was MODEL-RELATIVE** (true for GLM/7B, false for a frontier model reading gcc internals). 3 idioms β†’ cookbook **Β§30**: (1) store-vs-load is a deterministic `MEM_IN_STRUCT_P`/`/s` aliasing flag (grant via `((struct{s32 f;}*)p)->f` anon-struct member-ref, deny via `*p`), NOT a scheduler tie-break; (2) the def-side return-type wall has a **MACRO escape** (widen a *discarding* caller-macro's `extern void`β†’`s32`, byte-neutral); (3) the birthing-boost prologue-order re-tie. - - **(a) toolkit pass:** 3 standard **Opus agents** *APPLIED* Β§30 to 3 backlog "unsteerable" store-vs-load fns β†’ `func_8014F2E0` (66) + `func_80150528` (53) **banked Γ—134** (`commit:0428`); `func_8014EA4C` 6β†’3 (partial β€” abs/frame-fragility residual, permuter/Fable5 tail). +2 idioms β†’ **Β§30a**: IV-combine single-base-pointer (keep `combine_givs` at N IVs); inline loop-limit β†’ preheader-hoist. **KEY FINDINGS:** standard Opus agents *applying* documented idioms crack leaves at ~80–130k tokens (3–5Γ— cheaper than Fable5 *discovering*); the "unsteerable" backlog is **largely MIS-VERDICTED**; the whole-binary integration is **MECHANICAL** (all 3 giants = the same `void`β†’`s32` macro-widen) β†’ **TOOLABLE**. + - **(a) toolkit pass:** 3 standard **Opus agents** *APPLIED* Β§30 to 3 backlog "unsteerable" store-vs-load fns β†’ `func_8014F2E0` (66) + `func_80150528` (53) **banked Γ—134** (`396fd2839`); `func_8014EA4C` 6β†’3 (partial β€” abs/frame-fragility residual, permuter/Fable5 tail). +2 idioms β†’ **Β§30a**: IV-combine single-base-pointer (keep `combine_givs` at N IVs); inline loop-limit β†’ preheader-hoist. **KEY FINDINGS:** standard Opus agents *applying* documented idioms crack leaves at ~80–130k tokens (3–5Γ— cheaper than Fable5 *discovering*); the "unsteerable" backlog is **largely MIS-VERDICTED**; the whole-binary integration is **MECHANICAL** (all 3 giants = the same `void`β†’`s32` macro-widen) β†’ **TOOLABLE**. - Also this session: GLM parallel-batch campaign (`tools/glm_parallel.sh`, K concurrent OpenRouter drafters) over the 102 reach-134 hard band β†’ **2 banks/102** (~$10 OpenRouter, def-side wall confirmed at scale; MAXTOK-tuning: reasoning models starve low, 96k overkill, ~48k+iters=2 sweet spot; iter-2 rescues ~29% of near-misses but not past the wall); free v3 grind **+89 fns** (fleet β†’64.7%) before I stopped it. `type-dependency map`: the 8 compile-blocked giants are **mechanically** unblocked (ghidra-types + externs), **NOT struct-walled**. - **β˜… CAMPAIGN REFRAME (the current plan):** bottleneck moved from "can we match" (yes β€” toolkit + Opus agents) to **THROUGHPUT**. Path: **(1) BUILD the Β§30 integration recovery tool** (auto macro-widen β†’ every leaf-MATCH auto-banks β€” the throughput unlock); **(2) Opus-agent WAVE** over the near-miss backlog (~95 "schedule"/80 "regalloc"/31 "hoist" verdicts, mostly mis-labeled) applying the toolkit; **(3) Fable5** for genuinely-novel residuals + the untouched big giants (`func_80144B9C` 770, `func_80132784` 400 HARD-DEFER, region `a`) + the 8 compile-blocked (mechanical unblock + draft). **v4-retrain on the new idioms = LOW ROI** (too few examples, class modest, giants exceed 7B β€” TOOL the idioms, don't train). **IN FLIGHT:** a 2nd Fable5 on giant `func_801571C4` (198 ins, close=24, region main β€” prologue-schedule/slot-swap residual). Tasks tracked in the harness list (R28). serve_local DOWN, GPU free. NB `.gitignore`+`docs/backlog.md` had pre-session uncommitted edits (unrelated); `db.*.gbf` = R23 noise. diff --git a/phase-ends/logs/Phase24.md b/phase-ends/logs/Phase24.md index cadadb7716..b02d14c42b 100644 --- a/phase-ends/logs/Phase24.md +++ b/phase-ends/logs/Phase24.md @@ -15,9 +15,9 @@ Whole-binary byte-gate (`tools/harvest_verify.py`) is the SOLE arbiter (G3/P9). - [x] T5 β€” Permuter evolve: Β§31-directed mutation + grinder fixes *(Max)* - [x] T5b β€” Fable5 Β§31 map-extension spike: S11 CRACKED (func_8014E048 banked; S12/S13/RC-10 β†’ Β§31) *(Max; Fable5)* β€” + found the Phase-21 breakage (overlay GetTPage + main-side 62 refs β†’ both fixed in T5c) - [x] T5c β€” Fix the Phase-21 main/library clean-rebuild breakage (62 dangling INCLUDE_ASM refs) *(Max)* β€” renamed to curated names; **true clean 136/136 restored**; added `tools/lint_symbol_refs.py` guard -- [x] **T6 β€” Integration-recovery tool + Γ—134 propagation-recovery** *(Max)* β€” flagship `func_80132784` Γ—134 (`commit:0443`) + `recover_integration.py` (`commit:0445`); **Β§A propagation-recovery COMPLETE (2026-07-03):** 15 more fns propagated Γ—134 β€” the 13 leaf-MATCHes (`commit:0447`) + func_8014E048 (T5b S11 crack) + func_80157580 (`commit:0448`). Fleet 64.90β†’**65.48%**, **clean fleet 136/136 (R22) after each batch**, dedup 1784β†’1799/0. Tool fixes: find_site indented-defs + trailing-comment externs, `dedup_propagate --recover` (Part B reconcile / Part A per-overlay exclude), build_engine_types comment-awareness. Broader capped tail (17 skips: 3 pin/asm/SHB stragglers + 14 local-type) β†’ T8 sweep. -- [x] T7 β€” Region-a giants *(Max)* β€” **βœ… GIANT ENDGAME COMPLETE (2026-07-08):** Β§G batch (6/8 cracked, 4 Γ—134) + whale Γ—134 + this session's `func_801770E0` + `func_801372B0` Γ—134 β‡’ every matched region-a giant is Γ—134; NO matched giant remains Γ—1. The 2 remaining reach-134 giants are permanent walls (`func_80178004` biv-init, `func_801412A8` alloc-knot β€” INCLUDE_ASM, G4). Small Γ—1 tail (3 stragglers + 17 local-type) β†’ T8. Fleet 66.02%. β€” giant-crack pipeline PROVEN: `func_80129CF8` Fable5-cracked + Β§32 idiom + banked Γ—1 (`commit:0450`) β†’ **NOW Γ—134** (via T7b/T1: the "Γ—134 wall" was an **R14 MISDIAGNOSIS** β€” the already-reconciled Γ—1 bank propagates cleanly via existing `dedup_propagate --recover`; clean fleet 136/136, fleet **65.52%**). 6 sibling giants still stubs (need Fable5/Opus match β†’ then the tool). -- [x] **T7b β€” Canonical-decl reconcile tool** *(Opus, Max β€” NOT Fable5)* β€” **COMPLETE** (plan `plan-…mossy-dawn.md`, T1–T6, commits `commit:0452`/`commit:0453`/`commit:0454`/`commit:0455`). **T1 (R14):** the "Γ—134 wall" was a misdiagnosis β€” `func_80129CF8` banks Γ—134 FREE. **T2/T3:** `tools/reconcile_decls.py` (fleet-majority oracle + byte-neutral data-cast transform, wired into gate_stage), byte-proven. **T4** no-op (no per-member conflicts). **T5:** 2nd giant `func_80138ED0` MATCHED (Opus+Β§32β†’close=21β†’Fable5 MATCH) + banked Γ—134 β€” validates the tool + pipeline on a real un-reconciled sibling; **2 giants Γ—134 this task**, fleet 65.48β†’**65.56%**, clean 136/136. **T6:** cookbook Β§33/Β§34 (+ the 3-qty sort bug / zero-byte asm toolkit / giv-init fence), Β§31 map RC-11, SETUP, design-doc RESOLVED. Reframed value: the tool AUTOMATES the manual reconcile for freshly-matched giants + the wave tail (6 sibling giants remain). +- [x] **T6 β€” Integration-recovery tool + Γ—134 propagation-recovery** *(Max)* β€” flagship `func_80132784` Γ—134 (`be38b9414`) + `recover_integration.py` (`91e5c4c29`); **Β§A propagation-recovery COMPLETE (2026-07-03):** 15 more fns propagated Γ—134 β€” the 13 leaf-MATCHes (`5b3697553`) + func_8014E048 (T5b S11 crack) + func_80157580 (`99ccc3748`). Fleet 64.90β†’**65.48%**, **clean fleet 136/136 (R22) after each batch**, dedup 1784β†’1799/0. Tool fixes: find_site indented-defs + trailing-comment externs, `dedup_propagate --recover` (Part B reconcile / Part A per-overlay exclude), build_engine_types comment-awareness. Broader capped tail (17 skips: 3 pin/asm/SHB stragglers + 14 local-type) β†’ T8 sweep. +- [x] T7 β€” Region-a giants *(Max)* β€” **βœ… GIANT ENDGAME COMPLETE (2026-07-08):** Β§G batch (6/8 cracked, 4 Γ—134) + whale Γ—134 + this session's `func_801770E0` + `func_801372B0` Γ—134 β‡’ every matched region-a giant is Γ—134; NO matched giant remains Γ—1. The 2 remaining reach-134 giants are permanent walls (`func_80178004` biv-init, `func_801412A8` alloc-knot β€” INCLUDE_ASM, G4). Small Γ—1 tail (3 stragglers + 17 local-type) β†’ T8. Fleet 66.02%. β€” giant-crack pipeline PROVEN: `func_80129CF8` Fable5-cracked + Β§32 idiom + banked Γ—1 (`8b48f482f`) β†’ **NOW Γ—134** (via T7b/T1: the "Γ—134 wall" was an **R14 MISDIAGNOSIS** β€” the already-reconciled Γ—1 bank propagates cleanly via existing `dedup_propagate --recover`; clean fleet 136/136, fleet **65.52%**). 6 sibling giants still stubs (need Fable5/Opus match β†’ then the tool). +- [x] **T7b β€” Canonical-decl reconcile tool** *(Opus, Max β€” NOT Fable5)* β€” **COMPLETE** (plan `plan-…mossy-dawn.md`, T1–T6, commits `eb53ae988`/`bdc349e3b`/`787b756e6`/`994368fbc`). **T1 (R14):** the "Γ—134 wall" was a misdiagnosis β€” `func_80129CF8` banks Γ—134 FREE. **T2/T3:** `tools/reconcile_decls.py` (fleet-majority oracle + byte-neutral data-cast transform, wired into gate_stage), byte-proven. **T4** no-op (no per-member conflicts). **T5:** 2nd giant `func_80138ED0` MATCHED (Opus+Β§32β†’close=21β†’Fable5 MATCH) + banked Γ—134 β€” validates the tool + pipeline on a real un-reconciled sibling; **2 giants Γ—134 this task**, fleet 65.48β†’**65.56%**, clean 136/136. **T6:** cookbook Β§33/Β§34 (+ the 3-qty sort bug / zero-byte asm toolkit / giv-init fence), Β§31 map RC-11, SETUP, design-doc RESOLVED. Reframed value: the tool AUTOMATES the manual reconcile for freshly-matched giants + the wave tail (6 sibling giants remain). - [ ] T8 β€” Scale the Β§31 wave *(breadth β†’ prompt for /effort toggle, R27)* β€” Β§D - [ ] T9 β€” Distill + PhaseEnd *(Max, Tier-1)* β€” Β§E @@ -48,24 +48,24 @@ Whole-binary byte-gate (`tools/harvest_verify.py`) is the SOLE arbiter (G3/P9). *(append one line per task on completion β€” the crash-recovery trail)* - **βœ… T7 Β§G Γ—1β†’Γ—134 GIANT ENDGAME COMPLETE (2026-07-08) β€” `func_801372B0` (207) banked Γ—134; BOTH remaining Γ—1 giants now Γ—134.** Unique-renamed local `SVEC`/`GLINE` β†’ `Svec_801372B0`/`Gline_801372B0` (a DIFFERENT same-named `SVEC` with u16 fields lives in `_after.c` β†’ a bare-name lift would double-define fleet-wide) + lifted to `engine_types.h`; ov_SC01_077 byte-neutral (`d19c9580`); `dedup_propagate --addr 0x801372B0 --recover` β†’ 134 byte-identical, group `E_func_801372B0`. CLEAN fleet **136/136 (R22)**, dedup **1812β†’1813/0**, fleet 65.99β†’**66.02%** (byte-weighted gain larger). **Completeness scan (R14): NO matched giant remains Γ—1** β€” the only reach-134 Γ—1 fns left are SMALL (3 now-propagatable stragglers `0x80174650`/`0x8012A018`/`0x80165CA0` + 17 local-type-blocked) = the **T8 tail** (Drew's focus directive: giants only, no small sweeps; my `overlay_files` fix incidentally unblocked the 3). Distilled β†’ cookbook **Β§39** (native-DEFINE-path-for-O2-giants Β· the `overlay_files` post-whale-split gap Β· `find_site` extern-comment class Β· unique-rename typedef-lift Β· R14 handoff-staleness). **The giant endgame is fully banked Γ—134** (whale + 6 Β§G cracks + func_801770E0 + func_801372B0). Remaining reach-134 giants = the 2 permanent walls (`func_80178004` biv-init close=7, `func_801412A8` alloc-knot close=29 β€” INCLUDE_ASM, G4). Commit: (this). - **T7 Β§G Γ—134 GIANT ENDGAME (2026-07-08, this session) β€” `func_801770E0` (152) banked Γ—134 via the NATIVE DEFINE-macro path; R14: `func_8014E048` was ALREADY Γ—134 (handoff line-49 stale).** Verified each named Γ—1 giant against the bytes (R14): `func_8014E048` is a 134-member group + `DEFINE_func_8014E048()` in every overlay (done in T6 Β§A) β€” NOT Γ—1. Only `func_801770E0` + `func_801372B0` actually remained. **Chose the native `dedup_propagate` DEFINE-macro path over the handoff's hand-rolled shared-header** β€” `func_8014E048` (pins+asm) is Γ—134 via a DEFINE macro, PROVING that path handles pin/asm -O2 giants (the whale needed a shared header only because it's -O0 β†’ separate object). **Blocker found + fixed (reusable):** `dedup_propagate.overlay_files` scanned `_a`/`_o0` splits but NOT the whale-rollout-created `_o0b`/`_after` β€” so every post-whale-region fn (func_801770E0 @0x801770E0 lives in `_after.c`) was invisible for BOTH source-def-find and stub-replacement β†’ added `_o0b`/`_after` to the suffix list. Also made func_801770E0's extern block contiguous (a `/* comment */` between externs made `find_site` drop the earlier 5 externs β†’ compiles_standalone fail; byte-neutral relocation). Then `dedup_propagate --addr 0x801770E0 --recover` β†’ **134 overlays byte-identical, 0 stragglers, group E_func_801770E0 registered**. CLEAN fleet (make clean+extract-all-136+check-all) = **136/136 (R22)**, dedup **1811β†’1812/0**, fleet 65.95β†’**65.99%** (byte-weighted gain larger β€” 152-ins giant). **NEXT: `func_801372B0`** (207; blocker = local `SVEC`/`GLINE` typedefs, also used differently in `_after.c` β†’ unique-rename `Svec_801372B0`/`Gline_801372B0` β†’ `engine_types.h`, byte-verify d19c9580, then `--recover`). Commit: (this). -- **πŸ”œ NEXT SESSION (2026-07-07, whale done) β€” the 2-3 Γ—1-matched giants β†’ Γ—134 (Drew: "finish the giants").** `func_801372B0` (207) + `func_801770E0` (152) + `func_8014E048` (143, T5b S11 crack) are MATCHED but banked Γ—1 in ov_SC01_077, STUBBED in the other 133 overlays β€” blocked from Γ—134 because `dedup_propagate.compiles_standalone` (tools/dedup_propagate.py:246) REJECTS register-asm-pin / anon-struct / local-typedef bodies (Β§A). Est. ~+0.4-0.6% byte-weight (already-matched; no new matching). **WHALE-DERIVED LEVER (a promising LEAD β€” verify, not proven):** the whale propagated Γ—134 WITHOUT dedup_propagate β€” via a **shared header** (`src/shared/func_80144B9C.h`) + a **hand-registered** h_exact dedup group (`.run/t7b/register_whale_dedup.py` β†’ E_func_80144B9C, `source=`the header). This pattern **BYPASSES `compiles_standalone` entirely**. The Γ—1 giants may bank Γ—134 the same way: extract each matched body β†’ `src/shared/.h`, then in ov_SC01_077 AND each of the 133 overlays replace the `INCLUDE_ASM()` line with `#include "../shared/.h"` **AT THE STUB POSITION** (NOT the file top β€” the fns are position-locked in the -O2 main subseg, unlike the whale which had its own o0b subseg), and hand-register the group. Sidesteps the pin/asm gate. (Alternative: teach `compiles_standalone` to compile pin/asm bodies WITH the pins.) A `rollout_whale_o0.py`-style tool (but for a mid-file `#include`, no yaml carve since these are -O2) would script it. **Then the giant endgame is fully banked.** Whale commits **commit:0463 (Γ—1) + commit:0464 (Γ—134)** β€” ready for Drew to push. +- **πŸ”œ NEXT SESSION (2026-07-07, whale done) β€” the 2-3 Γ—1-matched giants β†’ Γ—134 (Drew: "finish the giants").** `func_801372B0` (207) + `func_801770E0` (152) + `func_8014E048` (143, T5b S11 crack) are MATCHED but banked Γ—1 in ov_SC01_077, STUBBED in the other 133 overlays β€” blocked from Γ—134 because `dedup_propagate.compiles_standalone` (tools/dedup_propagate.py:246) REJECTS register-asm-pin / anon-struct / local-typedef bodies (Β§A). Est. ~+0.4-0.6% byte-weight (already-matched; no new matching). **WHALE-DERIVED LEVER (a promising LEAD β€” verify, not proven):** the whale propagated Γ—134 WITHOUT dedup_propagate β€” via a **shared header** (`src/shared/func_80144B9C.h`) + a **hand-registered** h_exact dedup group (`.run/t7b/register_whale_dedup.py` β†’ E_func_80144B9C, `source=`the header). This pattern **BYPASSES `compiles_standalone` entirely**. The Γ—1 giants may bank Γ—134 the same way: extract each matched body β†’ `src/shared/.h`, then in ov_SC01_077 AND each of the 133 overlays replace the `INCLUDE_ASM()` line with `#include "../shared/.h"` **AT THE STUB POSITION** (NOT the file top β€” the fns are position-locked in the -O2 main subseg, unlike the whale which had its own o0b subseg), and hand-register the group. Sidesteps the pin/asm gate. (Alternative: teach `compiles_standalone` to compile pin/asm bodies WITH the pins.) A `rollout_whale_o0.py`-style tool (but for a mid-file `#include`, no yaml carve since these are -O2) would script it. **Then the giant endgame is fully banked.** Whale commits **3b0cc190b (Γ—1) + 8cfbbf2d4 (Γ—134)** β€” ready for Drew to push. - **πŸ‹ T7 WHALE Γ—134 ROLLOUT COMPLETE β€” clean fleet 136/136 (2026-07-07):** all 134 overlays now carry func_80144B9C as -O0 compiled C (was Γ—1 in ov_SC01_077) β€” the single biggest byte-weight lever, banked Γ—134 (~+1.6% byte-weight). Mechanism (`tools/rollout_whale_o0.py`): per single-file overlay, LINE-split `.c` at the whale (splat emits in vram order β†’ no item-parse hazard), carve the yaml code subseg into before/`_o0b`(-O0)/`_after`, thin `_o0b.c` #includes the shared `src/shared/func_80144B9C.h` (the whale C moved there β€” DRY, TU-local typedefs, NOT a fragile 200-line DEFINE_ macro). One Makefile `WHALE_O0B_OBJS` wildcard -O0-compiles all `_o0b.o`. Registered dedup group **E_func_80144B9C** (134 members, h_exact 74186b97, source=the header β€” `group_members` keys on binary+vram, so a header-share validates like a macro-share). **CLEAN fleet check-all 136/136 (R22)**; dedup-check 1810β†’**1811/0**; FLEET REAL 225816β†’225949, byte-identical 65.91β†’**65.95%** function-count (the big gain is byte-weighted). Validated on ov_SC01_000 + spot-checks SC02/SC03/SC07 before the full fleet. Distilled: **cookbook Β§38** (struct-assign -O0 idiom + the -O0 reach-134 rollout + the memcpy asm-label) + SETUP inventory. **πŸ‹ WHALE DONE.** Commit: (this). - **πŸ‹ T7 WHALE func_80144B9C CRACKED + banked Γ—1 (-O0), clean fleet 136/136 (2026-07-07):** the 770-ins reach-134 whale β€” the single biggest byte-weight lever (β‰ˆ next ~8 giants combined). **CRACK (cheap Opus, NO Fable5/calls.c β€” both retired):** the close=2 residual was a STRUCT ASSIGN `D_80078E50 = *ent;` (sizeof(ENT)==0x24), NOT an explicit memcpy() β€” gcc-2.7.2 -O0 expands a >MOVE_RATIO struct copy via emit_block_moveβ†’emit_library_call(memcpy): args go through copy_to_mode_reg (pseudos) then `addu $a0,$v1 ; addu $a1,$v0` = the exact 2 missing moves. **BANK INFRA (byte-neutral, reusable for Γ—134):** (1) 2nd per-file -O0 split β€” the whale is a 2nd -O0 region (prologue 21F0A003) in the -O2 "after" segment, carved into its own -O0 object `o0b` (splat.ov_SC01_077.yaml 3-way + Makefile CC1FLAGS=-O0; the file is splat-emitted in vram order β†’ a LINE-based split at the whale preserves all banked C, no item-parsing/DEFINE_ hazard β€” `.run/t7b/split_whale.py`). (2) `memcpy=0x8005C324` in symbols.resident.txt (overlays+resident ONLY β€” main defines memcpy via MEMCPY.o, so a shared-symbol add would multiple-def) + `__asm__("memcpy")` on the engine_core.h block-copy macro (keeps the non-builtin C name to avoid gcc's built-in-memcpy codegen, emits the same 0x8005C324 call; benign "conflicting types for built-in memcpy" warning). splat REJECTS two symbols at one addr (tried func_8005C324+memcpy β†’ error) β†’ the asm-label is the fix. ov_SC01_077 == d19c9580; **CLEAN fleet check-all 136/136 (R22)**, dedup 1810/0. **W9 NEXT: script the Γ—134 -O0 rollout** (per-overlay o0b split via split_whale-style tool + a DEFINE_func_80144B9C() macro w/ TU-local typedefs β€” no engine_types.h collision; 133 single-file overlays, whale stubbed at file 0x1CA44 in each) β†’ ~+1.6% byte-weight. Commit: (this). - **T7 Β§G BATCH CLOSE βœ… (2026-07-07, committed; TRUE clean fleet 136/136) β€” 6/8 reach-134 giants cracked, 4 propagated Γ—134, fleet 65.75β†’65.91%:** MATCHED: `func_801571C4` (permuter, after the p16_permute comment-fix), `func_8014EA4C`/`func_801372B0`/`func_801770E0`/`func_80176D94`/`func_80148094` (Fable5, sequential idiom-banking chain). 2 WALLS (stay INCLUDE_ASM, G4): `func_80178004` (biv-init emit-order, close=7), `func_801412A8` (allocation placement-knot, close=29). **Propagated Γ—134:** 571C4/EA4C/76D94/48094 (134 overlays byte-identical; dedup **1810 groups / 0 failed**; genuinely-clean `make clean`+extract-all-136+check-all = **136/136**). **Γ—1 (Γ—134 follow-up β€” Β§A `dedup_propagate.compiles_standalone` gaps):** `func_801372B0` (asm-label-alias bank; blocked by local SVEC/GLINE typedefs β€” need unique-renamed lift β€” + register-asm pins), `func_801770E0` (anon-struct'd; blocked by register-asm pins). **NEW TOOLS:** `tools/p16_permute.py` comment-fix (a silent bug that had no-op'd the permuter on EVERY commented draft β†’ immediately cracked 571C4) + `tools/permuter_ils.py` (warm-restart iterated-local-search). **KNOWLEDGE (durable):** cookbook **Β§37** + `docs/gcc-2.7.2-map/t7g-giant-harvest.md` (sibling-isomorphism law Β· `/s`-dep-lattice load+store dual Β· allocno ref-boost Β· coalescable-copy insn_count bump Β· RC-6-exemplar downgrade Β· "RTL dumps NOT stripped" Β· asm-label-alias/anon-struct banking). **REMAINING:** the WHALE `func_80144B9C` (close=2, DISCOVERED -O0 β€” needs a 2nd per-file -O0 split + gcc-2.7.2 `calls.c` + Fable5) + the 2 Γ—1 giants' Γ—134 (a pin/asm self-containment shim). Commit: (this). - **T7 Β§G IN PROGRESS β€” parallel-attack session (2026-07-07, uncommitted; NOT yet clean-verified):** worked the ~9 reach-134 Β§G giants via 8 parallel Opus draft-agents (draft-only) + directed permuter + Fable5 chain; banking serial in main loop. **R14 re-measure overturned Β§G's stale closeness** (func_8014EA4C "~c6"β†’really 128; func_80178004 "close=0"β†’91; the REAL closest was func_801571C4 @11). **FLYWHEEL FIX:** found+fixed a silent permuter bug β€” `make_base_c` didn't strip draft header comments β†’ `cpp` "unterminated comment" β†’ decomp-permuter no-op'd `(0s)` on EVERY commented giant draft (`tools/p16_permute.py` `strip_c_comments`). Immediately cracked **func_801571C4 (SCHEDULE, 11β†’0 in 40s) β†’ banked Γ—1** (`.run/t7b/matched/`; needed the byte-neutral `extern void`β†’`u32` caller reconcile at ov_SC01_077.c:4721; propagate Γ—134 at batch close). Built **`tools/permuter_ils.py`** (warm-restart iterated-local-search; 48094 72β†’38 where cold plateaus). **7 giants driven count-exact to precise single-class cc1-internal walls β†’ FABLE5 BATCH (Drew authorized full, closest-first sequential + idiom-banking):** EA4C(6,frame-0x60-knife-edge) Β· 372B0(8,sched1 live-range) Β· 78004(37,const-hoistβŠ—regalloc) Β· 770E0(47,RC-6) Β· 76D94(52,S3 mutual-excl) Β· 48094(72,local-vs-global $a0; ILSβ†’38) Β· 412A8(80,S3; ILSβ†’45). **EA4C Fable5 RUNNING (1st).** πŸ‹ **WHALE func_80144B9C CLOSE=2 (768/770) β€” DISCOVERED -O0, not -O2** (prologue `21F0A003`; -O2 reads only 458/770) β€” a 2nd -O0 region @0x80144B9C stranded in the -O2 segment; needs a **2nd per-file -O0 split** (config) + **gcc-2.7.2 `calls.c`** (not in tools/reference, only 2.8.1) + Fable5 for the memcpy(=func_8005C324) -O0 arg-precompute. All drafts in `.run/t7b/{matched,close}/`; all levers + the -O0 idiom set + banking recipe in **`.run/t7b/LEVERS_HARVEST.md`** (β†’ cookbook at close). Fleet still 65.75% (571C4 Γ—1 negligible until Γ—134). NEXT: bank each Fable5 MATCH Γ—1 β†’ one `dedup_propagate --auto-from --recover` at close β†’ R22 clean-verify 136/136. **GEN2 RELEASE CANDIDATES (Drew 2026-07-07 β†’ put in PhaseEnd):** (1) upstream an ILS/warm-restart mode to decomp-permuter (it appears to lack one); (2) release our gcc-2.7.2 codegen map Β§31/Β§36 + the "shipped cc1 RTL dumps are NOT stripped (`-dr -dj -dc -dl -dg`)" method β€” high value to any gcc-2.7.x decomp project; (3) the ILS *idea* (not the harness-coupled wrapper). Sequence at the Gen2 public flip. **FOCUS DIRECTIVE (Drew 2026-07-07):** pursue the largest-%-gain giants ONLY β€” NO small-function backlog sweeps (declined a ~52-candidate sweep); crack ALL giants incl. the WHALE func_80144B9C (the single biggest lever, β‰ˆ next ~8 giants combined in byte-weight), THEN decide what's next. -- **T7 Fable5 batch COMPLETE β€” 3 giants cracked + banked Γ—134 (2026-07-04, `commit:0460`; clean fleet 136/136):** the 3 residual monsters (close=2/10/15) all β†’ **MATCH** via sequential Fable5 (idiom-banking between): `func_801392FC` (cross-BB combine law + volatile-frame-parity), `func_8013A530` (the RC-6 "reload knot" was the pins β†’ the **$0-add opaque copy** `iVar7=fc+zr` + 3 zero-byte levers; regalloc.md RC-12/13), `func_8013AF20` (the "impossible" const-hoist order was libgpu addPrim's 24-bit **bitfield store** β†’ `store_fixed_bit_field` emits 0x00ffffff first; P_TAG lifted to engine_types.h byte-neutral). Banked via the Β§35 recipe; cookbook **Β§36** + loop.md + regalloc.md fed; gcc-2.7.2 reference tree extended (expmed.c/mips.md/…). **SESSION TOTAL: 7 giants Γ—134** (func_80129CF8 R14-free + func_8012D098/EC04 Opus-solo + func_80138ED0/801392FC/8013A530/8013AF20 Opusβ†’Fable5); **fleet 65.48β†’65.75%**, 136/136, 0 NON_MATCHING. **NEXT SESSION: the ~9 remaining reach-134 giants per Β§G** (closest-first + the 770-ins whale func_80144B9C fast-tracked). Bank this session's Β§36 idioms are already in Β§31 β†’ next-session Opus starts richer. -- **T7 (resumed, Drew's choice) β€” sibling-giant harvest via parallel Opus-Max agents (2026-07-03, IN PROGRESS):** launched 5 Opus agents (one per remaining region-a giant), each applying Β§32/Β§34, escalating to Fable5 only on stall. **KEY FINDING (answers the flywheel Q):** the "3 hardest 8-$s-reg giants" were MIS-RANKED β€” the 8-$s pressure is param/local/buffer-derived, NOT global-array hoists (only global-array-hoisting giants like func_80129CF8 are genuinely hard), so they **one-shot with Opus alone, no Fable5**. Banked Γ—134 so far: **func_8012D098** (189, one-shot Opus) + **func_8012EC04** (178, one-shot Opus = sibling func_8012EA90 + GTE tail). Fleet 65.56β†’**65.64%** (uncommitted, clean-verify running). 3 still iterating: func_8013AF20 (~60), func_8013A530 (~45), func_801392FC. **BANKING RECIPE (established; per-giant integration is mechanical, Β§30a):** matched draft β†’ `fix_arity_callers --apply --any-proto` (no-proto the engine_core.h/overlay caller extern that conflicts with the matched def-sig β€” the DEF-side wall) β†’ `sig_unify` (callee no-protoβ†’full-proto) β†’ **strip draft-local typedefs already in engine_types.h + anonymize named local typedefs** (else `conflicting types` in the shared TU) β†’ `harvest_verify --chunk 1` Γ—1 β†’ `dedup_propagate --recover` Γ—134. **NOTE: skip `cast_call_sites`** β€” it mis-casts a no-proto `void f()` to `void(*)(void)` (T6/cookbook fix candidate). **Two-pass verdict (Drew's Q):** Opus-first is right (structure cheap + flywheel; Fable5 only for genuine global-hoist/regalloc walls); parallel Opus is fine, sequence any Fable5 escalations with idiom-banking. **HARVEST COMPLETE (5 giants processed):** **4 banked Γ—134** (func_80129CF8, func_80138ED0 earlier; **func_8012D098 + func_8012EC04 this batch**, `commit:0457`, clean 136/136, fleet **65.64%**). **3 deferred to a Fable5 batch** β€” all Opus-driven to a single-class compiler-internal wall: `func_801392FC` **close=2** (count-load pipelining / combine-fold-vs-sched2), `func_8013A530` **close=10** (RC-6 reload-pressure, register-only, contained), `func_8013AF20` **close=15** (loop-invariant constant-hoist order). Residuals in `docs/backlog.md` + cookbook **Β§35** + `.run/t7/.c` headers. **RANKING LAW (retires "8-$s=hardest"):** difficulty = global-array-hoisting, NOT $s count (param/buffer giants one-shot Opus even at all-8-$s; only global-hoisters need Fable5). **BANKING RECIPE** (Β§35): fix_arity_callers --any-proto β†’ sig_unify β†’ strip engine_types.h-dup + anonymize local typedefs β†’ harvest_verify β†’ dedup_propagate; NOT cast_call_sites (mis-casts no-proto). **NEXT DECISION (Drew):** Fable5-batch the 3 residuals now (~1.3M tok, ~4.5h, each Γ—134) vs a fresh focused session vs permuter-first on the contained func_8013A530. +- **T7 Fable5 batch COMPLETE β€” 3 giants cracked + banked Γ—134 (2026-07-04, `8ba3b8230`; clean fleet 136/136):** the 3 residual monsters (close=2/10/15) all β†’ **MATCH** via sequential Fable5 (idiom-banking between): `func_801392FC` (cross-BB combine law + volatile-frame-parity), `func_8013A530` (the RC-6 "reload knot" was the pins β†’ the **$0-add opaque copy** `iVar7=fc+zr` + 3 zero-byte levers; regalloc.md RC-12/13), `func_8013AF20` (the "impossible" const-hoist order was libgpu addPrim's 24-bit **bitfield store** β†’ `store_fixed_bit_field` emits 0x00ffffff first; P_TAG lifted to engine_types.h byte-neutral). Banked via the Β§35 recipe; cookbook **Β§36** + loop.md + regalloc.md fed; gcc-2.7.2 reference tree extended (expmed.c/mips.md/…). **SESSION TOTAL: 7 giants Γ—134** (func_80129CF8 R14-free + func_8012D098/EC04 Opus-solo + func_80138ED0/801392FC/8013A530/8013AF20 Opusβ†’Fable5); **fleet 65.48β†’65.75%**, 136/136, 0 NON_MATCHING. **NEXT SESSION: the ~9 remaining reach-134 giants per Β§G** (closest-first + the 770-ins whale func_80144B9C fast-tracked). Bank this session's Β§36 idioms are already in Β§31 β†’ next-session Opus starts richer. +- **T7 (resumed, Drew's choice) β€” sibling-giant harvest via parallel Opus-Max agents (2026-07-03, IN PROGRESS):** launched 5 Opus agents (one per remaining region-a giant), each applying Β§32/Β§34, escalating to Fable5 only on stall. **KEY FINDING (answers the flywheel Q):** the "3 hardest 8-$s-reg giants" were MIS-RANKED β€” the 8-$s pressure is param/local/buffer-derived, NOT global-array hoists (only global-array-hoisting giants like func_80129CF8 are genuinely hard), so they **one-shot with Opus alone, no Fable5**. Banked Γ—134 so far: **func_8012D098** (189, one-shot Opus) + **func_8012EC04** (178, one-shot Opus = sibling func_8012EA90 + GTE tail). Fleet 65.56β†’**65.64%** (uncommitted, clean-verify running). 3 still iterating: func_8013AF20 (~60), func_8013A530 (~45), func_801392FC. **BANKING RECIPE (established; per-giant integration is mechanical, Β§30a):** matched draft β†’ `fix_arity_callers --apply --any-proto` (no-proto the engine_core.h/overlay caller extern that conflicts with the matched def-sig β€” the DEF-side wall) β†’ `sig_unify` (callee no-protoβ†’full-proto) β†’ **strip draft-local typedefs already in engine_types.h + anonymize named local typedefs** (else `conflicting types` in the shared TU) β†’ `harvest_verify --chunk 1` Γ—1 β†’ `dedup_propagate --recover` Γ—134. **NOTE: skip `cast_call_sites`** β€” it mis-casts a no-proto `void f()` to `void(*)(void)` (T6/cookbook fix candidate). **Two-pass verdict (Drew's Q):** Opus-first is right (structure cheap + flywheel; Fable5 only for genuine global-hoist/regalloc walls); parallel Opus is fine, sequence any Fable5 escalations with idiom-banking. **HARVEST COMPLETE (5 giants processed):** **4 banked Γ—134** (func_80129CF8, func_80138ED0 earlier; **func_8012D098 + func_8012EC04 this batch**, `680299718`, clean 136/136, fleet **65.64%**). **3 deferred to a Fable5 batch** β€” all Opus-driven to a single-class compiler-internal wall: `func_801392FC` **close=2** (count-load pipelining / combine-fold-vs-sched2), `func_8013A530` **close=10** (RC-6 reload-pressure, register-only, contained), `func_8013AF20` **close=15** (loop-invariant constant-hoist order). Residuals in `docs/backlog.md` + cookbook **Β§35** + `.run/t7/.c` headers. **RANKING LAW (retires "8-$s=hardest"):** difficulty = global-array-hoisting, NOT $s count (param/buffer giants one-shot Opus even at all-8-$s; only global-hoisters need Fable5). **BANKING RECIPE** (Β§35): fix_arity_callers --any-proto β†’ sig_unify β†’ strip engine_types.h-dup + anonymize local typedefs β†’ harvest_verify β†’ dedup_propagate; NOT cast_call_sites (mis-casts no-proto). **NEXT DECISION (Drew):** Fable5-batch the 3 residuals now (~1.3M tok, ~4.5h, each Γ—134) vs a fresh focused session vs permuter-first on the contained func_8013A530. - **T7b/T5 β€” 2nd giant `func_80138ED0` MATCHED + banked Γ—134; the real un-reconciled-sibling proof + major new Β§31 idioms (2026-07-03):** Opus applying Β§32 β†’ **close=21** (159/159 ins; semantics/control-flow/constants exact; found the transferable **giv-init fence** lever) β†’ stalled on pure regalloc/sched. **Fable5Max reading the vanilla gcc-2.7.2 source β†’ MATCH** (every class C-reachable, no permuter). Headline finds (β†’ cookbook Β§34, byte-verified + gdb-on-cc1): **gcc-2.7.2's 3-qty local-alloc SORT BUG** (`local-alloc.c:1441` β€” ≀3 qtys allocate in creation not density order; fixed via a zero-instruction **decoy qty**) + the **zero-byte asm allocation toolkit** (input-only / multi-input / def+use dummies = ref-count / lifetime / sort-path dials that emit nothing, byte-gate-certified). **Banked via the standard pipeline** (validates it on a real giant): `cast_call_sites` reconciled `func_8013914C` `(u8*,u16*)`β†’canonical `(s32,s32)`+call-site cast; **`reconcile_decls` a NO-OP** (the 2 data bases are giant-local β†’ no fleet conflict β€” confirms the tool's no-op correctness / no false-positive); `harvest_verify` Γ—1 (`d19c9580`) β†’ `dedup_propagate --recover` **Γ—134** (134 byte-identical; pins/asm body propagates fine; `func_800599B8`'s lone `(s32,s32)` decl is in `ov_SC01_077.c`, a separate TU from the `_a.c` bank β†’ no per-member conflict). gcc-2.7.2 reference tree **completed** (18 .c). Distilled: cookbook **Β§34** + SETUP Β§5.6. **Clean fleet verify running.** T5 satisfied: tool proven on 2 real giants (func_80129CF8 reconcile-path byte-proof + func_80138ED0 no-op + full-pipeline + 2nd giant Γ—134). **NEXT: T6 finalize** (fold Β§34 into the Β§31 map files) **+ PhaseEnd.** Commit: (pending verify). -- **T7b/T2+T3 β€” `tools/reconcile_decls.py` built + BYTE-PROVEN (2026-07-03, `commit:0453` tool + docs commit):** the DATA-symbol analog of `cast_call_sites` (Β§20). **Oracle** (T2): fleet-majority canonical-type picker β€” `engine_core.h`-macro type authoritative, else plurality across all overlays+resident (deterministic); reuses `gen_harvest_targets.collect_data_decls`; **8/8 correct** on func_80129CF8's symbols (`--print-canon`). **Transform** (T3): byte-neutral access-cast taxonomy β€” array `(Ed*)D_x`, struct-base `(Ed*)&D_x`, scalar-signedness `*(Td*)&D_x`, ptr-in-scalar `(*(P**)&D_x)`; ONE single-pass `re.sub` per symbol (a first draft double-wrapped the ptr-store β€” fixed). Wired into `gate_stage` after `cast_call_sites` (idempotent / no-op without a data conflict β†’ can't regress the wave; byte-gate stays sole arbiter). **BYTE-PROOF (no Fable5):** full *loose* func_80129CF8 (intended decls, un-cast) β†’ `reconcile_decls` (5 reconciled) β†’ swapped into the `DEFINE_` macro β†’ `make build BINARY=ov_SC01_077` = **`d19c9580` BYTE-IDENTICAL**; idempotent (0) on the canonical committed draft. **T4 resolved NO-OP** (T1: zero per-member conflicts β€” the fleet is decl-consistent). Distilled (R30): cookbook **Β§33** + Β§32 R14-correction, SETUP inventory row, design-doc **βœ… RESOLVED** banner. **NEXT (T5, on Drew's Fable5 go):** match a sibling giant β€” `func_80138ED0` (closest, 2 data bases D_80127548/D_80127C0C) β€” with Fable5Max β†’ `reconcile_decls` its raw draft β†’ bank Γ—1 β†’ `dedup_propagate --recover` Γ—134 (the real end-to-end proof + a 2nd giant Γ—134). Then T6 finalize + PhaseEnd. +- **T7b/T2+T3 β€” `tools/reconcile_decls.py` built + BYTE-PROVEN (2026-07-03, `bdc349e3b` tool + docs commit):** the DATA-symbol analog of `cast_call_sites` (Β§20). **Oracle** (T2): fleet-majority canonical-type picker β€” `engine_core.h`-macro type authoritative, else plurality across all overlays+resident (deterministic); reuses `gen_harvest_targets.collect_data_decls`; **8/8 correct** on func_80129CF8's symbols (`--print-canon`). **Transform** (T3): byte-neutral access-cast taxonomy β€” array `(Ed*)D_x`, struct-base `(Ed*)&D_x`, scalar-signedness `*(Td*)&D_x`, ptr-in-scalar `(*(P**)&D_x)`; ONE single-pass `re.sub` per symbol (a first draft double-wrapped the ptr-store β€” fixed). Wired into `gate_stage` after `cast_call_sites` (idempotent / no-op without a data conflict β†’ can't regress the wave; byte-gate stays sole arbiter). **BYTE-PROOF (no Fable5):** full *loose* func_80129CF8 (intended decls, un-cast) β†’ `reconcile_decls` (5 reconciled) β†’ swapped into the `DEFINE_` macro β†’ `make build BINARY=ov_SC01_077` = **`d19c9580` BYTE-IDENTICAL**; idempotent (0) on the canonical committed draft. **T4 resolved NO-OP** (T1: zero per-member conflicts β€” the fleet is decl-consistent). Distilled (R30): cookbook **Β§33** + Β§32 R14-correction, SETUP inventory row, design-doc **βœ… RESOLVED** banner. **NEXT (T5, on Drew's Fable5 go):** match a sibling giant β€” `func_80138ED0` (closest, 2 data bases D_80127548/D_80127C0C) β€” with Fable5Max β†’ `reconcile_decls` its raw draft β†’ bank Γ—1 β†’ `dedup_propagate --recover` Γ—134 (the real end-to-end proof + a 2nd giant Γ—134). Then T6 finalize + PhaseEnd. - **T7b/T1 β€” R14: the "Γ—134 wall" was a MISDIAGNOSIS; `func_80129CF8` banks Γ—134 FREE (2026-07-03, this commit):** Diagnosed the prior "Γ—134 BLOCKED / all overlays excluded" claim by RUNNING it (R14/P9). Byte-verified: (a) the giant's Γ—1 bank extern block is already fleet-canonical (every symbol matches the overlay-majority; the lone `D_801151D4` `s32`-vs-`ptr` conflict is in `resident.c`, NOT an overlay member); (b) `dedup_propagate --addr 0x80129CF8 --check-only` β†’ plan-eligible, **134 members**, passes `compiles_standalone`; (c) a representative member (`ov_SC01_000`) declares NONE of the giant's symbols locally (the macro's externs are the sole declarers); (d) controlled `--no-gate` instantiate + `make build BINARY=ov_SC01_000` = **BYTE-IDENTICAL** `9052dc0e`. Then full `dedup_propagate --addr 0x80129CF8 --recover` β†’ **134 overlays byte-identical, group registered** (exit 0); clean `make clean && extract-all && check-all` β†’ **136/136, 0 failed**, fleet **64.90β†’65.52%**, dedup **1799β†’1800/0**. β‡’ the "loose-typing wall" was a **stale-asm / incremental-tree artifact** (the exact T5c/T6-Β§A trap β€” a prior run before the reconcile committed, or a dirty asm/). **Consequence:** the reconcile tool is NOT needed to unlock func_80129CF8 (or any *already-reconciled* giant); its real value = **mechanize the manual decl-reconcile** for *freshly-matched* giant drafts (m2c `M2C_UNK` / Fable5 output with loose callee/data types) β†’ canonical decl + byte-neutral access casts β†’ bankable Γ—1 + propagatable Γ—134, hands-free. Beneficiaries: the **6 sibling giants** (all still stubs) + the wave tail. **Drew's choice B:** finish the tool + match a sibling giant as the real T5 validation target (Fable5Max on request). Plan `plan-…mossy-dawn.md` (T1–T6); next = T2 oracle + T3 `reconcile_decls.py`. Commit: (this). -- **T7 β€” giant `func_80129CF8` CRACKED (Fable5) + Β§32 idiom + banked Γ—1; Γ—134 WALL found β†’ Drew chose to build the canonical-decl tool (2026-07-03, `commit:0450`):** Fable5Max cracked the 191-ins region-a camera giant (match_one MATCH) β€” struct-base hoisting via **source-local pointers** (gcc-2.7.2 has no cross-bb CSE β†’ a callee-saved base can only come from a local, **NO pins**), branch-polarity-off-the-opcode, S12 reused-temp fence, `expand_block_move` struct-assignment, dead-local-aggregate frame β†’ **cookbook Β§32** (transferable to the 6 sibling giants β€” `.run/t7/GIANTS_SURVEY.md`). Banked **Γ—1** in `ov_SC01_077_a.c` (`d19c9580`, clean fleet 136/136) after reconciling its loose-typed decls (`u8[]`/`s32[]`/`struct BigCopy`/`s8`-vs-`u8`; `func_80012F74` `s16`-vs-`s32`) β†’ canonical + **byte-neutral access casts**; `RView` (GsRVIEW2-shaped) β†’ `engine_types.h`. **FINDING (byte-proven):** Γ—134 propagation is **BLOCKED by the fleet-wide loose-typing wall** β€” the giant's shared callees/data are declared incompatibly across overlays, so the macro's externs conflict per-overlay, and `dedup_propagate --recover` only fixes the propagated fn's CALLER extern (not its callee/data). Loose-typed giants bank Γ—1, NOT Γ—134 (the flagship `func_80132784` propagated only because its symbols were fleet-compatible). **DREW'S DECISION (A β€” invest over immediate ROI):** build the fleet-wide **canonical-decl reconcile tool** = the Γ—134 giant unlock. **Spec + conflict taxonomy + the proven byte-neutral cast patterns β†’ `docs/canonical-decl-reconcile-design.md`.** Build it **Opus, plan-mode, Max β€” NOT Fable5** (it's tooling; the byte-gate arbitrates; reserve Fable5 for stalled giant MATCHES). Fable5's giant-crack is a *match* tier; this is a *plumbing* tier. -- **T6 Β§A β€” Γ—134 propagation-recovery COMPLETE (2026-07-03, `commit:0447`+`commit:0448`):** 🎯 **15 fns propagated Γ—134** this session (fleet 64.90β†’**65.48%**; two clean-fleet-verified commits). Fixed FOUR blockers, all whole-binary-byte-gate-validated: **(1) find_site indented defs** β€” the def regex `^[A-Za-z_]` was column-0-only, silently dropping every recover_integration-banked (indented) def from propagation; unit-tested (indented DEFS match, indented CALL-exprs don't). **(2) find_site trailing-comment externs** β€” the extern-collection `^\s*extern\b.*;\s*$` stopped at `extern u8 D_x[]; /* comment */`, dropping the earlier externs β†’ THIS (not "pin/asm", R14) was func_8014E048's real self-containment blocker. **(3) dedup_propagate --recover** β€” on a straggler byte-gate fail: Part B no-protos that overlay's conflicting caller extern + re-gates (byte-neutral, = fix_arity_callers --any-proto); Part A excludes only that overlay (Γ—N-1) vs the historical all-or-nothing drop; wired into gate_stage. **(4) build_engine_types comment-awareness** (`blank_comments`) β€” its OWN generated "…typedef lift" header comment was captured as a bogus `typedef vec`, self-colliding and blocking every --strip; NOTE full --strip still conflicts with the `_a/_o0` splits, so func_8014F74C's PosT/MoveT were lifted TARGETED (byte-neutral). **Banked:** the 13 leaf-MATCHes + func_8014E048 (T5b S11 crack) + func_80157580. **R14/R22 lesson (cost me a detour):** a stale-`asm/` tree (13 missing `.s`) confounded the FIRST --recover test into a false "byte-diverge everywhere incl. the source overlay" β€” a re-extract fixed it; the incremental per-overlay byte-gate is only valid on a freshly-extracted tree, so clean-verify (make clean && extract-all && check-all) EVERY batch. **Deferred tail (17 not-self-contained):** the 3 pre-existing --auto-from stragglers (0x80174650/8012A018/80165CA0 β€” pin/asm + uncaptured local `#define SHB`; moving SHB to a shared header would unblock func_80165CA0) + 14 local-type cases β†’ T8 sweep. **T9 cookbook fodder:** the integration-recovery family (Β§A) + the stale-asm R22 corollary + the find_site extern-comment/indent classes. -- **T6 (tool built + gate-recovery proven; Γ—134 propagation-recovery deferred) (2026-07-03):** built **`tools/recover_integration.py`** (batch integration-recovery: gather leaf-MATCH candidates β†’ no-proto their conflicting caller decls β†’ gate_stage β†’ 2-pass snapshot/restore so non-banks aren't corrupted) + **extended `tools/fix_arity_callers.py`** with `--binary` (scan the overlay's OWN inline callers, not just engine_core.h β€” the gap that left the "declaration/TU plumbing" class unrecovered). **Banked 13 leaf-MATCH fns** (func_8014F74C/801542A4/8015BE94/8015F380/80160F00/801653B8/80166244/8016E778/801732C4/8017331C/80173374/80174554/801745AC), **clean-verified together** (ov_SC01_077 `d19c9580`). **R14 lesson (clean-verify caught it):** the first batch's `fix_arity_callers --revert` was LOSSY for `--any-proto` (`()`β†’`(void)`, not back to the original args) β†’ corrupted non-banks ("too many arguments"); fixed with the 2-pass snapshot. **Γ—134 propagation of the 13 is BLOCKED (3 diagnosed sub-blockers β†’ remaining T6 work):** (1) `dedup_propagate` `find_site` misses **indented** inline defs (7/13 "not inline-def" β€” Phase-15 class); (2) 1/13 uses overlay-local types (type-lift); (3) the 5 plannable all drop on the **ov_SC01_000 straggler** (conflicting caller externs, same class as the flagship's ov_SC02_005 β€” needs the auto-reconcile Part B). So the 13 are banked **Γ—1** pending those fixes. Flagship `func_80132784` (`commit:0443`) remains the one Γ—134 T6 win. -- **T6 (partial) βœ“ (2026-07-03):** 🎯 **FLAGSHIP `func_80132784` PROPAGATED Γ—134** (`commit:0443`) β€” the 400-ins S11 giant (cracked T4, banked Γ—1) now byte-identical in ALL 134 overlays, **+1.6% byte-weighted** (the single biggest lever; function-count fleet 64.86β†’64.90%). **The T6 recovery pattern, proven end-to-end:** the T4-deferred Γ—1 cap was one straggler overlay (ov_SC02_005) declaring a CONFLICTING caller extern `void func_80132784(s32,s32,s32)` vs the def `(s32,s32,u32)` β†’ `conflicting types` β†’ dedup_propagate's all-or-nothing single-`--addr` plan dropped the whole fn. Fix: reconcile the straggler's caller extern to the def's canonical sig (s32β†’u32, byte-neutral β€” the call site casts anyway), then propagate β†’ 134 overlays rebuilt byte-identical, group `E_func_80132784` registered, dedup-check 1784/0. **Clean R22 fleet check-all 136/136.** **REMAINING T6 (the tool):** automate this β€” detect a straggler's conflicting caller decl β†’ reconcile to the def's canonical sig β†’ re-gate β†’ propagate full (vs. all-or-nothing drop); + the other Γ—1 classes (func_8014E048 pin/asm self-containment β€” a DIFFERENT blocker: dedup_propagate's `compiles_standalone` rejects pin/asm bodies; func_80144090 OtBlk type-lift; func_8014F4C0/func_80155800 TU-context leaf-MATCHes in `.run/wave/`). -- **T5c βœ“ (2026-07-03):** 🟒 **TRUE clean fleet 136/136 RESTORED** (first genuinely-clean `make clean`+full-re-extract+check-all green since Phase 21). Fixed the pre-existing Phase-21 (`commit:0292`) rename-propagation breakage: renamed all **62** stale `INCLUDE_ASM(func_)` β†’ curated names across 12 main/library `src/*.c` (800c.c/800c3.cΓ—22/apicard1Β·2Β·4/boot.c/libcd1Γ—8/libetcΓ—6/libgpuΓ—3/sgap.c/snd1Γ—7/snd2.c) to match splat's canonical output (proven: splat's fresh stub-regen uses the curated names). **main clean-builds `143dbb89` βœ“; fleet 136/136 βœ“** (all overlays byte-identical, resident `8e17e02f`). Built **`tools/lint_symbol_refs.py`** (comment/string-aware, func_+D_) β€” flags any `func_/D_` ref whose addr was renamed (the R22-masked class); caught the T5b macro-call + this INCLUDE_ASM set; now 0 stale. SETUP inventory + CURRENT_PHASE finding updated. Commit: (checkpoint). +- **T7 β€” giant `func_80129CF8` CRACKED (Fable5) + Β§32 idiom + banked Γ—1; Γ—134 WALL found β†’ Drew chose to build the canonical-decl tool (2026-07-03, `8b48f482f`):** Fable5Max cracked the 191-ins region-a camera giant (match_one MATCH) β€” struct-base hoisting via **source-local pointers** (gcc-2.7.2 has no cross-bb CSE β†’ a callee-saved base can only come from a local, **NO pins**), branch-polarity-off-the-opcode, S12 reused-temp fence, `expand_block_move` struct-assignment, dead-local-aggregate frame β†’ **cookbook Β§32** (transferable to the 6 sibling giants β€” `.run/t7/GIANTS_SURVEY.md`). Banked **Γ—1** in `ov_SC01_077_a.c` (`d19c9580`, clean fleet 136/136) after reconciling its loose-typed decls (`u8[]`/`s32[]`/`struct BigCopy`/`s8`-vs-`u8`; `func_80012F74` `s16`-vs-`s32`) β†’ canonical + **byte-neutral access casts**; `RView` (GsRVIEW2-shaped) β†’ `engine_types.h`. **FINDING (byte-proven):** Γ—134 propagation is **BLOCKED by the fleet-wide loose-typing wall** β€” the giant's shared callees/data are declared incompatibly across overlays, so the macro's externs conflict per-overlay, and `dedup_propagate --recover` only fixes the propagated fn's CALLER extern (not its callee/data). Loose-typed giants bank Γ—1, NOT Γ—134 (the flagship `func_80132784` propagated only because its symbols were fleet-compatible). **DREW'S DECISION (A β€” invest over immediate ROI):** build the fleet-wide **canonical-decl reconcile tool** = the Γ—134 giant unlock. **Spec + conflict taxonomy + the proven byte-neutral cast patterns β†’ `docs/canonical-decl-reconcile-design.md`.** Build it **Opus, plan-mode, Max β€” NOT Fable5** (it's tooling; the byte-gate arbitrates; reserve Fable5 for stalled giant MATCHES). Fable5's giant-crack is a *match* tier; this is a *plumbing* tier. +- **T6 Β§A β€” Γ—134 propagation-recovery COMPLETE (2026-07-03, `5b3697553`+`99ccc3748`):** 🎯 **15 fns propagated Γ—134** this session (fleet 64.90β†’**65.48%**; two clean-fleet-verified commits). Fixed FOUR blockers, all whole-binary-byte-gate-validated: **(1) find_site indented defs** β€” the def regex `^[A-Za-z_]` was column-0-only, silently dropping every recover_integration-banked (indented) def from propagation; unit-tested (indented DEFS match, indented CALL-exprs don't). **(2) find_site trailing-comment externs** β€” the extern-collection `^\s*extern\b.*;\s*$` stopped at `extern u8 D_x[]; /* comment */`, dropping the earlier externs β†’ THIS (not "pin/asm", R14) was func_8014E048's real self-containment blocker. **(3) dedup_propagate --recover** β€” on a straggler byte-gate fail: Part B no-protos that overlay's conflicting caller extern + re-gates (byte-neutral, = fix_arity_callers --any-proto); Part A excludes only that overlay (Γ—N-1) vs the historical all-or-nothing drop; wired into gate_stage. **(4) build_engine_types comment-awareness** (`blank_comments`) β€” its OWN generated "…typedef lift" header comment was captured as a bogus `typedef vec`, self-colliding and blocking every --strip; NOTE full --strip still conflicts with the `_a/_o0` splits, so func_8014F74C's PosT/MoveT were lifted TARGETED (byte-neutral). **Banked:** the 13 leaf-MATCHes + func_8014E048 (T5b S11 crack) + func_80157580. **R14/R22 lesson (cost me a detour):** a stale-`asm/` tree (13 missing `.s`) confounded the FIRST --recover test into a false "byte-diverge everywhere incl. the source overlay" β€” a re-extract fixed it; the incremental per-overlay byte-gate is only valid on a freshly-extracted tree, so clean-verify (make clean && extract-all && check-all) EVERY batch. **Deferred tail (17 not-self-contained):** the 3 pre-existing --auto-from stragglers (0x80174650/8012A018/80165CA0 β€” pin/asm + uncaptured local `#define SHB`; moving SHB to a shared header would unblock func_80165CA0) + 14 local-type cases β†’ T8 sweep. **T9 cookbook fodder:** the integration-recovery family (Β§A) + the stale-asm R22 corollary + the find_site extern-comment/indent classes. +- **T6 (tool built + gate-recovery proven; Γ—134 propagation-recovery deferred) (2026-07-03):** built **`tools/recover_integration.py`** (batch integration-recovery: gather leaf-MATCH candidates β†’ no-proto their conflicting caller decls β†’ gate_stage β†’ 2-pass snapshot/restore so non-banks aren't corrupted) + **extended `tools/fix_arity_callers.py`** with `--binary` (scan the overlay's OWN inline callers, not just engine_core.h β€” the gap that left the "declaration/TU plumbing" class unrecovered). **Banked 13 leaf-MATCH fns** (func_8014F74C/801542A4/8015BE94/8015F380/80160F00/801653B8/80166244/8016E778/801732C4/8017331C/80173374/80174554/801745AC), **clean-verified together** (ov_SC01_077 `d19c9580`). **R14 lesson (clean-verify caught it):** the first batch's `fix_arity_callers --revert` was LOSSY for `--any-proto` (`()`β†’`(void)`, not back to the original args) β†’ corrupted non-banks ("too many arguments"); fixed with the 2-pass snapshot. **Γ—134 propagation of the 13 is BLOCKED (3 diagnosed sub-blockers β†’ remaining T6 work):** (1) `dedup_propagate` `find_site` misses **indented** inline defs (7/13 "not inline-def" β€” Phase-15 class); (2) 1/13 uses overlay-local types (type-lift); (3) the 5 plannable all drop on the **ov_SC01_000 straggler** (conflicting caller externs, same class as the flagship's ov_SC02_005 β€” needs the auto-reconcile Part B). So the 13 are banked **Γ—1** pending those fixes. Flagship `func_80132784` (`be38b9414`) remains the one Γ—134 T6 win. +- **T6 (partial) βœ“ (2026-07-03):** 🎯 **FLAGSHIP `func_80132784` PROPAGATED Γ—134** (`be38b9414`) β€” the 400-ins S11 giant (cracked T4, banked Γ—1) now byte-identical in ALL 134 overlays, **+1.6% byte-weighted** (the single biggest lever; function-count fleet 64.86β†’64.90%). **The T6 recovery pattern, proven end-to-end:** the T4-deferred Γ—1 cap was one straggler overlay (ov_SC02_005) declaring a CONFLICTING caller extern `void func_80132784(s32,s32,s32)` vs the def `(s32,s32,u32)` β†’ `conflicting types` β†’ dedup_propagate's all-or-nothing single-`--addr` plan dropped the whole fn. Fix: reconcile the straggler's caller extern to the def's canonical sig (s32β†’u32, byte-neutral β€” the call site casts anyway), then propagate β†’ 134 overlays rebuilt byte-identical, group `E_func_80132784` registered, dedup-check 1784/0. **Clean R22 fleet check-all 136/136.** **REMAINING T6 (the tool):** automate this β€” detect a straggler's conflicting caller decl β†’ reconcile to the def's canonical sig β†’ re-gate β†’ propagate full (vs. all-or-nothing drop); + the other Γ—1 classes (func_8014E048 pin/asm self-containment β€” a DIFFERENT blocker: dedup_propagate's `compiles_standalone` rejects pin/asm bodies; func_80144090 OtBlk type-lift; func_8014F4C0/func_80155800 TU-context leaf-MATCHes in `.run/wave/`). +- **T5c βœ“ (2026-07-03):** 🟒 **TRUE clean fleet 136/136 RESTORED** (first genuinely-clean `make clean`+full-re-extract+check-all green since Phase 21). Fixed the pre-existing Phase-21 (`1f4aac62f`) rename-propagation breakage: renamed all **62** stale `INCLUDE_ASM(func_)` β†’ curated names across 12 main/library `src/*.c` (800c.c/800c3.cΓ—22/apicard1Β·2Β·4/boot.c/libcd1Γ—8/libetcΓ—6/libgpuΓ—3/sgap.c/snd1Γ—7/snd2.c) to match splat's canonical output (proven: splat's fresh stub-regen uses the curated names). **main clean-builds `143dbb89` βœ“; fleet 136/136 βœ“** (all overlays byte-identical, resident `8e17e02f`). Built **`tools/lint_symbol_refs.py`** (comment/string-aware, func_+D_) β€” flags any `func_/D_` ref whose addr was renamed (the R22-masked class); caught the T5b macro-call + this INCLUDE_ASM set; now 0 stale. SETUP inventory + CURRENT_PHASE finding updated. Commit: (checkpoint). - **T5b βœ“ (2026-07-03):** 🎯 **S11 CRACKED β€” the class verdict was map-incompleteness, not intrinsic codegen** (Fable5 main-loop spike, Drew switched the session to Fable5 Max). `func_8014E048` (143 ins, reach-134; "S11 LUIDβŠ—alloc intrinsic / not source-steerable" since the map wave; **28-off even after T5's directed permuter**) β†’ **MATCH (143/143) + whole-binary BANKED** (`harvest_verify` 1/0, ov_SC01_077 `d19c9580…`). Derived by reading gcc-2.7.2 source + `-dl -dg -dS` RTL dumps (12 experiments, `.run/gccmap/exp/e1a..e1k.c`): **S12 reused-s32-temp fence** (output/anti deps forbid load batching; **u16 temps DON'T work** β€” unpromoted HI vars spawn per-use zext temps that combine folds away), **S13 head-skip escape** (body-local param copies keep hard arg regs live into the temp windows β†’ conflict-steer the scratch contest; zero-byte volatile-asm dead-read as a wedge-slot fence; multi-input dead-read to rebalance K2 densities), **cse-opaque asm-copy** (`addu %0,%1,$zero`) for must-materialize pointer copies, **RC-4b pinned store-temp**, **RC-10 preference-cascade mechanics** (set_preference one-level expression unwrap; expand_preferences dying-into-set merge; find_reg pass-0 used-so-far/someone-prefers + pref override). Integration needed 2 hand-reconciles (both T6 classes): engine_core.h:17569 caller-decl `s16*`β†’`u16*` (ptr param type codegen-neutral) + canonical data decls with `*(u16*)` access casts (D_801152A8 `u8[]` / D_801152AC `s16`). **Γ—134 lift blocked by dedup_propagate self-containment (pins/asm) β†’ T6 target** (joins func_80132784). Distilled (R30): sched.md **Β§6/S12/S13** + regalloc.md **Β§F/RC-10** + cookbook Β§31 triage-table **S11 downgrade**. Backlog re-logged (capped). R22 clean fleet check-all running at close. Commit: (checkpoint). - **T5 βœ“ (2026-07-03):** **Β§31-directed permuter mutation + grinder input-changed gating β€” built, validated, distilled.** NEW `tools/permuter_weights.py`: `classify(klass,where)` β†’ `regalloc|schedule|cse|None` + `render_settings_toml` emitting the `[weight_overrides]` table decomp-permuter merges over the gcc defaults (`main.py:336` / `helpers.py:merge` β€” per-key REPLACE; **no submodule edit**, R3/R20). Biases pass-selection toward each class's Β§31 levers (`perm_reorder_decls` RC-1/3 Β· `perm_reorder_stmts` RC-2/S1 Β· `perm_temp_for_expr` S2 Β· `perm_commutative` cse) and pushes the value/type noise to ~0.1. Wired into `p16_permute.setup(…, klass=, where=)` (+`--klass`, backlog auto-lookup) and `grinder.py` (auto-threads `klass`/`where_stuck`; `klass=None` β†’ gcc defaults = the pre-T5 undirected search, a safe superset). **Grinder fix (R14):** replaced the blind `tried.clear()` idle churn with **input-changed gating** (`draft_sig`=(best_draft mtime, closeness) β€” re-open a fn only when the worker improved it; the permuter is deterministic given base.c+target.o). **VALIDATED:** the regalloc profile drove `func_8014E048` base masked-36 β†’ **29** (match_one `-drz` **35β†’28**) where the undirected search stalled β€” real directed progress; re-logged (closeness 28, improved draft promoted). The 4 flagship count-exact seeds are the project's WORST-CASE intrinsic S11/RC-6 walls ("C-space discontinuous" Β§31 RC-6) β€” directed mutation improves but doesn't gate them β†’ T5b/backlog fuel (Β§31 "two probes, don't grind"). Distilled: cookbook **Β§3b** + SETUP inventory (R16/R30). **No build-input changed β†’ 136/136 fleet invariant untouched (tools/docs only).** Commit: (checkpoint). -- **T4 βœ“ (2026-07-02):** 🎯 **FLAGSHIP BANKED** β€” `func_80132784` (400 ins, "HARD-DEFER/irreducible" for 22 phases) matched whole-binary + committed (`commit:0438`); `make check BINARY=ov_SC01_077` BYTE-IDENTICAL, dedup-check 1783/0. The permuter overhaul (T2+T3) is validated end-to-end by a real bank. **Banked Γ—1** β€” the Γ—134 propagation is capped by per-overlay declaration plumbing (`ov_SC02_005` cross-overlay straggler + an `extern`/type mismatch), NOT codegen β†’ **T6 target** (the +1.6% byte-weight lands when T6's integration-recovery reconciles it). Hand-fix that unblocked the Γ—1: dropped the draft's redundant `Blk16` typedef (already in engine_types.h:442) β€” T6 automates this. **Count-exact seeds** (func_8014E048 35 / func_80176D94 52 / func_80148094 72 / func_801412A8 110): permuter setup works (parse/compile/search clean, 0 internal failures), but random mutation didn't close them (func_80148094 only 77β†’74 in T2) β€” they're intrinsic residuals (RC-6/S11) β†’ **T5 directed mutation + T5b Fable5**. Fleet 64.86% (Γ—1 negligible). Commit: (checkpoint). +- **T4 βœ“ (2026-07-02):** 🎯 **FLAGSHIP BANKED** β€” `func_80132784` (400 ins, "HARD-DEFER/irreducible" for 22 phases) matched whole-binary + committed (`9c8bb5183`); `make check BINARY=ov_SC01_077` BYTE-IDENTICAL, dedup-check 1783/0. The permuter overhaul (T2+T3) is validated end-to-end by a real bank. **Banked Γ—1** β€” the Γ—134 propagation is capped by per-overlay declaration plumbing (`ov_SC02_005` cross-overlay straggler + an `extern`/type mismatch), NOT codegen β†’ **T6 target** (the +1.6% byte-weight lands when T6's integration-recovery reconciles it). Hand-fix that unblocked the Γ—1: dropped the draft's redundant `Blk16` typedef (already in engine_types.h:442) β€” T6 automates this. **Count-exact seeds** (func_8014E048 35 / func_80176D94 52 / func_80148094 72 / func_801412A8 110): permuter setup works (parse/compile/search clean, 0 internal failures), but random mutation didn't close them (func_80148094 only 77β†’74 in T2) β€” they're intrinsic residuals (RC-6/S11) β†’ **T5 directed mutation + T5b Fable5**. Fleet 64.86% (Γ—1 negligible). Commit: (checkpoint). - **T3 βœ“ (2026-07-02):** permuter setup fixes (all in `tools/`, no submodule edit): `p16_permute.hide_asm` β€” a b64-pragma carrier for register pins AND GTE `__asm__` blocks (pycparser parses the pragma; decomp-permuter's own `process_pragmas` decodes it back so cc1 sees the real asm); custom-typedef/`#define` preservation (drop only `#include`); `f32` typedef gap fixed; `compile_o0.sh` `-O0` variant auto-selected for `_o0` targets; `run_masked.py` pin-var fallback (`expr_type`β†’`int` on an unknown/hidden-pin id β†’ 0 "internal permuter failures", was >0). ROOT CAUSE of the GTE fail: `compile.sh` now prepends `.include "macro.inc"` so `mvmva` assembles (the real build gets it via `include_asm.h`, which base.c omits + `-DPERMUTER` disables) β€” byte-neutral for non-GTE (count-exact scores unchanged). ALL 5 seeds parse+compile (base 4/110/36/52/77). 🎯 **The flagship func_80132784 (4/400) CLOSED** to a masked-0 that `match_one` independently confirms **MATCH (400 ins)** β€” winner preserved `.run/wave/func_80132784.win.c` for the T4 whole-binary gate β†’ Γ—134 (β‰ˆ +1.6% byte-weight). No build-input changed. Commit: (checkpoint). - **T2 βœ“ (2026-07-02):** built the floor-free relocation-masked scorer, ENTIRELY in the `tools/` layer (no decomp-permuter submodule edit): `tools/masked_diff.py` (shared `objdump -drz` oracle + masking), refactored `tools/match_one.py` to use it (`-dr`β†’`-drz`), `tools/masked_scorer.py` (`MaskedScorer` drop-in), `tools/permuter/run_masked.py` (rebinds `src.main.Scorer`), wired `p16_permute.run_permuter`. VALIDATED: `masked_self=0`; `masked_candβ‰ˆmatch_one` (77~72/36~35/52=52); **STOCK floor 1750–2100 vs masked 36–77** (the wander cause, removed); live permuter base score = masked 77 (not stock 1930), descends to 74. `-drz` also fixed match_one's GTE under-count (regression-clean on count-exact seeds; func_80132784 now true 400 ins / 4-off). match_one output format unchanged β†’ gate_stage/grinder compatible. No build-input changed. Commit: (checkpoint). T3 next handles the 2 compile FAILs surfaced (func_80132784 GTE `mvmva`/common.h; func_801412A8 custom-typedef drop). - **T1 βœ“ (2026-07-02):** re-logged 7 map-wave seeds with BYTE-VERIFIED closeness (dropped 19 stale/unreproducible records from `.run/backlog.jsonl`, `.bak` kept; best_draft β†’ `.run/backlog_drafts/`). Ground truth (match_one `-dr`): func_8014E048=**35** (was mis-logged `failed`), func_80176D94=**52**, func_80148094=**72** (best draft = `vG2.c`, NOT the named file), func_801412A8=**110**; T6 leaf-MATCHes func_8014F4C0/func_80155800=**0**. func_80144090 excluded (banked Γ—1, not a stub β†’ T6 `OtBlk` type-lift). Fixed gate_stage sig_unify/`--src-file` doc-drift. `wave_targets --class REGALLOC` + grinder now surface all 4 count-exact permuter seeds with true closeness; func_80132784 correctly kept out of blind selection. No build-input changed β†’ 136/136 invariant untouched. Commit: (checkpoint). @@ -74,9 +74,9 @@ Whole-binary byte-gate (`tools/harvest_verify.py`) is the SOLE arbiter (G3/P9). # πŸ”œ CONTINUATION FOR THE FRESH SESSION (2026-07-03 checkpoint) -**State (updated 2026-07-03):** all work committed (`…`β†’`commit:0448`); tree clean (only `db.*.gbf` R23 noise). Fleet 136/136 byte-identical from a genuinely-clean tree, **65.48%** count / ~31.7% byte-weighted, 1799 dedup groups. **Β§A propagation-recovery is COMPLETE** (15 fns Γ—134 β€” see the progress-log T6 Β§A entry; Β§A below is kept as the resolved-blocker record). **RESUME AT T7** β€” region-a giants *(xHigh; Drew: PING to switch effort before starting)*, OR the T8 tail-sweep *(breadth β†’ prompt for ultracode, R26)*. Effort stays **Opus Max** until the T7/T8 toggle. +**State (updated 2026-07-03):** all work committed (`…`β†’`99ccc3748`); tree clean (only `db.*.gbf` R23 noise). Fleet 136/136 byte-identical from a genuinely-clean tree, **65.48%** count / ~31.7% byte-weighted, 1799 dedup groups. **Β§A propagation-recovery is COMPLETE** (15 fns Γ—134 β€” see the progress-log T6 Β§A entry; Β§A below is kept as the resolved-blocker record). **RESUME AT T7** β€” region-a giants *(xHigh; Drew: PING to switch effort before starting)*, OR the T8 tail-sweep *(breadth β†’ prompt for ultracode, R26)*. Effort stays **Opus Max** until the T7/T8 toggle. -## Β§A β€” T6 propagation-recovery βœ… RESOLVED (2026-07-03, `commit:0447`+`commit:0448`) +## Β§A β€” T6 propagation-recovery βœ… RESOLVED (2026-07-03, `5b3697553`+`99ccc3748`) > DONE: all 3 blockers fixed + a 4th (trailing-comment externs). 15 fns propagated Γ—134 (the 13 + func_8014E048 + func_80157580); clean fleet 136/136; fleet 65.48%. The blocker-by-blocker plan below is kept as the record of how it was done. Remaining tail (17 not-self-contained) deferred to T8. **Goal (achieved):** take the leaf-MATCH-but-Γ—1 banks to Γ—134. The **tool** (`recover_integration.py`) already banks the "declaration/TU plumbing" class Γ—1; what's missing is getting those Γ—1 banks (and the flagship-class Γ—1s) propagated Γ—134. @@ -123,15 +123,15 @@ Distill into the cookbook: the **T6 integration-recovery** (caller-decl no-proto --- ## T6 targets (the specific Γ—1 banks awaiting Β§A propagation-recovery) -- **`func_80132784`** (flagship, 400 ins) β€” **ALREADY Γ—134** (`commit:0443`, via the ov_SC02_005 straggler reconcile β€” the template for Β§A.3). +- **`func_80132784`** (flagship, 400 ins) β€” **ALREADY Γ—134** (`be38b9414`, via the ov_SC02_005 straggler reconcile β€” the template for Β§A.3). - **The 13 T6 gate-recovered fns** (Β§A) β€” banked Γ—1, awaiting the 3-blocker fix. - **`func_8014E048`** (T5b, S11 crack) β€” Γ—1, pin/asm self-containment blocker (Β§A). - Carried from Phase-23 backlog: `func_8014F4C0` (fwd-decl reconcile + Vec4u lift), `func_80155800` (TU-context), `func_80144090` (OtBlk type-lift). Test cases in `.run/wave/`. ## Blockers / open findings -- **βœ… RESOLVED (T5b+T5c, 2026-07-03) β€” Phase-21 latent breakage: a truly-clean rebuild had been broken since Phase-21 close (`commit:0292`), masked by incremental builds. FOUND during T5b's R22 fleet verify; fully fixed, true clean 136/136 restored, `lint_symbol_refs.py` guard added.** (Kept here as the post-mortem for T9's PhaseEnd + cookbook distillation.) +- **βœ… RESOLVED (T5b+T5c, 2026-07-03) β€” Phase-21 latent breakage: a truly-clean rebuild had been broken since Phase-21 close (`1f4aac62f`), masked by incremental builds. FOUND during T5b's R22 fleet verify; fully fixed, true clean 136/136 restored, `lint_symbol_refs.py` guard added.** (Kept here as the post-mortem for T9's PhaseEnd + cookbook distillation.) - **Symptom:** `make clean` + full re-extract + `make check-all` β†’ main FAILS to build (`can't open asm/nonmatchings/800c3/func_8005CE18.s` … dozens); overlays failed 134Γ— on `undefined reference to func_80058B40`. Only `main`'s failure remains after the overlay fix (135/136). - - **Root cause:** Phase-21 xdedup (`commit:0292`, "+62 PsyQ names") renamed 62 PsyQ library functions to their proper names (InitHeap, FlushCache, GetTPage, SysEnqIntRP, SpuWrite, _SpuInit, CdMix, __main …) in `symbols.us.txt`, but did NOT propagate the rename to the committed source that references them by the OLD `func_` name: **(a) 1 shared macro CALL** in `engine_core.h` (`func_80058B40`, overlay-side) and **(b) 62 `INCLUDE_ASM(func_)` stub lines across 12 main/library `src/*.c`** (800c.c, 800c3.cΓ—22, apicard1/2/4, boot.c, libcd1.cΓ—8, libetc.cΓ—6, libgpu.cΓ—3, sgap.c, snd1.cΓ—7, snd2.c). Splat now names/handles those addresses by the curated name (linked-not-stubbed via psyq_integrate, or emitted as `.s`), so the stale `func_` refs dangle. **Incremental builds reused stale pre-rename `.s`/`.o` and masked it** β†’ every "check-all 136/136 / main 143dbb89" in Phases 21/22/23 was incrementally-stale, NEVER a genuinely-clean tree (the exact R22 failure mode). + - **Root cause:** Phase-21 xdedup (`1f4aac62f`, "+62 PsyQ names") renamed 62 PsyQ library functions to their proper names (InitHeap, FlushCache, GetTPage, SysEnqIntRP, SpuWrite, _SpuInit, CdMix, __main …) in `symbols.us.txt`, but did NOT propagate the rename to the committed source that references them by the OLD `func_` name: **(a) 1 shared macro CALL** in `engine_core.h` (`func_80058B40`, overlay-side) and **(b) 62 `INCLUDE_ASM(func_)` stub lines across 12 main/library `src/*.c`** (800c.c, 800c3.cΓ—22, apicard1/2/4, boot.c, libcd1.cΓ—8, libetc.cΓ—6, libgpu.cΓ—3, sgap.c, snd1.cΓ—7, snd2.c). Splat now names/handles those addresses by the curated name (linked-not-stubbed via psyq_integrate, or emitted as `.s`), so the stale `func_` refs dangle. **Incremental builds reused stale pre-rename `.s`/`.o` and masked it** β†’ every "check-all 136/136 / main 143dbb89" in Phases 21/22/23 was incrementally-stale, NEVER a genuinely-clean tree (the exact R22 failure mode). - **FIXED so far (overlay-side, byte-neutral, verified):** the 1 shared-macro call `func_80058B40` β†’ `GetTPage` in engine_core.h (same addr 0x80058b40 β†’ identical `jal`); took the fleet **135β†’ (134 overlays now pass)**; `ov_SC07_009` byte-identical `2a6499b6`. Static scan of engine_core.h+engine_types.h (func_ AND D_): this was the ONLY shared-header collision. - **FIXED (main/library-side, 62 refs β€” T5c, Drew: rename to curated names):** the root mechanism, byte-proven: **splat's FRESH regeneration of a stub `.c` uses the CURATED names** (move `src/800c3.c` aside β†’ splat writes `INCLUDE_ASM(InitHeap)` + emits `InitHeap.s`); the committed `src/*.c` were simply STALE (`func_`) β€” Phase-21 renamed the symbols but never regenerated/renamed the committed stub refs. Fix = rename the 62 `INCLUDE_ASM(func_)` β†’ the curated name (InitHeap, FlushCache, GetTPage, SysEnqIntRP, SpuWrite, CdMix, __main …) across the 12 files (800c.c 1, 800c3.c 22, apicard1/2/4 4/6/2, boot.c 1, libcd1.c 8, libetc.c 6, libgpu.c 3, sgap.c 1, snd1.c 7, snd2.c 1). **main clean-builds `143dbb89` βœ“**; full clean fleet check-all confirming 136/136. (NOT hex-case, NOT a proto-dup β€” only symbols.us.txt is stacked.) - **Lesson (β†’ cookbook, T9):** a `symbols.us.txt` rename MUST be propagated to (a) shared-macro bodies AND (b) `INCLUDE_ASM` stub refs, AND verified by a genuinely-clean (`make clean` + full re-extract) check-all, never incremental. Add a lint: every `func_` referenced in committed `src/` must have a matching emitted `.s` OR a defined symbol. Also: T5b's interim harvest_verify on func_8014E048 passed on a stale `_a.o` β†’ re-verified clean (ov_SC01_077 was among the 135 that pass). diff --git a/phase-ends/logs/Phase25.md b/phase-ends/logs/Phase25.md index 77e2281d85..82f1ccc42f 100644 --- a/phase-ends/logs/Phase25.md +++ b/phase-ends/logs/Phase25.md @@ -61,7 +61,7 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > the directed ILS β†’ **ALL WALLED (masked 22/31/2), 0 banks** β€” the free permuter tier is exhausted on these > intrinsic ties (β†’ Fable5 or the fuzzy-family tail). func_801549F8 is masked-2 (jump-table; a `.text`-0 still > needs the rodata `jtbl` Β§8-verified). -> **COMMITTED this session:** flagship func_80133CD4 Γ—134 (`commit:0515`, R22 136/136) + cookbook Β§45. This +> **COMMITTED this session:** flagship func_80133CD4 Γ—134 (`8270e7692`, R22 136/136) + cookbook Β§45. This > checkpoint commit = the megaplan + this pivot note. ### SESSION 2026-07-11 β€” GIANT ESCALATION ROUND (Max orch; TASK A giant #2 flagship + flywheel) β€” [src banked; commit pending R22] @@ -75,7 +75,7 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > **FABLE5 QUEUE (2-day window; strategic read, Drew 2026-07-11):** Fable5's deliverable is PERMANENT IDIOMS, not matched fns β†’ burn it on distinct HARD CLASSES (reach-134 giants + the 2 walls + new-class exemplars), NOT unique-shape behemoths (Γ—1, worst ROI, non-transferable, LAST). Run **parallel-isolated agents** (NOT one batched agent β€” context-accumulation makes batching ~NΓ— costlier; the Β§31 map already amortizes the compiler-source read), **distill after each**, let cheap-Opus mop up transfers. Queue: (1) the 3 walled giants [recon done]; (2) the 2 permanent walls func_801412A8 (198Γ—134, S11 LUIDΓ—alloc) + func_80178004 (165Γ—134, matched-with-pins β†’ needs pin-free); (3) func_80166690 (193Γ—134), func_8017C294 (246Γ—15); (4) new-class small walls func_801778A8 (iv-combine). The cheap flywheel (≀180-ins draftable) + the **5.9 MB matched-free propagation** run ALONGSIDE (no Fable5), anytime. > **πŸ“Š THREE metrics (`progress.py --weighted`; regen every `make report`):** fn-count 74.58% (Γ—134-inflated), **instr-weighted 57.7%** (the decomp.dev-DISPLAY number, shipped .text), distinct-code 29.3% (each unique fn once, the distinct-RE truth; ~74k unique-monster tail is the long grind). Executable code only (resident+134 overlays; main EXE excluded). -> **βœ… TASK A β€” GIANT CAMPAIGN batch 1 DONE (2026-07-11, Max orch; 3 giants banked Γ—134, R22 136/136 GREEN, instr-weighted 56.8β†’57.7%, distinct 27.3β†’29.3%):** 6 cheap-Opus crackers (+1 Fable5 for giant #1) over the 6 frontier giants (209–399 ins, all remap-clean 133/133). **BANKED Γ—134 (3):** `func_80166994` (369, Β§43 K&R s16-param, Fable5, COMMITTED commit:0513) Β· `func_80135480` (258, block-scoped-pointer-split Β§44#3) Β· `func_80163EC8` (234, cross-jump-duplicated-tail Β§44#4, 1 benign `$v0` pin). **6 reusable levers β†’ cookbook Β§43 + Β§44** (Β§43 K&R + Β§43-extension callee-stash + pointer-var-decl + block-scoped-split + cross-jump-tail + the intrinsic-wall taxonomy). R14: giant #1's prior "MATCH" note was STALE/FALSE; **Β§43 does NOT universally transfer β€” only 1 of 6 was K&R-s16; each giant is its own class.** +> **βœ… TASK A β€” GIANT CAMPAIGN batch 1 DONE (2026-07-11, Max orch; 3 giants banked Γ—134, R22 136/136 GREEN, instr-weighted 56.8β†’57.7%, distinct 27.3β†’29.3%):** 6 cheap-Opus crackers (+1 Fable5 for giant #1) over the 6 frontier giants (209–399 ins, all remap-clean 133/133). **BANKED Γ—134 (3):** `func_80166994` (369, Β§43 K&R s16-param, Fable5, COMMITTED c62fe7f7e) Β· `func_80135480` (258, block-scoped-pointer-split Β§44#3) Β· `func_80163EC8` (234, cross-jump-duplicated-tail Β§44#4, 1 benign `$v0` pin). **6 reusable levers β†’ cookbook Β§43 + Β§44** (Β§43 K&R + Β§43-extension callee-stash + pointer-var-decl + block-scoped-split + cross-jump-tail + the intrinsic-wall taxonomy). R14: giant #1's prior "MATCH" note was STALE/FALSE; **Β§43 does NOT universally transfer β€” only 1 of 6 was K&R-s16; each giant is its own class.** > **πŸ” THE 4 GIANT SEEDS β†’ ESCALATION ROUND (permuter-first, then Fable5). Seeds in `.run/giants/func_*.c` + `.run/giants_seeds.txt`; Β§44#5 = the intrinsic-wall taxonomy. Bodies are pin-free/Γ—134-clean once cracked:** > - `func_80133CD4` (399, **FLAGSHIP**) β€” closeβ‰ˆ30 true (pin-free), Β§37 allocno-tie (caller-vs-callee `s0vβ†’$v0`-vs-`$s0`); Β§43-double-copy already in the body. NO //@EDIT/ec_edit. β†’ **Fable5 Β§34 gdb-on-cc1 `find_reg`/`post_mark_life`** (the clearest Fable5 target). > - `func_8014D820` (304) β€” close=67, **PIN-FREE** (RC-6/S3 pressure-lock). **ec_edit:** engine_core.h `DEFINE_func_8014D790` `extern void func_8014D820(s32,void*,void*)` β†’ `extern s32` (byte-neutral, caller discards). β†’ **permuter-first NOW** (pin-free). @@ -113,7 +113,7 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > decision-log corrected. **LESSON (R14): trace a tool's real exception, not its summary label.** > **WAVE 4 (2026-07-10c, Max orch + Ultracode fan-out over the FRONTIER MAP) β€” COMMITTED, R22 clean-fleet 136/136 GREEN, fleet 73.97% β†’ 74.36% (+1350 fns):** -> Built the systematic **frontier map** (`docs/phase25-frontier-map.md`, committed commit:0506): endgame = 42 draftable +> Built the systematic **frontier map** (`docs/phase25-frontier-map.md`, committed b09916943): endgame = 42 draftable > (crack) + 235 matched-free (propagate) + 2481 absent; `rtu_match`-measured all 42 β†’ 37 crack targets. Crack fan-out > `wf_b54b5d98-380` (26 tractable-band exemplars, ~2.36 M tok): **24/26 MATCH**. Gated β†’ **20 banked byte-identical** > (incl. the **22Γ—1996** func_8014FBC0 inline-asm trampoline + the **27Γ—539** func_80132144; func_8016CF04 via the @@ -194,14 +194,14 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > func_80141A60 133 siblings ALL byte-DRIFT (frame-pad lever is ov077-specific, doesn't remap per-sibling β†’ > frame-pad families are EXEMPLAR-ONLY, not Γ—134-sweepable β€” backlog); func_80180F10 = standalone (no h_norm > siblings). **BATCH = 4 exemplars + 266 siblings = 270 new matched fns.** `family_sweep --commit` AUTO-COMMITTED -> (commit:0500, src/ov_*/*.c only, no ROM β€” R6/H1 OK; Drew pushes) β€” note it committed BEFORE R22 (running `bfpt9lgm0`); -> revert commit:0500 if R22 β‰  136/136. Banked-but-not-swept-cleanly func_80141A60 stands as exemplar (+1). +> (0d28aed67, src/ov_*/*.c only, no ROM β€” R6/H1 OK; Drew pushes) β€” note it committed BEFORE R22 (running `bfpt9lgm0`); +> revert 0d28aed67 if R22 β‰  136/136. Banked-but-not-swept-cleanly func_80141A60 stands as exemplar (+1). > **F-band ≀28 residual after this wave:** 3 real-TU-drift (func_80136824/8017B614/80164930) + 2 near > (func_801365B8 c=2 / func_8012E364 c=6) + 4 schedule/jtbl/iso-drift (func_8017EF50 c=4-perm-softened / > func_80168828 c=5 / func_8012FCC4 / func_801549F8 jtbl / func_8017B490 real-TU). func_80141A60's 133 frame-pad siblings. > **βœ… R22 CLEAN-FLEET 136/136 GREEN** (corrected recipe: `make clean` nukes asm/, so re-extract ALL 136 via > `for b in $BINS; do make extract BINARY=$b; done` THEN check-all β€” cookbook Β§42c). **Fleet 73.66% β†’ 73.73%**, -> dedup 1813, NON_MATCHING 7 (0 in default build). Commit `commit:0500` (src banks) VERIFIED. Cookbook **Β§42** written +> dedup 1813, NON_MATCHING 7 (0 in default build). Commit `0d28aed67` (src banks) VERIFIED. Cookbook **Β§42** written > (density-lever catalog + 3 tooling gotchas). Doc checkpoint commit next. F-band ≀28 wave = **DONE** (4/9 banked, > residuals backlogged above); NEXT F-band sub-tiers = 29–100 Β§31-Opus band + the residual re-cracks (memcpy-class > func_8017B614, jtbl func_801549F8) + func_80141A60's frame-pad siblings (per-sibling frame analysis). @@ -215,9 +215,9 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > workers MUST do this, not isolation-only.** DURABLE LEVER (cookbook): memcpy-builtinβ†’CALL fix = replace `memcpy(x,y,8)` > with `typedef struct{u8 b[8];}Blk8; *(Blk8*)x=*(Blk8*)y;` (routes emit_block_move lwl/lwr/swl/swr, references NO memcpy > symbol β†’ immune to the TU-wide builtin-disable; mirrors sibling func_8017B368's SV4 struct-assign idiom). -> **βœ… WAVE 2 R22 CLEAN-FLEET 136/136 GREEN. Fleet 73.73% β†’ 73.85%.** Sweep 399/0 (`commit:0502`); cookbook Β§42a written +> **βœ… WAVE 2 R22 CLEAN-FLEET 136/136 GREEN. Fleet 73.73% β†’ 73.85%.** Sweep 399/0 (`8bfb7694b`); cookbook Β§42a written > (real-TU-verify rule + memcpy fix + 5 levers). **SESSION TOTAL: fleet 73.66% β†’ 73.85% (+0.19%, ~673 fns): wave 1 -> 4 exemplars + 266 siblings (commit:0500/commit:0501), wave 2 4 exemplars + 399 siblings (commit:0502).** dedup 1813, +> 4 exemplars + 266 siblings (0d28aed67/67a8fe670), wave 2 4 exemplars + 399 siblings (8bfb7694b).** dedup 1813, > NON_MATCHING 7 (0 in default build). **NEXT (fresh session recommended, phase OPEN): WAVE 3 with the real-TU-verify > rule (Β§42a) baked into the worker prompt** over: the 5 wave-2 iso-drift fns (func_80136824/80164930/8014DD8C/8016C188/ > 80168828) + the 5 nears (func_80134A74 c=16, func_80133AB0 c=28, func_8012FCC4 c=3, func_80185BA4 c=65, func_801670E4 c=70) @@ -235,7 +235,7 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > DIRECT `register __asm__("$21")` pins OFTEN BACKFIRE on giants (wreck prologue save-birthing) β€” density levers beat them. > **T7 MECHANICAL DONE (2026-07-10, Opus-Max):** the curriculum's mechanical tiers are banked + swept Γ—134, > fleet **72.29% β†’ 73.66% (+1.37%, ~4,694 fleet fns)**, R22 clean-fleet **136/136** at every checkpoint, -> dedup 1813/0, 0 NON_MATCHING. Commits: M1 `commit:0495`, M2 `commit:0496`, M3 `commit:0497`. Tools: +> dedup 1813/0, 0 NON_MATCHING. Commits: M1 `5b94a8247`, M2 `c908c3913`, M3 `1ea7c2925`. Tools: > `tools/t7_bank.py` (M1 driver), `canon_sig_reconcile` **v3.2** (5 defects + type-uniquify fixed), > `family_sweep --reconcile` (the Γ—134 per-sibling re-reconcile). See the T7 log below + cookbook Β§41a/b/c. > **M4 RESOLVED 2026-07-10 β€” NOT mechanical (0/8 via reconcile_decls, R14 correction, cookbook Β§41b-addendum):** @@ -262,8 +262,8 @@ idiom curriculum β†’ sweep one exemplar per family (curriculum-ordered), each cr > permuter ≀28-band first, then Β§31-Opus, Fable5 only on new-idiom evidence β€” R27 prompt) + 2 tiny `_o0` drafts. > T7 discipline: re-reconcile at bank time (TU mutates); good-sha from `config/check.*.sha` (NEVER hand-typed); R22 > clean-fleet after first-5 banks and every batch; probeβ‰ gate (jal-symbol-blind) β€” harvest_verify is the sole arbiter. -> **T6 HAND-OFF (2026-07-09):** Step A (measure wave) DONE β€” 125/127 exemplars measured, batches 1–3 complete, def-side wall cracked (`canon_sig_reconcile.py`, cookbook Β§41), fleet **72.29%** committed `commit:0492`. **The mechanical reconcile-sweep is NOT the clean 51-target Γ—134 win first hoped (R14-corrected: the frontier "match" status carried un-verified agent claims; a 5-sample spot-check = 3/5 genuine, and even genuine MATCHes hit VARIED walls β€” callee-sig conflicts, non-identical types Vec3/SVEC, macro-local data). ~19/51 have clean engine_core.h canonicals = the reliable mechanical tier; the rest need per-fn work β†’ this is genuinely the Fable5/T6 residual.** So NEXT = **T6: Fable5Max authors the crack curriculum** from the measured frontier + the diagnosed wall-classes β†’ the full input package is **`docs/phase25-t6-fable-brief.md`** (self-contained; read it first). Then T7 executes the curriculum (back at Opus-Max + surgical tiers). Drew: start the fresh session AS Fable5 (session model), confirm the system-reminder (R27). -> **BATCH-3 DONE (measured, banking deferred to T7) β€” PAUSED 2026-07-09 at Drew's request.** The 3 `_o0` giants (`func_8013C414`/329, `func_8013BD74`/198, `func_8013C0F8`/154, all inst=134) drafted (Workflow `wf_f22bdea4-50d`, drafts `.run/drafts-t5-batch3/`): **3/3 isolation-MATCH at -O0** (R14-verified via new **`match_one.py --o0`**). But **0 banked** β€” all 3 hit an **-O0 in-context byte-diff** (compile OK, SHA differs; NOT the def-side sig wall β€” `canon_sig_reconcile`'s voidβ†’s32 return change is NOT byte-neutral at -O0, and `gate_stage`'s call-site transforms don't fix it either β†’ 3 near). Cause = callee canonical sigs changing -O0 call codegen; needs an **-O0-specific reconcile (T7)**. Frontier updated: **125/127 draftable measured** (2 tiny `_o0` stragglers left: `0x8013bc7c`/24, `0x8013bcdc`/22). `func_801457A4` = whale-region -O0 tail, deferred. **Uncommitted (safe on ext4):** `tools/match_one.py` (--o0 flag), `docs/backlog.md` (gate re-render), this file. No src/ banks (tree = committed commit:0492 state). +> **T6 HAND-OFF (2026-07-09):** Step A (measure wave) DONE β€” 125/127 exemplars measured, batches 1–3 complete, def-side wall cracked (`canon_sig_reconcile.py`, cookbook Β§41), fleet **72.29%** committed `20747321c`. **The mechanical reconcile-sweep is NOT the clean 51-target Γ—134 win first hoped (R14-corrected: the frontier "match" status carried un-verified agent claims; a 5-sample spot-check = 3/5 genuine, and even genuine MATCHes hit VARIED walls β€” callee-sig conflicts, non-identical types Vec3/SVEC, macro-local data). ~19/51 have clean engine_core.h canonicals = the reliable mechanical tier; the rest need per-fn work β†’ this is genuinely the Fable5/T6 residual.** So NEXT = **T6: Fable5Max authors the crack curriculum** from the measured frontier + the diagnosed wall-classes β†’ the full input package is **`docs/phase25-t6-fable-brief.md`** (self-contained; read it first). Then T7 executes the curriculum (back at Opus-Max + surgical tiers). Drew: start the fresh session AS Fable5 (session model), confirm the system-reminder (R27). +> **BATCH-3 DONE (measured, banking deferred to T7) β€” PAUSED 2026-07-09 at Drew's request.** The 3 `_o0` giants (`func_8013C414`/329, `func_8013BD74`/198, `func_8013C0F8`/154, all inst=134) drafted (Workflow `wf_f22bdea4-50d`, drafts `.run/drafts-t5-batch3/`): **3/3 isolation-MATCH at -O0** (R14-verified via new **`match_one.py --o0`**). But **0 banked** β€” all 3 hit an **-O0 in-context byte-diff** (compile OK, SHA differs; NOT the def-side sig wall β€” `canon_sig_reconcile`'s voidβ†’s32 return change is NOT byte-neutral at -O0, and `gate_stage`'s call-site transforms don't fix it either β†’ 3 near). Cause = callee canonical sigs changing -O0 call codegen; needs an **-O0-specific reconcile (T7)**. Frontier updated: **125/127 draftable measured** (2 tiny `_o0` stragglers left: `0x8013bc7c`/24, `0x8013bcdc`/22). `func_801457A4` = whale-region -O0 tail, deferred. **Uncommitted (safe on ext4):** `tools/match_one.py` (--o0 flag), `docs/backlog.md` (gate re-render), this file. No src/ banks (tree = committed 20747321c state). > **BATCH-2 DONE β€” DEF-SIDE WALL CRACKED MECHANICALLY (2026-07-09); R22 verifying, then COMMIT.** 29 non-`_o0` un-measured giants drafted (Workflow `wf_9ce827ee-933`, drafts `.run/drafts-t5-batch2/`); **16 R14-isolation-MATCH** (`.run/t5_batch2_verify.json`) but **0 auto-banked** β€” ALL blocked by the **def-side canonical-sig wall** (drafts use Ghidra-typed sigs conflicting with the engine_core.h canonical, which lives inside `DEFINE_func_*` macros so `sig_unify` can't reach it). **CRACKED** β†’ new tool **`tools/canon_sig_reconcile.py`** (strip ambient-dup typedefs/externs β†’ rewrite def to canonical sig β†’ **cast changed params AT USE, never intermediate locals** [locals shift regalloc β†’ byte-diff, measured `70ff4748`β‰ `d19c9580`]). Cookbook **Β§41** + decision-log **R31 entry** written (R30/R31). > **BANKED 5 giants mechanically:** `func_8013B274 func_80130D48 func_80167DBC` (swept **Γ—134**) + `func_8016DC20 func_8018514C` (exemplar-only β€” reconciled body carries ov-specific decls, siblings failed remap). ~404 new fn-defs. Frontier map appended (29 giants β†’ `.run/t5_frontier.jsonl`: 13 near, 11 wall, 5 banked). > **11 walls backlogged (per-fn T7):** non-identical ambient types (`func_80167AE0` SVEC, `func_8016A290` ApplyMatrixSV), macro-local data symbols (`func_80162438` D_80078EB0, `func_80161E08` D_801D9670, +others `reconcile_decls`/Β§33 territory), `u8` primitive redef (`func_8016CF04`), byte-diff (`func_801824D0`). **13 nears** = permuter-ILS/Fable5 fuel (`func_80134C20` c=3, `func_801365B8` c=11, `func_80136824` c=28 closest). @@ -286,8 +286,8 @@ pre-advanced seeds. Bank free wins via `gate_stage` as they land. **This is BREA for `/effort ultracode` and WAIT for the toggle (R27); Claude cannot set effort.** Tools: `wave_targets.py` / `gen_harvest_targets.py`, `tools/workflows/worker_wave.js` + `distill.js`, `permuter_ils.py`, `bulk_harvest.py`. -**Done + committed:** T0–T3 + T7-part-1 (matched-free sweep, `commit:0476`) + **T7.2 decl-reconcile** (`commit:0479`) + -**T7.3 h_exact stragglers** (`commit:0481`) + **T4 (v4 retrain β€” FAILED, keep v3)** β€” fleet **66.02% β†’ 70.82% β†’ 71.32% +**Done + committed:** T0–T3 + T7-part-1 (matched-free sweep, `c993029f0`) + **T7.2 decl-reconcile** (`903d59472`) + +**T7.3 h_exact stragglers** (`c62f85371`) + **T4 (v4 retrain β€” FAILED, keep v3)** β€” fleet **66.02% β†’ 70.82% β†’ 71.32% β†’ 71.36%**. T7.2 banked **1,729** (base 532 + `_after` 1,197) via type-lift + mechanical remap; T7.3 banked **~200** via `dedup_propagate`; **R22 clean-fleet 136/136** every batch, dedup-check 1813/0. @@ -306,7 +306,7 @@ and `_a` defines `MATRIX`/`VECTOR` = PsyQ SDK names (fleet-wide lift SHADOWS the = base types + `_after` minus `Buf`. New tool knobs: `build_engine_types --file ` + `--exclude `. **NEXT β€” resume the planned order (T7-mechanical was pulled ahead):** -1. βœ… T7.1 surveys Β· βœ… T7.2 decl-reconcile (1,729; `commit:0479`) Β· βœ… T7.3 h_exact stragglers (~200; `commit:0481`). +1. βœ… T7.1 surveys Β· βœ… T7.2 decl-reconcile (1,729; `903d59472`) Β· βœ… T7.3 h_exact stragglers (~200; `c62f85371`). 2. **T4 β€” v4 retrain + A/B gate** *(xHigh pipeline; Max to judge A/B)*. Retrain v4 on the Phase-23/24 banked-idiom corpus; A/B vs v3 (`ab_match.js`/`ab_score.py`). Keep v4 in the wave only where it beats v3. $0 to run. (`models/bfm-match-7b-v3` is the current; doc `docs/gen2-mips-matching-model.md`.) @@ -354,7 +354,7 @@ None. near-free; 2 permanent walls `func_801412A8`/`func_80178004` stay INCLUDE_ASM (G4). ### T1 β€” Integration-recovery pass βœ… (2026-07-08) β€” cheap cohort exhausted; deliverable = the split-aware fix -- **Deliverable (committed `commit:0470`):** `recover_integration` made split-aware (Β§39 gap). It was silently +- **Deliverable (committed `d7b877f12`):** `recover_integration` made split-aware (Β§39 gap). It was silently skipping the **263-stub `ov_SC01_077_after`** cohort (drift-check hardcoded the main asm subdir; gate_stage never got src/asm/src_file). Now `stub_map()` reads each stub's asm subdir from its INCLUDE_ASM line and `reconcile_and_gate` gates per split-file group (run_gate self-filters; propagate idempotent). Reusable T5/T7. @@ -401,10 +401,10 @@ None. - **Endgame reshaped:** the 11.1 MB h_norm families are cheaply, MECHANICALLY recoverable β€” crack ONE exemplar per family β†’ remap+gate members (~0 agent tokens/member). Members no longer need drafting; only exemplars do. -### T7 (part 1) β€” MECHANICAL family sweep: matched-free harvest βœ… (2026-07-08, `commit:0476`) +### T7 (part 1) β€” MECHANICAL family sweep: matched-free harvest βœ… (2026-07-08, `c993029f0`) - Built `tools/family_sweep.py` (two-phase: stage all remaps per overlay, gate each (overlay,split) group ONCE via plain `harvest_verify`; a `match_one` pre-classify defers compile-failing type-using families to avoid bisection - blowup). Driver validated on `func_80141100` (133/133 banked, committed `commit:0475`). + blowup). Driver validated on `func_80141100` (133/133 banked, committed `03601b044`). - **BANKED 16,512 member-matches** (131 simple exemplars Γ— ~133 siblings) + the 133 validation; **0 remap-fail**. **R22 clean-fleet verify: 136/136 byte-identical** from a fully clean tree (make clean + extract-all + check-all). **Fleet 66.02% β†’ 70.82%** (+4.8% in ONE deterministic, ~0-agent-token pass). dedup-check 1813/0. @@ -412,7 +412,7 @@ None. - 683 / 17,195 simple drafts failed the whole-binary gate (match_one-MATCH but TU-context diff, ~4%; auto-reverted). - **Reproduce:** `family_sweep.py --limit 0` (after `make sig-overlays`). The remap is `family_remap.py`. -### T7.2 β€” decl-reconcile the 29 type/decl families βœ… (2026-07-08, `commit:0479`) β€” 1,729 banked; split-TU wall found +### T7.2 β€” decl-reconcile the 29 type/decl families βœ… (2026-07-08, `903d59472`) β€” 1,729 banked; split-TU wall found - **T7.1 refresh:** `make sig-overlays` (134 re-signed) + `family_manifest.py` β€” levers unchanged (2,764 families; 127 draftable / 156 matched-free) because they key on ov077 membership, which the 16.5k sibling-banks didn't change. - **Base type-lift:** `build_engine_types --source ov_SC01_077 --strip` lifted 4 base-local types (`MatEntry`, @@ -432,7 +432,7 @@ None. - **Reproduce:** `build_engine_types --source ov_SC01_077 --strip` ; `build_engine_types --file src/ov_SC01_077/ov_SC01_077_after.c --exclude Buf --strip` ; `family_sweep --only <29 addrs> --no-preclassify`. -### T7.3 β€” edge-case triage: 2 h_exact stragglers banked βœ… (2026-07-08, `commit:0481`) β€” +~200 members +### T7.3 β€” edge-case triage: 2 h_exact stragglers banked βœ… (2026-07-08, `c62f85371`) β€” +~200 members - Triaged the 8 T7-part-1 edge cases (4 diff + 4 remap-fail). **Finding:** the 4 remap-fails are matched in ov077 via the `DEFINE_func_()` engine-core MACRO (Β§11 h_exact source-share), NOT an inline def β€” so `family_remap`'s `extract_unit` (keys on a `func_(` DEFINITION) can't extract them. 2 of them (`func_80128EA8`, `func_80132EC4`) @@ -445,7 +445,7 @@ None. ## SESSION PROGRESS (2026-07-08) β€” T7-mechanical pulled ahead; phase OPEN (T4β†’T5β†’T6β†’T7-cracking remain) **This session (T7.1–T7.3, all committed, R6 = Drew pushes):** fleet **70.82% β†’ 71.36%**; **+1,929 member-matches** -(T7.2 1,729 via type-lift+remap `commit:0479`/`commit:0480`; T7.3 ~200 via h_exact propagation `commit:0481`/`commit:0482`). +(T7.2 1,729 via type-lift+remap `903d59472`/`aa0736a4f`; T7.3 ~200 via h_exact propagation `c62f85371`/`744cb59de`). Every batch R22 clean-fleet **136/136**, dedup-check 1813/0. Tools added: `family_sweep --no-preclassify`; `build_engine_types --file/--exclude`. Cookbook **Β§40a** written (R30). **NEXT = T4** (see the RESUME section above); NOT closing β€” the curriculum + 127-draftable exemplar-cracking is the phase's core, still ahead. @@ -536,7 +536,7 @@ NOT closing β€” the curriculum + 127-draftable exemplar-cracking is the phase's ### T7 β€” EXECUTE the crack curriculum: mechanical tiers M1/M2/M3 (2026-07-10, Opus-Max orchestrator, ~0 agent tokens) **Fleet 72.29% β†’ 73.66% (+1.37%, ~4,694 fleet fns); R22 clean-fleet 136/136 at every checkpoint; dedup 1813/0; 0 NON_MATCHING (G4).** -- **M1 (commit `commit:0495`) β€” 37 exemplars banked Γ—1.** `tools/t7_bank.py` (reconcile-at-bank-time + `harvest_verify` +- **M1 (commit `5b94a8247`) β€” 37 exemplars banked Γ—1.** `tools/t7_bank.py` (reconcile-at-bank-time + `harvest_verify` whole-binary gate; chunk-bet + per-round re-reconcile for cross-fn ambient mutation; giants first). Two `canon_sig_reconcile` fixes surfaced during execution: (a) **v3.2 uniquify ALL draft-defined type names + struct tags** to `_` (the `redefinition of struct Fr` inter-draft-collision class when many exemplars bank @@ -545,11 +545,11 @@ NOT closing β€” the curriculum + 127-draftable exemplar-cracking is the phase's (3 `_o0` giants + `func_8012ACE0`) have byte-perfect `.text` but a switch **jump table in rodata** diverges (REFUTES the T6 "Q3 -O0 REFUTED" claim β†’ F-jumptable); **3 last-referencer link-walls** (`func_8016D688/D1D8/165240`) C-ify the only asm referencer of a scratch data symbol β†’ `ld undefined reference` β†’ M-linkwall. -- **M2 (commit `commit:0496`) β€” 4,389 members swept Γ—134.** `family_sweep --reconcile`: per (exemplar, sibling), +- **M2 (commit `c908c3913`) β€” 4,389 members swept Γ—134.** `family_sweep --reconcile`: per (exemplar, sibling), symbol-remap the RAW draft then **RE-RUN canon_sig_reconcile against THAT sibling's TU** (the Q5 law β€” plain remap of the ov077-reconciled body banks 0; per-sibling reconcile banks 94%). 4,389/4,655 (266 per-sibling loose-typing-wall misses β†’ backlog). cookbook Β§41c. -- **M3 (commit `commit:0497`) β€” 2 no-proto exemplars + 266 swept.** Rewrote 4 clean fns' `engine_core.h` macro-internal +- **M3 (commit `1ea7c2925`) β€” 2 no-proto exemplars + 266 swept.** Rewrote 4 clean fns' `engine_core.h` macro-internal externs to no-proto (10 byte-neutral decl edits); banked `func_8012D664`+`func_8015D01C`, swept 266/266 (100%). The fleet-wide EC change R22-verified neutral (136/136). 4 residue deferred. diff --git a/phase-ends/logs/Phase26.md b/phase-ends/logs/Phase26.md index 19907b1712..4b1c0fd3cc 100644 --- a/phase-ends/logs/Phase26.md +++ b/phase-ends/logs/Phase26.md @@ -60,12 +60,12 @@ The Phase-25 h_seq reframe: the "unique tail" is really per-location families > The filter (deliberate, from the audit doc): *does it PARSE something, and does it GATE or SELECT work?* > The rest are dead LLM-tier scripts. -- [x] **A0 β€” Bootstrap** `[Max]` β€” this block + the harness task list (R28) + the phase-boundary decision β†’ `docs/decision-log.md` (R31). *(committed `commit:0585`)* -- [x] **A1 β€” `dedup_integrate.py`: the false-green gate** `[Max]` β€” audit priority #1: a **fail-closed validator that can print a false green**, which nothing downstream can catch. **All three paths confirmed and closed** (`commit:0586`): +- [x] **A0 β€” Bootstrap** `[Max]` β€” this block + the harness task list (R28) + the phase-boundary decision β†’ `docs/decision-log.md` (R31). *(committed `978ef703a`)* +- [x] **A1 β€” `dedup_integrate.py`: the false-green gate** `[Max]` β€” audit priority #1: a **fail-closed validator that can print a false green**, which nothing downstream can catch. **All three paths confirmed and closed** (`bb65d3634`): **(1)** 1808 groups claimed a `DEFINE_func_*` macro; **only 1801 exist** β€” the 7 ghosts printed `[ OK ]`, hiding **532 member-instances / 22,344 instructions of real, unbanked work**. **(2)** an absent `.run/sig.*.jsonl` degraded to *"0 validated, 0 failed"* and **exit 0** β€” on a fresh clone the gate validated **nothing** and passed. **(3)** the **bank claim was never checked at all**. **R33 applied:** the bank claim is now *derived* from the build invariant (`INCLUDE_ASM` pastes the ORIGINAL asm β‡’ a member not wrapped in it is byte-exact) rather than trusted from the registry. The C1 sig check is kept but its docstring **corrected** (P9): a sig signs the ROM, so it is immutable w.r.t. `src/` and **cannot** detect source drift, which it claimed to. **THE CAUSAL CHAIN (the audit's thesis in one example):** 3 of the 4 hidden fns are defined in `ov_SC01_077_jr_8012ACE0.c` β€” a `_jr_*` split file β€” and `dedup_propagate.overlay_files` allowlists only `("_a","_o0","_o0b","_after")`. The propagator **could not see them**; the group was registered anyway; `dedup_integrate` greenlit the lie. **Two silent-skip bugs compounding: one created the hole, the other hid it.** Fuel β†’ `.run/audit/a1_harvest_fuel.json`, banked in **A6**. - **Blast radius, MEASURED (R14):** headline metrics **unchanged to the decimal** (66.5% / 46.8%) β€” `weighted_metrics()` derives from the invariant and was *structurally immune*; `progress.py` had already been taught to distrust the registry (`commit:0574`). **A null result that CONFIRMS R33: the tool that refused to re-derive was the one that was right.** Registry 1813 β†’ 1806 groups; `make report` green; negative controls all fail-closed. + **Blast radius, MEASURED (R14):** headline metrics **unchanged to the decimal** (66.5% / 46.8%) β€” `weighted_metrics()` derives from the invariant and was *structurally immune*; `progress.py` had already been taught to distrust the registry (`329ab4cbe`). **A null result that CONFIRMS R33: the tool that refused to re-derive was the one that was right.** Registry 1813 β†’ 1806 groups; `make report` green; negative controls all fail-closed. - [x] **A2 β€” THE FULL AUDIT: the remaining 18 gate/select tools** `[Ultracode]` β€” **DONE. 38 agents Β· 2.24M tok Β· 0 err. 32 findings raised β†’ 28 SURVIVED adversarial verification (4 REFUTED, 16 downgraded); 40 scanners measured CLEAN.** Full write-up appended to **`docs/tooling-audit.md` (ROUND 2)**. **πŸ”΄ THE ROOT CAUSE β€” one bug, ~10 times:** *a hand-maintained model of the corpus layout (a file allowlist, a single-`.c` assumption, a `func_`-only regex, a `REGION_SUB` dict) sitting on top of a filesystem that already answers the question.* Every TU split silently widened it. **Decay proven:** `.run/fuel_manifest.json` (Jul 8) recorded **130** stubs; the same tool today returns **30** β€” the Phase-26 splits moved ~100 stubs out from under a dict literal last edited in Phase 22, and **nobody noticed, because an un-nominated target produces silence, not an error.** **THE NUMBERS (measured, skeptic-confirmed):** **91.6% of ALL remaining project gain is invisible to target selection** (true 994,633 ins; the manifest sees 83,305) Β· **117 of 127 reach-134 functions never nominated** Β· `harvest_verify` cannot see **56,742 of 58,717 (96.6%)** open stubs Β· **`wave_targets` hands 78 of 87 targets an asm path that does not exist.** @@ -74,11 +74,11 @@ The Phase-25 h_seq reframe: the "unique tail" is really per-location families **(2) The Phase-25/26 endgame plan is majority-fiction.** `docs/family-manifest.md` advertises "2,758 multi-member families / 11.0 MB of hidden leverage." **1,071 of them / 6.80 MB are ALREADY FULLY MATCHED** β€” phantom targets, **62% of the advertised byte-weight** β€” because the matched-set oracle scans ONE overlay. The byte-weight *ranking*, the entire point of the file, is sorted mostly on dead work. True frontier: 1,475 families / 3.9 MB. **(3) A corpus defect the byte-gate is structurally BLIND to.** `config/symbols.us.txt:981` declares `listCdBuffer = 0x80180000` (a main-EXE **data** symbol) and every overlay's splat config loads that file β€” but in overlay space 0x80180000 is **code**. splat cuts **97 real functions in half** and invents **96 phantom ones**: **193 slices that can never be matched by anyone**, in 97 of 134 overlays. They sit in the harvest queue as ordinary work, so agents burn on them forever and the failure reads as an intrinsic compiler wall β€” **and the build stays byte-identical and green throughout**, because the `.s` halves are pasted back verbatim. *A perfect correctness oracle and a null coverage oracle.* What saved us: **`sig_image` was RIGHT** (58,524/58,621 agreement with spimdisasm; correct on all 97 disagreements). **A second independent oracle is the only reason this was visible at all.** - [~] **A3 β€” `tools/corpus.py`: ONE derived corpus oracle** `[Max]` β€” **IN PROGRESS. The oracle is built and 4 of ~10 scanners are deleted.** - **`tools/corpus.py` (`commit:0589`)** β€” derives from the FILESYSTEM (which `.c` files make up a binary; where a function's `.s` lives β€” the `INCLUDE_ASM` line is **self-describing**, its first argument *is* the asm subdir) and from the PROVEN INVARIANT (`matched` = `sig βˆ’ stubs`, *derived*, never re-parsed from C text). Coverage-asserted (R32): every `INCLUDE_ASM` line must parse, every symbol must resolve (**any** C identifier β€” a `func_`-only regex silently misses the 100 curated `listCdBuffer` stubs), every stub must have a `.s`. + **`tools/corpus.py` (`f7b7399eb`)** β€” derives from the FILESYSTEM (which `.c` files make up a binary; where a function's `.s` lives β€” the `INCLUDE_ASM` line is **self-describing**, its first argument *is* the asm subdir) and from the PROVEN INVARIANT (`matched` = `sig βˆ’ stubs`, *derived*, never re-parsed from C text). Coverage-asserted (R32): every `INCLUDE_ASM` line must parse, every symbol must resolve (**any** C identifier β€” a `func_`-only regex silently misses the 100 curated `listCdBuffer` stubs), every stub must have a `.s`. **The SECOND ORACLE (`make audit-corpus`)** β€” cross-checks splat's boundaries against `sig_image`'s independent ones. Reports **193** (96 PHANTOM + 97 TRUNCATED), **reproducing the A2 audit's number exactly from an independently-written tool** β€” a third confirmation. *RED by design until A4; then it becomes a gate.* **R14 self-catch, recorded because the near-miss IS the lesson:** run naively over all 136 binaries the same check reports **914** slices β€” 4.7Γ— the truth. `main`/`resident` are signed by the **Ghidra** dumper (shorter boundaries by design; never analysed the linked PsyQ subsegs), so the comparison measures *Ghidra's* limits, not splat's errors. Only the overlays are signed by `sig_image`. `sig_is_independent()` now encodes that domain. **A check applied outside its valid domain does not become more thorough β€” it becomes noise.** - **`build_fuel_manifest` + `wave_targets` (`commit:0590`)** β€” targets **30 β†’ 263**; reach-134 targets **10 β†’ 127** (the entire high-ROI band); remaining gain **83,305 β†’ 994,633 ins** β€” *the audit's predicted figure to the unit* (a **fourth** independent confirmation). `wave_targets`' asm paths: **0 of 263 missing** (was 78 of 87 pointing at nothing, whose wasted attempts were booked as *matching* failures and fed `reserved_walls()` β€” a silent skip compounding into a **false wall**). - **`harvest_verify` + `gate_stage` (`commit:0591`) β€” the byte-gate itself.** It could only see ONE TU: **4.9% β†’ 100%** of ov_SC01_077 reachable; **96.6%** of fleet stubs were unreachable. *Safety argued explicitly:* only the SPLICE LOCATION is derived β€” the verdict (`make build` + SHA1) is untouched, and since `INCLUDE_ASM` pastes the original asm, a bug can make it **fail to bank but never falsely bank**. Verified by an **identity known-answer test** across three different split TUs β†’ `d19c9580` BYTE-IDENTICAL, tree clean. + **`build_fuel_manifest` + `wave_targets` (`a302908f2`)** β€” targets **30 β†’ 263**; reach-134 targets **10 β†’ 127** (the entire high-ROI band); remaining gain **83,305 β†’ 994,633 ins** β€” *the audit's predicted figure to the unit* (a **fourth** independent confirmation). `wave_targets`' asm paths: **0 of 263 missing** (was 78 of 87 pointing at nothing, whose wasted attempts were booked as *matching* failures and fed `reserved_walls()` β€” a silent skip compounding into a **false wall**). + **`harvest_verify` + `gate_stage` (`70a99aa9f`) β€” the byte-gate itself.** It could only see ONE TU: **4.9% β†’ 100%** of ov_SC01_077 reachable; **96.6%** of fleet stubs were unreachable. *Safety argued explicitly:* only the SPLICE LOCATION is derived β€” the verdict (`make build` + SHA1) is untouched, and since `INCLUDE_ASM` pastes the original asm, a bug can make it **fail to bank but never falsely bank**. Verified by an **identity known-answer test** across three different split TUs β†’ `d19c9580` BYTE-IDENTICAL, tree clean. **STILL TO DO in A3:** `family_manifest`/`family_hseq` (the matched-set oracle β€” **1,071 of 2,758 advertised families are already fully matched**, 62% of the endgame plan's byte-weight is phantom) Β· **DELETE `census_conflict_callees`** (R33 β€” `reconcile_tu` answers its question from the build) Β· `exemplar_miner`/`difficulty` (inherited holes) Β· `jr_isolate_all.jr_inventory` (reads its banked-roster from an **ephemeral gitignored scratch file**). `jtbl_family_bank` (3 bugs found by hand, never audited) Β· the SELECTION tools `family_hseq`/`family_manifest`/`wave_targets`/`exemplar_miner`/`worklist`/`build_fuel_manifest` Β· the closeness oracle `masked_diff`/`match_one` that every crack agent trusts Β· the bank/gate path `gate_stage`/`harvest_verify`/`bank_exemplar` Β· `dup_report`/`difficulty`/`sig_image`/`canon_draft_decls`/`derive_canonical_sigs`/`census_conflict_callees`. **METHOD (do NOT audit by reading regexes β€” that is the failure mode that WROTE these bugs):** build a deliberately **over-approximating** candidate detector, run both over the real corpus, compute `gap = candidates βˆ’ parsed`, and **classify every item in the gap** as a real silent skip or a justified exclusion. Pair each auditor with an **adversarial skeptic** told to refute it (in the first audit several magnitudes were wrong in *both* directions and one whole class was refuted). **R33 before R32.** - [x] **A3b β€” `tools/cdecl.py`: THE C-declaration oracle** `[Max]` β€” **DONE. `make audit-cdecl` GREEN; R22 clean-fleet 136/136.** The audit prescribed a *shape-aware alternation* per tool (~15 coordinated regex edits). **Rejected (R33, decision-log 2026-07-14):** fifteen hand-maintained models are exactly what diverged β€” two tools in ONE pipeline already disagree about whether `extern s32 D_a, D_b;` is a declaration β€” and an alternation only ever covers the shapes somebody remembered. **The thing being scanned has a GRAMMAR.** C's declarator grammar is small, closed and **total**: it describes fn-ptr arrays, sized/2-D arrays, multi-declarators, fn-ptr params and K&R identifier-lists *without being told they exist*. ~250 lines of recursive descent β€” **less code than the fifteen regexes it deletes**, and exhaustive by construction rather than by memory. @@ -86,14 +86,14 @@ The Phase-25 h_seq reframe: the "unique tail" is really per-location families **Two design decisions (cookbook Β§51g, LAWS 4–8):** the **candidate set is DERIVED** β€” at file scope C admits nothing but declarations, so R32's over-approximating detector is *every depth-0 statement*, with no second model to rot; and **gcc adjudicates my own coverage gap** β€” a statement gcc *also* rejects is not C (my rejection is right, the input is corrupt), one it *accepts* and I don't is my defect. All 33 residual came back **NOT-C**, all in dead `.run/drafts*` scratch, **none in `src/`**. **NEW findings (docs/tooling-audit.md):** `reconcile_decls.DATA_DECL_LINE_RE` finds **ZERO** decls in `engine_core.h` (line-anchored; every decl there ends in `\`) β€” its authoritative tier has **always been empty** Β· two scanners count **block-scope** externs as file-scope canonicals (the Β§8d wall) Β· `tu_ambient`'s func regex (`[^()]*` params) drops **any callee with a fn-ptr parameter** Β· an R14 near-miss: the 33 corrupt drafts were written by a *recovery tool* that prepended `extern` to an `if` statement β€” but the source bug was **already fixed in Phase 19** (today's oracle: 0 garbage / 300 sigs). *Mechanism confirmed, consequence nil.* **Scope (deliberate): NO consumer changed** β€” so it cannot move a byte. The audit warns that making the parser see more **ARMS dormant transforms** (`reconcile_decls.data_access_subs` would mangle `D_1[i]()` the moment fn-ptr decls become visible to it). Migration is one tool at a time, each byte-gated. -- [x] **A4 β€” The `listCdBuffer` corpus defect: 193 unmatchable slices** `[Max]` β€” **DONE (`commit:0594`). R22 CLEAN-FLEET: `make clean` β†’ extract 136 β†’ build 136 β†’ `check-all` = 136 PASSED, 0 FAILED. `make audit-corpus`: 0 PHANTOM + 0 TRUNCATED (was 193).** +- [x] **A4 β€” The `listCdBuffer` corpus defect: 193 unmatchable slices** `[Max]` β€” **DONE (`af2f40d15`). R22 CLEAN-FLEET: `make clean` β†’ extract 136 β†’ build 136 β†’ `check-all` = 136 PASSED, 0 FAILED. `make audit-corpus`: 0 PHANTOM + 0 TRUNCATED (was 193).** `symbols.us.txt:981` declared `listCdBuffer = 0x80180000` β€” a *correct* Phase-3 name for **main's** LIST.CD RAM buffer. But that address is **outside main's image** and **inside the overlay slot**, and every overlay stacks that file. **High RAM is reused: an address that is a buffer to main is live CODE to an overlay.** splat therefore cut **97 real functions in half** and **invented 96 phantoms** β€” 193 slices **unmatchable by construction** (the phantom `listCdBuffer.s` literally begins `lw $ra,0x10($sp)` / `addiu $sp,$sp,0x18` / `jr $ra` β€” splat cut a function immediately before its **epilogue** and called the epilogue a function). **It had already contaminated real work:** in `ov_SC03_031` the cut landed where the epilogue was exactly `jr $ra; nop`, so the Phase-26 Γ—134 sweep **banked the phantom** as `void listCdBuffer(void) {}` β€” byte-correct, gate-green, and entirely fictitious β€” while leaving `func_8017FFC4` permanently unmatchable. **And it was hiding a real function:** in `ov_SC01_084`/`ov_SC02_041`/`ov_SC03_094`/`ov_SC06_008` there IS a genuine function at 0x80180000 (111/35/28/74 ins), reachable **only** via a fn-pointer table and never by `jal` β€” so splat cannot find it and needs the boundary *declared*. `listCdBuffer` had supplied it **by luck**. Now declared honestly, per-overlay, exactly where R13/R15 says it belongs. **THE RULE (the mirror of R13/R15, never written down):** *a symbol whose address falls inside ANOTHER binary's vram window must never enter that binary's symbol stack.* Fix: `config/symbols.us.ram.txt`, stacked **only** by main. -- [x] **A5 β€” The closeness oracle lied on 155 functions** `[Max]` β€” **DONE (`commit:0594`).** `masked_diff._reloc_kind()` knew 26/HI16/LO16; an over-approximating sweep of every reloc `objdump` emits across all 3,367 build objects found **four** β€” the missing one, **`R_MIPS_PC16`**, fell through to a **full-word compare** against an *unresolved placeholder*, which can never succeed. **Decisive test** (derived from the invariant, coverage-asserted): `INCLUDE_ASM` pastes the ORIGINAL asm, so every stub MUST score 0 β€” **2,741 scored: old mask 150 LIES, PC16 masked 4** (the 4 are the separate length-delta defect). A phantom non-zero sends an agent to grind at a wall that isn't there, and the wasted attempt is booked as a *matching* failure β†’ `reserved_walls()` β†’ **a function that was never broken is permanently blacklisted.** +- [x] **A5 β€” The closeness oracle lied on 155 functions** `[Max]` β€” **DONE (`af2f40d15`).** `masked_diff._reloc_kind()` knew 26/HI16/LO16; an over-approximating sweep of every reloc `objdump` emits across all 3,367 build objects found **four** β€” the missing one, **`R_MIPS_PC16`**, fell through to a **full-word compare** against an *unresolved placeholder*, which can never succeed. **Decisive test** (derived from the invariant, coverage-asserted): `INCLUDE_ASM` pastes the ORIGINAL asm, so every stub MUST score 0 β€” **2,741 scored: old mask 150 LIES, PC16 masked 4** (the 4 are the separate length-delta defect). A phantom non-zero sends an agent to grind at a wall that isn't there, and the wasted attempt is booked as a *matching* failure β†’ `reserved_walls()` β†’ **a function that was never broken is permanently blacklisted.** - [x] **NEW (found by cutting the R22 corner): a STALE OBJECT CAN PRODUCE A FALSE PASS** `[Max]` β€” `.o ← .s` is **not** a dependency make can see (assembly arrives via `INCLUDE_ASM` β†’ `.include` β†’ maspsx/as, *after* cpp; `-MMD` tracks headers only). Re-extract + build incrementally β‡’ make links a **stale object** β€” and because `INCLUDE_ASM` pastes the ORIGINAL bytes, the stale object still yields the original image, **SHA1 goes GREEN**, and the split just changed is never exercised. **A broken config change can be "verified" by an incremental build.** Live proof: 8 of 136 linked stale objects here and failed **loudly only by luck**. R22/H3 already legislate this and I broke them β€” but *a rule that needs a human to remember it is not a gate*. `extract` now invalidates the objects that include what it rewrote. **Structural, not advisory.** -- [ ] **A6 β€” Wire `reconcile_tu.py`; retire the fleet-majority oracle** `[Max]` *(blocked on A2)* β€” `reconcile_decls.canonical_data_map` asks *"what does the FLEET call this symbol"* when C's constraint is **per-TU**: 36.8% of symbols carry β‰₯2 conflicting spellings, so one fleet-wide answer is **wrong for some TU by construction** β€” it returns an **actively WRONG** canon for **3,717** symbols and disagrees with the TU's own decl on **21.7%** of pairs (**every one of 678 TUs** has β‰₯1 broken answer). `reconcile_tu.py` is **written + validated + NOT WIRED** (`commit:0580`). Wire β†’ `bank_exemplar` / `jtbl_family_bank` / `gate_stage`; byte-gate. Unblocks `func_8017A4AC` (287 KB), `func_8013F350`, `func_80131340`. +- [ ] **A6 β€” Wire `reconcile_tu.py`; retire the fleet-majority oracle** `[Max]` *(blocked on A2)* β€” `reconcile_decls.canonical_data_map` asks *"what does the FLEET call this symbol"* when C's constraint is **per-TU**: 36.8% of symbols carry β‰₯2 conflicting spellings, so one fleet-wide answer is **wrong for some TU by construction** β€” it returns an **actively WRONG** canon for **3,717** symbols and disagrees with the TU's own decl on **21.7%** of pairs (**every one of 678 TUs** has β‰₯1 broken answer). `reconcile_tu.py` is **written + validated + NOT WIRED** (`5b1de7aca`). Wire β†’ `bank_exemplar` / `jtbl_family_bank` / `gate_stage`; byte-gate. Unblocks `func_8017A4AC` (287 KB), `func_8013F350`, `func_80131340`. - [ ] **A5 β€” Family engine: 93 phantom exemplars, 1,834 free members** `[Max]` *(blocked on A2)* β€” `family_remap.extract_unit` globs only `src//*.c`, so it **cannot read a `DEFINE_func_*` body out of `engine_core.h`** β†’ **93 of 218 (43%)** "matched" exemplars are PHANTOM and **1,834** still-stubbed, PURE/IMM-clean, unpinned member templates are **never attempted**. Plus `symbol_map` naming an address-taken **function** `D_` (3 families Γ— 37 members silently no-op, booked as *byte* failures), `gather_externs`' multi-line externs (9), `family_sweep.stub_map`'s curated-name stubs (3 phantom families). Fix, assert, **re-run the sweep, harvest.** - [ ] **A6 β€” `dedup_propagate`: 407 invisible files** `[Max]` *(blocked on A2)* β€” a hardcoded suffix allowlist predating the jr splits sees **404 of 811** overlay `.c`; the gap holds **36,135 stubs + ~32,000 inline defs β€” half the corpus** β€” and it gates *all* of dedup_propagate. β‰₯266 free Γ—N banks cannot even be nominated. Fix = **glob, not allowlist** (the next split family would re-open it), landed **together with** `find_site`'s K&R blindness or the newly-visible half's biggest prizes (`func_8015AE2C`, `func_80166994` β€” both K&R) are still dropped. Re-run `--auto-from`, harvest. - [ ] **A7 β€” `build_engine_types`: dead on 81% of its own corpus** `[Max]` *(blocked on A2)* β€” hard-exits on **573 of 709** type-bearing files (all 134 overlays) because 1,929 **tagged**-struct typedefs trip an overlap guard written when the source had only anonymous ones. `inject_capped_externs` routes every type-bearing body to this tool as the type-heavy tail's **only** sanctioned unblocker β€” and it cannot run on the corpus that tail lives in. **This is the "3,098 type-heavy tail" and the 9 zero-bank type-using families.** (Fail-LOUD, not silent β€” it went unfixed because the message read like an edge case rather than an 81% coverage failure.) @@ -204,7 +204,7 @@ fleet instr-weighted 66.5% β†’ 66.7% Β· 0 NON_MATCHING. Tree clean, all work com ### REMAINING β€” all fully specified on disk; nothing lives only in a dead session's context 1. ~~**`tools/cdecl.py`** β€” the ONE coverage-asserting C-decl parser.~~ **DONE 2026-07-14** (A3b above; `make audit-cdecl` green, 0 parser defects over 2.95M statements, 50,405 declarations gcc-verified). **The 15 consumers are NOT yet migrated** β€” that is the next step, one tool at a time, each byte-gated. Migration order by measured harm: `reconcile_decls`/`canonical_data_map` (3,717 actively-WRONG canonicals; and see item 2 β€” `reconcile_tu` supersedes its oracle) β†’ `gen_harvest_targets` (`DATA_DECL_RE`/`EXTERN_DECL_RE`/`tu_ambient`) β†’ `sig_unify` β†’ `canon_sig_reconcile` (its `_file_scope_statements` is CLEAN and should simply *delegate* to `cdecl.tu_statements`; only its classifier regexes are broken) β†’ the rest. ⚠️ **`reconcile_decls.data_access_subs` must gain a `fnptr` kind IN THE SAME CHANGE** that lets it see fn-ptr decls, or it will mangle `D_1[i]()` β†’ `((u8 *)D_1)[i]()` (audit, GROUP data-decls, CLEAN item 4 β€” a dormant transform that the fix ARMS). -2. **Wire `tools/reconcile_tu.py`** (written + validated at `commit:0580`, still **NOT WIRED**) into `bank_exemplar`/`jtbl_family_bank`/`gate_stage`; retire `reconcile_decls`' fleet-majority oracle (**3,717 actively-wrong decls**; 21.7% of (TU,symbol) pairs). Unblocks `func_8017A4AC` (287 KB), `func_8013F350`, `func_80131340`. **Then DELETE `census_conflict_callees`** (already marked; `reconcile_tu` answers its question from the build). +2. **Wire `tools/reconcile_tu.py`** (written + validated at `5b1de7aca`, still **NOT WIRED**) into `bank_exemplar`/`jtbl_family_bank`/`gate_stage`; retire `reconcile_decls`' fleet-majority oracle (**3,717 actively-wrong decls**; 21.7% of (TU,symbol) pairs). Unblocks `func_8017A4AC` (287 KB), `func_8013F350`, `func_80131340`. **Then DELETE `census_conflict_callees`** (already marked; `reconcile_tu` answers its question from the build). 3. **`lint_symbol_refs`** β€” RED (43 false positives) and UNWIRED. Fix the 4 blind spots β†’ green on HEAD β†’ **wire into `make report`**. It is the only detector for the R22 rename-drift failure mode. 4. **`overlay_src_split.scan_construct`** `force_decl` latch (swallows 2 real defs **in the exemplar overlay**, while its selftest passes green β€” a *serialisation* check masquerading as a *coverage* check) + `jr_inventory`'s banked-roster read from an **ephemeral gitignored scratch file** (R33 violation). 5. **πŸ† A10 β€” RE-TEST THE WALLS.** *This is the payoff and the reason the audit was gated ahead of matching.* @@ -291,7 +291,7 @@ every bank. dedup 1813/0. 0 NON_MATCHING. ~15 commits. that `cast_call_sites`/`sig_unify` resolve against. This is why the wave's byte-exact cores would not bank: the draft kept its guessed sig, hit `conflicting types`, and the "recovery" pass reported nothing to fix. **Fixing it turned `func_8015A3C8` from 28-conflicts-unbankable into BANKED BYTE-IDENTICAL with zero hand - edits.** (`commit:0561`) + edits.** (`6f3441d26`) 5. `jtbl_family_bank.revert()` didn't restore the splat config β†’ an isolation's residue rode into a commit as a DUPLICATE code-subseg line (harmless to splat, so R22 stayed green) β†’ the NEXT isolation walked the object twice β†’ "segments out of order". Now reverts the config + `jr_isolate_all` FAILS LOUD on a @@ -353,7 +353,7 @@ every bank. dedup 1813/0. 0 NON_MATCHING. ~15 commits. it** (the cast folds back to `lui/%lo`). It needs an EBB-separated pointer re-crack (Β§48-B) or a fleet decl migration. -**2. Re-run the 780 h_seq rejections against the REPAIRED callee oracle** (`commit:0561`) β€” large mechanical +**2. Re-run the 780 h_seq rejections against the REPAIRED callee oracle** (`6f3441d26`) β€” large mechanical recovery expected for ~0 agent tokens. **3. The next crack wave** β€” 32 unmatched heavy-jr ov077 cores remain (`.run/wave_targets.json`, ranked, with per-core asm subdirs). Plus **32 PINNED families (1.09 MB)** needing pin-free re-cracks β€” the toolkit is @@ -394,7 +394,7 @@ one sibling by hand (rather than trusting the handoff) gave a sharper picture an call this symbol" when the question is "what can THIS TU see"; and its `DATA_DECL_LINE_RE` **cannot parse** `extern void (*D_x[])(void *);`, so it silently skipped the very symbols that were failing. (This is the "reconcile fn-ptr-extern gap" logged 2026-07-12 β€” filed as a small separate lever, it *was* the blocker.) -- **The R17 triage rule (committed `commit:0550`) paid off immediately:** `conflicting types` = the compiler +- **The R17 triage rule (committed `12631df74`) paid off immediately:** `conflicting types` = the compiler REFUSED TO COMPILE = a C front-end diagnostic = **our Python**. Reading `cse.c`/`global.c` would have taught nothing. ("Wrong BYTES" β†’ read gcc; "won't COMPILE" β†’ read our tooling.) - **Diagnostics gotcha:** gcc-2.7.2 does **not** prefix errors with `error:` β€” grepping a build log for `error` @@ -441,7 +441,7 @@ tree clean, all work committed.** The Β§8b wall stayed broken throughout. ### The three Fable5 cracks (all PIN-FREE, all independently re-verified against the bytes β€” R14) | Core | Size Γ— reach | Result | State | |---|---|---|---| -| `func_8015AE2C` | 562 Γ— **134** | **MATCH 562/562** | **Exemplar BANKED** (`commit:0547`, `d19c9580`, R22 green). Γ—133 sweep **BLOCKED** β€” see below | +| `func_8015AE2C` | 562 Γ— **134** | **MATCH 562/562** | **Exemplar BANKED** (`9b93c254c`, `d19c9580`, R22 green). Γ—133 sweep **BLOCKED** β€” see below | | `func_80178D40` | 890 Γ— **134** | **close=39/890** β€” 851 exact; **all 39 in ONE case body (0x5C)** | crack at `.run/phase26-cracks/func_80178D40.c`; 4 named residuals in a 44-ins block, agent calls it permuter-tractable | | `func_8017BEBC` | 952 Γ— **113** | **close=2/952** β€” two `addiu` TRANSPOSED, same registers (pure emission order) | crack at `.run/phase26-cracks/func_8017BEBC.c`; **permuter ran 25 min, did NOT close it** | @@ -596,7 +596,7 @@ Because func_801734BC is now committed in `_after` of every sibling, banking any ## β–Ά SESSION-3 CHECKPOINT (2026-07-12 late) β€” superseded by SESSION-4 above -**Committed baseline = `commit:0534`, R22 136/136 (now ~50s, parallel).** Session-3 commits: `commit:0531` (tiny-band), `commit:0532` (Β§8 PoC), `commit:0533` (Β§8 Γ—134 automation), `commit:0534` (R22 parallelization). Phase-26 total: **distinct-code 30.3β†’39.1%, instr-weighted 58.2β†’63.0%.** +**Committed baseline = `6fb8d323b`, R22 136/136 (now ~50s, parallel).** Session-3 commits: `025cc03f6` (tiny-band), `095a611e7` (Β§8 PoC), `5a0818061` (Β§8 Γ—134 automation), `6fb8d323b` (R22 parallelization). Phase-26 total: **distinct-code 30.3β†’39.1%, instr-weighted 58.2β†’63.0%.** ### What session 3 delivered (all committed, R22 136/136) 1. **Tiny-band harvest** β€” 17,975 member-matches; distinct 35.2β†’39.1%. @@ -616,10 +616,10 @@ Because func_801734BC is now committed in `_after` of every sibling, banking any ## SESSION-2 CHECKPOINT (2026-07-12) β€” superseded by SESSION-3 above -**Phase 26 status:** Tasks 0–6 DONE + committed (the h_seq engine + triage). Task 7 (Fable5) + Task 8 (mechanical harvest) IN PROGRESS. **Committed baseline = `commit:0528`, R22 136/136 confirmed.** Commits this phase: `commit:0518`β†’`commit:0528`. +**Phase 26 status:** Tasks 0–6 DONE + committed (the h_seq engine + triage). Task 7 (Fable5) + Task 8 (mechanical harvest) IN PROGRESS. **Committed baseline = `62f953302`, R22 136/136 confirmed.** Commits this phase: `2226e565f`β†’`62f953302`. -### What's banked (all committed + R22-verified through commit:0528) -- **729 reconcile-class member-matches**: 463 (`commit:0527`) + 266 (`commit:0528`), from **6 no-jtbl reconcile-clean triage cracks** templated Γ—~133 via `--reconcile-raw`. Metrics β‰ˆ **31%+ distinct-code / 59%+ instr-weighted** (was 30.3/58.2 at phase start). +### What's banked (all committed + R22-verified through 62f953302) +- **729 reconcile-class member-matches**: 463 (`7ccf48f2f`) + 266 (`62f953302`), from **6 no-jtbl reconcile-clean triage cracks** templated Γ—~133 via `--reconcile-raw`. Metrics β‰ˆ **31%+ distinct-code / 59%+ instr-weighted** (was 30.3/58.2 at phase start). - **MID-BAND HARVEST DONE + committed + R22 136/136:** plain `--hseq --band mid` banked **6,853 member-matches = 320 distinct functions** (3,098 type-heavy tail / 1,743 pinned / 873 no-ov077-body β€” all expected). **Metrics: distinct-code 31.1β†’35.2%, instr-weighted 58.9β†’60.9%.** - **TINY-BAND HARVEST DONE + R22 136/136 (session 3, 2026-07-12):** plain `--hseq --band tiny` banked **17,975 member-matches / 5,617 gate-rejected** (h_seq-collision false-templates, correctly refused by the whole-binary gate β€” the collision-prone <16-ins band) across **266 overlay `.c` files** (180 tiny families; skips 1,184 no-matched-unit / 148 unresolved-imm-Tier2 / 117 STRUCT / 39 pinned). R22 clean-fleet **136/136**. **Metrics: distinct-code 35.2β†’39.1%, instr-weighted 60.9β†’62.9%.** Phase-26 total so far: distinct 30.3β†’**39.1%**, instr 58.2β†’**62.9%**. **NEXT: the two harvest gaps** β€” Β§8 jtbl-rodata tooling (Drew-approved) + the reconcile fn-ptr-extern fix β€” then re-measure/milestone. @@ -641,7 +641,7 @@ Because func_801734BC is now committed in `_after` of every sibling, banking any 119 draftable substantial families: cheap 29 (23 closeness-0 isolation-cracks) / permuter 29 / fable5 61. Whole-binary reality: 6 cheap no-jtbl-reconcile-clean bank; ~15 no-jtbl need the fn-ptr fix; 2 jtbl + the fable5 cores need Β§8. `.run/_rr_todo.txt` = the 19 not-yet-banked cracks. ### NEXT STEPS (priority order, all MECHANICAL β€” no Fable5) -1. ~~mid-harvest β†’ R22 β†’ commit~~ **DONE** (`commit:0530`). 2. ~~tiny band `--hseq --band tiny`~~ **DONE** (session 3, 17,975 banks, R22 136/136, distinctβ†’39.1%). 3. **Β§8 jtbl tooling** (Drew-approved; ov077 PoC β†’ automate) β€” the mechanical bands are now exhausted, so this + #4 are the remaining harvest levers. 4. **reconcile fn-ptr fix** β†’ re-harvest the ~15 no-jtbl cracks (`.run/_rr19.sh` pattern). 5. **Task-5 type-families** (9 zero-bank substantial) via reconcile. 6. re-measure metrics; when gaps closed β†’ milestone check. +1. ~~mid-harvest β†’ R22 β†’ commit~~ **DONE** (`3074ceb48`). 2. ~~tiny band `--hseq --band tiny`~~ **DONE** (session 3, 17,975 banks, R22 136/136, distinctβ†’39.1%). 3. **Β§8 jtbl tooling** (Drew-approved; ov077 PoC β†’ automate) β€” the mechanical bands are now exhausted, so this + #4 are the remaining harvest levers. 4. **reconcile fn-ptr fix** β†’ re-harvest the ~15 no-jtbl cracks (`.run/_rr19.sh` pattern). 5. **Task-5 type-families** (9 zero-bank substantial) via reconcile. 6. re-measure metrics; when gaps closed β†’ milestone check. ### Effort/model: Max set (this session). Fresh session: re-apply `/effort max` for Β§8 design (Tier-1 tooling) or `/effort xhigh` for mechanical harvest runs. Ghidra MCP NOT needed (matching uses cached asm; run `/mcp` only if RE work resumes β€” R29). @@ -734,7 +734,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag order-dependent, cc1 doesn't enforce it). **#4 type-heavy:** build_engine_types now runs (A7) β€” the tail is re-testable. **CONFIRMED the remaining re-test is BREADTH:** a serial `gate_stage` sample timed out (ov_SC01_077 rebuilds per draft; the reason the audit banked via Γ—134 family sweeps, not per-fn gating). Tree reverted clean - (HEAD commit:0618). **β†’ R27 BOUNDARY: prompting Drew for `/effort ultracode` before the fan-out** = re-gate the + (HEAD ea20bdf9f). **β†’ R27 BOUNDARY: prompting Drew for `/effort ultracode` before the fan-out** = re-gate the 2,218 open-stub drafts (958 closeness-0 first β€” the definitive "fuel exhausted" test) + the type-heavy tail through the fixed oracles (reconcile_tu/cdecl-compat/build_engine_types), parallel-isolated, bank the byte-gated wins, R22 before commit; a re-confirmed wall is as valuable as a dissolved one (P9). @@ -784,7 +784,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag was already done by A3d.** Traced the call chain rather than trusting the note: `bank_exemplar`'s `recovered` stage (l.53) = `fb.recover(base, OV, cf, FUNC)` = `jtbl_family_bank.recover()`, which runs `cast_call_sites` **then `reconcile_tu`** (l.94/96) β€” the reconcile_tu wiring entered there in **A3d - (`commit:0601`, "retire the fleet-majority oracle … on BOTH banking paths")**. So `reconcile_tu` reaches + (`4aae5e758`, "retire the fleet-majority oracle … on BOTH banking paths")**. So `reconcile_tu` reaches `bank_exemplar` transitively via `recovered`, needing no bank_exemplar-specific rung. **Already PROVEN**: A9b banked `func_8017A4AC` "at the recovered stage (reconcile_tu resolves its D_80126B58 struct + D_801DA75C fn-ptr conflicts)". Also confirmed **no live tool references the RETIRED `reconcile_decls`** @@ -796,12 +796,12 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag exists to eliminate. **NEXT: A9f β€” overlay_src_split force_decl latch.** - **2026-07-14 (session 13, A9d β€” retire the dead Phase-17 canonical-sig chain; Max):** R33 applied to a two-tool dead chain. **DELETED `tools/census_conflict_callees.py` + `tools/derive_canonical_sigs.py`.** - `census` was audit-CONFIRMED MARKED-FOR-DELETION (`commit:0593`; decision-log 836 "in its entirety gets + `census` was audit-CONFIRMED MARKED-FOR-DELETION (`9794b13ed`; decision-log 836 "in its entirety gets deleted"): it re-derives from C text the question β€” "for this TU, which callees are defined/declared/ stubbed/external?" β€” that `reconcile_tu` (Phase 26) answers FROM THE BUILD; a parse hole in `reconcile_tu` is conservative, a parse hole here is WRONG in the unsafe direction (unknownβ†’"conflict-free"). Its output fed only `derive_canonical_sigs`, which the audit DOWNGRADED but which is genuinely **dead**: last touched - Phase-17 (`commit:0140`), output `.run/canonical_sigs.json` read by **nothing** (no Makefile target, no + Phase-17 (`c4b0cef86`), output `.run/canonical_sigs.json` read by **nothing** (no Makefile target, no workflow, no module import β€” all verified by grep), no-ops on the 2-byte `[]` input, and its asm-arity heuristic is **36% wrong vs byte-exact banked C** (audit skeptic, ground-truth run). Its canonical-sig purpose was itself retired in **A3d** (fleet-majority oracle β†’ `reconcile_tu`'s per-TU oracle). So the @@ -821,7 +821,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag β€” add a `reconcile_tu` stage, byte-gate); then A9f (overlay_src_split force_decl latch), A9g (jr_inventory ephemeral read), A10 (wall re-test), A11 (distill + close β†’ resume Phase 26 Task 7). - **2026-07-14 (session 12, A9a+A9b β€” canon_sig_reconcile fn-ptr fix + wall re-test; Max):** Continued the - tool-hygiene audit. **A9a β€” `canon_sig_reconcile` sees fn-ptr dispatch tables (`commit:0609`).** The def-side-wall + tool-hygiene audit. **A9a β€” `canon_sig_reconcile` sees fn-ptr dispatch tables (`abbedcee8`).** The def-side-wall recovery tool, live on the Γ—134 economic-engine paths (jtbl_family_bank, family_sweep --reconcile-raw, bank_exemplar, t7_bank, scope_data_externs, family_remap). Its tu_ambient/visible_above classifiers + `_reconcile_data`'s `_DATA_EXTERN_RE` have a type class `[\w \*]` that can't hold a `(` β†’ 100% blind to @@ -839,7 +839,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag Harness in `.run/audit/a9a_*`. **A9a's immediate banking impact = NULL** (correctness fix, like A3c/A3d/A3e β€” the historical tail fails on codegen/heterogeneous blockers, not the one fix); its value is protecting all future dispatch-table banking. - **A9b β€” re-test the walls (`commit:0610`, `commit:0611`).** Re-ran 7 fn-ptr-referencing "blocked" cracks through + **A9b β€” re-test the walls (`97d86fae6`, `3509acf4b`).** Re-ran 7 fn-ptr-referencing "blocked" cracks through bank_exemplar. **HONEST (R14): A9a did NOT independently unblock any** β€” the `reconciled` stage failed on func_8015B950's func-conflicts; the rest hit K&R / scalar-typedef / non-ov077 / non-contiguous-carve blockers. **BUT the audit's recover path (A3d reconcile_tu / A3e gate) dissolved `func_8017A4AC` (536 ins Γ— 134)** β€” a @@ -848,7 +848,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag siblings, 0 failed**. **R22 clean-fleet 136/136** after each; **instr-weighted 68.1β†’68.6% (+0.5%), distinct 48.0β†’49.2% (+1.2%)**; dedup 1840/0. **The audit thesis demonstrated: a many-phase "wall" was our TOOLING, not an intrinsic residual β€” fixed the oracle, the wall banked Γ—134.** - **A9c β€” `lint_symbol_refs` green + wired (`commit:0613`).** The ONLY detector for the R22 rename-drift failure + **A9c β€” `lint_symbol_refs` green + wired (`d7d2613ae`).** The ONLY detector for the R22 rename-drift failure mode (a symbols rename leaves a func_ ref dangling; a clean build fails, an incremental masks it β€” undetected Phase 21β†’23). Was RED (262 FPs) + UNWIRED. All 3 audit blind spots fixed: #1 now scans `src/shared/*.h` (engine_core.h's 10k+ tokens; negative-control-proven a shared-header ref IS flagged); #2 @@ -856,7 +856,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag (engine_core.h binds func_8005C324β†’memcpy via an asm label β†’ resolves at link) β€” now modeled. Negative control (inject a bare func_800d1bd8β†’DsMix in a shared header) FLAGS it then clears β€” detection intact. Wired fail-closed into `make report`; no src/build change (report-time gate). **SESSION-12 net: instr 68.1β†’68.6%, - distinct 48.0β†’49.2%, 5 commits (`commit:0609`, `commit:0610`, `commit:0611`, `commit:0612`, `commit:0613`) + this log.** + distinct 48.0β†’49.2%, 5 commits (`abbedcee8`, `97d86fae6`, `3509acf4b`, `49004f5b0`, `d7d2613ae`) + this log.** **NEXT (tool-hygiene tail):** A9d (DELETE census_conflict_callees after confirming derive_canonical_sigs is dead; wire reconcile_tu into bank_exemplar; overlay_src_split force_decl latch + jr_inventory ephemeral read); then A10 (full wall re-test β€” the def-side loose-typing wall, 159 arity conflicts, 780 h_seq rejections, the @@ -875,12 +875,12 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag bytes DIFFER β€” per-location variants β†’ `family_sweep` territory, not plain propagation) and **propagated the 14 genuine PURE fleet families Γ—~133** (2 stragglers all-or-nothing-dropped). R22 clean-fleet **136/136**; **instr-weighted 66.8β†’67.4%** (distinct flat β€” propagation adds MEMBERS); dedup **1826β†’1840/0**. Committed - `commit:0606`. + `2f38e31e7`. **Variant families β€” regenerated `family_hseq.json` (the 14 banks refreshed it), then `family_sweep --hseq --band all`** (the audit fixes A3–A8 + new exemplars unblocked it): staged 12,373 member drafts / 223 families, **BANKED 2,675 / 9,698 failed** (22% β€” the hard residual; easy bands long-harvested), skipped 3,319 pinned + 212 imm + 137 STRUCT. R22 clean-fleet **136/136**; **instr 67.4β†’68.1%, distinct 46.8β†’48.0% (+1,435 unique - fns** β€” templated members are distinct byte-variants, so this moved BOTH). Committed `commit:0607`. + fns** β€” templated members are distinct byte-variants, so this moved BOTH). Committed `6139800e6`. **Bucket X (897 absent-from-ov077) β€” DE-RISKED, then STOPPED (P9).** Gated ov_SC04_018's 35 X-drafts β†’ **0 banked, 35 near.** **THE FINDING (R14): `match_one closeness==0` (isolated, relocation-masked) β‰  whole-binary byte-exact.** In the real TU their fresh gate logs read `residual: 13/19/55… mismatch` β€” they were @@ -897,8 +897,8 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag longer pinned to the main `.c`, ran the 63 `ov_SC01_077` `closeness==0` backlog drafts (byte-exact bodies the ledger called unrecoverable) through the fixed gate **`--no-propagate`**: **33 banked, 30 near, 0 failed.** **Every one landed in a SPLIT TU** (7 of 8 files are `_jr_/_a/_after`; none in the main `.c`) β€” the diagnosis - proven by placement: not hard, **unreachable**. **A3f** committed the 33 (`commit:0603`), R22 clean-fleet - **136/136**, +1,531 ins, Γ—1 (fn-count 82.79β†’82.80%). Then **A3g** (`commit:0604`): the **3** of the 33 that are + proven by placement: not hard, **unreachable**. **A3f** committed the 33 (`8ffcf9646`), R22 clean-fleet + **136/136**, +1,531 ins, Γ—1 (fn-count 82.79β†’82.80%). Then **A3g** (`60e26e07f`): the **3** of the 33 that are fleet-wide, propagated Γ—134 β€” done RIGHT this time (targeted `--addr`, dry-run-sized to 3Γ—134 first, on a clean tree), after the earlier `--auto-from` disaster. **+399 members** (3Γ—133), instr-weighted **66.7β†’66.8%**, dedup **1823β†’1826/0 failed**, R22 clean-fleet **136/136**. The other 30 are overlay-unique (Γ—1, no @@ -1055,7 +1055,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag recovered β†’ reconciled). First sibling byte-identical first try; **full sweep 133/133 BANKED, 0 failures**; **R22 clean-fleet 136/136** (534 changed src files); dedup 1813/0; **instr-weighted 63.0β†’63.6%, distinct-code 39.1β†’40.5% (+256 unique fns / +79,957 ins)** β€” one core, ~0 agent tokens. The **R17 triage rule** (committed - `commit:0550` at Drew's ask) paid off on its first test: `conflicting types` = the compiler *refused to compile* = + `12631df74` at Drew's ask) paid off on its first test: `conflicting types` = the compiler *refused to compile* = a C front-end diagnostic = **our Python**; a gcc-source read would have taught nothing. Knowledge captured DURING the session (R30/R31): cookbook **Β§8d**, decision-log, SETUP tool row. **NEXT: `func_80178D40`** (890Γ—134, close=39, all in case 0x5C β€” cheap-Opus/permuter, no Fable5), then the R27 prompt for Fable5 on @@ -1093,7 +1093,7 @@ On approval β†’ `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag - **2026-07-12 (session 3, R22 parallelization β€” Drew asked "why so slow, profile+optimize"):** Profiled the clean-fleet R22 (`make clean` + extract-all + check-all). **Phase split: extract-all ~6m11s (the BIGGER phase, 136 serial `splat split` runs) + check-all ~2m58s (136 serial builds; most overlays ~1.3s, ov077 slow β€” maspsx on its 15K-line `.c`) = ~9 min.** Both phases were serial on a 32-core box (the old Makefile comment called cross-binary `-j` "racy"). **Verified the only shared write is the 4 generated `include/*.inc` macros at extract time (identical content); everything else is per-binary-disjoint and `include/` is read-only during a build β†’ parallel is safe.** Added `JOBS ?= 16` + **`make extract-all`** (seed `main` serial for the macros, then parallel-extract the rest) + **parallel `make check-all`** (`xargs -P$(JOBS)`), correctness-gated. **Result: `make clean && make extract-all && make check-all` = ~50s, 136/136 byte-identical β€” a ~10.5Γ— speedup (9mβ†’~50s).** Committed the Makefile change (own commit). This compounds across the endgame (R22 runs every commit). - **2026-07-12 (session 3, Β§8 Γ—134 AUTOMATION β€” func_8012ACE0 banked fleet-wide):** Built the jr-function Γ—134 harvest pipeline and proved it end-to-end. `tools/jtbl_carve.py` = per-overlay Β§8 carve generator (finding: the same fn is at the same vram across siblings but its jtbl is at a DIFFERENT address in each β€” ov_SC01_000 jtbl_801A331C / ov_SC02_000 jtbl_801E587C β€” so the carve is recomputed per sibling; rewrites the config data-tail subsegs + sets `_JTBL_INTERLEAVE`). `tools/jtbl_family_bank.py` = the sibling sweep driver (per sibling: revertβ†’carveβ†’extractβ†’remap_hseq+reconcileβ†’whole-binary gate; idempotent, revert-on-fail). **Propagation-cap fix:** `family_remap.extract_unit` now carries single-line `typedef`s (jr-function bodies define local `typedef struct{} Foo_;` that must template with the body, else the sibling sees `Foo undeclared` β€” additive, byte-gate-protected). **func_8012ACE0 family: 133/133 siblings BANKED, 0 failures; R22 clean-fleet 136/136 byte-identical.** Metrics: distinct-code 39.1% (50,698 unique fns), instr 63.0%. **Opportunity map (`has_mid_jr` families):** 237 total (5,805 members / 5.68M ins) β€” 46 small mid/tiny (771 members, mechanical, same pipeline) + 191 substantial = the Fable5 cores (Task 7, paused). Committed. **NEXT: (a) R22 profiling/parallelization (Drew asked β€” check-all builds 136 binaries serially on a 32-core box); (b) the other 45 small jr families.** - **2026-07-12 (session 3, Β§8 jtbl-rodata tooling β€” PoC PROVEN):** Built the overlay jtbl-rodata mechanism (cookbook Β§8a, the durable writeup). Findings: overlay jtbls form a contiguous `.rodata` island at the TAIL (between `.data` globals and a tiny remnant), not the EXE's central island. Mechanism (byte-identical, 2-step): (Step 1) carve a matched jr-function's jtbl out of `[data,tail]` into a dotted `[.rodata, ]` subseg (spimdisasm migrates it into the fn's `.s`) + `[data, tail2]`; parameterized **`tools/ld_interleave.py --section .`** (derives the symbol prefix; default `.main` = EXE byte-identical, backward-compat proven) places textβ†’data(pre)β†’rodataβ†’data(post)β†’bss β€” **build byte-identical with the fn still INCLUDE_ASM**. (Step 2) swap in the C body β†’ **byte-identical** β€” the C-emitted jtbl lands exact. Wired into `make extract` via `_JTBL_INTERLEAVE` in `config/overlays.mk` + a `$(strip)`-guarded `ifneq` branch (gotcha caught: a trailing `#comment` on the `:=` left whitespace β†’ the branch misfired on resident). **PoC target: `func_8012ACE0`** (25-ins single-jtbl jr-function, ov_SC01_077) β€” reconciled via `canon_sig_reconcile` (raw draft had `conflicting types`), banked **byte-identical `d19c9580`**, ov077 clean-rebuilds. Key P9 finding: **`func_80159C84`/`func_8015444C` (the 2 carried Fable5 bodies) are rtu_match FALSE-MATCHes** β€” their C jtbls are incomplete (52B vs 56B), so they never bank; rtu_match excludes the Β§8 rodata (confirms the checkpoint's "2 jtbl false-MATCH"). The maspsx "hang" scare was a truncated-experimental-file artifact β€” the real pipeline builds in ~1s. **NEXT: full R22 (in flight) β†’ commit the PoC + tooling; then the Γ—134 automation** (generate the per-overlay carve + template the reconciled body per sibling). -- **2026-07-12 (session 3, TINY-BAND mechanical harvest β€” Task 8 continuation):** Regenerated the h_seq manifest from the mid-band-banked src (fleet 77.2% fn / 60.9% instr / 35.2% distinct β€” matches `commit:0530`), then ran `family_sweep.py --hseq --band tiny`. Dry-run sized it: 180 tiny matched-exemplar families / 23,592 staged member-drafts across 267 (overlay,split) groups (skips 1,184 no-matched-unit / 148 unresolved-imm / 117 STRUCT / 39 pinned). Gated run: **17,975 member-matches BANKED / 5,617 gate-rejected** (h_seq-collision false-templates β€” the whole-binary byte-gate G3/P9 refused every one; ~76% bank rate; per-group ~17/21 main + ~110–129/150 `_after`). 266 overlay `.c` files touched. **R22 clean-fleet (`make clean` + extract-all-136 + check-all) β†’ 136/136, 0 failed.** dedup-check 1813 validated / 0 failed (registry untouched β€” hseq banks are per-overlay src, not Γ—134 registry). **Metrics: distinct-code 35.2β†’39.1% (50,571/84,996 unique fns), instr-weighted 60.9β†’62.9%.** The mechanical size-bands (substantial/mid/tiny) are now harvested; the remaining levers are the two harvest gaps (Β§8 jtbl-rodata, reconcile fn-ptr-extern). Committed (Drew pushes β€” R6). +- **2026-07-12 (session 3, TINY-BAND mechanical harvest β€” Task 8 continuation):** Regenerated the h_seq manifest from the mid-band-banked src (fleet 77.2% fn / 60.9% instr / 35.2% distinct β€” matches `3074ceb48`), then ran `family_sweep.py --hseq --band tiny`. Dry-run sized it: 180 tiny matched-exemplar families / 23,592 staged member-drafts across 267 (overlay,split) groups (skips 1,184 no-matched-unit / 148 unresolved-imm / 117 STRUCT / 39 pinned). Gated run: **17,975 member-matches BANKED / 5,617 gate-rejected** (h_seq-collision false-templates β€” the whole-binary byte-gate G3/P9 refused every one; ~76% bank rate; per-group ~17/21 main + ~110–129/150 `_after`). 266 overlay `.c` files touched. **R22 clean-fleet (`make clean` + extract-all-136 + check-all) β†’ 136/136, 0 failed.** dedup-check 1813 validated / 0 failed (registry untouched β€” hseq banks are per-overlay src, not Γ—134 registry). **Metrics: distinct-code 35.2β†’39.1% (50,571/84,996 unique fns), instr-weighted 60.9β†’62.9%.** The mechanical size-bands (substantial/mid/tiny) are now harvested; the remaining levers are the two harvest gaps (Β§8 jtbl-rodata, reconcile fn-ptr-extern). Committed (Drew pushes β€” R6). - **2026-07-12 (session 2b, Fable5 batch-1 whole-binary reality):** **P9 correction:** the 2 Fable5 "cracks" (`func_80159C84`/`func_8015444C`) rtu_match-MATCH but FAIL the whole-binary gate β€” both are jr-functions and rtu_match doesn't verify the Β§8 jtbl rodata (decision-log). Two harvest gaps found: **Β§8 jtbl-rodata** (blocks all jr cracks incl. the Fable5 cores) + **reconcile data-extern** (D_801891B8-class, blocks ~15/21 no-jtbl triage cracks). Real whole-binary result: **6 no-jtbl reconcile-clean cracks bank = 729 members** (463 committed + **266 this commit**, func_8015CD20/8015C128 Γ—133). `func_80176218` (no-jtbl) still cracking = the clean non-jtbl Fable5 test. R22 deferred until it releases asm/. - **2026-07-12 (session 2, resume after usage-limit interruption):** R22 confirmed the committed 463 reconcile-class banks **136/136**. Fable5 batch-1 results: **`func_80159C84` MATCHED** (337-ins 2-jtbl giant, pin-free; new cookbook idiom = gcc-2.7.2 postincrement pending-queue `(*(s32*)(p+0x238))++ >= K`); `func_8015444C` (reached 29-mismatch) + `func_80176218` (early) were cut off by the weekly limit β†’ **re-launched** (444C resumes from its 29-mismatch partial). The interrupted reconcile-raw-19 harvest (260/1565, partial src) was **reverted (R22 discipline)** and **re-running clean** folding in func_80159C84. All background; process on completion β†’ R22 β†’ commit. **Fable5 batch-1 = the last batch until Drew re-approves (Drew, 2026-07-12).** - **2026-07-11 (session 1, Task-8 validation slice β€” Drew-approved pre-window de-risk):** Ran reconcileβ†’gateβ†’template on the triage cracks. **Reconcileβ†’bank WORKS:** raw 0/23 (Β§41 wall) β†’ via `canon_sig_reconcile` v3.2 **4/15 banked into ov077** (`func_801506A4`/`8016A73C`/`80167540`/`80155800`, byte-identical). **Templating a reconciled body Γ—133 FAILS 0/4** β€” reconciled bodies are ov077-TU-specific (casts + collision-renames), need per-sibling re-reconcile (Β§41c). β†’ **Task-8 prerequisite: port the h_norm `--reconcile` M2 path into `hseq_sweep`.** Kept the 4 ov077 banks. decision-log 2026-07-11 (R31). Paused before building the wiring per Drew. diff --git a/phase-ends/logs/Phase27.md b/phase-ends/logs/Phase27.md index 3228697f54..32ecf71bf0 100644 --- a/phase-ends/logs/Phase27.md +++ b/phase-ends/logs/Phase27.md @@ -57,7 +57,7 @@ Phase 26 closed on an honest pivot β€” the mechanical/templating harvest is byte *(per-task crash-recovery trail β€” appended after each task, before its commit)* -- **2026-07-15 Β· Task 0 β€” Phase Start (gate 1).** Session Start Protocol run (PROJECT_CONTEXT + all 26 PhaseEnds + the roadmap + effort-map + decision-log tail). Plan-mode verification via 3 read-only agents against the repo (R14 at planning scale, per roadmap Β§0's own mandate). **Outcome: ~28 roadmap P27 specifics corrected** β€” 3 targets dropped, B4 dissolved into Task 4, 2 false-wall traps caught before they cost a verdict (the `0x8017BEBC` gte-macro carry; the `make report` fail-open), 4 invisible code-bearing overlays discovered. Drew approved the plan + 3 owner decisions (curated `.run/` preservation Β· full disc audit incl. sweep Β· Fable5 2-waves-with-distill). Harness task list built (R28). This file written (P3 step 4). *(committed `commit:0629`)* +- **2026-07-15 Β· Task 0 β€” Phase Start (gate 1).** Session Start Protocol run (PROJECT_CONTEXT + all 26 PhaseEnds + the roadmap + effort-map + decision-log tail). Plan-mode verification via 3 read-only agents against the repo (R14 at planning scale, per roadmap Β§0's own mandate). **Outcome: ~28 roadmap P27 specifics corrected** β€” 3 targets dropped, B4 dissolved into Task 4, 2 false-wall traps caught before they cost a verdict (the `0x8017BEBC` gte-macro carry; the `make report` fail-open), 4 invisible code-bearing overlays discovered. Drew approved the plan + 3 owner decisions (curated `.run/` preservation Β· full disc audit incl. sweep Β· Fable5 2-waves-with-distill). Harness task list built (R28). This file written (P3 step 4). *(committed `002f6d7c7`)* - **2026-07-15 Β· Task 3 β€” Curated `.run/` preservation.** **Pulled ahead of Task 1** (a 5-minute deviation from plan order, P3 autonomy): Task 1's Fable5 agents work *inside* `.run/`, and its Phase-25 seed recons were untracked β€” an agent overwriting `.run/giants/func_8014D820.opus.c` would have destroyed irreplaceable input. Five minutes out of a four-day window is a trivial price for removing that. **Execution refined the plan against the bytes (R33):** the plan said "track `.run/giants/*.opus.{c,md}` + `.run/fable_80178004/`", but those directories are **8.5M and 3.8M β€” almost entirely gcc RTL dump scratch** (`d_pf.i.combine/.sched/.lreg`, `dumps_v00..v07`) that `runorc.sh` + the `.gdb` scripts regenerate. The irreplaceable core is **~2.2 MB**: 49K of seed recon, ~110K of oracle harness + proof + draft ladder, and the two ledgers. Committed that; left the regenerable bulk ignored. Verified both directions (intended set stages; bulk still `IGNORED`). **Carried to Task 1:** the sprint's *outputs* must be added to the allowlist as they land β€” the same reasoning that motivated this task. diff --git a/phase-ends/logs/Phase28.md b/phase-ends/logs/Phase28.md index dbe24af5a3..da9903ee64 100644 --- a/phase-ends/logs/Phase28.md +++ b/phase-ends/logs/Phase28.md @@ -20,12 +20,12 @@ Verified this session against the bytes: `family_remap.symbol_map` emits only `func_`/`D_` (`family_remap.py:419-422`) β€” it **structurally cannot generate `jtbl_`**, so the remap no-ops (2 map entries for a 952-ins fn) and the gate books a BYTE failure. The file's own comment (`:403-418`) documents this identical bug class for the other two prefixes, calling the result *"indistinguishable from a genuine compiler wall."* **Third instance.** The fix (`tools/jtbl_family_bank.py`, the carve ladder) exists and was never pointed at this family. 2. **That family is the least representative in the population.** Only **3 of 163** matched-exemplar families carry `has_mid_jr` (**120 of 13,232** members). The roadmap generalized n=1, atypical, to the whole frontier. -3. **All three Phase-26 exhaustion probes predate the fix that made such a probe honest.** `_carry_macros` landed in **Phase-27 T5** (`commit:0637`); the probes (tiny-IMM 0/241, PURE 0/134, pinned 0/133) are Phase 26. Phase 27's decision-log calls its own post-fix re-probe *"a **fourth** phantom exhaustion proof"* β€” implicitly numbering those three as the first three, recognizing the mechanism that would have faked them, and **never re-running them**. +3. **All three Phase-26 exhaustion probes predate the fix that made such a probe honest.** `_carry_macros` landed in **Phase-27 T5** (`ee4b3a02e`); the probes (tiny-IMM 0/241, PURE 0/134, pinned 0/133) are Phase 26. Phase 27's decision-log calls its own post-fix re-probe *"a **fourth** phantom exhaustion proof"* β€” implicitly numbering those three as the first three, recognizing the mechanism that would have faked them, and **never re-running them**. 4. **The real population was never probed.** 163 matched-exemplar families / **13,232 unmatched members** / 656,379 templatable ins. Members: **PURE 9,955 (75%) Β· IMM 3,140 (24%) Β· STRUCT 137 (1.0%)**. Families: PURE 98 / IMM 35 / MIXED 30. **96 PURE non-jr families / 7,148 members (54%) never honestly probed.** The roadmap sizes its swing number on *register-drift* = **STRUCT = 1.0%** of the input. **The claim is "unmeasured", not "wrong"** (P9). The pre-fix bug produced CC1-FAIL; if those probes failed with DIFF it does not explain them β€” their failure classification was never recorded, which is itself the defect. R35: *a 0% from a broken tool and a 0% from a working one are the same number and opposite facts.* -Two further roadmap premises are stale (verified): the **parallel gate farm already exists** (`bulk_harvest.py`, 0.4s/fn @ 8 workers β‰ˆ 75Γ— serial; drafting, not the gate, was the documented bottleneck) β€” what is missing is the *same-binary* axis; and **both named grinder bugs are already fixed** (`commit:0327`, `commit:0200`) β€” the real defect is a 22-entry never-retry blacklist built from a broken gate. +Two further roadmap premises are stale (verified): the **parallel gate farm already exists** (`bulk_harvest.py`, 0.4s/fn @ 8 workers β‰ˆ 75Γ— serial; drafting, not the gate, was the documented bottleneck) β€” what is missing is the *same-binary* axis; and **both named grinder bugs are already fixed** (`e91859fb4`, `4927f38c4`) β€” the real defect is a 22-entry never-retry blacklist built from a broken gate. --- @@ -83,7 +83,7 @@ Whole-binary byte-gate = sole arbiter (G3/P9) Β· R22 clean-fleet per banked batc ## ⏭️ RESUME POINT (fresh session) β€” PhaseEnd at Max. All 11 tasks done; 1 sub-item carried. -**PhaseEnd_Phase28 is the only remaining work** (Tier-1 Max synthesis β€” write it in a fresh session with headroom; it re-reads the committed state cold, which is the discipline that caught tonight's stale-map/stale-.md traps). Everything it needs is in this file + the commits `commit:0644`..(T3b). **Carried to P29:** the burn-down velocity tracker (T7c β€” a genuine new tool, no history to track until built) and the T3b disambiguating probe (below). Ratify **R36** at PhaseEnd. +**PhaseEnd_Phase28 is the only remaining work** (Tier-1 Max synthesis β€” write it in a fresh session with headroom; it re-reads the committed state cold, which is the discipline that caught tonight's stale-map/stale-.md traps). Everything it needs is in this file + the commits `76db32455`..(T3b). **Carried to P29:** the burn-down velocity tracker (T7c β€” a genuine new tool, no history to track until built) and the T3b disambiguating probe (below). Ratify **R36** at PhaseEnd. **Roadmap delta to write:** B1/B2 numbers re-derived (B2 LIVES, 102/115); the "structural families β‰ˆ0%" doctrine has NO surviving post-fix evidence (calibration.md rewritten); the legacy h_seq swing number is **~3% as-tooled, ceiling unknown** (T3b β€” P29 must run the disambiguating probe first); binary count 138 overlays + main + resident = 140, disc-complete (the fixed disc_code_sweep confirms 0 further hidden type-4; 39 type-1 modules still pending load-address RE); R36 added. @@ -91,7 +91,7 @@ Whole-binary byte-gate = sole arbiter (G3/P9) Β· R22 clean-fleet per banked batc ### (historical) The pre-T7 resume note β€” T7 and T3b are now DONE (kept for the trail): -**9 of 11 tasks committed** (`commit:0644` T0 β†’ `commit:0654` T6). Gate items already met (swing number measured; resident resolved). Fleet **67.0% β†’ 68.9% instr / 47.8% β†’ 49.5% distinct**, 140/140 byte-identical throughout, 0 NON_MATCHING. **Two tasks remain; neither needs this session's accumulated context.** +**9 of 11 tasks committed** (`76db32455` T0 β†’ `1dbf5477d` T6). Gate items already met (swing number measured; resident resolved). Fleet **67.0% β†’ 68.9% instr / 47.8% β†’ 49.5% distinct**, 140/140 byte-identical throughout, 0 NON_MATCHING. **Two tasks remain; neither needs this session's accumulated context.** ### T7 β€” Coverage gate + the blind disc sweep + stale labels (EXPANDED, Drew-approved) Was "burn-down + stale labels"; **promoted** after the SC07 evidence showed 4 consumers silently ignoring onboarded binaries. Three parts: @@ -123,7 +123,7 @@ T3-A answered a *cheaper* question (the SC07 pool = h_exact + unwired). The road - **2026-07-15 β€” T1 βœ… `8/8 BANKED` β€” roadmap B2 LIVES; the β‰ˆ0% doctrine has no surviving evidence.** - **The probe:** `jtbl_family_bank.py func_8017BEBC ov_SC01_000 0x8017bebc --raw .run/phase26-cracks/func_8017BEBC.c` over 8 of 115 members (4 same-address + **4 cross-address**, exercising `to_addr`) β†’ **`{'BANKED': 8}`**. **R22: `make clean` + extract-all + `check-all` β†’ 140 passed, 0 failed of 140**, exit 0, zero FAIL lines. - **Root cause of the P27 0/8 β€” a missing build step, byte-verified:** `0x8017BEBC` is a **jr/switch** core. Β§47 banked its exemplar as *"lazy isolation β†’ carve (9-piece interleave) β†’ splice β†’ BYTE-IDENTICAL"* and called the fix *"Γ—N template-safe"*. `family_sweep.hseq_sweep` stages C and gates β€” **no carve step** β€” so gcc's jump table is never placed. Residual = **two words**: `classify_member` β†’ **PURE, ndiff=2** @ idx 343/345 = `lui/lw %hi/%lo(jtbl_801EC44C)`; `overlays.mk:112` carves it for the exemplar, `:134` does not for the member. **`jtbl_family_bank.py` exists to do exactly this and had never been run on this family.** - - **Three compounding failures made the doctrine:** (1) wrong tool for the class; (2) **n=1 on the least representative family** β€” `has_mid_jr` = **3 of 163** matched-exemplar families; (3) its corroborating Phase-26 probes (0/241, 0/134, 0/133) are **all pre-`_carry_macros`** (P27 T5 `commit:0637`) β€” P27's decision-log calls its own re-probe *"a **fourth** phantom exhaustion proof"*, naming the mechanism that would have faked the first three, and never re-ran them. + - **Three compounding failures made the doctrine:** (1) wrong tool for the class; (2) **n=1 on the least representative family** β€” `has_mid_jr` = **3 of 163** matched-exemplar families; (3) its corroborating Phase-26 probes (0/241, 0/134, 0/133) are **all pre-`_carry_macros`** (P27 T5 `ee4b3a02e`) β€” P27's decision-log calls its own re-probe *"a **fourth** phantom exhaustion proof"*, naming the mechanism that would have faked the first three, and never re-ran them. - **β†Ί TWO SELF-CORRECTIONS (R14), both mine:** (a) the plan's bullet *"add `jtbl_` to `symbol_map`"* was a **wrong fix from a true diagnosis** β€” a compiler-generated switch table is never named in C (`grep jtbl` on the exemplar β†’ nothing), so there is no token to substitute; the fix is **placement**, not substitution. T1 became a *run*, not a code change; **no `symbol_map` change was made**. (b) `func_8017BEBC.md`'s header still says *"close=2 of 952"* β€” the state BEFORE Β§47's slider; the `.c` was updated, the `.md` was not. Templating from the header's body would have produced zeros I'd have misread as a wall. - **Scope honesty (P9):** this refutes the **evidence** for β‰ˆ0%; it does **not** establish a general rate. n=1, and jr is the rarest class by construction (3/163). **T3 measures the rate.** - **Distilled in-session (R30):** cookbook **Β§53** (the carve law + the `--raw` rule + the `symbol_map`-jtbl trap + the "before a 0% retires a lever" test) Β· `calibration.md` (the decisive table **rewritten**; the β‰ˆ0% row marked an artifact) Β· `decision-log.md` (R31). @@ -140,7 +140,7 @@ T3-A answered a *cheaper* question (the SC07 pool = h_exact + unwired). The road - **Scope (P9, unchanged):** still **n=1 family**, and jr is the rarest class (3/163). This demonstrates the mechanism at family scale; it does **not** give a rate for the PURE/IMM mass (98% of the population). **T3 is the swing number.** - **2026-07-15 β€” T2 βœ… blacklist purged; the tool fix was already in, the audit's own premise was stale.** - - **R14 on the premise first (twice):** (1) the roadmap's two named grinder bugs are **already fixed** (`commit:0327`, `commit:0200`) β€” stale line. (2) `docs/tooling-audit.md:933-937` **downgraded its own finding** with three corrections: *the prescribed fix is a NO-OP* (deleting the scanner banks zero fns; harvest_verify was single-TU **by construction**, the defect was mislocalized), *nothing is being discarded now* (grinder STOPPED since 2026-07-02 β€” confirmed, `.run/auto/STOP`), and *the queue magnitude was inflated* (1252, not 1298). So T2's only real content was the **realized-and-persisted** artifact. + - **R14 on the premise first (twice):** (1) the roadmap's two named grinder bugs are **already fixed** (`e91859fb4`, `4927f38c4`) β€” stale line. (2) `docs/tooling-audit.md:933-937` **downgraded its own finding** with three corrections: *the prescribed fix is a NO-OP* (deleting the scanner banks zero fns; harvest_verify was single-TU **by construction**, the defect was mislocalized), *nothing is being discarded now* (grinder STOPPED since 2026-07-02 β€” confirmed, `.run/auto/STOP`), and *the queue magnitude was inflated* (1252, not 1298). So T2's only real content was the **realized-and-persisted** artifact. - **And the audit's snapshot is itself now stale (verified in code):** `harvest_verify` is **fully multi-TU** today β€” `_stubs` derives every stub across every TU from the `corpus` oracle (`:122`), `render()` splices "each draft into the TU that actually holds its stub", `_write()` writes multiple paths, un-stubbed drafts are "REPORTED, never silently dropped (R32)". **The gate that manufactured the blacklist no longer exists.** - **The proof the verdict was manufactured, not observed:** of the 22 entries β€” recorded as "permuter won, gate rejected β‡’ plumbing-bound, never re-permute" β€” **8 have since MATCHED anyway** (`func_80131D68/80149374/8014FE60/80150528/8016BBE0/80171C64/80174684/8017F290`); the other **14 are still stubs** and would have been skipped **forever** on a verdict from a gate that no longer exists. (The audit predicted 5 such; it is 8.) - **Done:** blacklist β†’ `[]` (poisoned copy kept at `.run/auto/grinder_blacklist.json.poisoned-pre-T2`); `grinder.py` carries the **rule** (R35): *a blacklist entry is a verdict from a specific gate and EXPIRES when that gate changes β€” purge and re-derive; never inherit.* No `harvest_verify` change was needed or made. @@ -178,11 +178,11 @@ T3-A answered a *cheaper* question (the SC07 pool = h_exact + unwired). The road - **Safety (explicit β€” it feeds the byte-gate):** `h_exact` = SHA1 of RAW instruction bytes β‡’ identical h_exact means identical bytes **including** `jal`/`lui`/`%lo` reloc immediates β‡’ same C, no remap. A bug can only FAIL TO BANK, never falsely bank. **Reuse (R33):** owns only the set computation + registry edit; the splice and gate are `harvest_verify` verbatim β†’ ~1 build/binary, not 1/function. - **Results:** 006 **1543/1614** Β· 007 **1544/1615** Β· 010 **1544/1614** Β· 011 **1543/1614** = **6,174/6,457 = 95.6%**, ~0 agent tokens. Stubs/overlay ~2,400 β†’ 831/984/898/825. **R22 140/140** after each stage; **dedup-check 1840 validated / 0 failed**, groups now read **"138 members [138 binaries]"** (was 134); **C1 coverage 227,211 β†’ 233,385 = exactly +6,174**. Fleet **instr 67.7 β†’ 68.0%** on the first overlay alone. - **The 283 non-banks: 271 PLUMBING + 12 DIFF, ZERO unexplained-at-scale.** Plumbing = the loose-typing conflict class (`conflicting types for D_800A5E60 / func_8012C750`) + the whale (`undefined reference` β€” its body is in `src/shared/func_80144B9C.h`, the -O0 header, so no `DEFINE` macro exists to expand). Existing tools cover both (`cast_call_sites` / `canon_sig_reconcile` / `reconcile_tu`). - - **❌ SELF-INFLICTED #1 β€” I DESTROYED the registry's documentation (H5), and every gate called it green.** My first cut wrote the registry with `yaml.safe_dump`, which round-tripped the whole file: **47 comment lines β†’ 0** (including the curated Phase-11 header explaining *why* the share is source-level) and **1,832 `vram: 0x80162FF4` β†’ `vram: 2148937716`** (PyYAML parses YAML-1.1 hex to int, dumps int as decimal). 25,948 lines rewritten. **It passed dedup-check 1840/0 AND check-all 140/140** β€” because `_addr()` accepts both forms: *the data was correct and the document was ruined*. Landed in `commit:0649`; **fixed forward** (R6 β€” no history rewrite): registry restored from `commit:0649~1`, memberships re-applied by a **surgical text edit** (`add_members_surgical`), verified **1545 insertions / 1545 deletions, 0 non-`binaries:` lines changed, 47 comments + 1908 hex fields intact**. *The lesson is the sharpest of the phase: every oracle we own measures BYTES, so a formatting-destructive write is invisible to all of them.* - - **❌ SELF-INFLICTED #2 β€” I mis-reported the DIFFs, twice (R14).** (a) I claimed ov_SC07_006's 71 non-banks were *"ALL PLUMBING, ZERO DIFF"* β€” from reading `head -6` of the classified file and generalizing. It has the same 4 DIFFs; the claim is **false and is in commit `commit:0649`**. (b) I then built a jr guard on the assumption those 4 were the Β§53 jr class *because ov_SC01_077 hosts them in `_jr_8017A4AC.c`* β€” **`has_mid_jr` is False for all four** (33-52 ins, no jump table). They merely live in a carved jr-**region** split (the carve sweeps in every fn in its address range). **Hosting file β‰  function class.** The guard is kept (preventive, Β§53-correct, currently skips 0) with its docstring corrected; **the 12 DIFFs (0.19%) are UNDIAGNOSED and logged** β€” correctly left as stubs by the gate. + - **❌ SELF-INFLICTED #1 β€” I DESTROYED the registry's documentation (H5), and every gate called it green.** My first cut wrote the registry with `yaml.safe_dump`, which round-tripped the whole file: **47 comment lines β†’ 0** (including the curated Phase-11 header explaining *why* the share is source-level) and **1,832 `vram: 0x80162FF4` β†’ `vram: 2148937716`** (PyYAML parses YAML-1.1 hex to int, dumps int as decimal). 25,948 lines rewritten. **It passed dedup-check 1840/0 AND check-all 140/140** β€” because `_addr()` accepts both forms: *the data was correct and the document was ruined*. Landed in `c0486fe5f`; **fixed forward** (R6 β€” no history rewrite): registry restored from `c0486fe5f~1`, memberships re-applied by a **surgical text edit** (`add_members_surgical`), verified **1545 insertions / 1545 deletions, 0 non-`binaries:` lines changed, 47 comments + 1908 hex fields intact**. *The lesson is the sharpest of the phase: every oracle we own measures BYTES, so a formatting-destructive write is invisible to all of them.* + - **❌ SELF-INFLICTED #2 β€” I mis-reported the DIFFs, twice (R14).** (a) I claimed ov_SC07_006's 71 non-banks were *"ALL PLUMBING, ZERO DIFF"* β€” from reading `head -6` of the classified file and generalizing. It has the same 4 DIFFs; the claim is **false and is in commit `c0486fe5f`**. (b) I then built a jr guard on the assumption those 4 were the Β§53 jr class *because ov_SC01_077 hosts them in `_jr_8017A4AC.c`* β€” **`has_mid_jr` is False for all four** (33-52 ins, no jump table). They merely live in a carved jr-**region** split (the carve sweeps in every fn in its address range). **Hosting file β‰  function class.** The guard is kept (preventive, Β§53-correct, currently skips 0) with its docstring corrected; **the 12 DIFFs (0.19%) are UNDIAGNOSED and logged** β€” correctly left as stubs by the gate. - **2026-07-16 β€” T5 βœ… resident 21 β†’ 14 stubs (7 banked, 90.34%). NOT 100% β€” honest dossier instead.** - - **Instrument first (R35):** `progress.py` `#if 0`-blindness + the `len()`-sum fixed BEFORE the flag-plant (`commit:0651`) β€” resident 123/146 β†’ 122/145; fleet provably unaffected. **Both oracles then agreed exactly at 144** (corpus 21+123 Β· sig_image 144, empty set-difference both ways). + - **Instrument first (R35):** `progress.py` `#if 0`-blindness + the `len()`-sum fixed BEFORE the flag-plant (`2c4e2344d`) β€” resident 123/146 β†’ 122/145; fleet provably unaffected. **Both oracles then agreed exactly at 144** (corpus 21+123 Β· sig_image 144, empty set-difference both ways). - **Prefetch:** MCP stopped (R23, `Save succeeded`) β†’ one headless `DecompileFunctions` run β†’ **21 ok / 0 fail**; MCP restarted. The wave needed **no live MCP** (it drafts from the cache β€” the point of the prefetch). - **Ultracode wave** (Drew toggled, R27 β€” *the toggle, not the verbal yes*): 16 isolated drafters, 0 errors, ~2.4M tokens, drafts-only into `.run/drafts-t5/` (never `src/`). **The gate arbitrated: 7/16 banked.** R22 `make clean` + extract-all + `check-all` β†’ **140/140** (the first R22 was **killed by a terminal crash and RE-RUN**, not assumed). - **Result:** REAL 122 β†’ **129**, stubs **21 β†’ 14**, byte-ident **124/145 (85.52%) β†’ 131/145 (90.34%)**; fleet instr **9,017,152 β†’ 9,017,606** (+454). 14 agrees 3 ways (source grep Β· splat stub `.s` count Β· progress.py). diff --git a/phase-ends/logs/Phase29.md b/phase-ends/logs/Phase29.md index 2b2ea8bd89..eec2d51a36 100644 --- a/phase-ends/logs/Phase29.md +++ b/phase-ends/logs/Phase29.md @@ -291,7 +291,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 `.rodata` 0xE0 / Al=4 / table 2 TIGHT at 0xCC β€” the filter ran in the real pipeline. NEXT: Step 5 β€” Γ—137 family sweep (`jtbl_family_bank --raw`). - **βœ… 2026-07-18 β€” func_80131340 family COMPLETE Γ—138 (the Β§8e mechanism's Γ—N proof): 137/137 siblings - BANKED, 0 failed.** 3 bounded chunks (50+50+37, committed per chunk `commit:0680`/`commit:0681`/`commit:0682`), + BANKED, 0 failed.** 3 bounded chunks (50+50+37, committed per chunk `387e224ea`/`224bf44ca`/`9b463f2f9`), every sibling whole-binary gated, per-sibling Β§8e carve+`JTBL_PADS` auto-derived from each overlay's own island addresses. **R22 clean-fleet: 140/140 byte-identical; tools-health green; dedup 1846/0.** Fleet **72.1β†’72.5% instr Β· 54.0β†’55.0% distinct-code Β· 86.61% fn-count** (~+58.5k ins from one family β€” @@ -311,7 +311,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 zero-word spec rule + `tables=` persistence + `--like` role-transfer (built after the F350 pre-Β§8e merged-double archaeology); the SC07 `_o2b` composition class (fail-loud, 4 overlays); commit-per-chunk sweeps with auto-commit chaining. Tooling: `jtbl_carve` span-structure engine + `jtbl_rodata_pads` filter + - `jtbl_family_bank --like`/stub-uniqueness (commits `commit:0678`..`commit:0696`). + `jtbl_family_bank --like`/stub-uniqueness (commits `5e78dccf0`..`ece9c6ee8`). **Burn-down residuals (named):** 4Γ— SC07 59C84-members (o2b span composition) Β· 137Γ— C414 members (-O0 rollout dependency) Β· the -O0 cluster rollout itself (Arm-A splat wall). Ghidra-C/Task-5, permuter backlog/Task-6-tail, Task-7 ROI-close remain the open phase items. @@ -337,7 +337,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 - **βœ… 2026-07-16 β€” Task 6 tiny-IMM mega-pools CRACKED (+4,801 members).** `0x80131eec` (2887) + `0x80130d0c` (2679) went from **1/4966 (0.0%)** to **pool1 2331/2470 (94%) + pool2 2470/2496 (99%) = 4,801 banked**. Root cause (byte-proven after 3 masked-metric mis-reads β€” R14/R35, see decision-log): - NOT a symbol-definition gap (my `commit:0665` scout was WRONG) β€” it's a **def-signature conflict**: + NOT a symbol-definition gap (my `53ee97494` scout was WRONG) β€” it's a **def-signature conflict**: `engine_core.h` forward-declares the member (`extern void func_8015FAAC(s32 *a0)`, a shared fn calls it) while `family_remap` copies the EXEMPLAR's sig (`void *a0`) β†’ `conflicting types` β†’ the member TU never compiles (invisible to standalone diff_regions/match_one AND to --reconcile). FIX: **new @@ -382,7 +382,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > Fleet **72.1% instr Β· 54.0% distinct-code Β· 86.57% fn-count** (session opened 71.4/53.3/86.42 β†’ **+0.7pp instr**). > **This session banked ~94k ins across 4 fns Γ—~137 overlays:** func_8013FAF8 (312) Γ—137 + func_8014F4C0 (141) Γ—134 > (the 2 NON-jtbl giants, fully done) + func_8014E284 (108) Γ—138 + func_80137DD4 (129) Γ—138 (the 2-core type-lift). -> Commits `commit:0673`, `commit:0674`, `commit:0675` + the type-lift commit (Drew pushes). Cookbook **Β§56/Β§56b** added. +> Commits `def16c8b1`, `c7fedced1`, `c5e8af5cf` + the type-lift commit (Drew pushes). Cookbook **Β§56/Β§56b** added. > **THE TEED-UP NEXT TASK (Drew-directed): the jtbl 8-align tooling fix** β€” unblocks the 4 remaining giants > (`func_80131340`/`func_80159C84`/`func_8013C414`/`func_8013F350`), ceiling β‰ˆ **+1 to +1.5pp instr** (biggest lever > left). Root cause HALF-PINNED (do not re-derive): cc1 AND maspsx both emit the jtbl `.align 2` (correct) β€” the @@ -429,7 +429,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 (the Β§53/Β§54 wrong-build-step trap, Task-1's "~3%" artifact). Drafts + exact blockers + a suggested cheapest-first bank order β†’ **`.run/giants/p29t3_README.md`** (12 drafts, tracked; ~2.6M agent tokens to reproduce β€” do NOT re-draft, bank them). - **(b) The Β§53 `has_mid_jr` INTERLOCK β€” BUILT + negative-control-proven** (`commit:0670`): `family_sweep` + **(b) The Β§53 `has_mid_jr` INTERLOCK β€” BUILT + negative-control-proven** (`c91611529`): `family_sweep` now refuses to sweep a `has_mid_jr` family carve-less, names `jtbl_family_bank`, and states that a 0% from that path is a TOOL ARTIFACT not a wall. Uses the manifest's `has_mid_jr` (R33 β€” one oracle, shared with `dedup_extend`). Verified: 11 jr families / 163 slots of 1418 sweepable; `--band substantial` skips @@ -480,7 +480,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 in the stale map β†’ family_sweep finds 0; --reconcile-raw mishandles per-overlay externs (0/137). FIX: bank Γ—1 β†’ `make sig-overlays` + `family_hseq.py` regen (β†’matched-ov077) β†’ standard `family_sweep --hseq --only` (137/137). **BATCH R22: check-all 140/140 byte-identical; tools-health green; dedup 1846/0.** Fleet **73.4β†’73.7% instr Β· - 56.9β†’57.5% distinct Β· 86.73% fn-count**. Commit `commit:0699`. + 56.9β†’57.5% distinct Β· 86.73% fn-count**. Commit `33ed9a909`. - **βœ… 2026-07-18 β€” CRACK-WAVE 2 + FABLE AGENTS + TYPE-LIFT RECOVERY (Ultracodeβ†’xHigh). Fleet 73.4β†’74.6% instr.** **Two Opus crack-waves (15 fresh-core agents) + 3 Fable5 agents (gcc-2.7.2 source-readers) + a permuter track.** @@ -495,7 +495,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 8015ea3c 134 / 8015d738 134 / 8015f448 138 / 8014ffdc 135) + type-lift recovery (8012956c **137/137**, 801670e4 partial 4). **R22 clean-fleet 140/140 byte-identical; tools-health green; dedup 1846/0; 0 NON_MATCHING.** Fleet **74.6% instr Β· 59.4% distinct-code Β· 86.92% fn-count** (crack-wave arc start 73.4/56.9/86.61; - **session-total 72.1β†’74.6 = +2.5pp instr**). Commits `commit:0699`..`commit:0708`. + **session-total 72.1β†’74.6 = +2.5pp instr**). Commits `33ed9a909`..`f281c6cf4`. **NEW LESSONS (R30):** (a) crack-wave sweep needs a **map-regen** step (freshly-cracked exemplar is draft-ov077 β†’ family_sweep finds 0; bank Γ—1 β†’ sig-overlays + family_hseq.py β†’ matched-ov077 β†’ standard sweep). (b) The reconcile ladder (cast_call_sitesβ†’reconcile_tuβ†’scope_data_externs) handles most, but recurring manual fixups: @@ -580,12 +580,12 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-3 CHECKPOINT (2026-07-18) β€” safe to open a FRESH session here.** Tree clean (only db.*.gbf R23 > churn), **140/140 byte-identical**, tools-health OK (dedup 1846/0, C1 234205/234205), 0 NON_MATCHING (G4). -> Main `commit:0712`. Fleet **75.1% instr Β· 60.6% distinct-code Β· 87.00% fn-count** (session opened 74.6/59.4/86.92). +> Main `65c93ea03`. Fleet **75.1% instr Β· 60.6% distinct-code Β· 87.00% fn-count** (session opened 74.6/59.4/86.92). > **This session delivered the DECL-NORMALIZE ENHANCEMENT (Drew's teed-up BUILD SPEC) + banked both its validation > families:** `func_801670E4` 4β†’137/137 (+133, the new Β§17a-1 self-decl pass, `tools/normalize_self_decls.py` + > `family_sweep --normalize-self-decls`, cookbook Β§57) and `func_8016CBC0` 1β†’138/138 (+137, a 6-typedef > engine_types.h lift β€” the R14 survey proved it was a DIFFERENT blocker than it looked). **+270 members, +0.5pp -> instr**, commits `commit:0711` + `commit:0712` (Drew pushes). **NEXT levers (BUILD SPEC residue):** `func_8013D53C` +> instr**, commits `ad11c491a` + `65c93ea03` (Drew pushes). **NEXT levers (BUILD SPEC residue):** `func_8013D53C` > (the DISTINCT void*-def-sig + per-sibling caller-thread class β€” NOT the self-decl pass), the SC07 span-composition > tails (Β§8e-2), and the permuter/Fable close-1..N backlog (Task 6). The decl-normalize pass is now a standing > `family_sweep` stage for any future family whose members' own callers declare F divergently. @@ -595,7 +595,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 β†’ cookbook **Β§57a**. **(1) The substantial-family frontier is NOT broadly mechanical (R14/R35):** 60 families / 2,169 stubbed members STAGE but only **137 bank** with --fix-def-sig β€” staging β‰  banking; I over-projected ~1,500 from the staged count instead of gate-probing a sample (the phase's own invariant, violated). Banked func_801502EC - Γ—134 + func_80131B14 Γ—3 (commit `commit:0714`). **(2) NSD is SURGICAL-ONLY:** broad `--normalize-self-decls` (esp. + Γ—134 + func_80131B14 Γ—3 (commit `6b0bb5440`). **(2) NSD is SURGICAL-ONLY:** broad `--normalize-self-decls` (esp. combined with `--fix-def-sig`, which changes NSD's reference sig) makes byte-neutral-but-wrong TU edits that poison whole (overlay,split) groups β€” the backstop reverts them (0 false banks) but banked **7** / reverted **752**. `--fix-def-sig` edits DRAFTS (bisect-safe per member) so it IS broad-safe. Law: NSD per-family, --fix-def-sig broad. @@ -607,7 +607,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 fully template β†’ permuter/Fable fuel). Reverted the 123 bankless NSD edits (byte-neutral but churn on matched code β€” Β§57a NB). R22 clean-fleet **140/140**; tools-health OK (dedup 1846/0, C1 234205/234205); 0 NON_MATCHING (G4). Fleet **75.2% instr Β· 60.6% distinct Β· 87.04% fn-count**. **SESSION-TOTAL from 74.6/59.4/86.92: +0.6pp instr, - +1.2pp distinct, ~+421 members** across 4 commits (commit:0711, commit:0712, commit:0714, + this). + +1.2pp distinct, ~+421 members** across 4 commits (ad11c491a, 65c93ea03, 6b0bb5440, + this). **REFRAME (the session's strategic finding):** the family campaign is **per-family cracking, not one broad sweep** β€” each substantial family carries its own blocker (self-decl / type-lift / def-sig+caller / genuine codegen), and the mechanical fraction is small (~137 broad + 14 D53C). Remaining Task-4/6 levers: the permuter backlog (551 close-1..4 @@ -637,9 +637,9 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 - **βœ… 2026-07-18 β€” SESSION-4 FLEET-MULTIPLIER PASS (Ultracode auto, resumed): +275 members / 2 commits.** Propagated the 6-core bank fleet-wide: **`func_80150170` Γ—138** (`dedup_propagate --addr`, hexR=138 group - registered β€” commit `commit:0717`; first run SIGTERM'd mid-gate at the 2-min timeout β†’ reverted the half-gated + registered β€” commit `2605f206d`; first run SIGTERM'd mid-gate at the 2-min timeout β†’ reverted the half-gated state, re-ran clean fail-closed) + **`func_80164E40` Γ—137** (`family_sweep --hseq --only --normalize-self-decls`; - the fleet-wide engine_core voidβ†’s32 narrow made it clean β€” commit `commit:0718`). Map-regen (sig-overlays + + the fleet-wide engine_core voidβ†’s32 narrow made it clean β€” commit `30812b85e`). Map-regen (sig-overlays + family_hseq) done first (crack-wave-map-regen rule). **R22 clean-fleet checkpoint: 140/140 byte-identical, extract-all 139/0.** Fleet ~75.3% instr (`make report` will confirm; the Γ—137/Γ—138 propagations register now). **3 sweep-residuals (delegated):** `func_80165240` (63, byte-DIFF/reconcile β€” compiles standalone), @@ -649,26 +649,26 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 - **βœ… 2026-07-19 β€” SESSION-4 RESIDUALS BANKED + VERIFIED (delegated agent): +412 more members, 3 commits.** A focused agent ROI-triaged the 3 residual classes (byte-gate arbitrated): **`func_80165240` 137/137** - (`commit:0720` β€” the sweep dropped the exemplar's LOCAL `struct W4` type β†’ per-member memcpy DIFF; carried the - decl into each member draft, Β§59#1), **`func_8016D1D8`+`func_8016D688` 274/274** (`commit:0721` β€” my "fixed + (`43a6ded6b` β€” the sweep dropped the exemplar's LOCAL `struct W4` type β†’ per-member memcpy DIFF; carried the + decl into each member draft, Β§59#1), **`func_8016D1D8`+`func_8016D688` 274/274** (`af6e70afe` β€” my "fixed 0x801D9C20 data" premise was WRONG: h_seq data is per-overlay RELOCATED, no fleet-fixed address; derived each overlay's base `= symbol_map[offset]βˆ’offset`, declared `D_` per sibling + re-extract, Β§59#2), and - **`func_8013C0F8` Γ—1** (`commit:0722` β€” jtbl_801D82FC carve, def-sig reconcile). **BLOCKED (genuine tooling + **`func_8013C0F8` Γ—1** (`768676ac0` β€” jtbl_801D82FC carve, def-sig reconcile). **BLOCKED (genuine tooling walls, Β§59#3):** `func_801549F8` Γ—137 (jtbl Β§8c isolation β€” `trim` can't partition the Phase-17 canonical-sig layer TU) + `func_8013BD74` Γ—1 (Β§8e-2 table-count drift). **R22 clean-fleet: 140/140 byte-identical, extract-all 139/0; tools-health OK (dedup 1847/0, C1 234343/234343); 0 NON_MATCHING linked (G4).** **SESSION-4 TOTAL (from the 74.6β†’ session open, this conversation): fleet 75.2β†’75.7% instr Β· 60.6β†’61.3% distinct Β· 87.04β†’87.24% fn-count** β€” 6 cores cracked + propagated β‰ˆ **687 member-banks** across - `commit:0716`/`commit:0717`/`commit:0718`/`commit:0720`/`commit:0721`/`commit:0722` (+ `commit:0719` checkpoint). Cookbook Β§58/Β§59 + `c9e12a079`/`2605f206d`/`30812b85e`/`43a6ded6b`/`af6e70afe`/`768676ac0` (+ `08588968a` checkpoint). Cookbook Β§58/Β§59 captured (R30). 2 near cores preserved (`func_8014D820` close-11, `func_8012E364` close-22 β€” permuter fuel). NEXT: next Ultracode crack-wave over a freshly-regenerated frontier + the permuter backlog (Task 7). > **πŸ›‘ SESSION-4 CHECKPOINT (2026-07-19) β€” safe to open a FRESH session here.** Tree clean (only db.*.gbf R23 > churn + 2 preserved near-drafts + progress.fleet.md digest), **140/140 byte-identical**, tools-health OK -> (dedup 1847/0, C1 234343/234343), 0 NON_MATCHING (G4). Main `commit:0734`. +> (dedup 1847/0, C1 234343/234343), 0 NON_MATCHING (G4). Main `dd184d3ee`. > **Fleet 76.3% instr Β· 62.8% distinct-code Β· 87.47% fn-count** (session opened 75.2/60.6/87.04 β†’ **+1.1pp instr, > +2.2pp distinct** β€” ~1,500 member-banks across TWO crack-waves). -- **βœ… 2026-07-19 β€” CRACK-WAVE 2 (absent-from-ov077 pool) + propagation: +819 members, HEAD `commit:0734`.** +- **βœ… 2026-07-19 β€” CRACK-WAVE 2 (absent-from-ov077 pool) + propagation: +819 members, HEAD `dd184d3ee`.** Broad substantial sweep first = **0 banked / 858 failed** (the mechanical frontier is DRAINED β€” Β§57a confirmed). So cracked the FRESH absent-from-ov077 substantial pool instead: 9 families drafted from **ov_SC01_000** (cached Ghidra-C, NON-MCP) β†’ **7 MATCH / 2 near**. Banked Γ—1 (4 clean via the Β§58 ladder, 2 residuals via Β§18 cast-at-use @@ -690,7 +690,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 func_801549F8 Γ—137 + func_8013BD74). This is the ROI-floor signal for non-MCP cracking (Task 7). - **βœ… 2026-07-20 β€” CRACK-WAVE 3 (16 fresh cached ov077 substantial families) + propagation: ~1,378 instances, - 23 commits (`commit:0736..commit:0759`).** The h_seq frontier revealed ~95 cached substantial families still crackable + 23 commits (`6a367f424..5dc984f94`).** The h_seq frontier revealed ~95 cached substantial families still crackable NON-MCP (the h_norm view had undercounted); 16 fresh (non-attempted) cracked β†’ **12 MATCH / 4 near** (100% on the first 8; wave hit + recovered from a session-limit mid-run via resume). Banked Γ—1 + propagated (delegated agent, Β§58/Β§59 ladder, K&R self-decl reconcile NOT NSD per Β§57a): **9 cores fully 138/138** (func_80160534/8016C998/ @@ -715,7 +715,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 cached fuel), 10 (permuter backlog), 11 (burn-down tracker). - **βœ… 2026-07-20 β€” CRACK-WAVE 4 (cached-fuel tail) + the crack-track FLOOR.** 10 fresh cached targets from - ov_SC01_000 β†’ **10/10 MATCH**, but the tail is thin: **6 -O2 cores banked Γ—1** (`commit:0766`, reconciled: func_80142C84 + ov_SC01_000 β†’ **10/10 MATCH**, but the tail is thin: **6 -O2 cores banked Γ—1** (`b6549a5f6`, reconciled: func_80142C84 cast + func_80143994 s32-cast; R22 clean-fleet 140/140), the 6 -O2 **Γ—138 propagation banked 0** (per-family Β§59 reconcile bottleneck β€” deferred to Task-14 gate_stage-ladder enrichment), and the **4 -O0 cores didn't bank** (the ov_SC01_000 -O0-build wall; drafts in .run/drafts_wave4/). **The non-MCP cached substantial crack-fuel is now @@ -728,7 +728,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 reverted clean. The grinder needs (a) a fast/clean STOP between functions, (b) durable winner-C saving BEFORE gate_stage banks, (c) clear commit boundaries β€” folded into Tasks 12/14. -- **βœ… 2026-07-20 β€” TASK 12 (permuter-autopsy prerequisite) DONE + committed commit:0768.** Structured failure +- **βœ… 2026-07-20 β€” TASK 12 (permuter-autopsy prerequisite) DONE + committed eec96f76a.** Structured failure telemetry now FLOWS: `masked_diff.structured_diff()` (per-instruction masked residual) + `match_one --json` ({status,closeness,nins,residual}) + `backlog` fields `residual`/`passes_tried` + `gate_stage` logs the residual on every near/fail (verified end-to-end: a near-miss's [idx,mine,tgt] residual lands in @@ -813,7 +813,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 `func_800D0214`@resident). **Conversion 21/77 = 27%**, vs the β‰₯10% bar Drew and I set as the go/no-go. **The classifier's pre-run verdicts held exactly** β€” every bank came from the admitted bucket, by class: REGALLOC-PERM 7 Β· IMM-VALUE 6 Β· SCHEDULE-REORDER 6 Β· DELAY-SLOT 2. All four permuter classes converted. - Landed as **20 gate auto-commits** `commit:0774`..`commit:0793` (generic `grinder gate β€” +N fns` messages; the + Landed as **20 gate auto-commits** `dfb17fc49`..`e3e4d329a` (generic `grinder gate β€” +N fns` messages; the per-commit "+N" counts are bank EVENTS β€” a shared fn re-banks in every binary that stubs it, so the running "42" is events, **21** is distinct, taken from the SOURCE not the report). **R22 clean-fleet: 140 passed, 0 failed of 140**; tools-health OK (dedup 1847/0, C1 234343/234343). @@ -909,7 +909,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 catch. Reverted; **clean-fleet re-verified 140/140**, tools-health OK (dedup 1848/0). Also cleared my ladder scratch dirs, which were tripping `audit-cdecl` (it scans draft dirs; agent drafts carry `\`-continuations it can't parse β€” NOT a corpus defect). - **All 12 wave cracks preserved at `.run/giants/t5wave_*`.** Commits `commit:0800`, `commit:0801`. + **All 12 wave cracks preserved at `.run/giants/t5wave_*`.** Commits `96d1324ac`, `aa1b8b3c1`. - **βœ… 2026-07-21 β€” jr_inventory ownership INVESTIGATED (the tool was RIGHT) + the CLEAN-REBUILD BLOCKER that stops all jtbl banking.** Drew asked to fix `jr_inventory` and bank the 9. Root-caused @@ -934,33 +934,33 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 **MEASURED (do not re-derive):** of 11 preserved cracks exactly **ONE** (`func_80135A4C`) reaches byte-identical through the carve path; the other 4 table-bearing ones fail **one-at-a-time too**, on PLUMBING (Β§57 self-decl et al), not the carve. **Tree reverted; clean-fleet 140/140; nothing banked.** - All 12 cracks preserved at `.run/giants/t5wave_*`. Commit `commit:0803`. + All 12 cracks preserved at `.run/giants/t5wave_*`. Commit `41d65af73`. > **πŸ›‘ SESSION-6 CHECKPOINT (2026-07-21, superseded by SESSION-7 below) β€” Task 13A/13B.** > The classifier + the targeting finding: of the **972** grinder-admissible records only **75 (7.7%)** > are permuter-shaped, so ~92% of its CPU was unreachable work. Directed run: 24 wins β†’ **21 banked** > (27%); `func_80141B90` propagated **Γ—138**. Plateau autopsy: **ZERO missing-transforms** β€” the > plateaus are wrong drafts, so the win was NARROWING admission (permuter bucket 389β†’84), not widening -> the mutation set. Commits `commit:0771`, `commit:0772`, `commit:0796`, `commit:0794`. +> the mutation set. Commits `b3ab5c225`, `b8ee9fa9d`, `835c45905`, `5c894c1e6`. > **πŸ›‘ SESSION-7 CHECKPOINT (2026-07-22) β€” THE CURRENT ONE; safe to open a FRESH session here.** > Tree clean (only R23 `db.*.gbf` churn + preserved drafts). **R22 clean-fleet 140/140 byte-identical**; -> `make tools-health` OK (dedup 1848/0, C1 234481/234481); 0 NON_MATCHING (G4). HEAD `commit:0804`. +> `make tools-health` OK (dedup 1848/0, C1 234481/234481); 0 NON_MATCHING (G4). HEAD `0cf6356ff`. > **Fleet 78.0% instr Β· 66.5% distinct-code Β· 87.9% fn-count** (flat this session β€” see "banked: 0"). > **Drew pushes** all commits (R6/R20). > > **THIS SESSION (after 13A/13B): Task-14 stage 1, Task 5, a 12-agent wave, and the jtbl campaign.** -> * **Task 14 stage 1 β€” the ARITY pre-pass** (`commit:0797`): diagnosed from REAL cc1 stderr (the gate's +> * **Task 14 stage 1 β€” the ARITY pre-pass** (`1074f2f20`): diagnosed from REAL cc1 stderr (the gate's > own `memcpy` label is the Β§58 red-herring, 10/11 identical). Banks **2 of 7** vs a **1/12** > baseline. **NEW HARD CONSTRAINT (Β§61):** any ladder stage mutating SHARED state must undo by > SNAPSHOT-RESTORE, never an inverse transform, and be verified FLEET-WIDE β€” it broke 138/140 once. -> * **Task 5 β€” Ghidra-C prefetch** (`commit:0798`): `ov_SC06_018` imported, **101 stubs decompiled** +> * **Task 5 β€” Ghidra-C prefetch** (`be43af8b5`): `ov_SC06_018` imported, **101 stubs decompiled** > (cache 882β†’983). Scoping corrected my own claim: the substantial mass is **1,398 h_seq families**; > **340 (7.72pp) are already-attempted/walled**, **1,058 (5.40pp) fresh**, and the 877 needing a > prefetch have **median 1 member** (overlay-unique) β†’ prefetch is PER-OVERLAY, one import β‰ˆ 1.59pp. -> * **The wave** (`commit:0799`): 12 agents, ~2M tokens β†’ **11 MATCH / 1 near**, incl. all 3 giants +> * **The wave** (`a7f3fce4c`): 12 agents, ~2M tokens β†’ **11 MATCH / 1 near**, incl. all 3 giants > (710/673/478). **Gate banked ZERO.** All 12 preserved at `.run/giants/t5wave_*` β€” **DO NOT re-draft.** -> * **jtbl campaign** (`commit:0800`, `commit:0801`, `commit:0803`): the carve-must-follow-splice law +> * **jtbl campaign** (`96d1324ac`, `aa1b8b3c1`, `41d65af73`): the carve-must-follow-splice law > implemented in `harvest_verify` (temporary splice β†’ carve β†’ isolate β†’ un-splice β†’ re-extract β†’ > re-derive stub map). `jr_inventory`'s ownership assertion was **RIGHT** β€” it caught MY stranded > carve. Fixed per-function snapshot-restore; found per-function undo is unsound in a batch @@ -1004,7 +1004,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 on the tree left by the *batch* `_jtbl_prep` (`6 table-bearing β†’ 1 carved, 4 isolate-FAILED, 1 stale-asm carve fail`), i.e. five failed preps' residue of stranded carves + half-applied isolations. The per-function snapshot-restore that removes exactly that residue landed **after** those runs, in - `commit:0803` β€” the same commit that named the blocker. + `41d65af73` β€” the same commit that named the blocker. **THE LESSON (R35 turned on ourselves, β†’ decision-log):** "twice, identically" was not a replication β€” it was two reads of the SAME contaminated state, which is one observation. A replication must RE-CREATE the state, not re-run the check. Standing guard, one command: **before writing a fault down as a property @@ -1014,7 +1014,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 **Faults 1-2 of Β§61c stand** (a stranded carve poisons the overlay; per-function undo is unsound in a batch because isolation repartitions shared source) β†’ the standing constraint is **one jtbl draft per `harvest_verify` invocation** until the undo is region-aware. `jr_inventory`'s 1:1 ownership assertion - was RIGHT (already settled in `commit:0804`) and needs no change. + was RIGHT (already settled in `0cf6356ff`) and needs no change. **BANKED:** `func_80135A4C` Γ—1 in ov_SC06_018 (isolated into the new `ov_SC06_018_jr_80135A4C` code subseg + its own `.rodata` carve; single-table, so no `JTBL_PADS` var; `tail3..tail18` renumbered). **R22 clean-fleet 140/140 byte-identical Γ—2; `make tools-health` OK** (corpus 0 PHANTOM/0 TRUNCATED, @@ -1086,7 +1086,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-8 CHECKPOINT (2026-07-22) β€” supersedes SESSION-7; safe to open a FRESH session here.** > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical** (run 3Γ— this session); > `make tools-health` OK (dedup 1848/0, C1 234481/234481, cdecl 53189/53189, audit-binaries 140 citizens); -> 0 NON_MATCHING (G4). HEAD `commit:0812`. **Drew pushes** all commits (R6/R20). +> 0 NON_MATCHING (G4). HEAD `02b16fa7a`. **Drew pushes** all commits (R6/R20). > **Fleet 78.2% instr Β· 67.0% distinct-code Β· 87.98% fn-count** (opened 78.0/66.5/87.9). > **Banked: +138 function-instances = +25,275 ins** β€” exactly 137Γ—181 (the `func_80135A4C` family) + 478 > (the giant `func_8018F694`). Predicted and measured agree to the instruction. @@ -1394,12 +1394,12 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 byte-neutral Β§17a-1 callee-cast reconcile of func_8012F14C to the TU's 1-arg convention) β†’ swept **70/82 (85%)** (+3 gate-fail, +8 remap-refused unresolved-immediates). **β‡’ across 3 thesis families the sweep rate is 100% / 0% / 85%** β€” the majority sweep at high per-family rates; func_80133AB0 is the per-member-wall - minority. Commit `commit:0841` (batch 2); `commit:0840` (batch 1). Drew pushes. + minority. Commit `215c5e263` (batch 2); `f142a6858` (batch 1). Drew pushes. > **πŸ›‘ SESSION-11 CHECKPOINT (2026-07-22, ultracode) β€” supersedes SESSION-10; safe to open a FRESH session here.** > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical** (verified per batch); > `tools-health` OK (dedup 1849/0, C1 234615/234615, cdecl green, audit-binaries 140); 0 NON_MATCHING (G4). -> **Drew pushes** (R6/R20). Commits `commit:0840`, `commit:0841`. +> **Drew pushes** (R6/R20). Commits `f142a6858`, `215c5e263`. > **Fleet: 78.6% instr Β· 67.5% distinct Β· 88.20% fn-count** (session opened 78.4/67.1/88.14 β†’ **+0.2pp instr, > +0.4pp distinct**). > @@ -1458,7 +1458,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 `%hi`-sharing residual is a decent permuter seed; func_8012AAAC/80135EB0 are documented walls. - **βœ… 2026-07-22/23 (SESSION-11 cont., ultracode) β€” NON-JTBL ov_SC06_018 wave (80 targets, 3 batches of 25/25/30). - BATCH-1 COMMITTED `commit:0844`: 8 Γ—1 + 30 swept = 38 instances; distinct 67.5β†’67.6%.** + BATCH-1 COMMITTED `57af7ea88`: 8 Γ—1 + 30 swept = 38 instances; distinct 67.5β†’67.6%.** Ran `wave_binary.js` over the 80 non-jtbl undrafted stubs (`.run/wave_sc06018_nonjtbl.json`, all reach 2-14 modal β€” 65k leverage β‰ˆ0.5pp total, low per-crack yield). **Batch-1: 13/25 match_one MATCH β†’ 8 whole-binary banked** (4 plain harvest_verify + 4 via `gate_stage --src-file ` β€” non-jtbl fns in a jr-split file @@ -1476,8 +1476,8 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-12 CHECKPOINT (2026-07-23, ultracode) β€” supersedes SESSION-11; safe to open a FRESH session here.** > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical**; audit-binaries OK; -> 0 NON_MATCHING (G4). **Drew pushes** (R6/R20). Commits this session: `commit:0840` `commit:0841` `commit:0842` -> `commit:0843` `commit:0844` `commit:0845` `commit:0846`. +> 0 NON_MATCHING (G4). **Drew pushes** (R6/R20). Commits this session: `f142a6858` `215c5e263` `7e3a23498` +> `3ebdd91fc` `57af7ea88` `0aae4b2ce` `e94593336`. > **Fleet: 78.6% instr Β· 67.6% distinct Β· 88.22% fn-count** (session-11 opened 78.4/67.1/88.14 β†’ **+0.2 instr, > +0.5 distinct**). Long multi-part session (several usage-limit/crash interruptions, all recovered). > @@ -1525,11 +1525,11 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 β€” the tail banks easily (has a sibling to port; 5 of 6 banks) but +few; the fresh families are the HARD tail (def-side plumbing `conflicting types for func_XXXX` β†’ Β§54 `--fix-def-sig`; DIFF β†’ permuter; per-member walls). A fresh crack does NOT reliably unlock its family. `build_wave_args.py --rank live` now ranks by the - true lever + reports the fresh/tail split. Commits: `commit:0848` (6 banks) + the propagation/tooling commit. + true lever + reports the fresh/tail split. Commits: `b76ad8515` (6 banks) + the propagation/tooling commit. > **πŸ›‘ SESSION-13 CHECKPOINT (2026-07-23, ultracode) β€” supersedes SESSION-12; safe to open a FRESH session here.** > Tree clean after commit (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical** Γ—2; -> tools-health OK (dedup 1850/0, 0 NON_MATCHING G4). **Drew pushes** (R6/R20). Commits: `commit:0848` + the +> tools-health OK (dedup 1850/0, 0 NON_MATCHING G4). **Drew pushes** (R6/R20). Commits: `b76ad8515` + the > propagation/tooling/checkpoint commit. > **Fleet: 78.7% instr Β· 67.6% distinct Β· 88.22% fn-count** (SESSION-12 opened 78.6/67.6/88.22 β†’ **+0.1 instr, > flat distinct/fn** β€” a SMALL, honest delta; the reach-138 wave path is LOW-ROI, 3rd such data point). @@ -1611,8 +1611,8 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > Tree clean (R23 db churn only). **R22 clean-fleet 140/140** (verified 4Γ— this session); tools-health OK > (dedup 1853/0); 0 NON_MATCHING. **Drew pushes** (R6/R20). **Fleet: 78.9% instr Β· 67.6% distinct Β· 88.34% > fn-count** (opened 78.6/67.6/88.22 β†’ +0.3 instr, +0.12 fn-count; distinct flat β€” shared-family work). -> ov_SC07_006 84.6β†’85.1%. Commits: `commit:0848 commit:0849 commit:0850 commit:0851 commit:0852 commit:0853 commit:0854 -> commit:0855 commit:0856` (9). +> ov_SC07_006 84.6β†’85.1%. Commits: `b76ad8515 57ef4ebcb 5760b39a1 7f18dbad2 cbb52ebce f8d8f13b9 3814de981 +> 3c8fd8a0b 1dd80e928` (9). > > **WHAT LANDED:** > 1. **func_8014CD80 Γ—138** β€” the header-reconcile PROOF (fresh-138 def-side blocker β†’ byte-neutral header fix). @@ -1655,7 +1655,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > retires the `[^;]*` regex that broke twice β€” R35). Lifted the CLEAN types **Mat32 + Cam8012E138** fleet-wide > (139 files stripped) β†’ unblocked + propagated **func_8012B4B8 + func_8012E138 Γ—138 (+276 stubs)**. R22 140/140. > **Fleet 79.0% instr Β· 67.6% distinct Β· 88.38% fn-count** (session opened 78.6/67.6/88.22). Commits through -> `commit:0860` (16 this session). **DOCTRINE (decision-log):** classify types first; lift 1-def/copy-only-variant +> `b3597c08e` (16 this session). **DOCTRINE (decision-log):** classify types first; lift 1-def/copy-only-variant > types NOW (byte-neutral, R22-verified); DEFER fleet-split variants (MATRIX 3-def, Vec8 180/139, Buf 3-def, M8) > to a per-camp field-access reconcile pass β€” the remaining hard part of roadmap B4. > **β–Ά NEXT:** (1) the variant-reconcile pass for MATRIX/Vec8/Buf (per-camp: pick canonical, rewrite variant @@ -1725,7 +1725,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical** (verified 2Γ— this > session); `tools-health` OK (corpus 0 PHANTOM/0 TRUNCATED, cdecl ALL ORACLES GREEN, audit-binaries 140 > full citizens); **dedup-check 1867 validated / 0 failed**, C1 236964/236964; 0 NON_MATCHING (G4). -> **Drew pushes** (R6/R20). Commits: `commit:0863`, `commit:0864`. +> **Drew pushes** (R6/R20). Commits: `5ab80517d`, `3642b5458`. > **Fleet: 79.3% instr Β· 67.6% distinct Β· 88.61% fn-count** (opened 79.0/67.6/88.38 β†’ **+0.3pp instr, > +0.23pp fn-count, βˆ’831 INCLUDE_ASM stubs**; distinct flat β€” shared-family propagation, not fresh cracks). > @@ -1795,7 +1795,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical β€” verified 4Γ— this > session** (after the broad lift, after the 13-core propagate, after the Buf lift, after the final > propagate). `tools-health` OK; **dedup-check 1868 validated / 0 failed**, C1 237102/237102; -> 0 NON_MATCHING (G4). **Drew pushes** (R6/R20). Commits: `commit:0863` `commit:0864` `commit:0865` `commit:0866`. +> 0 NON_MATCHING (G4). **Drew pushes** (R6/R20). Commits: `5ab80517d` `3642b5458` `5c3a2bb69` `e393c320e`. > **Fleet: 79.3% instr Β· 67.6% distinct Β· 88.61% fn-count** (opened 79.0/67.6/88.38). > **Burn-down `--session-close` logged: +0.60pp instr / +0.47pp fn-count.** NB its "distinct βˆ’0.30pp" is > against an OLDER baseline snapshot under a different denominator convention β€” **this session's @@ -1911,8 +1911,8 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-14 CLOSING CHECKPOINT (2026-07-23) β€” supersedes ALL earlier SESSION-14 blocks. Fresh session safe here.** > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140 byte-identical β€” verified 6Γ— this session.** > `tools-health` green; **dedup 1872 validated / 0 failed**, C1 237654/237654; 0 NON_MATCHING (G4). -> **Drew pushes** (R6/R20). Commits: `commit:0863` `commit:0864` `commit:0865` `commit:0866` `commit:0867` `commit:0868` -> `commit:0869` `commit:0870` `commit:0871` `commit:0872`. +> **Drew pushes** (R6/R20). Commits: `5ab80517d` `3642b5458` `5c3a2bb69` `e393c320e` `43041f7fa` `72b7a7227` +> `23b9b5750` `f9ad13e03` `0d60e53db` `22af9ab2c`. > **Fleet: 79.3% instr Β· 67.6% distinct Β· 88.61% fn-count Β· 40,275 stubs** (opened 79.0 / 67.6 / 88.38 / 41,112). > > **⚠️ BURN-DOWN: do NOT log another `--session-close`.** One was logged MID-session at 79.3% instr (my @@ -1973,8 +1973,8 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 - **βœ… 2026-07-23 (SESSION-14, ULTRACODE) β€” fresh-crack wave: 6 reach-138 cores banked; the FIRST distinct-code gain.** `wave_binary` fanned 24 xHigh drafters over FRESH (unmatched, live=138) ov_SC07_006 families β†’ 20 self-reported match_one MATCH. **Whole-binary byte-gate (sole arbiter, R14/G3) banked 6:** func_8014C6F4, - func_801463A0, func_8012B77C, func_80136F3C, func_80156670, func_801749C8 (`commit:0877`). 1 propagated Γ—138 - (func_80136F3C), 4 Β§20-capped, 1 straggler (`commit:0878`). **THE WIN (byte-verified): distinct-code UNIQUE + func_801463A0, func_8012B77C, func_80136F3C, func_80156670, func_801749C8 (`e9c950a30`). 1 propagated Γ—138 + (func_80136F3C), 4 Β§20-capped, 1 straggler (`8ea520213`). **THE WIN (byte-verified): distinct-code UNIQUE count 64832 β†’ 64837 (+5) β€” the FIRST distinct-code movement of the entire session.** Every prior lever today was de-duplication (0 on distinct-code); these are genuinely UNMATCHED cores. Fleet instr 79.3β†’79.4%, fn-count 88.61β†’88.65%. **The pivot to fresh cracks is byte-validated as the correct lever.** @@ -1987,7 +1987,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 broke.** `fix_header_decl --check`'s `[SAFE]` verdict is FLEET-BLIND (inspects only the one caller's return-use; a shared engine_core.h decl widen reaches all ~137 matched overlays and shifts a caller's codegen). Reverting the 12-ref func_8012CC88 didn't fix it β†’ the 2-ref widenings break it too. **Entire - recovery pass reverted to `commit:0878`; 0 broken landed; R22 re-verified 140/140.** RULE (cookbook Β§63 + recovery pass reverted to `8ea520213`; 0 broken landed; R22 re-verified 140/140.** RULE (cookbook Β§63 UPDATE): a fix_header_decl edit is Β§61 shared-state β€” validate with full R22, the per-binary gate is necessary-not-sufficient. The 3 drafts are byte-correct in isolation β†’ backlog (need a per-overlay-local decl path, not a fleet header widen). @@ -1997,7 +1997,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-14 ULTRACODE CHECKPOINT (2026-07-23) β€” supersedes the earlier SESSION-14 closing block. Fresh session safe here.** > Tree clean (only R23 db churn). **R22 clean-fleet 140/140 byte-identical** (verified many times this session); -> 0 NON_MATCHING (G4); dedup 1873/0. **Drew pushes** (R6/R20). HEAD `commit:0879`. +> 0 NON_MATCHING (G4); dedup 1873/0. **Drew pushes** (R6/R20). HEAD `daba4bd5b`. > **Fleet: 79.4% instr Β· 67.6% distinct (count 64,837, +5 this wave) Β· 88.65% fn-count Β· 40,275β†’~ stubs.** > > **THIS ULTRACODE STRETCH (after the /effort ultracode toggle):** @@ -2006,7 +2006,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > (Task 9, oracle-sourced via Ghidra `types get`). > 2. **FRESH-CRACK WAVE (Task 10, the headline):** 24 xHigh drafters over fresh reach-138 ov_SC07_006 families > β†’ **6 banked Γ—1** β†’ **distinct-code count 64832β†’64837, the session's FIRST distinct-code gain.** The pivot -> to fresh cracks is byte-validated. Commits commit:0877 / commit:0878 / commit:0879. +> to fresh cracks is byte-validated. Commits e9c950a30 / 8ea520213 / daba4bd5b. > > **THREE HARD LESSONS (all β†’ docs, all cost real time):** > - **wave_binary drafters lose their winners** to scratch filenames β€” recovered all 24 from transcripts; @@ -2056,7 +2056,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-15 CHECKPOINT (2026-07-24) β€” supersedes all earlier SESSION-14/15 blocks. Fresh session safe here.** > Tree clean (only R23 db churn). **R22 clean-fleet 140/140 byte-identical** (verified many times); 0 -> NON_MATCHING (G4); dedup 1879/0. **Drew pushes** (R6/R20). HEAD `commit:0914`. +> NON_MATCHING (G4); dedup 1879/0. **Drew pushes** (R6/R20). HEAD `ef85803b1`. > **Fleet: 79.6% instr Β· 67.7% distinct (count 64,860) Β· 88.86% fn-count.** > > **WHAT LANDED THIS SESSION (all byte-gated, committed):** @@ -2213,7 +2213,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-16 CHECKPOINT (2026-07-24, Max) β€” supersedes SESSION-15. Fresh session safe here.** > Tree clean (only R23 `db.*.gbf` churn β€” never staged). **R22 clean-fleet 140/140 byte-identical** > (verified 3Γ— this session); 0 NON_MATCHING (G4); dedup 1879/0. **Drew pushes** (R6/R20). -> HEAD `commit:0919`. Commits: `commit:0916` `commit:0917` `commit:0918` `commit:0919`. +> HEAD `f1f623825`. Commits: `1ea54fa59` `09fb069cf` `732128b1f` `f1f623825`. > **Fleet: 79.6% instr Β· 67.7% distinct (count 64,874, +14) Β· 88.86% fn-count.** > > **THE SESSION IN ONE LINE:** the wave-integration bottleneck was measured rather than assumed, and @@ -2300,8 +2300,8 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-16 FINAL CHECKPOINT (2026-07-24) β€” supersedes the SESSION-16 block above. Fresh session safe here.** > Tree clean (only R23 `db.*.gbf` churn). **R22 clean-fleet 140/140** (3Γ— this session); `make check > BINARY=ov_SC07_006` BYTE-IDENTICAL after the T8 revert; 0 NON_MATCHING (G4); dedup 1879/0. -> **Drew pushes** (R6/R20). HEAD `commit:0922`. Commits `commit:0916` `commit:0917` `commit:0918` `commit:0919` -> `commit:0920` `commit:0921` `commit:0922`. +> **Drew pushes** (R6/R20). HEAD `d6194365a`. Commits `1ea54fa59` `09fb069cf` `732128b1f` `f1f623825` +> `f4f070683` `9137d3b78` `d6194365a`. > **Fleet: 79.6% instr Β· 67.7% distinct (count 64,874, +14) Β· 88.86% fn-count.** > > **DELIVERED:** the measurement (Gate A, two oracles, 9 s for 36 drafts) Β· `tools/blocker_probe.py` Β· @@ -2348,7 +2348,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-16 CLOSING CHECKPOINT (2026-07-24) β€” supersedes ALL earlier SESSION-16 blocks. Fresh session safe here.** > Tree clean (only R23 `db.*.gbf` churn). `make check BINARY=ov_SC07_006` **BYTE-IDENTICAL**; last full -> R22 **140/140**; 0 NON_MATCHING (G4); dedup 1879/0. **Drew pushes** (R6/R20). HEAD `commit:0925`. +> R22 **140/140**; 0 NON_MATCHING (G4); dedup 1879/0. **Drew pushes** (R6/R20). HEAD `1b9ffe1fb`. > **Fleet: 79.6% instr Β· 67.7% distinct (count 64,874, +14) Β· 88.86% fn-count.** ov_SC07_006 stubs 344β†’330. > > **THE SESSION'S RESULT IN ONE LINE:** the integration-recovery pass is BUILT, PROVEN, and ENCODED β€” @@ -2435,10 +2435,10 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 the R22 corollary in its source-reverted form. **THE RUN:** `recover_integration.py --draft-dir .run/drafts-t17a --binary ov_SC07_006 --run-id t17a --stages demacroize --no-propagate --commit --r22 --report` β†’ `pass 1 banked 1/1` β†’ exact restore β†’ - `pass 2 banked 1/1` β†’ commit **`commit:0928`** β†’ **R22 `check-all: 140 passed, 0 failed of 140`** β†’ + `pass 2 banked 1/1` β†’ commit **`5c6704f63`** β†’ **R22 `check-all: 140 passed, 0 failed of 140`** β†’ `report.json {"banked":["func_801778A8"],"r22":true,"tier":"binary"}`. Bank confirmed from the SOURCE (`grep INCLUDE_ASM` β†’ gone), never the report (Β§55b trap 4). - **THE EQUIVALENCE CHECK β€” the part that makes this a test and not a smoke test:** `git diff commit:0927 + **THE EQUIVALENCE CHECK β€” the part that makes this a test and not a smoke test:** `git diff 9c85afc53 -- src/` = **one blank line**, which I introduced in the hand revert. The driver reproduced SESSION-16's banked state character-for-character. **⚠️ DEFECT 1 (SAFETY β€” found by READING the path before firing it).** **Propagation is a FLEET-tier @@ -2461,7 +2461,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 **STALE DIGEST (R14, caught in passing).** `docs/progress.fleet.md` at HEAD disagreed with HEAD's own source by 45 in the dedup-shared attribution (`238365` vs `238410`; ov_SC07_006 `1503` vs `1548`). Regenerating from committed source gives 238410 in **two independent runs** (in-gate and standalone), - and `commit:0919` had already recorded 1548 β€” so the committed digest was generated during the Β§65g + and `f1f623825` had already recorded 1548 β€” so the committed digest was generated during the Β§65g `local_type` trial, whose edits were then reverted. Headline percentages unaffected (79.6/67.7/88.86); the regenerated file is committed. Lesson: regenerate digests on a CLEAN tree. **VERIFICATION:** `make tools-health` β†’ **OK** (corpus(+resident) 0 PHANTOM/0 TRUNCATED Β· cdecl ALL @@ -2572,7 +2572,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > Fresh session safe here.** > Tree clean (only R23 `db.*.gbf` churn β€” never staged). **R22 clean-fleet 140/140 byte-identical** > (verified 3Γ— this session: after the driver test, after the bank, after the propagation); 0 -> NON_MATCHING (G4); dedup **1880**/0. **Drew pushes** (R6/R20). HEAD `commit:0935`. +> NON_MATCHING (G4); dedup **1880**/0. **Drew pushes** (R6/R20). HEAD `cfa421eef`. > **Fleet: 79.7% instr Β· 67.7% distinct (64,875) Β· 88.90% fn-count** (opened at 79.6 / 67.7 / 88.86). > > **WHAT LANDED (all byte-gated, committed):** @@ -2952,7 +2952,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **πŸ›‘ SESSION-17 CLOSING CHECKPOINT (2026-07-24, high on Opus 5) β€” supersedes ALL earlier SESSION-17 > blocks. Fresh session safe here. NEXT SESSION STARTS ON THE GIANTS (Drew, at close).** > Tree clean (only R23 `db.*.gbf` churn β€” never staged). **R22 clean-fleet 140/140** (verified 5Γ— this -> session); 0 NON_MATCHING (G4); **dedup 1882 / 0 failed**. **Drew pushes** (R6/R20). HEAD `commit:0953`. +> session); 0 NON_MATCHING (G4); **dedup 1882 / 0 failed**. **Drew pushes** (R6/R20). HEAD `11e6895e5`. > **Fleet: 79.9% instr Β· 67.7% distinct (64,875) Β· 88.98% fn-count** (opened 79.6 / 67.7 / 88.86). > > **BANKED: 3 fns, all propagated Γ—138 β‰ˆ +40,020 ins** β€” `func_80177940` (101, Β§66d loop) Β· @@ -3497,7 +3497,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 **Applied as ONE fleet edit** (`find src -name '*.c' -o -name '*.h' | xargs sed -E -i 's/extern void (func_8014F3E8|func_8014D4C0)/extern s32 \1/g'`) β†’ 1,731 files changed; post-state 15+1 / 3,349+1,730 `extern s32`, **0 `extern void` remaining**. Snapshot discipline (Β§61/Β§63): `src/` - was clean at `commit:0991`, so `git checkout -- src/` is the restore path β€” no inverse transform. + was clean at `5d19a4823`, so `git checkout -- src/` is the restore path β€” no inverse transform. **BYTE-NEUTRALITY OF THE WIDEN, ISOLATED FIRST (cheap, before spending a gate cycle):** `make build BINARY=ov_SC07_006` β†’ `7ca772be…` and `BINARY=ov_SC01_000` β†’ `9052dc0e…`, both **BYTE-IDENTICAL**. ov_SC01_000 was chosen deliberately β€” it instantiates the two return-CASTING @@ -4026,7 +4026,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 + the **18 `gte_*` macros** defined in that region file (helper+externs alone left βˆ’34, so the gte macros are the likely remainder) β€” then the **Β§81 carve chain**, because this sibling is ALSO a jr function (`jr` count = 1). Draft preserved: `.run/giants/s19_func_8017C730_SC03_013_nearmiss.c`. - **β‡’ Β§77 GAINED ITS 5th MEASURED VARIANT (`static` helper β€” NOW FOLDED INTO THE COOKBOOK, commit `commit:1027`) and a NEW COROLLARY: the right carry is the + **β‡’ Β§77 GAINED ITS 5th MEASURED VARIANT (`static` helper β€” NOW FOLDED INTO THE COOKBOOK, commit `2199c7119`) and a NEW COROLLARY: the right carry is the MINIMAL closure of what the body references, not the whole file β€” over-carrying trades a `match_one` failure for an in-TU collision.** My `s19_remap_tu.py`'s walk-back-to-previous-`}` heuristic also breaks on an **isolated region file**, where the preceding construct IS the needed @@ -4036,7 +4036,7 @@ conditional) Β· main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) Β· behemoths B7 > **No background job is running.** Tree clean (only R23 `db.*.gbf` churn β€” never staged). > **R22 clean-fleet 140/140, run 12Γ—** (the last after the `func_8017C730` bank). `make tools-health` > β†’ **OK**. **0 NON_MATCHING** (G4). dedup **1886 validated / 0 failed**, C1 coverage complete. -> HEAD `commit:1025`, **38 commits this session**. **Drew pushes** (R6/R20). +> HEAD `9d04c0d6d`, **38 commits this session**. **Drew pushes** (R6/R20). > > ## FLEET > **80.6% instr** (10,587,608 / 13,141,652) Β· **distinct-code 3,845,161 = 68.2%** Β· fn-count **89.18%** @@ -4613,7 +4613,7 @@ resolves. T0.1/T0.3 only read sigs/configs and write `.run/` + `docs/` β‡’ safe > **πŸ›‘ SESSION-20 CHECKPOINT (2026-07-26) β€” fresh session safe here.** > **Nothing running.** Tree clean except the R23 `db.*.gbf` churn (never stage). **R22 clean-fleet > 140/140** (run 5Γ— this session), `tools-health` **OK**, dedup **1886/0**, **0 NON_MATCHING** (G4). -> HEAD `commit:1041`. **Drew pushes** (R6/R20). +> HEAD `772b5c4e0`. **Drew pushes** (R6/R20). > **FLEET: 80.6% instr Β· 68.3% distinct-code Β· 89.19% fn-count** (opened 80.6 / 68.2 / 89.18). > > ## BANKED THIS SESSION @@ -4664,7 +4664,7 @@ resolves. T0.1/T0.3 only read sigs/configs and write `.run/` + `docs/` β‡’ safe > **πŸ›‘ SESSION-20 FINAL CHECKPOINT (2026-07-26) β€” fresh session safe here.** > **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). **R22 140/140** -> (run 8Γ— this session), `tools-health` **OK**, dedup **1886/0**, **0 NON_MATCHING**, HEAD `commit:1044`. +> (run 8Γ— this session), `tools-health` **OK**, dedup **1886/0**, **0 NON_MATCHING**, HEAD `015ebff53`. > **FLEET: 81.0% instr Β· 68.8% distinct-code Β· 89.30% fn-count.** **Drew pushes** (R6/R20). > > ## β–Ά START HERE NEXT SESSION @@ -4713,7 +4713,7 @@ resolves. T0.1/T0.3 only read sigs/configs and write `.run/` + `docs/` β‡’ safe > **πŸ›‘ SESSION-20 CLOSING CHECKPOINT (2026-07-26) β€” FINAL. Fresh session safe here.** > **Nothing running.** Tree clean but for R23 `db.*.gbf` churn (never stage). **R22 140/140** (run > 11Γ— this session), `tools-health` **OK**, dedup **1886/0**, **0 NON_MATCHING** (G4). -> HEAD `commit:1047`. **Drew pushes** (R6/R20). +> HEAD `c2566010f`. **Drew pushes** (R6/R20). > **FLEET: 81.5% instr Β· 69.0% distinct-code Β· 89.49% fn-count** β€” session **+0.9 / +0.8 / +0.31 pp**. > > ## THE SESSION IN ONE LINE @@ -4742,7 +4742,7 @@ resolves. T0.1/T0.3 only read sigs/configs and write `.run/` + `docs/` β‡’ safe # πŸ›‘ SESSION-20 FINAL CHECKPOINT (2026-07-26) β€” FRESH SESSION STARTS HERE -**Nothing running.** Tree clean but for R23 `db.*.gbf` churn (never stage). HEAD **`commit:1055`**, +**Nothing running.** Tree clean but for R23 `db.*.gbf` churn (never stage). HEAD **`5c422e842`**, **26 commits this session**. **R22 clean-fleet 140/140** (run 13Γ—), `tools-health` **OK**, dedup **1886/0**, **0 NON_MATCHING** (G4). **Drew pushes** (R6/R20). @@ -4853,7 +4853,7 @@ family_sweep --stage-only β†’ sweep_parallel.py -j 12 β†’ blast_radius.py # SESSION-21 (2026-07-26/27) β€” THE FAMILY-EXEMPLAR MASS WAVE **Opened:** effort **ultracode** (Drew toggled; R27 honoured β€” prompted and waited). -**Opening state:** HEAD `commit:1056`, fleet **81.7% instr Β· 69.3% distinct-code Β· 89.52% fn-count**, +**Opening state:** HEAD `2d2c01f04`, fleet **81.7% instr Β· 69.3% distinct-code Β· 89.52% fn-count**, 140/140 byte-identical, dedup 1886/0, 0 NON_MATCHING. ## βœ… T1 β€” THE SUB-500 FRONTIER, MEASURED (zero agent tokens, R35: tool verified before its scan) @@ -5273,7 +5273,7 @@ working as designed). 140/140 byte-identical, verified twice from a genuinely cl # πŸ›‘ SESSION-21 CHECKPOINT (2026-07-27) β€” FRESH SESSION SAFE HERE **Nothing running** (the wave was stopped at Drew's request; 9 of 24 agents never returned). -Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1064`**. +Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`5be4c2148`**. **R22 clean-fleet 140/140** (run twice), `dedup` **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 81.9% instr Β· 69.3% distinct-code Β· 89.60% fn-count.** Drew pushes (R6/R20). @@ -5396,7 +5396,7 @@ remove a conflict every sibling would otherwise hit at bank time). # πŸ›‘ SESSION-21 FINAL CHECKPOINT (2026-07-27) β€” FRESH SESSION SAFE HERE -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1069`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`1f0f33b16`**. **R22 clean-fleet 140/140** (run 4Γ— this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 81.9% instr Β· 69.3% distinct-code Β· 89.60% fn-count.** Drew pushes (R6/R20). @@ -5532,7 +5532,7 @@ next step rather than run on tired context. # πŸ›‘ SESSION-21 CLOSING CHECKPOINT (2026-07-27) β€” FRESH SESSION SAFE HERE -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1074`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`7c1640888`**. **R22 clean-fleet 140/140** (run 8Γ— this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 82.0% instr Β· 69.5% distinct-code Β· 89.64% fn-count** (opened 81.7 / 69.3 / 89.52). @@ -5734,12 +5734,12 @@ here, with cookbook Β§92/Β§93 written in-session (R30). > **First: closing the checkpoint gap.** Two SESSION-22 commits landed *after* the SESSION-21 FINAL > CHECKPOINT and were recorded only in commit messages, leaving this file stale for that stretch > (the exact defect Drew caught between T11 and T12): -> - `commit:1089` β€” **`func_8016B6BC` 0/137 β†’ 137/137.** Not a wall: a TYPE-CARRY failure. cc1 reported +> - `1670fe293` β€” **`func_8016B6BC` 0/137 β†’ 137/137.** Not a wall: a TYPE-CARRY failure. cc1 reported > ordinary locals (`c`, `v`, `off`) undeclared because it aborted the declaration block at an > unknown TYPE. **The lift must be TRANSITIVE** β€” the real set was four, found by following each > definition's own references: `M8_8016B6BC β†’ Prim_8016B6BC β†’ Vtx_8016B6BC` (named only inside > Prim's body) `β†’ DVec_8016B6BC`. Cookbook Β§94. Read the FIRST error, not the loudest. -> - `commit:1090` β€” **`reconcile_tu` dropped the sibling declarators** of a multi-symbol `extern` line. +> - `db620d4b8` β€” **`reconcile_tu` dropped the sibling declarators** of a multi-symbol `extern` line. > Cookbook Β§95. ## βœ… T13 β€” `func_80176218` BANKED (327 ins Γ—138 = 45,126 templated ins) + the Β§96 tool fix @@ -5909,7 +5909,7 @@ re-extract), and R32 turning a would-be mystery into one `make extract`. # πŸ›‘ SESSION-22 CHECKPOINT (2026-07-27) β€” FRESH SESSION SAFE HERE -**Tree clean** but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1094`**. +**Tree clean** but for the R23 `db.*.gbf` churn (never stage). HEAD **`ad57c16e6`**. **R22 clean-fleet 140/140** (run 4Γ— this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 83.2% instr Β· 72.3% distinct-code Β· 89.87% fn-count** (SESSION-21 close: 82.8 / 71.3 / 89.80). @@ -6379,7 +6379,7 @@ grinder's admission rule correctly rejects (Β§60a: `partial` plateaus scored 0/1 `grinder.py --once --batch 20 --permute-secs 180 -j14 --max-closeness 30`: **4 permuter WINS β†’ 2 banked**, 2 blacklisted as **won-but-gate-rejected** (plumbing-bound β€” a -permuter win is NOT a bank). It auto-commits per-binary (`commit:1118`, `commit:1117`); **R22 clean-fleet +permuter win is NOT a bank). It auto-commits per-binary (`5e701049d`, `1300f07a8`); **R22 clean-fleet 140/140**. Both banks are **reach<2** β†’ `dedup_propagate` correctly refused ("nothing to propagate"), so this is the reach-1 tail Phase 21 measured as poor fleet-ROI: real matches, Γ—1 leverage. Measured: fn-count 318,857 β†’ **318,859 (+2)**; instr/distinct unchanged at 84.4% / 74.4%. @@ -6458,7 +6458,7 @@ the per-sibling reconcile to drop a draft decl whose symbol the TU already decla # πŸ›‘ SESSION-22 FINAL CHECKPOINT β€” WAVE22 (2026-07-28) β€” FRESH SESSION SAFE HERE > Supersedes every earlier SESSION-22 checkpoint block above. -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1126`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`75bed1569`**. **R22 clean-fleet 140/140** (run **23Γ—** this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 84.8% instr Β· 74.7% distinct-code Β· 90.34% fn-count** (session opened 82.9 / 71.5 / 89.83). @@ -6534,7 +6534,7 @@ distinct binaries, -j12`. When I shipped it I could only smoke-test 4 fail-fast Opened from the WAVE22 final checkpoint at Drew's direction: **item 1, the 6 wave NEAR results.** Effort **xHigh** (settled-design execution; confirmed by Drew before starting). -Preflight: `make tools-health` β†’ **exit 0** (green, fail-closed). HEAD `commit:1128`, tree clean but +Preflight: `make tools-health` β†’ **exit 0** (green, fail-closed). HEAD `72e6a096c`, tree clean but for the R23 `db.*.gbf` churn. ## βœ…/⚠️ T31 β€” the 6 NEAR: all measured, 2 improved, 0 banked. The honest result is a ROUTING finding. @@ -7213,7 +7213,7 @@ wrong tool and its 0% is not evidence). The carve then refused with a precise re # πŸ›‘ SESSION-23 FINAL CHECKPOINT (2026-07-28) β€” FRESH SESSION SAFE HERE > Supersedes every earlier SESSION-22 checkpoint block above. -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1140`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`6fad5d19c`**. **R22 clean-fleet 140/140** (run **7Γ—** this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 85.5% instr Β· 76.1% distinct Β· 90.61% fn-count** (opened 84.8 / 74.7 / 90.34). @@ -7449,7 +7449,7 @@ fix β€” worth fixing so it stops masking real causes. # πŸ›‘ SESSION-23 FINAL CHECKPOINT β€” REVISED (2026-07-28) β€” FRESH SESSION SAFE HERE > Supersedes the earlier SESSION-23 block above (which was written before T44-T50). -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1149`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`f3e8317bd`**. **R22 clean-fleet 140/140** (run **11Γ—** this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 85.5% instr Β· 76.1% distinct Β· 90.62% fn-count** (opened 84.8 / 74.7 / 90.34). @@ -7997,7 +7997,7 @@ behaviours, no identified variable. **Still not guessed at** β€” it stays the qu # πŸ›‘ SESSION-24 FINAL CHECKPOINT (2026-07-28) β€” FRESH SESSION SAFE HERE -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1159`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`2d7694ba2`**. **R22 clean-fleet 140/140** (run **5Γ—** this session), `tools-health` OK, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 86.0% instr Β· 76.7% distinct Β· 90.77% fn-count** (opened 85.5 / 76.1 / 90.62). @@ -8282,7 +8282,7 @@ R22 clean-fleet **140 passed, 0 failed of 140** after every bank and after both # πŸ›‘ SESSION-24 FINAL CHECKPOINT β€” REVISED (2026-07-28) β€” FRESH SESSION SAFE HERE > Supersedes the earlier SESSION-24 block (written before T59–T65). -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1169`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`ec34c31b6`**. **R22 clean-fleet 140/140** (run **11Γ—** this session), `tools-health` OK, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 86.3% instr Β· 76.9% distinct Β· 90.88% fn-count** (opened 85.5 / 76.1 / 90.62). @@ -8500,7 +8500,7 @@ R22 clean-fleet **140 passed, 0 failed of 140** Β· `tools-health` OK Β· **0 NON_ # πŸ›‘ SESSION-24 FINAL CHECKPOINT β€” REVISED 2 (2026-07-28) β€” FRESH SESSION SAFE HERE > Supersedes both earlier SESSION-24 blocks (written before T59 and before T67). -**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1175`**. +**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`283937ed8`**. **R22 clean-fleet 140/140** (run **17Γ—** this session), `tools-health` OK, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 86.6% instr Β· 76.9% distinct Β· 91.12% fn-count** (opened 85.5 / 76.1 / 90.62). @@ -8845,7 +8845,7 @@ R22 clean-fleet **140 passed, 0 failed of 140** Β· `tools-health` OK Β· dedup ** > Supersedes all three earlier SESSION-24 blocks (written before T59, T67, and T76). **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn and a pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1186`**. +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`611622c9e`**. **R22 clean-fleet 140/140** (run **24Γ—** this session), `tools-health` OK, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 86.7% instr Β· 76.9% distinct Β· 91.23% fn-count** (opened 85.5 / 76.1 / 90.62). @@ -9088,7 +9088,7 @@ apart from docs). Fleet unchanged from T79: **86.9% instr Β· 77.4% distinct Β· 9 > Supersedes the SESSION-24 REVISED-3 block for "what to do next"; that block's history stands. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn and the pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1188`** + this +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`774592c45`** + this docs commit. **R22 clean-fleet 140/140**, `tools-health` RC=0, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 86.9% instr Β· 77.4% distinct Β· 91.41% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9241,7 +9241,7 @@ them. > Supersedes the mid-session SESSION-25 block above (written before T82/T83) and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn and the pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1191`**. +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`9d0ce2001`**. **R22 clean-fleet 140/140** (run 4Γ— this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.2% instr Β· 77.8% distinct Β· 91.72% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9400,7 +9400,7 @@ surface left to apply to. > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1194`**. +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`1175849d0`**. **R22 clean-fleet 140/140** (run 6Γ— this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.3% instr Β· 77.9% distinct Β· 91.79% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9494,7 +9494,7 @@ R22 clean-fleet **140 passed, 0 failed of 140** Β· dedup **1886/0** Β· **0 NON_M > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1196`**. +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`bf71232d0`**. **R22 clean-fleet 140/140** (run 8x this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.3% instr Β· 78.0% distinct Β· 91.84% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9559,7 +9559,7 @@ counting asm uses against source tokens must exclude compiler-synthesised uses). ### ⚠️ FIRST, A CORRECTION TO T84 (R14/P9) β€” I mis-attributed 137 banks T84 reported "137 banked (all of `0x80161c98`)". **That was wrong and it is committed wrong** -(`commit:1193`). The 137 banks were **`func_80146750`** β€” one of the three known byte-identical +(`dcbeebaf4`). The 137 banks were **`func_80146750`** β€” one of the three known byte-identical stragglers β€” banked 1-per-overlay in `_after.c`. `0x80161c98`'s members live in `_jr_8015C32C.c` and were **still stubs**; I checked `func_80161D20` in `ov_SC01_000` and it was still `INCLUDE_ASM`. @@ -9604,7 +9604,7 @@ R22 clean-fleet **140 passed, 0 failed of 140** Β· dedup **1886/0** Β· **0 NON_M > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`commit:1198`**. +`.run/backlog.jsonl` edit (neither mine; never stage the db churn). HEAD **`f7c6d2eb2`**. **R22 clean-fleet 140/140** (run 10x this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.3% instr Β· 78.0% distinct Β· 91.88% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9643,7 +9643,7 @@ T85 133 Β· T87 149 Β· T88 9 Β· T89 138 Β· T90 23). **instr +0.6pp Β· distinct-co - **Promoted the backlog item as "126 entries / reach 2,983"; the real figure was 8** β€” a raw logged count quoted without the still-a-stub filter. - **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** β€” and that one is - committed wrong in `commit:1193`, corrected in `commit:1198`. + committed wrong in `dcbeebaf4`, corrected in `f7c6d2eb2`. - **`new_distinct` estimator over-projects ~2x** (priced 259, measured 125). - **The through-line: four of five are the SAME error β€” asserting the composition of a number I did not derive.** The fix is mechanical and I should apply it by default: *derive the attribution from @@ -9717,7 +9717,7 @@ Fleet unchanged from T90: **87.3% instr Β· 78.0% distinct Β· 91.88% fn-count**. > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit. HEAD **`commit:1200`**. **R22 clean-fleet 140/140** (10x this session), +`.run/backlog.jsonl` edit. HEAD **`dac90f0fa`**. **R22 clean-fleet 140/140** (10x this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.3% instr Β· 78.0% distinct Β· 91.88% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9752,7 +9752,7 @@ T79 641 Β· T82 251 Β· T83 821 Β· T84 137 Β· T85 133 Β· T87 149 Β· T88 9 Β· T89 1 a table I printed myself (the T76 shape, cited T76 the same session). - **Promoted the backlog item as "126 entries"; it was 8** β€” raw count, no still-a-stub filter. - **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** β€” committed wrong in - `commit:1193`, corrected in `commit:1198`. + `dcbeebaf4`, corrected in `f7c6d2eb2`. - **`new_distinct` over-projects ~2x** (priced 259, measured 125). - **Four of five are ONE habit: asserting the composition of a number I did not derive.** Standing fix: *derive attribution from `corpus.stubs` before/after β€” never from whatever I was looking at.* @@ -9822,7 +9822,7 @@ No banks -> nothing to verify. Tree clean; the T91 wiring stays reverted; the pr > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit. HEAD **`commit:1202`**. **R22 clean-fleet 140/140** (10x this session), +`.run/backlog.jsonl` edit. HEAD **`2b76b73f7`**. **R22 clean-fleet 140/140** (10x this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.3% instr Β· 78.0% distinct Β· 91.88% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -9862,7 +9862,7 @@ backlog (8 eligible, 0) Β· the Β§119 flag matrix. a table I printed myself β€” the T76 shape, in the session where I cited T76. - **Promoted the backlog item as "126 entries"; it was 8** β€” a raw count without the still-a-stub filter. - **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** β€” committed wrong in - `commit:1193`, corrected in `commit:1198`. + `dcbeebaf4`, corrected in `f7c6d2eb2`. - **`new_distinct` over-projects ~2x** (priced 259, measured 125). - **Four of five are ONE habit: asserting the composition of a number I did not derive.** Standing fix: *derive attribution from `corpus.stubs` before/after β€” never from what I was looking at.* @@ -9970,7 +9970,7 @@ Useful prior for pricing the next fix *before* building it. > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit. HEAD **`commit:1205`**. **R22 clean-fleet 140/140** (13x this session), +`.run/backlog.jsonl` edit. HEAD **`7e32da8f6`**. **R22 clean-fleet 140/140** (13x this session), dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.4% instr Β· 78.0% distinct Β· 91.96% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -10014,9 +10014,9 @@ pre-Β§117 masked-MATCH backlog (8 eligible, 0) Β· the Β§119 flag matrix (all 4 c a table I printed myself (the T76 shape, in the session where I cited T76). - **Promoted the backlog item as "126 entries"; it was 8** β€” raw count, no still-a-stub filter. - **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** β€” committed wrong in - `commit:1193`, corrected in `commit:1198`. + `dcbeebaf4`, corrected in `f7c6d2eb2`. - **T92 recorded a WRONG recipe** ("strip-if-ambient") and a **phantom second blocker** β€” both - artifacts of my own bad fix; corrected in `commit:1204` (rename, don't remove). + artifacts of my own bad fix; corrected in `9a1507462` (rename, don't remove). - **Patched the wrong one of THREE identical staging sites, twice** (`rindex`), then concluded from a patch that never ran that the lever was ineffective. β†’ Β§120's law: *prove the lever RAN β€” diff the staged artifact β€” before concluding it does not work.* @@ -10087,7 +10087,7 @@ not just before scaling.** > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit. HEAD **`commit:1207`**. **R22 clean-fleet 140/140** (14x this session), +`.run/backlog.jsonl` edit. HEAD **`ceae8bb4c`**. **R22 clean-fleet 140/140** (14x this session), `tools-health` **RC=0**, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.5% instr Β· 78.0% distinct Β· 92.00% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -10129,9 +10129,9 @@ grep -v "warning:" /tmp/e.txt | grep -vE "In function|At top level|^###|^\s*$" a table I printed myself (the T76 shape, in the session where I cited T76). - **Promoted the backlog item as "126 entries"; it was 8** β€” raw count, no still-a-stub filter. - **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** (committed wrong in - `commit:1193`, corrected in `commit:1198`). + `dcbeebaf4`, corrected in `f7c6d2eb2`). - **T92 recorded a WRONG recipe + a phantom second blocker** β€” artifacts of my own bad fix - (corrected in `commit:1204`). + (corrected in `9a1507462`). - **Patched the wrong one of three identical staging sites, twice**, then concluded a lever was ineffective from a patch that never ran (Β§120's law: prove it RAN). - **Costed T97 as a 3-part job over 2,022 decls; it was one 4-line edit** β€” I read the symptom @@ -10191,7 +10191,7 @@ Fleet unchanged from T97: **87.5% instr Β· 78.0% distinct Β· 92.00% fn-count**. > Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3. **Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing -`.run/backlog.jsonl` edit. HEAD **`commit:1209`**. **R22 clean-fleet 140/140** (14x), `tools-health` +`.run/backlog.jsonl` edit. HEAD **`411527999`**. **R22 clean-fleet 140/140** (14x), `tools-health` **RC=0**, dedup **1886/0**, **0 NON_MATCHING** (G4). **FLEET: 87.5% instr Β· 78.0% distinct Β· 92.00% fn-count** (opened 86.7 / 76.9 / 91.23). @@ -10233,9 +10233,9 @@ grep -v "warning:" /tmp/e.txt | grep -vE "In function|At top level|^###|^\s*$" printed myself (the T76 shape, in the session where I cited T76). - **Promoted a backlog item as "126 entries"; it was 8** β€” no still-a-stub filter. - **Mis-attributed T84's 137 banks** (`0x80161c98` β†’ really `func_80146750`); committed wrong in - `commit:1193`, corrected in `commit:1198`. + `dcbeebaf4`, corrected in `f7c6d2eb2`. - **T92 recorded a wrong recipe + a phantom second blocker** β€” artifacts of my own bad fix - (corrected in `commit:1204`). + (corrected in `9a1507462`). - **Patched the wrong one of three identical staging sites, twice**, then judged a lever ineffective from a patch that never ran (Β§120: prove it RAN). - **Costed T97 as a 3-part job over 2,022 decls; it was one 4-line edit** β€” read the symptom instead diff --git a/phase-ends/logs/Phase30.md b/phase-ends/logs/Phase30.md index c332f1d947..a436fb6eb1 100644 --- a/phase-ends/logs/Phase30.md +++ b/phase-ends/logs/Phase30.md @@ -102,7 +102,7 @@ proceeds; the first P30 commit waits on it. diagnoses + permuter backlog via the T4-fixed grinder. Per-session checkpoint + velocity + 3 metrics. **ROI floor: 2 consecutive sessions < +0.3pp instr each with all lanes exercised.** -- [x] **T4 β€” Carried-tool resolution [xHigh]** βœ… (S28, `commit:1279`). The 2 "Phase-22 grinder bugs" +- [x] **T4 β€” Carried-tool resolution [xHigh]** βœ… (S28, `feb32ed23`). The 2 "Phase-22 grinder bugs" were struck as STALE in S27 (already fixed). This session: **`--fix-def-sig` posture audited clean** (defaults False, one consumer, no caller passes it) β€” and the audit found the live hazard the earlier pass missed: `docs/decision-log.md` still recommended making it @@ -177,7 +177,7 @@ proceeds; the first P30 commit waits on it. stub on a named wall/behemoth/queue ledger** β€” 140/140 byte-identical throughout. ## Blockers -- (none) β€” the precondition (Drew's milestone-close commit) landed at `commit:1213`. +- (none) β€” the precondition (Drew's milestone-close commit) landed at `0acd4cc5d`. --- @@ -321,7 +321,7 @@ the R34 second oracle for the one class it cannot see, and it costs no build. # β–Ά (superseded by S50) SESSION S49 CHECKPOINT β€” FINAL (2026-08-13) > **Tree CLEAN** but for R23 `db.*.gbf` churn + a regenerable `.run/backlog.jsonl` edit β€” never -> stage either. **Nothing running.** 179 commits this session (`commit:1776`..`commit:1891`). +> stage either. **Nothing running.** 179 commits this session (`b3713cc3c`..`bcc3130eb`). > Gate at close: **`check-all` 213 passed / 0 failed of 213** from a CLEAN rebuild (R22 run **5Γ—** > this session, 213/213 every time). > **Fleet: 95.2% instr Β· 89.9% distinct Β· 96.56% fn-count Β· INCLUDE_ASM stubs 12,468.** @@ -569,7 +569,7 @@ curve, not a regression: its tier was 29 Opus-band / 14 jr vs wave 2's 8 / 5, me 2. **The 4 wave-2 binary-gate misses** (cheap, named): `func_80187960` PLUMBING (`conflicting types for func_8012CAE4` β†’ Β§161c cast-at-call-site) Β· `func_8017EEEC` CARVE-REFUSED Β· `func_8017DF40` + `func_8018A974` DIFF (the Β§52b population). -3. ~~Wave-2/3 idiom harvest~~ β€” **PARTIALLY DONE (`commit:1675`, Β§163a-e, cookbook 497 sections).** +3. ~~Wave-2/3 idiom harvest~~ β€” **PARTIALLY DONE (`57cef6325`, Β§163a-e, cookbook 497 sections).** The waves flagged ~40 candidates; **5 were vetted and banked**, the other **~35 are catalogued by function in Β§163z** and are explicitly UNVETTED (R14 β€” one agent's reconstruction until re-measured). A skeptic-agent dedupe pass over Β§163z is real remaining value: Β§163d alone @@ -625,14 +625,14 @@ he was right.** Every agent tool call is recorded in the run transcript, content the transcripts proved recoverable. **THE md_ MODULE LANE** β€” two mechanisms, both misfiled as "module problems", neither actually one: -Β· **FIXED (`commit:1626`), and it was never module-specific.** `scope_data_externs._body_open_brace` +Β· **FIXED (`ba1fead35`), and it was never module-specific.** `scope_data_externs._body_open_brace` ran both scans on UNMASKED text, so for a draft whose header comment says *"the `do { } while (0)` around the loop-1 call is a REGISTER-ALLOCATION lever"*, the signature regex matched the COMMENT line naming the function and the brace search found the COMMENT's `do {`. Carried externs were spliced INTO the comment β€” silently commented out β†’ `'D_8011511A' undeclared`, classified CC1-FAIL, so it read as a property of the SIBLING when it was a property of the EXEMPLAR'S PROSE. **Every richly-commented agent draft is a carrier.** Measured: 0/4 β†’ **4/4**. -Β· **NAMED, NOT FIXED (`commit:1627`).** Β§154-A leading-island layout: a module binds `.rodata` at 0x0 +Β· **NAMED, NOT FIXED (`ec1f388d1`).** Β§154-A leading-island layout: a module binds `.rodata` at 0x0 to the SAME subseg as its code, so the object's rodata order IS the C file's include chain β€” INCLUDE_RODATA pieces, then each INCLUDE_ASM'd function's MIGRATED table, in address order. That reproduces the island exactly WHILE THE FUNCTION IS A STUB; matching it PRUNES the `.s`, the table @@ -651,7 +651,7 @@ the transcripts proved recoverable. **1. THE HARDENED HARNESS HELD β€” 0 drafts lost** (wave 2 lost 21 of 26). Per-agent output dir `.run/wave3//` + "never delete or modify anything outside your own directory, do not clean up" + a verifier that re-runs `sha1sum` LAST and reports it separately. **Keep this contract in every -wave prompt.** `tools/recover_drafts.py` (`commit:1650`) is the backstop if it ever fails again. +wave prompt.** `tools/recover_drafts.py` (`c0e64f48b`) is the backstop if it ever fails again. **2. PRIOR-NOTES SEEDING IS THE BEST LEVER FOUND THIS SESSION β€” 7 of 9 seeded targets converted**, including ALL THREE wave-2 whole-binary-gate misses and both long-standing NEARs: `func_80189540` (551 ins, was NEAR +2 β€” the session's largest crack) and `func_8017C3BC` (407 ins, was NEAR 17). @@ -685,7 +685,7 @@ gets read as "17 codegen walls". Reverted, re-gated clean: **9 banked**, and 9 o re-gated TOGETHER per binary. **One stray comment had masked eight real matches.** **STILL OPEN:** `gate_stage` has no revert guarantee for an exception raised OUTSIDE its stage loop (`jtbl_family_bank._bank` documents fixing exactly this class in its own wrapper β€” port it). -**THE HARNESS IS NOW IN THE REPO** (`tools/wave/crack_wave.js` + README, `commit:1703`). It had lived +**THE HARNESS IS NOW IN THE REPO** (`tools/wave/crack_wave.js` + README, `54de1bf24`). It had lived only in the workflow scratch dir, so each wave rebuilt it from memory β€” which is how its cookbook citation list went stale at Β§162 while Β§163 (5) and Β§164 (82) were banked in between. **A wave 5 launched from the old script would have re-derived laws already on disk.** The README records the @@ -699,7 +699,7 @@ prior-notes seeding, size routing, and "name every banked block in the citation verifiers). Resuming with **byte-identical args** replayed the 22 finished cracks from cache and re-ran only the dead ones: **a limit outage costs the unfinished work only.** Worth knowing before anyone kills a wave that hit a limit. -**⚠ AND IT EXPOSED A REPORTING BUG OF MINE (fixed, `commit:1742`).** `crack_wave.js` classified +**⚠ AND IT EXPOSED A REPORTING BUG OF MINE (fixed, `a867deab6`).** `crack_wave.js` classified anything without `verdict_check.confirmed` as **refuted** β€” so 22 drafts whose VERIFIER DIED were reported as 22 refutations, with `evidence: "verifier died"` the only tell. **Acting on that would have discarded the wave.** Same disease as S47's `no-diagnostic` classifier and this session's @@ -723,7 +723,7 @@ fingerprint of a version mismatch, **not** a codegen residual. Use `--aspsx-vers **0 UNVERIFIED** (the new field earning its keep), 4 NEAR β†’ **24 BANKED (60%)**; propagation 23 of 24 families. **Oracle delta 110.** The 60% is honest: this tier was mostly residue that had already resisted 1-5 attempts, and the first pool where Γ—2 families dominate. -**πŸ”‘ THE FINDING OF THE CAMPAIGN β€” AND IT IS NOT A COMPILER IDIOM (`commit:1748`, Β§166a).** +**πŸ”‘ THE FINDING OF THE CAMPAIGN β€” AND IT IS NOT A COMPILER IDIOM (`80f3ee739`, Β§166a).** `func_8017F2D4` was "MATCH standalone / DIFF at gate" **SEVEN times across five waves**. Every attempt hunted codegen. **The body was byte-correct from the first draft.** The fault: the notes named the WRONG DESTINATION TU β€” `..._jr_8017C340.c` holds only a CALLER and a prototype, while the @@ -756,7 +756,7 @@ weight (members Γ— nins), not by tier.** (The plan's "Γ—2 pays only 2Γ—" also un crack banks ~109 ins vs a singleton's ~62, i.e. ~1.8Γ— β€” thin, but still the better lane.) ## βœ… WHAT S48 LANDED β€” three instrument repairs, 91 banks, 0 decompilation -**1. `JTBL_PADS` did not follow its span through jr isolation** (`commit:1578`) β€” THE 0b blocker, +**1. `JTBL_PADS` did not follow its span through jr isolation** (`ec749fa58`) β€” THE 0b blocker, and it fails TWO ways: the bare-isolate path leaves the stale line on the residual object (`consumed 0 rodata .align(s) but 4 pad spec(s) given` β€” S47's hard error), while the `jtbl_family_bank` path re-runs `jtbl_carve`, whose `set_pads_vars` regenerates the block keyed by @@ -767,7 +767,7 @@ reported only as `built, bytes differ`. Fix: `jr_isolate_all` repoints the pads DISAGREEING oracle in `jtbl_carve.set_pads_vars` that refuses when a spec would vanish for a subseg no longer in the carve set (R34). R37 probe: `func_801789AC` β†’ ov_SC02_037 went `built, bytes differ` β†’ **BANKED**. -**2. A def item can OPEN inside a block comment** (`commit:1606`) β€” item boundaries are +**2. A def item can OPEN inside a block comment** (`dba6defb1`) β€” item boundaries are `;`-terminated, so a decl whose TRAILING comment wraps hands the continuation to the next item; `_proto_from_lines` starts `_strip` with `in_block=False` and renders comment prose as the return type: `extern * a prototyped (s32) decl is … */ void func_80151664(void);`. It COMPILED (the @@ -776,7 +776,7 @@ hoist emits the opening `/*` right above, so the garbage lands back inside a com **That was the whole isolate-fail class: 23 slots.** Applied `family_remap`'s D1 backstop (a `*/` with no `/*` before it β‡’ the chunk opened inside a comment) and repaired the 16 already-polluted region files; all 3 binaries re-gate BYTE-IDENTICAL. -**3. `_carry_typedefs`' already-carried test was line-oriented** (`commit:1607`) β€” it required the +**3. `_carry_typedefs`' already-carried test was line-oriented** (`6eea1ac6a`) β€” it required the name on the same line as the keyword, which `typedef struct Foo { … } Foo;` never satisfies, so the preamble's own multi-line typedefs were carried TWICE (`redefinition of struct Foo_8013C0F8`). One parser (`_typedef_blocks`) now serves both callers (R33). @@ -795,8 +795,8 @@ One parser (`_typedef_blocks`) now serves both callers (R33). **The wave** (`wf_45e34026-aed`, 21 agents, 3.36M tok, 70 min): 12 top-weight zero-crack families, cracked against `match_one`, EVERY claimed MATCH re-gated by an independent adversarial verifier, then gated whole-binary. **9/12 agent-MATCH Β· 0 refuted Β· 8/12 banked (67%) Β· 3 NEAR Β· 0 FAIL.** -Then propagation: **18 of 35 open member slots** banked (`commit:1621` `commit:1622` `commit:1623` -`commit:1624`), R22 213/213. Full cycle = 8 cracks β†’ **26 banked instances / 3.36M tok β‰ˆ 129k per +Then propagation: **18 of 35 open member slots** banked (`65204c205` `c824c19a3` `b1f03be9e` +`e4471fd03`), R22 213/213. Full cycle = 8 cracks β†’ **26 banked instances / 3.36M tok β‰ˆ 129k per instance** β€” but see the md_ residue above before using that as wave 2's price. **THE ONE THAT PROVES THE GATE:** `func_8017F2D4` passed `match_one`, passed an INDEPENDENT adversarial verifier that re-ran the gate itself, and the whole-binary gate still classified it @@ -807,7 +807,7 @@ supplied the exact signature, and one where reading the DESTINATION TU fixed eve free. That agent's line is worth keeping: *"reading the destination TU first was worth more than any cross-overlay grep."* Keep it as wave step 0 (it is already in the prompt template). -## πŸ“š THE IDIOM HARVEST β€” Β§162 (`commit:1620`, cookbook now 495 sections) +## πŸ“š THE IDIOM HARVEST β€” Β§162 (`0c5d6fa90`, cookbook now 495 sections) 17 candidates β†’ an independent SKEPTIC agent per candidate, deduped against the whole cookbook (1.59M tok): **NEW 3 Β· SHARPENS 13 Β· COVERED 0**, 1 agent died mid-response (its entry Β§162c is orchestrator-written and labelled the least-audited). The three new laws: **Β§162e** LICM β€” uniform @@ -1278,7 +1278,7 @@ parameter into a local can cost a second callee-saved register (+8 frame, +3 ins before touching pins Β· Β§161c loose-prototype engine helpers: don't fight the TU's `(void)` decl, cast at the call site. -## πŸ“‹ THE ADOPTED ENDGAME PLAN (Fable-5 frontier analysis, 2026-08-11, HEAD commit:1572) +## πŸ“‹ THE ADOPTED ENDGAME PLAN (Fable-5 frontier analysis, 2026-08-11, HEAD d3f3d8ba2) Independent analysis re-derived EVERY headline number from `.run/family_hseq.json` (6,694 / 12,516 / 678,195; the four-way split; reach and size bands; jr 56/208/36,939 β€” all reproduce exactly), then corrected four claims. **Full report is in this session's transcript; the operative content is here.** @@ -1462,12 +1462,12 @@ exemplars** (idiom discovery β€” the only remaining multiplier). Batch ~50 for a fails closed. ## βœ… WHAT S46 LANDED (10 commits) -- **S45 blocker closed** (`commit:1532`) β€” instrumentation, not a repair: it did not reproduce at HEAD. -- **IDXTAB/DESTPTR load map** (`commit:1533`) β€” `tools/idxtab_map.py`, controls-gated; the blocker was our +- **S45 blocker closed** (`91c64ce92`) β€” instrumentation, not a repair: it did not reproduce at HEAD. +- **IDXTAB/DESTPTR load map** (`9351b17f4`) β€” `tools/idxtab_map.py`, controls-gated; the blocker was our own tracker being blind to gcc's indexed global-array read (cookbook Β§155c). Corrects Β§S45 p6. -- **29 fns / +2,815 member-instances** (`commit:1534`), then **propagation 24min β†’ 11.4min AND +62 MORE - instances** (`commit:1535`) β€” the faster path was also more correct (the old necessity probe over-excluded). -- **Crack wave batch 1** (`commit:1537`) β€” 14 fns / 27 sites; **recovery ladder +6** (`commit:1538`). +- **29 fns / +2,815 member-instances** (`b00531212`), then **propagation 24min β†’ 11.4min AND +62 MORE + instances** (`f6e48b60c`) β€” the faster path was also more correct (the old necessity probe over-excluded). +- **Crack wave batch 1** (`0b303f7fe`) β€” 14 fns / 27 sites; **recovery ladder +6** (`d54d0a899`). - **400+ cascade** β€” 20/47 match_one, **11 banked** (400–952 ins), 6 near (jr/Β§53), 1 failed. - **Waste prevention** β€” `tools/validate_targets.py` + wired into `wave_snapshot` (fails closed, negative-control-proven) + the cascade `done()` short-circuit on SKIPPED. See accelerators A9. @@ -1499,7 +1499,7 @@ wrong, not finding another route.* # πŸ›‘ (superseded by FINAL) SESSION S46 CHECKPOINT (2026-08-08) > **Tree CLEAN** (`src/`+`config/` = 0 modified) but for R23 `db.*.gbf` churn β€” never stage. -> **Nothing running.** HEAD `commit:1535`. **NO phase close** β€” T5 unopened, needs Drew's gate-2. +> **Nothing running.** HEAD `f6e48b60c`. **NO phase close** β€” T5 unopened, needs Drew's gate-2. > Gates at close: `check-all` **213/213**, `tools-health` **OK**, dedup **1949 validated / 0 failed**, > C1 coverage 249,233/249,233. Fleet **93.8% instr / 87.2% distinct / 95.69% fn-count**, 0 NON_MATCHING. @@ -1547,19 +1547,19 @@ wrong, not finding another route.* as open, and design the test so the disagreement resolves itself.** ## βœ… WHAT THIS SESSION LANDED (4 commits, all gate-verified) -- `commit:1532` **the S45p9 blocker closed** β€” but the honest finding first: the failure does NOT +- `91c64ce92` **the S45p9 blocker closed** β€” but the honest finding first: the failure does NOT reproduce at HEAD, so the fix is *instrumentation*, not a repair. `apply_plan` no longer silently skips an unplaceable site (R32 gaps + per-site diagnosis), `find_site`'s `'stub'` verdict is honoured (a stub whose asm-subdir β‰  its file stem was invisible), and every abort restores kept reconciles AND diffs the worktree to PROVE it (the Β§156 class, different path). NC-proven. -- `commit:1533` **the master IDXTAB/DESTPTR load map** (Drew's idea) β€” `tools/idxtab_map.py`, +- `9351b17f4` **the master IDXTAB/DESTPTR load map** (Drew's idea) β€” `tools/idxtab_map.py`, controls-gated; 213 binaries β†’ 143 with a table (294), 141 destinations. The blocker was our own tracker: blind to gcc's indexed global-array read (`lui`/`addu`/`lh lo(base)`), so both tables returned ZERO references. **Corrects Β§S45 p6** (the SC03 trio is NOT ov_SC03_001's β€” that table is identical in all 141 overlays) and **records what it CANNOT do**: absence β‰  dead code, since byte-proved loaders are absent from this route too. β†’ `docs/idxtab-map.md`, cookbook Β§155c. -- `commit:1534` **the bank**: 29 functions Γ—N = **+2,815 member instances**, R22 213/213. -- `commit:1535` **the propagation parallelised**: 24 min β†’ 11.4 min AND **+62 more instances** (the old +- `b00531212` **the bank**: 29 functions Γ—N = **+2,815 member instances**, R22 213/213. +- `f6e48b60c` **the propagation parallelised**: 24 min β†’ 11.4 min AND **+62 more instances** (the old necessity probe was over-excluding). Threads β†’ PROCESSES was the fix; my thread version measured 0–4 builds at load 3. β†’ `docs/accelerators.md` A8, memory `fleet-tool-parallelism-defaults`. - **NEW (Drew, standing): `docs/accelerators.md`** β€” the reusable-workflow ledger. Every late @@ -1648,7 +1648,7 @@ eight separate slips. Propose at T5 alongside R37. --- # πŸ›‘ (superseded by part 9) SESSION S45 CHECKPOINT part 8 (2026-08-07 late) β€” the SC03 trio SOLVED Β· Stage 1+2 landed Β· propagation in flight -> **Effort ultracode.** HEAD `commit:1528`. ⚠️ **A PROPAGATION WAS RUNNING AT CHECKPOINT TIME** β€” +> **Effort ultracode.** HEAD `537bd90a9`. ⚠️ **A PROPAGATION WAS RUNNING AT CHECKPOINT TIME** β€” > see "IF THE TREE IS DIRTY" below before anything else. ## βœ… THE SC03 TRIO IS SOLVED (static decode, after the runtime tracer supplied the anchor) @@ -1696,7 +1696,7 @@ engine_core.h +2485). Expected: 30 fns β†’ ~3,163 member-instances. propagation now restores itself β€” but verify, don't assume. ## πŸ“Œ ALSO CARRIED -- 44 functions banked this session (R22 213/213 at `commit:1519`); ov_SC02_037 626β†’597 stubs. +- 44 functions banked this session (R22 213/213 at `dcc76228b`); ov_SC02_037 626β†’597 stubs. - **Stage 1** (reconcile ledger + shared-state RW lock, 3 NCs) and **Stage 2** (`verify_worktree`, GREEN 87s, NC fires RED) of `docs/concurrency-design.md` are DONE. **Stage 5 CANCELLED** (verify is 87s; it cannot lag). **Stage 3** (wave dispatcher/gate farm) @@ -1714,7 +1714,7 @@ engine_core.h +2485). Expected: 30 fns β†’ ~3,163 member-instances. # πŸ›‘ (superseded by part 8) SESSION S45 CHECKPOINT part 7 (2026-08-07 late) β€” 29 BANKED Β· R22 213/213 Β· F1 CONFIRMED LIVE β€” FRESH SESSION SAFE HERE > **Tree CLEAN** but for R23 `db.*.gbf` churn. **Nothing running.** Effort ultracode. -> **NO phase close** β€” T5 unopened, needs Drew's gate-2. HEAD `commit:1519`. +> **NO phase close** β€” T5 unopened, needs Drew's gate-2. HEAD `dcc76228b`. ## βœ… BANKED: 29 novel functions Β· `make clean && extract-all && check-all` β†’ **213 passed / 0 failed** `ov_SC02_037` 626 β†’ **597 live stubs**. Gated with BOTH guards: `GATE_NO_ARITY=1` + @@ -1727,9 +1727,9 @@ reconcile on disk when it buys the byte-match; a fn dropped by a LATER iteration "all candidates dropped" exit) left that edit behind β†’ no-proto'd externs for functions never propagated β†’ `ov_SC07_010: passing arg 2 of func_80146A6C makes pointer from integer` β†’ 141/213 fail. - **My first attribution to F1 was WRONG** (R14): no arity journal touched func_80146A6C (74/26/4 - entries checked) and the arity undo reported success in every log. `commit:1519`'s commit message + entries checked) and the arity undo reported success in every log. `dcc76228b`'s commit message carries the wrong attribution β€” corrected forward in cookbook Β§156, history not rewritten. -- **FIXED + PROVEN** (`commit:1521`, `commit:1522`): a reconcile LEDGER β€” every kept reconcile recorded +- **FIXED + PROVEN** (`fe946595f`, `0ef53c7b2`): a reconcile LEDGER β€” every kept reconcile recorded against its fn, undone when the fn leaves `plan`, all outstanding restored before the failure exit. `tools/test_reconcile_ledger.py` applies a real reconcile for the exact overlay+fn (35 edits / 18 files) then asserts all 25 files byte-identical after the undo. PASS. @@ -1776,7 +1776,7 @@ apparent false claim was MY verifier missing `--o0` on an -O0 function β€” alway # πŸ›‘ (superseded by part 7) SESSION S45 CHECKPOINT part 6 (2026-08-07 late) β€” WAVE-1 BANKED 0; the frontier DEFINITION was the bug β€” FRESH SESSION SAFE HERE > **Tree CLEAN** (verified: `git checkout -- src/ config/` after the gate left 659 files dirty; > `git status` on src/+config = 0). **Nothing running.** Effort ultracode. **NO phase close.** -> Commits: `commit:1514`, `commit:1515`, `commit:1517`, `commit:1516` + this one. +> Commits: `a3976d73e`, `0bd334c30`, `0499c1ec8`, `f5c73c51f` + this one. ## ⚠️ WAVE 1 (wf_077a5ee7-afd) BANKED **ZERO**. Read this before re-running anything. **50 Sonnet agents, 2.5M tokens, 0 banked.** Root cause was MINE, in two layers: @@ -1835,7 +1835,7 @@ from it, with args READ FROM THE FILE, never hand-typed. # πŸ›‘ (superseded by part 6) SESSION S45 CHECKPOINT part 5 (2026-08-07 late) β€” THE LAST 5 ARE STATIC-UNRESOLVABLE (proven) > **Tree CLEAN** but for R23 `db.*.gbf` churn (never stage). **Nothing running.** Effort Max. -> **NO phase close** β€” T5 unopened, needs Drew's gate-2. Commits: `commit:1514`, `commit:1515`. +> **NO phase close** β€” T5 unopened, needs Drew's gate-2. Commits: `a3976d73e`, `0bd334c30`. ## β–Ά THE HEADLINE: p3/p4's "static-RE homework" is CLOSED β€” as a NEGATIVE, with evidence The last 5 (MAIN/7, MAIN/9, SC03/53/54/56) are **not statically derivable**. Two independent @@ -2265,7 +2265,7 @@ shipping.** In `gate_stage`'s DEFAULT pipeline since Phase 20; **318 of 44,833 s line it mis-reads. **β†’ Β§143.** ### S1e β€” the "distinct-code regression" NEVER HAPPENED -A **stale committed digest** (`commit:1426` generated from a tree holding work reverted before the +A **stale committed digest** (`10f954627` generated from a tree holding work reverted before the commit landed; overstated +7,879 ins / +130 uniq). True delta: **everything rose.** Fixes: `progress.py stub_addrs` no longer swallows `corpus.stubs` (it had reported **100.00%/100.00%** in a tree with no `asm/`); the same swallow fixed in `cast_call_sites.tu_for` + `reconcile_tu.tu_for` @@ -2388,14 +2388,14 @@ an honest denominator moves the headline DOWN. ## πŸ”‘ THE SESSION'S HEADLINE β€” S38's "distinct-code REGRESSION" NEVER HAPPENED The v4 checkpoint gated the phase's best lever on it (*"do NOT scale the alias lever"*). It was a -**STALE COMMITTED DIGEST**. `commit:1426`'s digest was generated from a working tree still holding work +**STALE COMMITTED DIGEST**. `10f954627`'s digest was generated from a working tree still holding work **reverted before the commit landed** (+7,879 ins / +130 uniq overstated) and never regenerated, so the next HONEST digest read as a fall. | | instr | distinct | uniq | |---|---|---|---| -| `commit:1426` **true** | 12,394,533 | 5,022,306 | 77,895 | -| `commit:1426` *as committed* | 12,402,412 | 5,029,324 | **78,025** | +| `10f954627` **true** | 12,394,533 | 5,022,306 | 77,895 | +| `10f954627` *as committed* | 12,402,412 | 5,029,324 | **78,025** | | its successor, true **=** committed | 12,405,402 | 5,025,082 | 77,952 | **True delta over that span: instr +10,869 Β· distinct +2,776 / +57 uniq β€” EVERYTHING ROSE.** @@ -2656,7 +2656,7 @@ Both passed their per-binary/per-draft gate and FAILED the clean-tree rebuild: | **S2** jr families | DONE β€” 10 members; 7 families now CLASSIFIED | | **S3** the whale | βœ… **COMPLETE β€” 138/138 (S39).** `ov_SC07_010` closed: `o0_subsplit --lo 0x80144B9C --hi 0x801457A4` (1 stub, **0 already-matched in range** β‡’ no Β§126 island; 3 regions, `_o0c` free) β†’ split byte-neutral β†’ banked via `../shared/func_80144B9C.h` β†’ **R22 140/140 clean-tree**, fleet instr **+770** (12,405,402 β†’ 12,406,172). The S38 cause ("reused an existing `_o0c`") did not recur β€” `o0_subsplit.free_letters` picks an unused suffix. Two decl conflicts hit on the way, enumerated with `cdecl` in ONE pass (R33) instead of one build at a time: of the header's 94 symbols the Β§8b carried layer re-declared 3, and 2 conflicted (`D_801274D0` `s32(*)(s32)`, `D_801274CC` `void*` vs header `s32`) β€” dropped, matching all 137 precedents (0 of them carry either), byte-neutral per Β§8c. **The 61 SC07 `-O0` members remain NOT attempted.** | | **S1d** the alias class | **138/138 on family 1**; generalised harvest committed w/ the accounting caveat | -| **S1e** (#11) | βœ… **RESOLVED β€” THE REGRESSION NEVER HAPPENED (S39).** The `commit:1426` digest was committed **STALE** (generated from a tree still holding work reverted before the commit landed; overstated **+7,879 ins / +130 uniq**, never regenerated), so the next honest digest read as a fall. True delta 843β†’HEAD: **instr +10,869 Β· distinct +2,776 ins / +57 uniq β€” everything ROSE.** HEAD's digest reproduces EXACTLY. **β‡’ THE ALIAS LEVER IS UNGATED β€” scale it (Β§61 small batches).** Both recorded leads were wrong (R14): `progress.py:423`'s `SIG` feeds **fn-count only**, and "reverted to INCLUDE_ASM" died on one grep (483 removed, **0 added**). Fixes: `stub_addrs` no longer swallows `corpus.stubs` (the bare `except` byte-witnessed reporting **100.00%/100.00%** in a tree with no `asm/`); **NEW `make audit-digest`** in `tools-health` (integers, not percentages β€” the staleness printed as "94.4%" both sides), negative-control-proven vs the stale digest; the SAME swallow fixed in `cast_call_sites.tu_for` + `reconcile_tu.tu_for`, where it reconciled against the **wrong TU** (the bug that file's own docstring exists to fix). cookbook **Β§140** Β· decision-log 2026-08-04. | +| **S1e** (#11) | βœ… **RESOLVED β€” THE REGRESSION NEVER HAPPENED (S39).** The `10f954627` digest was committed **STALE** (generated from a tree still holding work reverted before the commit landed; overstated **+7,879 ins / +130 uniq**, never regenerated), so the next honest digest read as a fall. True delta 843β†’HEAD: **instr +10,869 Β· distinct +2,776 ins / +57 uniq β€” everything ROSE.** HEAD's digest reproduces EXACTLY. **β‡’ THE ALIAS LEVER IS UNGATED β€” scale it (Β§61 small batches).** Both recorded leads were wrong (R14): `progress.py:423`'s `SIG` feeds **fn-count only**, and "reverted to INCLUDE_ASM" died on one grep (483 removed, **0 added**). Fixes: `stub_addrs` no longer swallows `corpus.stubs` (the bare `except` byte-witnessed reporting **100.00%/100.00%** in a tree with no `asm/`); **NEW `make audit-digest`** in `tools-health` (integers, not percentages β€” the staleness printed as "94.4%" both sides), negative-control-proven vs the stale digest; the SAME swallow fixed in `cast_call_sites.tu_for` + `reconcile_tu.tu_for`, where it reconciled against the **wrong TU** (the bug that file's own docstring exists to fix). cookbook **Β§140** Β· decision-log 2026-08-04. | | **S4** draft-recovery | πŸ”„ **IN PROGRESS (S39) β€” the 6 open wave-6 drafts triaged; 4 BANKED (+1,905 ins), R22 140/140.** `func_801919A0` (ov_SC06_032, 710) Β· `func_80189030` (ov_SC03_001, 557) Β· `func_801878E8` (ov_SC04_018, 513) Β· `func_8018A564` (ov_SC02_027, 125). **⚠️ THE FINDING: all four banked UNCHANGED β€” no new work on the drafts.** S38 recorded them blocked on a class needing a fix ("cracking this one class frees 6 drafts at once"); they were already freed by S38's own tool repairs (the `jr_isolate_all`/`overlay_src_split` alias-DELETION blindness + `harvest_verify._reload_corpus`). The drafts were correct; the instruments were failing them. **β‡’ RE-GATE STORED DRAFTS AFTER ANY TOOL REPAIR before treating a stored verdict as a fact about the code** β€” this is the 5th "wall" this phase to resolve to our own tooling. Note each bank also did a jtbl carve β‡’ config touched β‡’ fleet blast radius (R22 mandatory, run). **Left on the backlog as GENUINE codegen residuals (not forced, P9):** `func_8017C974` (ov_SC01_077, 947, close=47 REGALLOC-PERM, 12 permuter variants inert) Β· `func_80188C68` (ov_SC03_124, 551, close=370, no twin anywhere). **Family propagation DONE:** `func_801878E8` **4/4 siblings BANKED** (+2,052 ins, ~0 agent tokens) via `jtbl_family_bank.py` β€” `family_sweep --hseq` had correctly REFUSED it (Β§53 interlock: `has_mid_jr` β‡’ jtbl carve route, "a 0% from this path would be a TOOL artifact, not a wall"), and the tool requires a CLEAN tree (it reverts from HEAD per sibling), so the Γ—1 banks had to commit first. R22 140/140. **Stored-draft re-gate MEASURED (S39, `docs/calibration.md`):** A10's "0/958" was re-tested after S38's tool repairs β€” **fresh wave-6 drafts 4/6 Β· unbiased stored sample 1/12 Β· the two REVERTED overlays 3/17** (+146 ins banked: `ov_SC06_030` func_80161208/func_80162CCC, `ov_SC07_010` func_801506A4/func_8016F0AC; R22 140/140, incl. a fleet-wide `engine_core.h` no-proto arity edit proven byte-neutral). **A10 broadly STANDS** β€” ~8% on the general pool is not a harvest and a 1,155-wide sweep (1,155 whole-binary builds) is NOT justified. The real rule: **re-gate the drafts a repair plausibly touched, targeted by its blast radius β€” not the whole ledger.** **Still to do in S4:** the 39 draft-exemplar families (382 members) + the 2 resident stubs with gate-rejected match_one-MATCH drafts. | | S5 Β· S6 Β· S7 | pending | @@ -3064,7 +3064,7 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. # πŸ›‘ SESSION-33..37 CHECKPOINT (2026-08-04, wave 5 BANKED) β€” FRESH SESSION SAFE HERE > **NOTHING IS RUNNING. Tree lock FREE. Tree CLEAN** but for the R23 `db.*.gbf` churn β€” never stage. > Effort: **ultracode**. **R22 clean-fleet run TWENTY times this session, 140/140 every time.** -> Last CODE commit `commit:1393` (wave-5 bank); this checkpoint commits on top of it. +> Last CODE commit `af16c38a6` (wave-5 bank); this checkpoint commits on top of it. > **Drew's standing decision: NO phase close β€” keep grinding.** > **VERIFY THIS BLOCK IS CURRENT BEFORE TRUSTING IT** (it goes stale, and stale is worse than > absent): `git log --oneline -3` should show this checkpoint at or near HEAD, and @@ -3176,7 +3176,7 @@ Manifest: `.run/s37_wave.json` (16 targets / 16,884 templatable ins). Script: `. ## FLEET (at the last commit, before the ungated drafts) **96.27% fn-count Β· 94.1% instr-weighted Β· 88.6% distinct-code** (77,723 uniq) Β· dedup **1910/0** Β· -C1 241216/241216 Β· **0 NON_MATCHING** (G4). HEAD `commit:1391` + this checkpoint. +C1 241216/241216 Β· **0 NON_MATCHING** (G4). HEAD `906484075` + this checkpoint. Session opened 96.01 / 93.6 / 88.0. Phase opened 92.00 / 87.5 / 78.0 β‡’ **+4.27 / +6.6 / +10.6pp.** ## WHAT THIS SESSION DID @@ -3265,7 +3265,7 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. # πŸ›‘ (superseded) SESSION-33/34/35 CHECKPOINT (2026-08-04) > **Tree CLEAN** but for the R23 `db.*.gbf` churn β€” never stage. Effort: **ultracode**. -> **R22 clean-fleet run FIFTEEN times, 140/140 every time.** HEAD `commit:1388`. +> **R22 clean-fleet run FIFTEEN times, 140/140 every time.** HEAD `7a4abddbf`. > **Drew's standing decision: NO phase close β€” keep grinding, run waves all night.** > ⚠️ A wave (`.run/s35w.js`, 13 targets / 17,644 ins) may still be IN FLIGHT β€” check > `/workflows` and `.run/s35/*/*.c` before assuming the tree is idle. Agents write `.run/` ONLY. @@ -3354,7 +3354,7 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. # πŸ›‘ (superseded) SESSION-33 CHECKPOINT (2026-08-04) > **Nothing is running. Tree lock FREE. Tree CLEAN** but for the R23 `db.*.gbf` churn β€” never stage. > Effort: **ultracode**. **R22 clean-fleet run FOUR times this session, 140/140 every time.** -> HEAD `commit:1380`. **Drew's standing decision: NO phase close β€” keep grinding.** +> HEAD `62042f65c`. **Drew's standing decision: NO phase close β€” keep grinding.** ## FLEET β€” R22 **140 passed / 0 failed of 140** **96.10% fn-count Β· 93.7% instr-weighted Β· 88.0% distinct-code** Β· dedup **1908/0** Β· @@ -3363,9 +3363,9 @@ Phase opened 92.00 / 87.5 / 78.0 β‡’ **+4.10pp fn, +6.2pp instr, +10.0pp distinc ## WHAT S33 DID β€” lane 2 of the S10 checkpoint (the propagation lag), taken FIRST on the standing "probe the cheap lever before funding the expensive one" doctrine. **~0 agent tokens.** -- **SC07 EXTEND: 0/36 β†’ 31/36.** Commits `commit:1377` Β· `commit:1378`. +- **SC07 EXTEND: 0/36 β†’ 31/36.** Commits `eb2e72328` Β· `16a1dabc7`. - **PROPAGATE head: 7,398 of 18,545 ins banked** β€” `func_80147364` Γ—137 (4,110) + `func_8012A598` - Γ—138 (3,288). Commits `commit:1379` Β· `commit:1380`. + Γ—138 (3,288). Commits `c7ad41c8a` Β· `62042f65c`. - **Distilled to cookbook Β§138** (+ index regenerated) β€” the full triage is there, not here. ## πŸ”‘ THE FINDING: a gate refusal in these lanes is a DECLARATION, not codegen @@ -3438,7 +3438,7 @@ current single-line regex matches **90**, and the one miss is `func_801466F0`. T class; it is one function worth 3,288 ins. Fix the regex (join-and-map, the Β§134 shape) or hand-author. ## ⚠️ MY WRONG PREDICTION, CORRECTED BY THE BYTES (R14/R37) β€” and it refines Β§138 -Commit `commit:1382` relaxed 42 `extern void func_80146C3C(void);` decls and its message implies that +Commit `7a6a09379` relaxed 42 `extern void func_80146C3C(void);` decls and its message implies that unblocked the PROPAGATE remainder. **It did not.** The re-run banked **0/1 in every one of the 134 overlays**, with the same error β€” because **`DEFINE_func_8016BA68` declares that symbol `(u8*)`, not `(void)`**, and the TU declares it `(void)`. That is the **MIRROR** of the EXTEND-lane @@ -3503,7 +3503,7 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. # πŸ›‘ (superseded) SESSION-31/32 CHECKPOINT (2026-08-03) > **Nothing is running. Tree lock FREE. Tree CLEAN** but for the R23 `db.*.gbf` churn β€” never stage. -> Effort: **ultracode**. **R22 clean-fleet run TWELVE times, 140/140 every time.** HEAD `commit:1375`. +> Effort: **ultracode**. **R22 clean-fleet run TWELVE times, 140/140 every time.** HEAD `1859266d6`. > **Drew's standing decision: NO phase close β€” keep grinding** (task #15). ## FLEET β€” R22 **140 passed / 0 failed of 140** @@ -3616,7 +3616,7 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. # πŸ›‘ (superseded) SESSION-30 CHECKPOINT (2026-08-01, S6 complete through wave 3) > **Nothing is running. Tree lock FREE. Tree CLEAN** (0 non-ghidra entries; the `db.*.gbf` churn is -> R23 restart-noise β€” never stage). **HEAD `commit:1352`.** Effort: xHigh β†’ **ultracode** (Drew enabled +> R23 restart-noise β€” never stage). **HEAD `bfbcb86b3`.** Effort: xHigh β†’ **ultracode** (Drew enabled > mid-session for the waves). `make tools-health` green at session open; frontier REGENERATED at HEAD > after the last bank, so every number below is current (not carried forward). @@ -3625,9 +3625,9 @@ No bad bytes from any of them β€” the byte-gate and R22 caught everything. 0 NON_MATCHING. Phase opened 92.00 / 87.5 / 78.0 β‡’ **+3.42pp fn, +4.9pp instr, +7.5pp distinct.** ## WHAT S6 DID β€” ~3,500 member-matches in 11 commits -`commit:1343` S6a 842 Β· `commit:1344` S6b +740 Β· `commit:1345` S6e fix Β· `commit:1346` B +268 Β· -`commit:1347` S6f calib +65 Β· `commit:1348` S6f wave-1 +544 Β· `commit:1349` S6g wave-2 +342 Β· -`commit:1351` S6h wave-3 +673 Β· `commit:1352` cookbook Β§135 (+ 2 checkpoint/doc commits). +`8a519addf` S6a 842 Β· `39558b299` S6b +740 Β· `aa600c56e` S6e fix Β· `381cd56d4` B +268 Β· +`e6cec3073` S6f calib +65 Β· `6e181db77` S6f wave-1 +544 Β· `372dc62d3` S6g wave-2 +342 Β· +`6fe9b66f2` S6h wave-3 +673 Β· `bfbcb86b3` cookbook Β§135 (+ 2 checkpoint/doc commits). **Two distinct engines ran, and BOTH paid:** 1. **Tooling repair (deterministic, ~0 agent tokens).** The pre-fix tools scored the zero-crack @@ -3682,7 +3682,7 @@ via `.run/s6f_gate.py ''` (derives every TU/split; agents' `match_one` MAT # πŸ›‘ (superseded) SESSION-29 CHECKPOINT (2026-08-01, refreshed ~11:2x) > Supersedes the earlier S29 block below (which said "AT GATE 2"; Drew then directed **P30 stays > OPEN** and approved the T6 continuation). **Nothing is running. Tree lock FREE. Tree clean** but -> for the R23 `db.*.gbf` churn (never stage). **HEAD `commit:1335`.** Effort: Max β†’ **xHigh** (Drew). +> for the R23 `db.*.gbf` churn (never stage). **HEAD `1a1463b1c`.** Effort: Max β†’ **xHigh** (Drew). ## FLEET β€” R22 clean-fleet **140 passed / 0 failed** (run 7Γ— this session, 140/140 every time) **94.43% fn-count Β· 91.4% instr-weighted Β· 84.0% distinct-code** (73,787 unique fns) Β· dedup 1905/0 Β· @@ -3774,7 +3774,7 @@ Overlays: **94.7% fn / 91.8% instr / 85.0% distinct**; unmatched **18,635 instan # πŸ›‘ (superseded) SESSION-29 CHECKPOINT (2026-08-01 ~00:40) β€” AT GATE 2 > Supersedes SESSION-28 below. **Nothing is running. Tree lock FREE. Tree clean** but for the R23 -> `db.*.gbf` churn (never stage). **HEAD `commit:1303`.** Effort: **Max** all session. +> `db.*.gbf` churn (never stage). **HEAD `34c667cc2`.** Effort: **Max** all session. > `make tools-health` **RC=0** at close; **R22 clean-fleet run TWICE this session, 140/140 both times.** ## FLEET β€” R22 clean-fleet **140 passed / 0 failed** @@ -3803,13 +3803,13 @@ measured ROI floor (the end of the Γ—138 era after S2), not on a session count. **Start here:** S1's head β€” `0x8014032C` (183 ins Γ—137, jr, per-location, exemplar matched in ov_SC01_077) via `jtbl_family_bank`, **probing ONE sibling first** (the S29 discipline: 1 build instead of 137). Then `0x8017BEBC`, then the Γ—4-straggler families. -Frontier data: `.run/family_hseq.json` (regenerated at HEAD `commit:1303`, same-tree as the digests). +Frontier data: `.run/family_hseq.json` (regenerated at HEAD `34c667cc2`, same-tree as the digests). --- # πŸ›‘ (superseded) SESSION-28 CHECKPOINT (2026-07-31 08:1x) > Supersedes SESSION-27 below. **Nothing is running. Tree lock FREE. Tree clean** but for the R23 -> `db.*.gbf` churn (never stage). **HEAD `commit:1293`** (+ this doc commit). +> `db.*.gbf` churn (never stage). **HEAD `095812000`** (+ this doc commit). > Effort: opened **xHigh** β†’ **Max** for the jr re-measurement and the T2 probe ladder β†’ back to > **xHigh** for the driver + sweep. `make tools-health` RC=0 at session open. > **R22 clean-fleet run THIRTEEN times this session, 140/140 every time** (one 139/140 and one @@ -3821,10 +3821,10 @@ dedup 1905/0 Β· C1 240496/240496 Β· 0 NON_MATCHING. Phase opened 92.00 / 87.5 / β‡’ **+1.25pp fn-count, +1.7pp instr, +2.5pp distinct this phase.** ## 🎯 THE THREE REACH-138 TARGETS + THE SWEEP RESIDUE β€” 270 members banked, 1 wall -**βœ… `func_8013C08C` 0/137 β†’ 137/137** (`commit:1286`) β€” Β§94 type-carry; `E_13C08C` was a MULTI-LINE +**βœ… `func_8013C08C` 0/137 β†’ 137/137** (`197004fb5`) β€” Β§94 type-carry; `E_13C08C` was a MULTI-LINE typedef at FILE scope and `extract_unit`'s backscan cannot carry one (it presents its CLOSING line first). Fix = Β§100 draft-local. Byte-neutral. -**βœ… `0x8013BC7C` 133/133** (`commit:1291`) β€” the sweep residue. My hypothesis (split tracks the `-O0` +**βœ… `0x8013BC7C` 133/133** (`6f6dc6db5`) β€” the sweep residue. My hypothesis (split tracks the `-O0` file) was REFUTED (SC07_006/007/011 were sub-split today and banked anyway), so I staged one member and READ the error: (1) a typedef textually identical to `engine_types.h`'s, which C89 still rejects β€” already handled by `harvest_verify`'s `cdecl.strip_provided_typedefs`; (2) Β§57 self-decl divergence @@ -3847,7 +3847,7 @@ code subseg so each object owns exactly one table.** Drafts preserved at `.run/s (`.run/p30w4_pool.json`). ⚠️ **S28 ROI evidence: a 15-target wave cost 1.33M tokens for 12 banks and +0.00pp headline.** Only worth resuming against HIGH-REACH targets; Γ—2-reach drafting is not where the leverage is. Deal ACROSS binaries so the gate fans out. -3. ~~**[Max] #9 β€” `jtbl_carve` diverges on ov_SC06_018**~~ βœ… **SOLVED + BANKED (S28, `commit:1293`).** +3. ~~**[Max] #9 β€” `jtbl_carve` diverges on ov_SC06_018**~~ βœ… **SOLVED + BANKED (S28, `095812000`).** Root cause: a jtbl **OVER-SPAN**. `sltiu 0xC` names 12 entries, the object emits 12 words, the carve reserved 13 β€” the 13th being ordinary NON-ZERO data spimdisasm ran into the dlabel, which the zero-word trim cannot see. The piece under-filled β‡’ every later symbol slid βˆ’4 β‡’ 812 `%lo` @@ -3914,7 +3914,7 @@ measurement* (SESSION-27's law, re-earned). Re-derive after the campaign exits. # πŸ›‘ (superseded) SESSION-27 CHECKPOINT (2026-07-31 01:25) > Supersedes SESSION-26 below. **Nothing is running. Tree lock FREE. Tree clean** but for the R23 -> `db.*.gbf` churn (never stage). **HEAD `commit:1258`.** +> `db.*.gbf` churn (never stage). **HEAD `0130fb340`.** ## FLEET β€” R22 clean-fleet **140 passed / 0 failed** (verified at HEAD) **92.67% fn-count Β· 88.3% instr-weighted Β· 78.7% distinct-code** (70,590 / 87,459 unique fns). @@ -3974,8 +3974,8 @@ closing on itself. > 00:47 (2026-07-31)** to resume β€” but cron is SESSION-ONLY and dies with this session, so if the > session ended, just follow "RESUME HERE" manually. -**HEAD `commit:1254`.** Fleet at last verified point: **92.59% fn-count Β· 88.2% instr Β· 78.7% -distinct Β· R22 140/140** (commit `commit:1252`). +**HEAD `c0407e7a8`.** Fleet at last verified point: **92.59% fn-count Β· 88.2% instr Β· 78.7% +distinct Β· R22 140/140** (commit `471314da5`). ## ⏳ RUNNING AT PAUSE (check these FIRST) - **`w4-gate`** under `tools/treelock.sh` (pid at pause 1313761): gating wave-4's **68 drafts across @@ -4036,7 +4036,7 @@ gate_stage's scoped add; **OWED AFTER IT LANDS:** a config sweep-up commit β€” j `config/overlays.mk` + splat yamls which `gate_stage --commit` does NOT stage β€” then R22 clean-fleet + report point #2). -**HEAD at checkpoint:** `commit:1223`. **Fleet:** 87.5 / 78.0 / 92.00 (pre-T1a-banks). Tree: T1a's +**HEAD at checkpoint:** `fe8095a24`. **Fleet:** 87.5 / 78.0 / 92.00 (pre-T1a-banks). Tree: T1a's in-flight src/config edits (theirs); `.run/` artifacts. **T0 βœ… (6 commits) Β· T0.5 β–Ά (batch running; main+3 overlays done: +2,241 cached) Β· T1a β–Ά Β· @@ -4401,7 +4401,7 @@ in it, `exec` that function's source (`ast.get_source_segment`) β€” never `impor The S40 close and the S42 checkpoint both list this as item #1/#3 cheap fuel β€” *"20 CC1-FAIL + 5 callee conflicts; the recovery ladder already has every lever."* **Measured today: it does not.** -**Re-derived from the tree, not inherited (R35):** the S40 propagation commit `commit:1465` banked **59** +**Re-derived from the tree, not inherited (R35):** the S40 propagation commit `669367dab` banked **59** function families; **22 of them still have open members β€” 31 instances**, not 26 (the stale count was taken before later sessions moved the board). @@ -4527,7 +4527,7 @@ choice is empirical: `pkt` β‡’ MATCH, `ot` β‡’ 705 off, doubling the first host ## βœ… R22 CLEAN-FLEET β€” **140 passed, 0 failed of 140** `make clean && make extract-all && make check-all` from a genuinely clean tree. **This discharges the -`[R22 PENDING]` caveat on commit `commit:1484`** β€” all five of today's banks are confirmed, not +`[R22 PENDING]` caveat on commit `25402b2eb`** β€” all five of today's banks are confirmed, not incremental-build artifacts (Β§130). ### FLEET AFTER S43 @@ -5147,7 +5147,7 @@ with no matching process. The poll sampled one of those gaps, read "clear", and of-a-process is a sampling test on a gappy signal; it cannot express "a campaign owns the tree." **Recovery (clean, nothing lost that mattered).** Killed the writers; `git checkout -- src/ config/` -back to `commit:1245` (the last R22-verified 140/140 commit); all 58 drafts survive untouched in +back to `5d4167bb3` (the last R22-verified 140/140 commit); all 58 drafts survive untouched in `.run/` because agents never write the tree β€” the discipline that made this cheap. Re-verifying baseline, then re-gating and re-propagating serially under the lock. @@ -5280,7 +5280,7 @@ defect.** First probe: identify WHICH symbol shifts on a failing overlay's re-ca splat re-GUESSES a data-symbol boundary the carve moves β†’ pin it in config symbols and re-probe. ### T0.5 β–Ά launched + probed (2026-07-30) -`tools/prefetch_fleet.py` (committed `commit:1220`): 126 programs / 7,966 uncached representatives. +`tools/prefetch_fleet.py` (committed `19766a6dc`): 126 programs / 7,966 uncached representatives. **Probe 1 (main):** +1,525/2,002 cached in <1 min β€” the decompile leg is CHEAP; **477 main addrs have no defined function in the program** (main's 06-14 auto-analysis gap) β†’ follow-up: a `DefineFunctions.java` completion pass over main from splat entries (the Phase-10 mechanism), then diff --git a/phase-ends/logs/Phase31.md b/phase-ends/logs/Phase31.md index 4269b5c1c5..dce20b2263 100644 --- a/phase-ends/logs/Phase31.md +++ b/phase-ends/logs/Phase31.md @@ -121,7 +121,7 @@ Instead of roadmap-v2 P31's per-function grind, Phase 31 organizes the 12,059 re #5", SETUP (fresh-clone obj42 commands, Makefile blocks, exclude_audit), decision-log "S79 addendum 2", accelerators "S79 (2)". `frontier_classify` had a HARD-CODED LINKED set (R51) β€” derived from the Makefile now. tools-health OK; R22 fleet 213/213 (`.run/S79_check_all_band.log`). - **#6 DONE (S79, 2026-09-04; commits `commit:3868` `commit:3869` `commit:3870` `commit:3871` + this docs commit):** + **#6 DONE (S79, 2026-09-04; commits `0ab51c803` `af1644c02` `02e2cb265` `62475f788` + this docs commit):** the mechanical class, 0 drafting tokens. (1) `md_MAIN_003:D_800D3200` β€” a data word carried as a stub β€” emitted inside its asm island (dd1b32ec). (2) `ov_SC04_018:func_80181804` (twin of ov_SC04_019): its table was already carved, only the `JTBL_PADS` spec had been trimmed to 3 (S62) β†’ 4 entries, byte-proven @@ -139,7 +139,7 @@ Instead of roadmap-v2 P31's per-function grind, Phase 31 organizes the 12,059 re still needs its pad-spec entry; parallel_gate merges leave the main tree's split stale β†’ extract first). tools-health/report regenerated; R22 fleet **213/213** (`.run/S79_check_all_6.log`); twin_rescan: 2 open stubs keep a banked twin (ov_SC02_017 d=2, md_MAIN_003 d=1), nothing newly free. - **#7 DONE (S79, 2026-09-04; `commit:3873` `commit:3874` `commit:orphan-26`):** the "C-PLUMBING 5" were three + **#7 DONE (S79, 2026-09-04; `bf1b266e0` `42d432770` `commit:orphan-26`):** the "C-PLUMBING 5" were three things (cookbook **Β§492**): (a) `md_MAIN_020:func_800CB17C` β€” `rtu_match` MATCH, `parallel_gate` NEAR ("CAUSE NOT DETERMINED" explained: gate_stage's transform ladder altered a correct body) β†’ banked by a RAW splice (0990e041); (b) `md_MAIN_003:func_800D06BC` + `func_800D0100` β€” an -O0 island TU; the standalone @@ -150,7 +150,7 @@ Instead of roadmap-v2 P31's per-function grind, Phase 31 organizes the 12,059 re md_MAIN_003 3, resident 2, ov 11). R22 fleet **213/213** (`.run/S79_check_all_7.log`); twin_rescan 1 twin left (ov_SC02_017 d=2). `main:func_80011380` pinned WALL (Β§474 proof) in `config/wave_exclude.txt`. Defect to fix later: key `backlog_drafts`/journal lookups by (binary, fn). - **#8 DONE (S79, 2026-09-04; `commit:3876` `commit:3877` + this docs commit; cookbook Β§493):** the D-NEAR six, by + **#8 DONE (S79, 2026-09-04; `7129b6cac` `06ee3c123` + this docs commit; cookbook Β§493):** the D-NEAR six, by local permuter ILS (`permuter_ils --cycles 8 --secs 150 --j 6`, 0 tokens) + the Β§474 proof. BANKED: `main:func_80015760` (106 ins) β€” score 0 in the FIRST cycle from the journal's best draft (the S76 agent had filed it as "a genuine sched1 artifact"); to the bank via three plumbing steps (typedef preamble @@ -165,8 +165,8 @@ Instead of roadmap-v2 P31's per-function grind, Phase 31 organizes the 12,059 re of "no improvement" in 20 s β†’ it now prints REFUSED + writes `PERMUTER_REFUSED.txt` (positive-controlled). Stubs 32 β†’ **31** (main 15); game-code **93.5% (38,854 / 41,534)**; R22 fleet **213/213** (`.run/S79_check_all_8.log`). - **#9 DONE (S79 β†’ S80, 2026-09-04/05; banks `commit:3879` `commit:3880` `commit:3881` `commit:3882` `commit:3883` `commit:3884` - `commit:3885` `commit:3887` `commit:3888` `commit:3889`; instrument `commit:3890`; ledger `commit:3891`):** the drafting pool β€” + **#9 DONE (S79 β†’ S80, 2026-09-04/05; banks `80eed5e9e` `ec786e0a4` `0833b418e` `a296bba0f` `1961a7bfb` `cdf50f96d` + `96c0fc02a` `618e0907d` `d04fe3188` `402b7520c`; instrument `7fbdb8fd6`; ledger `09e0b2781`):** the drafting pool β€” 25 packs, one Agent-tool subagent each (Haiku ≀50 / Sonnet ≀120 / Opus above), no wave. **Ten banked byte-identical** (7 in S79; S80 aggregated the 11 agents that outlived S79 from their transcripts with NEW `tools/agent_verdicts.py` β†’ `ov_SC01_001:func_80181E04` 269, `main:func_8001EFE0` 468 (the largest open main body; gate_main clean rebuild @@ -184,7 +184,7 @@ Instead of roadmap-v2 P31's per-function grind, Phase 31 organizes the 12,059 re **R22:** clean `extract-all` 212/212 + `check-all` **213/213** (`.run/S80/r22_*.log`); `tools-health` OK. Metrics: main REAL 777 Β· LINKED 1,256 Β· VERBATIM 3 Β· stubs **12** Β· byte-identical 2,079/2,091 = 99.43% Β· **game-code 95.1% (39,479 / 41,534)**; fleet instr **100.0%** (13,481,386 / 13,485,889) Β· distinct 99.9% Β· stubs **21**. - **#10 DONE (S80, 2026-09-05; `commit:3893` `commit:3894` `commit:3895` `commit:3896` + this docs commit; cookbook Β§495):** + **#10 DONE (S80, 2026-09-05; `dd4561798` `ec15509e6` `b7f73e718` `082ddc859` + this docs commit; cookbook Β§495):** the verbatim end-state. (1) The five PERMANENT-VERBATIM rows RATIFIED in `config/verbatim_manifest.json` `_README` (crt0 `start`/`__main`/`__do_global_dtors`; md_MAIN_003 `func_800D3204`/`func_800D3234`). (2) `ov_SC03_107:func_8017D878` (45 ins, the one GAME-C verbatim, "37 stored drafts") DECOMPILED β€” the stored best draft was byte-correct all along; it @@ -209,7 +209,7 @@ R22 clean-fleet **213/213** after every banked batch Β· tools-health green Β· 0 ## Progress log - 2026-08-14 β€” Phase planned and approved (3 Explore + 2 Plan agents; full design in the plan file). Task list built (harness tasks #1–#12). T0 started. -- 2026-08-14 β€” **T0 COMPLETE.** (1) R31 decision-log entry (the re-charter WHY + R37–R39 ratification). (2) `harvest_verify.py` import guard: a bare import now RAISES instead of running a gate (verified both directions; CLI behavior unchanged). (3) **Resident Β±1 RESOLVED + FIXED**: `--bootstrap`'s linear partition had fused the +0 data word with `func_800CEDFC` (row `0x800CEDF8` nins=18) and dropped `func_800D33E0` past a glued tail β€” the true denominator is **145** (progress was right, the sig wrong). `sig-resident` now ELF-seeds (S45 pattern: unique 4-aligned T-symbol addrs inside the `resident_TEXT_START/END` markers β†’ exactly 145; bootstrap fresh-clone fallback). All three oracles now agree (sig 145 Β· corpus matched 131 Β· progress byte-ident 131); `audit-corpus` 0 PHANTOM + 0 TRUNCATED. (4) Family maps regenerated at HEAD `commit:2161`: **11,025 open non-main members = 12,059 βˆ’ main's 1,034 EXACT** (the stale map's 102 phantoms cleared); cousins totals now A-prop 1,125 / seeded 1,293 / cousin-multi 5,373 / cold 3,234 inst; adapt cards 704, aprop cards **204 (full emission)**. (5) **Main fuel gap is DEAD**: 2,001/2,002 main stubs have cached Ghidra-C (only `func_80049600` missing) β€” the roadmap's "0/2,096" note was stale. (6) `make tools-health` β†’ OK (dedup 2,063/0; C1 254,521/254,521; audit-digest confirms the fleet digest; resident fix moved instr num+denom by the same +9). +- 2026-08-14 β€” **T0 COMPLETE.** (1) R31 decision-log entry (the re-charter WHY + R37–R39 ratification). (2) `harvest_verify.py` import guard: a bare import now RAISES instead of running a gate (verified both directions; CLI behavior unchanged). (3) **Resident Β±1 RESOLVED + FIXED**: `--bootstrap`'s linear partition had fused the +0 data word with `func_800CEDFC` (row `0x800CEDF8` nins=18) and dropped `func_800D33E0` past a glued tail β€” the true denominator is **145** (progress was right, the sig wrong). `sig-resident` now ELF-seeds (S45 pattern: unique 4-aligned T-symbol addrs inside the `resident_TEXT_START/END` markers β†’ exactly 145; bootstrap fresh-clone fallback). All three oracles now agree (sig 145 Β· corpus matched 131 Β· progress byte-ident 131); `audit-corpus` 0 PHANTOM + 0 TRUNCATED. (4) Family maps regenerated at HEAD `d6b38245e`: **11,025 open non-main members = 12,059 βˆ’ main's 1,034 EXACT** (the stale map's 102 phantoms cleared); cousins totals now A-prop 1,125 / seeded 1,293 / cousin-multi 5,373 / cold 3,234 inst; adapt cards 704, aprop cards **204 (full emission)**. (5) **Main fuel gap is DEAD**: 2,001/2,002 main stubs have cached Ghidra-C (only `func_80049600` missing) β€” the roadmap's "0/2,096" note was stale. (6) `make tools-health` β†’ OK (dedup 2,063/0; C1 254,521/254,521; audit-digest confirms the fleet digest; resident fix moved instr num+denom by the same +9). - 2026-08-14 β€” **T1 COMPLETE: 8 banked for 0 agent tokens.** R38-first: partitioned the MATCH-108 pile against current stubs (75 still open) and against the S50 gate history (62 gated-and-failed with verdicts Β· 13 never-gated). The lanes and their measured outcomes: - **Never-gated 13** β†’ gate_lane: 0/13, but the verdicts decomposed to 11Γ— `undefined reference to D_*` = the Β§171 stale-seed-symbol class. **Extended `aprop_symfix` with STALE-DELTA** (n:n uniform-delta rebase; R39 synthetic + snapshot NCs, zero false positives; the delta test even refused a pair my hand-check wrongly accepted) β†’ 4 rebased, **4/4 banked** (`func_8016BCC0`, `func_8017F1C8`, `func_80186BD8`, `func_80186BF8`). Cookbook **Β§171-D** written in-session. @@ -294,7 +294,7 @@ writes `docs/tool-designs/frontier-analysis-s60.md` β€” **READ THAT FIRST NEXT S ### THE STRATEGIC PICTURE (this is what next session must act on) * **3,062 open crackable.** main is **313** crackable, not 1,274 β€” 961 of its stubs are LINKED PsyQ segments and data blobs, linked byte-exact, never decompiled. -* **CORRECTED 19:45 by the Fable audit, and I had this wrong all session.** The atlas at commit:2911 +* **CORRECTED 19:45 by the Fable audit, and I had this wrong all session.** The atlas at dc70f5320 measures: 3,106 open instances Β· 2,245 open skeletons Β· 1,772 groups, of which **480 are multi-member holding 1,334 siblings** and **1,292 are SINGLETONS carrying 57% of the open instruction mass**. My "~3,900 siblings behind ~334 skeletons" conflated two different @@ -597,7 +597,7 @@ process (`/proc//cmdline`), never from the file you edited** β€” `pgrep` ma ## SESSION S53 (2026-08-16, ultracode) β€” wave R + the leftover-draft harvest -- 2026-08-16 β€” **S53-1 PREFLIGHT + ATLAS REGEN.** Tree clean at `commit:2416`, no gate in flight. `make atlas` +- 2026-08-16 β€” **S53-1 PREFLIGHT + ATLAS REGEN.** Tree clean at `9202c5f54`, no gate in flight. `make atlas` regenerated at HEAD (the S52 atlas predated waves P+Q, whose banks grew main's matched seed pool 175β†’293): **4,985 groups / 11,352 open instances / 579,571 ins**, warm merges 880, seeded 4,714/6,911 skeletons, all assertions green. (Watch-for confirmed live: my own `pgrep -f atlas` waiter self-matched its shell wrapper β€” @@ -799,14 +799,14 @@ process (`/proc//cmdline`), never from the file you edited** β€” `pgrep` ma `func_800CC4E8` banked a `Quad4_800CCB14` typedef, `strip_provided_typedefs` correctly dropped `func_800CC310`'s duplicate, and `func_800CC310` splices EARLIER in address order β€” survivor below its uses. First fix (rename to dodge the stripper) was WRONG and the gate caught it: one symbol, - two types. Hoisting the typedef to the top of the TU banked it (`commit:2558`). Cookbook **Β§203**. + two types. Hoisting the typedef to the top of the TU banked it (`fd7d26e3c`). Cookbook **Β§203**. **Correction (same session):** the text that banked is the RENAMED variant β€” `gate_stage`'s `backlog.save_draft()` overwrote the original draft on the failed attempt, so "copying the original back" copied the rename. Bytes are correct (R22 213/213); the TU carries two names for one shape and a transform mangled a COMMENT. A backlog draft path is not a stable original. `func_8018280C` (ov_SC05_001) β€” the reconciler's IMMOVABLE Β§183.3 DEF-SIDE-RETURN wall (asm proves `s32`, TU declares `void` at three sites with live callers). The **Β§200 alias applied to a - DEFINITION** β€” `s32 aF8018280C(s32) __asm__("func_8018280C")` β€” banked first try (`commit:2559`), + DEFINITION** β€” `s32 aF8018280C(s32) __asm__("func_8018280C")` β€” banked first try (`18b0eb40a`), body untouched. Cookbook **Β§202**; the idiom existed in-tree only on declarations. - **Sibling sweep: 3, then 50 β€” the difference was MY scoping error, not the tree.** The first `family_sweep --hseq` passed the ATLAS gid-exemplar addresses to `--only`, which filters on @@ -951,25 +951,25 @@ campaign banked 145 more (waves bk 110, bl 35) while they worked, undisturbed. | **-O0, stranded in -O2** | **deliberately refused** | no | unbankable by construction until U2/U3/U5 land β€” the draw says `o0-in-an-O2-object` | ### WHAT LANDED AFTER THE AGENTS RETURNED -* **tells** (`commit:2667`): `LEVER_CRIB` in `api_agent._fuel` (what each tell MEANS, the Β§ to grep, +* **tells** (`6ae2c5580`): `LEVER_CRIB` in `api_agent._fuel` (what each tell MEANS, the Β§ to grep, the byte-proven C spellings) Β· a **LANE ALIASES grep-bait block at Β§172b** β€” the card named a word the 750-section cookbook contained **zero times**, and 108 failure transcripts grepped it for nothing Β· `LANE_BUDGET` = 40 turns / $0.40 for tells (98 of 270 attempts had ended AT the 24-turn cap on cards 2.4x the default size) Β· two new SYS laws (grep the crib's Β§; stop when the class says `[permuter]`) Β· cookbook **Β§264** = the four recipes the agent drove to MATCH, including two NEW laws (save-order = a bb0 anti-dependence; an opaque bound must be a LATE-assigned local). -* **-O0** (`commit:2669`): **md_MAIN_011 now compiles -O0** β€” whole-object override, the boot +* **-O0** (`05a4aeaf4`): **md_MAIN_011 now compiles -O0** β€” whole-object override, the boot precedent, no carve, no Β§18-P29 risk. Byte-proven by a CLEAN per-binary rebuild: `sha1 80731bac0ddd6b3e354f43b2c179582b12590752`. Landed with its coupling fix: three tools decided -O0-ness from the subseg NAME, and this object keeps its plain name, so `corpus.o0_subseg()` now derives it from the Makefile (R33). Verified end to end β€” match_one compiles those targets -O0 with the cannot-bank warning correctly gone, and the draw emits cards for them. -* **jtbl** (`commit:2670`): the lever alone was **inert** β€” jtbl cards are one-per-binary by +* **jtbl** (`9f2b9755c`): the lever alone was **inert** β€” jtbl cards are one-per-binary by construction, so they are maximally un-concentrated and the gate-group ranking (which exists to pack drafts behind one rebuild) selected **0 of 71** candidates. `--jtbl-quota 6` seeds them before the ranked fill. Measured: 6 jtbl cards in a 200-card wave, 13,470 ins across 7 gate groups (was 11,451 in 1). -* **Β§263** (`commit:2666`): the `func_801F218C` residual I could not close was an **ARITY error**, not +* **Β§263** (`35c486b3b`): the `func_801F218C` residual I could not close was an **ARITY error**, not a schedule β€” I had given a no-argument callee a parameter, so the copy had to dominate the call and the delay-slot filler took it. `func_801EF6E4(a0)` β†’ `func_801EF6E4()` = MATCH (83 ins). The Β§5a fence (both placements), if/else inversion, an early-break form and a 1,200 s permuter at -j12 @@ -1000,7 +1000,7 @@ campaign banked 145 more (waves bk 110, bl 35) while they worked, undisturbed. ## πŸ›‘ SESSION CHECKPOINT β€” S59 LIVE (2026-08-24 ~11:45). Phase 31 CONTINUES. **THREE FABLE AGENTS IN FLIGHT.** -**HEAD `commit:2656` Β· autonomous lanes RUNNING (drafter Β· gater Β· maintenance Β· stallguard, ~130 +**HEAD `db02d837d` Β· autonomous lanes RUNNING (drafter Β· gater Β· maintenance Β· stallguard, ~130 agents) Β· `src/`+`config/` carry live campaign work β€” COMMIT IT, NEVER REVERT (R42).** ### WHAT S59 DID β€” the S58 handoff's three tooling lanes, worked to a verdict each @@ -1081,8 +1081,8 @@ the campaign's own gates carry it. RUNNING right now. If you are reading this after a crash, the first question is not "what next" but "what is still alive" β€” see RESTART below. -**HEAD `commit:2600` Β· 1,790 functions banked today across 36 commits Β· 7,581 open overlay/md/resident -stubs Β· tree clean Β· R22 last verified GREEN 213/213 at `commit:2587` (re-verify before trusting).** +**HEAD `a13fd38ee` Β· 1,790 functions banked today across 36 commits Β· 7,581 open overlay/md/resident +stubs Β· tree clean Β· R22 last verified GREEN 213/213 at `5d8d497c4` (re-verify before trusting).** ### WHAT IS RUNNING (all `setsid`-detached, all self-restarting) | lane | script | role | @@ -1274,7 +1274,7 @@ tells failure signature. **Cheap test:** draw one tells wave with Β§235 in the b ## πŸ›‘ SESSION CHECKPOINT β€” S57 FINAL (2026-08-19/23). Phase 31 CONTINUES. NOTHING IN FLIGHT. -**HEAD `commit:2565` Β· R22 `make check-all` 213/213 from a clean tree still VALID (no src/ change since +**HEAD `cb65a62ca` Β· R22 `make check-all` 213/213 from a clean tree still VALID (no src/ change since S56; this session banked NOTHING) Β· EXE `143dbb89` Β· 0 NON_MATCHING Β· fleet unchanged at 96.1 / 91.8 / 97.11.** No process running, no wave launched, no cron armed. @@ -1372,7 +1372,7 @@ watch-for below. ## πŸ›‘ (superseded by S57) SESSION CHECKPOINT β€” S56 FINAL (2026-08-18). Phase 31 CONTINUES. NOTHING IN FLIGHT. -**HEAD `commit:2563` Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) and +**HEAD `e9ac4db9b` Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) and `.run/` scratch Β· R22 `make check-all` = 213 passed / 0 failed of 213 from a CLEAN tree Β· EXE `143dbb89` Β· 0 NON_MATCHING in any default build (G4) Β· dedup-check 2,165 validated / 0 failed Β· C1 254,731/254,731.** No process running, no cron armed, no workflow in flight. Drew pushes. @@ -1498,7 +1498,7 @@ lands after it.** ## πŸ›‘ (superseded by S56) SESSION CHECKPOINT β€” S54/S55 FINAL (2026-08-17/18). Phase 31 CONTINUES. NOTHING IN FLIGHT. -**HEAD `commit:2546` Β· tree clean except `.run/backlog.jsonl` churn + Ghidra `db.*.gbf` restart-noise +**HEAD `68481253d` Β· tree clean except `.run/backlog.jsonl` churn + Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) Β· R22 `make check-all` = 213 passed / 0 failed of 213 from a CLEAN tree, run SEVEN times this session (after every wave and after wave Y's recovery) Β· EXE `143dbb89` Β· 0 NON_MATCHING.** No process running, no cron armed, no workflow in flight. Drew pushes. @@ -1613,7 +1613,7 @@ session β€” and refresh it if any work lands after it.** ## πŸ›‘ (superseded by S54/S55) SESSION CHECKPOINT β€” S54 FINAL (2026-08-17). Phase 31 CONTINUES. NOTHING IN FLIGHT. -**HEAD `commit:2541`+ Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) Β· +**HEAD `c33df3329`+ Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) Β· R22 `make check-all` = 213 passed / 0 failed of 213 from a CLEAN tree (run 3x this session, after each wave) Β· EXE `143dbb89` Β· 0 NON_MATCHING.** No process running, no cron armed, no workflow in flight. Drew pushes. @@ -1709,7 +1709,7 @@ refuse-on-zero-files Β· `masked_diff.mask_for`: internal `j` compared. ## πŸ›‘ (superseded by S54) SESSION CHECKPOINT β€” S53 FINAL (2026-08-16/17). Phase 31 CONTINUES. NOTHING IN FLIGHT. -**HEAD `commit:2453`+ Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) Β· +**HEAD `c973d0e80`+ Β· tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) Β· R22 `make check-all` = 213 passed / 0 failed of 213 from a clean tree Β· EXE `143dbb89` Β· 0 NON_MATCHING.** No process running, no cron armed, no workflow in flight. 39 commits this session; Drew pushes. @@ -1812,7 +1812,7 @@ adversarial verifier per candidate defaulting to REJECT β†’ **10 CONFIRMED / 4 W ## SESSION S52 TASK LIST (2026-08-15, ultracode) β€” the monitorable view (no TaskCreate tool in this harness build) -- [x] **S52-1 β€” Preflight + wave-selector repair.** Tree clean @ `commit:2390`, no gate/grinder in flight. Fixed `build_wave_atlas.py`: (a) the already-waved set was a hardcoded `'abcdefghijkl'` wave-letter literal β†’ now a `glob('.run/wave_*_cards.json')` derivation (R33); **NC: old 634 β†’ new 726 taken, strict superset, +92 previously-missable cards from waves m/n**; (b) `--exclude-bins` defaulted to `main` carrying the REFUTED link-defect rationale β†’ default now empty, help corrected to the real (gate-path) reason; (c) new `--only-bins` allow-list (main waves need it β€” `gate_main` rebuilds once per SLATE, so main has no per-TU gate cost). +- [x] **S52-1 β€” Preflight + wave-selector repair.** Tree clean @ `683c44e15`, no gate/grinder in flight. Fixed `build_wave_atlas.py`: (a) the already-waved set was a hardcoded `'abcdefghijkl'` wave-letter literal β†’ now a `glob('.run/wave_*_cards.json')` derivation (R33); **NC: old 634 β†’ new 726 taken, strict superset, +92 previously-missable cards from waves m/n**; (b) `--exclude-bins` defaulted to `main` carrying the REFUTED link-defect rationale β†’ default now empty, help corrected to the real (gate-path) reason; (c) new `--only-bins` allow-list (main waves need it β€” `gate_main` rebuilds once per SLATE, so main has no per-TU gate cost). - [x] **S52-2 β€” Atlas regen** (`make atlas`, $0) β€” the selector was stale by ~448 banks (last regen predates waves J–N). - [x] **S52-8 β€” `gate_lane` crash-vs-empty fixed.** A non-zero rc or a missing JSON line is now labelled `β€Ό CRASH`, prints the stderr tail, records `{'CRASH':True,…}` in the results JSON, lists the never-gated groups in the summary, and exits non-zero. R39 NC both ways: crashβ†’CRASH, honest-emptyβ†’not-CRASH. - [~] **S52-3 β€” Wave O: MAIN + the UNKNOWN probe** β€” LAUNCHED (`wf_278b05de-bae`, 49 cards / **6,266 ins**, 2 gate groups). **The selection finding that reshaped this wave: main's agent-lane pool at β‰₯20 ins is nearly SPENT (21 left after 113 already waved) β€” main's remaining 52,714 ins are overwhelmingly UNKNOWN-lever, as are 138k fleet-wide.** So wave O is deliberately three arms: 21 main head-crack (avg 145 ins, opus) + 18 main UNKNOWN (avg 122) + 10 overlay UNKNOWN (`ov_SC04_011`, avg 103, sonnet). The UNKNOWN arms are an R37 probe of the biggest unclaimed block on the atlas β€” 1,239 candidates at 60–120 ins alone. Wave prompt gained Β§175/Β§176A–C (statement-order-around-a-call first; pin the interloper; **a pin cannot schedule across a call and can silently DELETE an instruction**). @@ -1898,7 +1898,7 @@ instruction-weighted metric moves fastest per agent spent. - 2026-08-14 β€” **CAMPAIGN OPEN (T10+, Ultracode).** Wave A: 24 adapt cards β†’ 18/24 standalone (75%) β†’ symfix-first (0 stale β€” the prompt-law worked) β†’ gate **12 banked + 1 propagation** (~117k tok/bank e2e; stubs β†’ 12,030). 6 NEARs (3 at close ≀3) enqueued to the grinder. Wave B (48 cards, all haiku, 29 binaries) launched with the decl-matching lesson. Grinder pass 1: 0/10 but func_800CB4CC at best-1. -- 2026-08-14 (resume session) β€” **Checkpoint resume steps 1–2 DONE.** (1) **R22 owed proof banked: `make clean && make extract-all && make check-all` β†’ 213 passed, 0 failed of 213** (`.run/r22_p31_resume.log` EXIT=0) β€” wave B's banks verified fleet-clean. (2) **`make atlas` regenerated at HEAD `commit:2234`**: 363,525 feature rows / 92,855 distinct bodies (0 newly computed β€” memo hit); **5,144 groups / 11,994 open instances / 612,325 ins**; warm merges 1,014; seeded 4,710/7,247 skeletons; all assertions green. Open count 12,058β†’11,994 reconciles with the session's 65 banks. (3) Wave C fuel verified: `.run/wave_p31c_cards.json` = 38 cards (14 tell/sonnet + 24 weak/haiku); grinder idle (heartbeat `done`); gate free. Drew's re-extraction question answered (disc/splat layers gain nothing β€” deterministic + continuously regenerated; sig/atlas layer regenerated by this step; Ghidra-C re-analysis = targeted-probe candidate only, R37). NOTE: this harness build has no TaskCreate tool β€” this checklist + log is the monitorable task view (R28 noted plainly). +- 2026-08-14 (resume session) β€” **Checkpoint resume steps 1–2 DONE.** (1) **R22 owed proof banked: `make clean && make extract-all && make check-all` β†’ 213 passed, 0 failed of 213** (`.run/r22_p31_resume.log` EXIT=0) β€” wave B's banks verified fleet-clean. (2) **`make atlas` regenerated at HEAD `496e3757f`**: 363,525 feature rows / 92,855 distinct bodies (0 newly computed β€” memo hit); **5,144 groups / 11,994 open instances / 612,325 ins**; warm merges 1,014; seeded 4,710/7,247 skeletons; all assertions green. Open count 12,058β†’11,994 reconciles with the session's 65 banks. (3) Wave C fuel verified: `.run/wave_p31c_cards.json` = 38 cards (14 tell/sonnet + 24 weak/haiku); grinder idle (heartbeat `done`); gate free. Drew's re-extraction question answered (disc/splat layers gain nothing β€” deterministic + continuously regenerated; sig/atlas layer regenerated by this step; Ghidra-C re-analysis = targeted-probe candidate only, R37). NOTE: this harness build has no TaskCreate tool β€” this checklist + log is the monitorable task view (R28 noted plainly). - 2026-08-14 (resume session, cont.) β€” **WAVE C COMPLETE: 32 banked, R22 213/213.** Probeβ†’wave cadence (Β§174 law 3) paid: the 3-card probe cost ~300k tok and returned Law 4, which the 35-card wave then converted at 91% gate with zero symbol failures. Independent re-verify of all 35 drafts by me (R14) before gating: 35/35 MATCH held. **Reach measured honestly: 32 exemplars, only 8 had any sharer, each Γ—2 β†’ ~1.25Γ— effective.** The Γ—134 era is over (P25/29/30 harvested the shared cores); fleet-% now moves ~1:1 with exemplars banked, so THROUGHPUT is the lever, not leverage. - **THREE instrument defects found+fixed in my own new tooling this cycle** (the R32/R35/R39 class, and the reason R39 exists): (1) `build_wave.py`'s gate-guard used `pgrep -f` via `shell=True` β€” the wrapping `sh -c` carries the pattern in its own cmdline so it self-matched and refused forever; fixed by invoking pgrep without a shell. (2) The open-stub predicate did `fn in corpus.stubs(binary)` β€” but `stubs()` returns **addrβ†’Stub**, so every card looked "already-banked" and BOTH pools reported ~0 candidates (I nearly concluded the 622-card adapt pile and 954-card weak pile were spent). Fixed to `{st.symbol for st in ...values()}` and **negative-controlled against the known population** (35 wave-C cards, 32 banked β†’ exactly 3 still open: PASS). (3) I fired wave D once with hand-typed placeholder card names instead of the generated file β€” caught and stopped within a minute, relaunched from `.run/wave_p31d_args.json`. Recorded, not buried (P9). @@ -1915,13 +1915,13 @@ instruction-weighted metric moves fastest per agent spent. - 2026-08-14 (resume session, cont. 3) β€” **MAIN'S BLOCKER DIAGNOSED β€” it is LINK-LEVEL, not matching.** Main probe: 4/6 standalone MATCH (my independent re-verify; the workflow's own repair stage claimed 6/6 β€” the gate and my check disagree with the agents, R14), then **gate 0/4 banked, 4 near**. Reproduced one (`func_80013228`, a clean 27-ins `Square0` wrapper) through `harvest_verify` and byte-diffed the built EXE against the original: **exactly 2 bytes differ in 413,696**, and NOT inside the drafted function β€” a `jal` at **vaddr 0x80060E74** retargeted from **`func_80061FA8`** (game code, `build/src/800c2.o`) to **`firstfile`/`firstfile2`** (**PsyQ libapi object `build/psyq/apicard/A66.o`**, symbols.us.txt line: `firstfile2 = 0x80062248`). So adding ONE byte-correct C function to `src/800.c` perturbs **symbol resolution between game code and the LINKED PsyQ library objects** β€” the C is right; the link binds a call to a different definition. This is main-specific (main is the only binary with `psyq_integrate` archive objects, per the `ifeq ($(BINARY),main)` blocks) and explains why main has sat at 0.5%: it is an INTEGRATION wall, not a matching wall. **Main is NOT ready for bulk waves; it needs a named link-resolution investigation lane** (candidate leads: duplicate `.NON_MATCHING` symbol definitions visible in the map at both `Square0` and `func_80061FA8`; archive-member selection order when a new undefined ref appears in `src/800.o`). Recorded here + decision-log (R31). The 4 main drafts are preserved in `.run/wave_p31e/main/` as fuel for that lane. - 2026-08-14 β€” **Campaign returned to the lanes that bank.** Wave D (48 adapt cards) drafted; independent re-verify **42/48 MATCH (87.5%)**; 6 DIFF handed to the near/grinder path. Gating now. -- 2026-08-15 β€” **Wave D closed: 45/48 banked. R22 clean fleet 213/213. Stubs 12,059 β†’ 11,876** (183 banked this phase; ~118 tonight). Committed `commit:2324`. **Wave F LAUNCHED β€” the first TU-packed wave**: `build_wave_atlas.py` now packs by **(binary, home .c)** β€” the real `gate_lane` group key β€” giving **60 drafts / 3,508 ins in ONE gate group** (vs wave D's 42 drafts / 23 groups). Target `ov_SC02_011` `jr_8017AE2C`, avg 48 ins (vs the card lanes' 12–42), 70 head-crack + 17 redraft + 4 seeded + 2 integration + 2 len-vein + 1 family-sweep; 32 sonnet / 28 haiku. **This is the throughput experiment**: same gate cost as ~2 wave-D groups for 60 functions of larger mass. 6,981 candidates remain in the atlas's agent-draftable levers (`main` excluded). +- 2026-08-15 β€” **Wave D closed: 45/48 banked. R22 clean fleet 213/213. Stubs 12,059 β†’ 11,876** (183 banked this phase; ~118 tonight). Committed `dde7a35ca`. **Wave F LAUNCHED β€” the first TU-packed wave**: `build_wave_atlas.py` now packs by **(binary, home .c)** β€” the real `gate_lane` group key β€” giving **60 drafts / 3,508 ins in ONE gate group** (vs wave D's 42 drafts / 23 groups). Target `ov_SC02_011` `jr_8017AE2C`, avg 48 ins (vs the card lanes' 12–42), 70 head-crack + 17 redraft + 4 seeded + 2 integration + 2 len-vein + 1 family-sweep; 32 sonnet / 28 haiku. **This is the throughput experiment**: same gate cost as ~2 wave-D groups for 60 functions of larger mass. 6,981 candidates remain in the atlas's agent-draftable levers (`main` excluded). - 2026-08-15 β€” **WAVE F RESULT: the TU-packing thesis is CONFIRMED, and the fresh-crack lane works.** 60 atlas `mass` cards (no proven seed to edit β€” agents decompile from the .s) β†’ **55/60 = 91% standalone**, **3,203 of 3,508 instructions**, in **ONE gate group**. Wave D needed 23 whole-binary rebuilds for 42 drafts; wave F needs 1 for 60. Per-card mass is ~3Γ— the card lanes'. **This is the wave shape for the rest of the campaign** β€” `build_wave_atlas.py --max-bins 1..6`, 60–96 cards. - **NEW TOOL DEFECT (logged, not yet fixed): `aprop_symfix` CRASHES on non-hex symbol names.** `deltas[int(new[-8:],16) - int(old[-8:],16)]` assumes every symbol is `func_XXXXXXXX`/`D_XXXXXXXX`; a draft calling **PsyQ `Square0`** raises `ValueError: invalid literal for int() with base 16: 'Square0'` and takes the whole audit down. This will recur on every PsyQ-calling draft. **Fix wanted:** treat a stale pair whose names are not hex-suffixed as a direct 1:1 rename (no delta), and never let one unparseable pair abort the batch (R32: a crash is not a coverage answer). Workaround used: gate the 53 clean drafts, hold the 2 genuine STALE for a hand rename. - **Grinder ran concurrently with drafting** (free CPU, no tree writes during permute) on the close≀6 seeds: 3 ILS cycles each on the md_MAIN_* band, **0 banked, all parked at best-1** β€” plus it re-surfaced the Phase-22 split-file blindness (`func_800CB270: no .s under md_MAIN_027 β€” skip`). Stopped via the STOP sentinel to hand the tree to the wave-F gate (single-writer discipline; the gate is chained to start on grinder release). -- 2026-08-15 β€” **Wave G: 36/36 drafted (100%), 32 banked, fleet 95.3β†’95.4%.** Two TU-packed waves now confirm the shape. **`aprop_symfix` non-hex fix landed** (`commit:2330`): a curated PsyQ name (`Square0`) made `int(name[-8:],16)` raise and abort a 55-draft audit *after* the renames had already succeeded; now counted as a `named-1:1` rename and the batch survives. Verified on the literal incident values (old aborts, new completes + still buckets the hex pair by its `0x484c` delta); honest caveat β€” the live slates could not re-trigger the path because those drafts are banked, so the changed expression was exercised directly. +- 2026-08-15 β€” **Wave G: 36/36 drafted (100%), 32 banked, fleet 95.3β†’95.4%.** Two TU-packed waves now confirm the shape. **`aprop_symfix` non-hex fix landed** (`e64a80360`): a curated PsyQ name (`Square0`) made `int(name[-8:],16)` raise and abort a 55-draft audit *after* the renames had already succeeded; now counted as a `named-1:1` rename and the batch survives. Verified on the literal incident values (old aborts, new completes + still buckets the hex pair by its `0x484c` delta); honest caveat β€” the live slates could not re-trigger the path because those drafts are banked, so the changed expression was exercised directly. - **Standing pattern worth keeping in the prompt:** agents reconstruct CODE reliably (91–100% standalone) but guess **PsyQ symbol NAMES** unreliably (wave F: `S80131E00`β†’`Square0`, `Mat32_…`β†’`RotMatrixY`; wave G: `SRM_…`/`STM_…`β†’`RotTransSV`, `Blk20_…`β†’`RotMatrixY`). The deterministic symfix audit β€” not the model, and not `match_one` (which masks relocations and is BLIND to a wrong callee name) β€” is what catches this every time. Consider adding "if the target's .s calls a PsyQ symbol, use that exact name" to the wave LAWS. - 2026-08-15 β€” **`aprop_symfix` FALSE-POSITIVE class found (R39), and it cost real banks β€” my error, not the tool's alone.** I withheld 3 wave-G drafts from the gate because symfix reported them `STALE`/`AMBIGUOUS`. On inspection **all 3 already used the correct PsyQ names** (`RotMatrixY`, `RotTransSV`); what symfix flagged as "draft-only symbols" were **local identifiers** β€” a typedef (`Mtx8_8017DE10_8017E710`), inline-asm macro names (`SRM_80186334`/`STM_80186334`), and local struct typedefs (`Blk20_…`/`Vec32_…`). Gated unchanged: **3/3 banked** (wave G β†’ 35/36). Two defects behind it: (a) the classifier counts local typedef/macro names as symbol references; (b) its draft-symbol extraction misses some `extern` declaration forms, so a name the draft *does* declare (`RotMatrixY`, line 8) still shows as `asm-only`. @@ -1941,7 +1941,7 @@ instruction-weighted metric moves fastest per agent spent. ## πŸ›‘ (superseded by S53) SESSION CHECKPOINT β€” S52 FINAL (2026-08-15/16) -**Tree CLEAN at `commit:2415`. No process running. R22 verified 213/213 from a clean tree after the last bank.** +**Tree CLEAN at `f8bf50d8c`. No process running. R22 verified 213/213 from a clean tree after the last bank.** ### Banked this session: 131 Wave O 46 main + 4 ov Β· re-gate probe 1 Β· wave P 32 main + 8 md Β· wave Q 40 main. @@ -2021,7 +2021,7 @@ success: link errors and byte mismatches are outside what any text check can see ## πŸ›‘ (superseded) SESSION CHECKPOINT β€” S52 mid-day -**Tree CLEAN at `commit:2407`. R22 verified 213/213 from a fully clean tree after the last bank. Nothing owed, nothing in flight.** +**Tree CLEAN at `74a95af4c`. R22 verified 213/213 from a fully clean tree after the last bank. Nothing owed, nothing in flight.** ### Banked: 91 functions 46 main + 4 ov (wave O) Β· 1 (re-gate probe) Β· 32 main + 8 md (wave P). **main 175 β†’ 253 matched Β· stubs 1,881 β†’ 1,803.** Fleet 213/213 byte-identical, 0 NON_MATCHING. @@ -2053,7 +2053,7 @@ success: link errors and byte mismatches are outside what any text check can see ## πŸ›‘ (superseded) checkpoint β€” S52 mid-session -**State at checkpoint:** tree CLEAN at `commit:2402` + wave-O bank commit. **R22 verified 213/213 from a fully clean tree** after wave O. Nothing owed. +**State at checkpoint:** tree CLEAN at `0753641d4` + wave-O bank commit. **R22 verified 213/213 from a fully clean tree** after wave O. Nothing owed. ### What S52 banked **51 functions** β€” 46 main (ONE clean rebuild, `143dbb89` byte-identical) + 4 overlay (`ov_SC04_011`) + 1 from the re-gate probe. **main 175 β†’ 221 matched, stubs 1,881 β†’ 1,835.** @@ -2170,7 +2170,7 @@ Every serious stall traced to **an instrument trusted without a control**, never **Watch-fors:** gate_lane aborts on dirty src/config (clean first); symfix-first before every gate (Β§173); the safety-classifier can rate-limit under 48-agent bursts (harmless β€” retry). ## (superseded) previous checkpoint (end of build arc) -**T0–T9 ALL COMPLETE AND COMMITTED** (through `commit:2181`). Phase totals: **17 banked, 0 agent tokens**; stubs 12,059 β†’ 12,042; R22 213/213 verified twice (post-T1, post-T6). The machine: the Atlas (5,139 groups, `make atlas`), the widened lanes (symfix STALE-DELTA, recover_integration isolation + macro-externs/tu-scope, family_align + len_tells + lenmiss routing), the armed queues (grinder: 59 warmstart records; cards: 954 weak + 192 len + 704 adapt; permuter-49). NEXT = **T10+ the campaign loop**: L3 grinder running in background (launched at checkpoint time); **card/crack WAVES need Drew's `/effort ultracode` toggle first (R27)** β€” prompt and WAIT. Campaign cadence + close criterion: the plan file Β§Leg-C. If resuming fresh: read the approved plan + this log; check `.run/auto/grinder_heartbeat.json`; run `make atlas` to refresh; continue the loop. +**T0–T9 ALL COMPLETE AND COMMITTED** (through `6cd81173c`). Phase totals: **17 banked, 0 agent tokens**; stubs 12,059 β†’ 12,042; R22 213/213 verified twice (post-T1, post-T6). The machine: the Atlas (5,139 groups, `make atlas`), the widened lanes (symfix STALE-DELTA, recover_integration isolation + macro-externs/tu-scope, family_align + len_tells + lenmiss routing), the armed queues (grinder: 59 warmstart records; cards: 954 weak + 192 len + 704 adapt; permuter-49). NEXT = **T10+ the campaign loop**: L3 grinder running in background (launched at checkpoint time); **card/crack WAVES need Drew's `/effort ultracode` toggle first (R27)** β€” prompt and WAIT. Campaign cadence + close criterion: the plan file Β§Leg-C. If resuming fresh: read the approved plan + this log; check `.run/auto/grinder_heartbeat.json`; run `make atlas` to refresh; continue the loop. --- @@ -2179,7 +2179,7 @@ Every serious stall traced to **an instrument trusted without a control**, never **The session so far, in one paragraph.** Read `frontier-analysis-s60.md` and executed its sequence: built the INTEGRATION-RESOLVER (tools/integration_resolver.py + lanes/resolver_lane.sh) β€” first pass 1,352 nominated β†’ 424 judged in 41 s β†’ 245 staged (57.8%) β†’ **63 banked, zero tokens, ~10 min** -(commit:2991; subject says 72 = gross incl. 9 carve moves). Probing why 182 doubly-verified drafts +(6e25fc910; subject says 72 = gross incl. 9 carve moves). Probing why 182 doubly-verified drafts still refused exposed the night's real story: **15 of 214 binaries were baseline-RED at HEAD** (stale JTBL_PADS / missing interleave entries / half-committed carves from S60's evening), refusing 174 of those 182 regardless of draft quality; the fleet R22 sweep had been guard-skipped since @@ -2217,7 +2217,7 @@ first relaunched wave; (5) escalation tier only after the resolver stock drains. self-matches your own wrapper β€” it killed two restart helpers AND the gater tonight); never let a script's own text contain the pattern it pkills; the gater blanket-commits src/ config/ at gate entry β€” probes that splice into src/ must hold the per-binary lock AND finish before gate entry, or -ride into a chore commit (the ov_MAIN_012 repair did β€” commit commit:2998 β€” harmless but +ride into a chore commit (the ov_MAIN_012 repair did β€” commit c3c904eb0 β€” harmless but mis-attributed). Stop sentinels are CLEAR; `.run/baseline_red.txt` is live gate input β€” keep it current as repairs land. @@ -2260,11 +2260,11 @@ winner), ov_SC04_018 (pads drift 'consumed 3 but 4' AND a TU whose rtu-view dive pipeline β€” likely per-TU flags; two src attempts reverted), ov_SC06_022 ('consumed 1 but 2', byte-proof refused). All four are skip-listed so no draft is billed for them. -**Record corrections (honesty over tidiness; do NOT rebuild history):** commit commit:3004 +**Record corrections (honesty over tidiness; do NOT rebuild history):** commit ad9b57328 ("ox wave fc banks recovered") actually captured 10 of fd's MID-GATE splices β€” 6 were later -reverted by their own judgments (verified; HEAD correct throughout). Commit commit:3006's message -describes a repair; its content actually REVERTS commit:3005 (the TU stands at its pre-S61 state). -Commit commit:2998 (gater chore) carries the ov_MAIN_012 interleave repair. Lesson for the rulebook: +reverted by their own judgments (verified; HEAD correct throughout). Commit 92e8ed522's message +describes a repair; its content actually REVERTS d7bb3ae8d (the TU stands at its pre-S61 state). +Commit c3c904eb0 (gater chore) carries the ov_MAIN_012 interleave repair. Lesson for the rulebook: NEVER blanket-commit another lane's mid-gate tree β€” R42's "commit, don't revert" is for trees AT REST. @@ -2295,7 +2295,7 @@ Truncated turns 6/1/0/0 β€” truncation recovers across the turn loop and does no S60 inverse-correlation, now paired-confirmed). **Decision: overlay drafting at MAXTOK=8000** (fastest turns, most shots/hour); the main lane keeps its own tuned 16000 (also a 10/10 arm). Caveat (R41): n=10 at 22–55 ins; the gen0 tail (p90 246 ins) is extrapolation. The 10 winners -were staged and banked for real (commit:3023; 6 first-pass, remainder accounted in the ledger). +were staged and banked for real (2502eff0e; 6 first-pass, remainder accounted in the ledger). Gen0 sweep launched at 8000/700: 196 sweepable non-main fns in waves g0a–g0d (size-ascending, <=60 agents), each wave queued to the gater as its drafts land; main's 231 gen0 run through the main lane. Rule-candidate data point for the effort doctrine: MORE OUTPUT BUDGET IS NOT MORE @@ -2390,7 +2390,7 @@ route and are corrected in-line: resumed-turn budgets (real but minor) and a gen ## πŸ›‘ SESSION CHECKPOINT β€” S61 FINAL-2 (2026-08-26 ~13:00). MACHINE FULLY QUIESCED. Two closing agents may still be writing β€” see HANDOFF below. Next session: read `docs/tool-designs/frontier-analysis-s61.md` FIRST, then plan Phase 32 with Drew. **State at close.** All lanes STOPPED and verified from ps (0 lane processes, 0 drafting agents); -stop sentinels `.run/ox_campaign.stop` + `.run/auto/STOP` are SET. Tree clean at `commit:3070`+docs +stop sentinels `.run/ox_campaign.stop` + `.run/auto/STOP` are SET. Tree clean at `252dc930c`+docs commits. **Today: 401+ net stubs banked (3,896 β†’ ~3,495 committed, 76+ commits)** β€” the resolver (67+), gen0 sweep (60 overlay waves + ABCD 6), main parked slates (119+ gen0 + ds2's 20), g0f feedback redrafts (10), repairs unlocking the rest. Fleet: **98.4% instr-weighted Β· 96.6% @@ -2457,11 +2457,11 @@ Harness task list built (15 tasks, T0–T9, dependencies wired). Compressed sess left β€” nothing needed before T4; ~$100 + an uncapped key recommended before T5's DeepSeek arm. **T0 resume ritual:** clean (src/config clean, overlays.mk 5,086, red 5, sentinels set 12:19, 0 lanes, -HEAD commit:3078). +HEAD 528f543d8). **T1 β€” outcome (falsifier fired; +6 banks; 1 instrument defect closed).** Full record in `docs/tool-designs/frontier-analysis-s61.md` Addendum 2 and cookbook Β§301. In brief: -- Premises corrected before building (R35): dup-def demotion EXISTED (commit:3012) and had banked its +- Premises corrected before building (R35): dup-def demotion EXISTED (3222eb454) and had banked its probe case; decl_from_use was already wired in A-prop; the resolver's `undeclared` path is now wired (`declfix`, additive) but its class is 39/42 TU-BROKEN in red SC04_018 β†’ 0 bankable until T2d. - Fresh resolver pass + live gate: 98 staged β†’ 0 banked = 40 red-held + 54 CARVE-REFUSED (β†’ T3) + @@ -2469,10 +2469,10 @@ HEAD commit:3078). split, queued with T3). - The 2 DIFFs autopsied to bytes: ONE byte each, a wrong internal `j` target that rtu/match_one masked (`R_MIPS_26 .text` IS emitted for in-section `j`; Β§195's premise was wrong). Fixed the - drafts (banked 2/2, commit:3080) AND the comparer (`masked_diff` jrel; rtu_match shares + drafts (banked 2/2, f449a455b) AND the comparer (`masked_diff` jrel; rtu_match shares structured_diff): positive controls ORIGβ†’DIFF 1 / FIXβ†’MATCH; negative control over all 3,475 stubs (1,097 with internal j, 4,043 instructions) β†’ 0 new mismatches. -- Β§295 kernel-trap sweep: 4/4 banked via gate_main clean rebuild (commit:3079). +- Β§295 kernel-trap sweep: 4/4 banked via gate_main clean rebuild (80124c681). - Tools promoted: `tools/diff_autopsy.sh`, `tools/stub_invariant_audit.py` (SETUP.md rows, R21). - Fleet after T1: **2,511 stubs Β· 98.4% instr Β· 96.7% distinct**. - Standing consequence: every historical rtu/match_one MATCH / closeness-0 verdict was blind to `j` @@ -2487,7 +2487,7 @@ HEAD commit:3078). JTBL_PADS value could ever win the S61 search (the order was wrong, not the pads). Retail words at 0xc1308–0xc139c read as 12 | 8 | 6 | 11 entries: jr_80184F14's table, then jr_80185B44's three (func_80185B44 / func_801874C0 / func_80187884) β€” exactly the 3 `.align 3` tables the TU now emits. -Fix: order re-aligned to the yaml, pads `0,0,0` (`commit:3084`); R22 clean rebuild byte-identical +Fix: order re-aligned to the yaml, pads `0,0,0` (`5a87e741e`); R22 clean rebuild byte-identical (`d84b01a2`); then the 7 resolver drafts it held gated 7/7 (the gate's own Β§8a carve for the new switch fns updated yaml+mk; re-verified clean). Lesson for R59: a blanket restore of overlays.mk must be diffed against every yaml it describes (order ⇔ subseg sequence) β€” `tools/`-worthy check. @@ -2498,7 +2498,7 @@ the object emits two 5-entry tables that retail lays back-to-back (+0x0, +0x14); `JTBL_PADS` line for the object (git log -S: it never existed) the pads stage never ran and the default `.align 3` inserted a 4-byte zero word between them β†’ every %lo downstream +4, binary +4 (+1 trim), 1,041 sparse diffs from 0x4B8. S61's "pads-VALUE search found no unique winner" was a -search over a nonexistent line (R40). Spec `0,0` added (`commit:3086`), R22 clean rebuild +search over a nonexistent line (R40). Spec `0,0` added (`46ad1a2de`), R22 clean rebuild byte-identical (`c2cd16c4`), then its 4 held resolver drafts gated 4/4, re-verified clean. `.run/t1/interleave_check.py` (order ⇔ yaml) is ALIGNED for SC06_022/SC04_018 and shows a DRIFT on ov_SC02_005 (`jr_8018EA04.o` + `tail21` in the order, absent from the yaml) β€” T2e input. @@ -2511,7 +2511,7 @@ tables (func_80185B80, whose table is the second, is still a stub) and the 17:43 the two-table `0,4`. Built `.run/t1/pads_audit.py ` (offline-tooling-first): compiles each TU with a pads line to count its tables, walks the retail bytes inside the yaml carve with those sizes (pad 4 ⇔ one zero word before a table), and DERIVES the spec β€” it reproduced all 15 correct -specs (negative control) and flagged exactly the two drifts. Specs set (`commit:3088`), R22 clean +specs (negative control) and flagged exactly the two drifts. Specs set (`bf10227de`), R22 clean rebuild byte-identical (`2a7d7d4e`), 11 held drafts gated 9/11 (2 already banked by propagation), re-verified clean. The same audit pre-diagnoses T2d: ov_SC04_018/jr_8017AE2C spec has 4 entries, the TU compiles 3, the carve holds a 4th 5-entry table (func_80181804, reverted to a stub). @@ -2521,8 +2521,8 @@ TU compiles 3, the carve holds a 4th 5-entry table (func_80181804, reverted to a defects" collapsed into one: the 04:06 g0b gate wrote a `_JTBL_INTERLEAVE` order for a yaml state (a `jr_8018EA04` c-subseg + `tail21`) that a later restore removed β€” func_8018EA04 is a stub inside TU jr_80181D30; the "+0xAE8 rodata shift" was that order's consequence. Order re-aligned to the -yaml + the stale `asm/…/jr_8018EA04/` dir dropped β†’ 0 differing bytes (`commit:3090`). Its one held -draft then banked and the gate's Β§8a carve re-split jr_8018EA04 consistently (`commit:3091`). +yaml + the stale `asm/…/jr_8018EA04/` dir dropped β†’ 0 differing bytes (`7898b9faf`). Its one held +draft then banked and the gate's Β§8a carve re-split jr_8018EA04 consistently (`315699b59`). **T2d DONE (ov_SC04_018 GREEN, RED LIST EMPTY, +18 banks).** Two real defects in one TU (jr_8017AE2C): the pads spec had 4 entries for 3 compiled tables (the carve's 4th table is @@ -2533,7 +2533,7 @@ three later block-scope externs ("used prior to declaration"), an address-of-a-c (caller cast per Β§20), and func_8017E7CC's first store with offset/value swapped (retail `li v0,3; sh v0,2(s0)`; the two-byte diff located it). This is the "rtu-vs-real-pipeline TU divergence" β€” rtu's neutralized view compiled where the real TU could not; decl_from_use's 39 -TU-BROKEN cases become judgeable now. `commit:3092`; R22 clean rebuild byte-identical +TU-BROKEN cases become judgeable now. `00e26c78d`; R22 clean rebuild byte-identical (`fe9b413f`); 18 held drafts gated 18/18, re-verified clean. **T2 total: 5/5 reds healed in one session, +39 banks from held drafts (7+4+9+1+18), 241 held fns @@ -2550,7 +2550,7 @@ maintenance repair to `0` was blanket-reverted by the 10:21 ds1 wave commit, the and md_SC07_003 (`[EXTRACT FAIL]` under the parallel extract-all, yet `make extract` succeeds serially β€” a suspected race, re-measured by the second sweep). `interleave_check --fix` (order regenerated from the yaml) + a pads_audit-derived spec healed all five overlays byte-identically -(commit:3095). Second clean sweep launched for the definitive GREEN count. +(05f13d6c9). Second clean sweep launched for the definitive GREEN count. Rule candidate for the PhaseEnd (R60): config/overlays.mk and the splat yamls are CARVE STATE, not plain config β€” a gate/lane commit may only carry its own binary's lines, and any blanket restore/commit of either file is followed by `interleave_check` + `pads_audit` on every binary it @@ -2566,13 +2566,13 @@ stream β€” no stored spec, nothing to drift; cookbook Β§303), the Makefile runs object, `harvest_verify` hands module island walls to it. Negative control: all 70 module binaries rebuilt byte-identical through the derive stage (7 first failed in the deriver on blob alignment gaps β€” fixed; md_MAIN_003's blob sizing is 34 bytes short but it has no C tables, so the early -return covers it and any future table there refuses loudly). Commits `commit:3098`, `commit:3099`, -`commit:3100` + this one. NEXT: fleet sweep #3 (definitive GREEN count with the deriver live), then +return covers it and any future table there refuses loudly). Commits `ddd902946`, `0b75da6a3`, +`c71cd7edb` + this one. NEXT: fleet sweep #3 (definitive GREEN count with the deriver live), then a fresh resolver pass to bank the 32 tail + 25 md_ island drafts through the official gate. **T3 progress (S62).** Fleet sweep #3: **213/213 GREEN, extract-all 212/212** (14:52, from `make clean`, deriver live) β€” the honest R58 count for T2+T3a. T3b: ov_SC03_118/119 -O0 region -`o0d` (0x80183178..0x80183830, 9 stubs each) carved, byte-neutral (`commit:3102`); the five md_MAIN +`o0d` (0x80183178..0x80183830, 9 stubs each) carved, byte-neutral (`7a3ce3434`); the five md_MAIN "F" members are NOT -O0 (func_800D0C50's draft matches at both levels) β€” their rejections were module-island/plumbing, now covered. Β§304: md_MAIN_011/func_800D04F4 banked by defining its own rodata strings in the C body (the resolver's PLUMBING class). A fresh resolver pass is running to @@ -2602,7 +2602,7 @@ never read `asm/` while a sweep's extract-all runs. ## πŸ›‘ SESSION CHECKPOINT β€” S62 (2026-08-26 ~16:05). Plan approved; T0–T3 + T5pre DONE; paused at the R27 gate for T4 (Ultracode). -**State.** Tree clean at `commit:3123`+; NO lanes running (sentinels `.run/ox_campaign.stop` + +**State.** Tree clean at `ceab8ad72`+; NO lanes running (sentinels `.run/ox_campaign.stop` + `.run/auto/STOP` still SET β€” delete both before any relaunch); OpenRouter key $63.03/$70, account $5.57 credit (T4's DeepSeek arm needs ~$1; ~$100 + an uncapped key recommended before T5). **Fleet:** 2,397 stubs Β· 98.5% instr Β· 96.8% distinct (2,517 at session start; βˆ’120 today). @@ -2668,7 +2668,7 @@ Opus escalation Β· >120 β†’ Opus Β· haiku dropped from the ladder (adds 0 on top its value was only ever cost, and the cheap slot is DeepSeek's at ~$0.03/fn) Β· the three fns no arm banked are all M-extend-tell β†’ T6 wall track, never waves. Β§3.5 falsifiers: "Haiku β‰₯ Sonnet on ≀50" refuted (7 vs 9); arms disagree by band β†’ split routing stands. Caveat (R41): n=20, one fn -per band is 9–14pp; the union numbers are the robust ones. Union commit `commit:3128` (+17 fns; +per band is 9–14pp; the union numbers are the robust ones. Union commit `ad273e7b6` (+17 fns; fleet 2,380 stubs, 98.5% / 96.8%). Artifacts: `.run/t4/judge.json`, `claude_banked.json`, `distill_out.json`, `sample.json`, `targets.json`. Harness fixes shipped en route: `prior_draft` law-1c filter; the judge's corpus-cache blind spot; the serial-vs-sharded api_agent launch @@ -2677,7 +2677,7 @@ law-1c filter; the judge's corpus-cache blind spot; the serial-vs-sharded api_ag ## πŸ›‘ SESSION CHECKPOINT (refresh) β€” S62, ~18:35. T0–T4 + T5pre DONE. Paused at the R27 gate: Ultracode β†’ back to Max before T5's plan review. Tree clean; no lanes running (stop sentinels still SET); fleet 2,380 stubs (last clean sweep #7 213/213 at 16:02, then 17 union banks each byte-identical per clean per-binary rebuild). NEXT: T5 β€” relaunch drafting as Ultracode ladder waves over K+L+M with the T4 routing rule (Sonnet+DeepSeek on ≀50, Sonnet on 51–120, Opus on >120/residue), warm starts law-1c-filtered, cards with Β§296 frame check, main lane on the rebuilt queue; delete both sentinels at launch. Drew-side before T5: OpenRouter credit (~$5 left) β€” the DeepSeek arm at ~$0.03/fn needs ~$25–40 for the ≀50 band; raise the key cap accordingly. -## πŸ›‘ SESSION CHECKPOINT β€” S62 FINAL (2026-08-26 ~18:50). Supersedes the 18:35 refresh. T0–T4 + T5pre DONE; tree clean at `commit:3133` (55 commits this session); NO lanes running; stop sentinels `.run/ox_campaign.stop` + `.run/auto/STOP` still SET. +## πŸ›‘ SESSION CHECKPOINT β€” S62 FINAL (2026-08-26 ~18:50). Supersedes the 18:35 refresh. T0–T4 + T5pre DONE; tree clean at `5962bb70e` (55 commits this session); NO lanes running; stop sentinels `.run/ox_campaign.stop` + `.run/auto/STOP` still SET. **Read first in the fresh session:** this block β†’ `docs/tool-designs/frontier-analysis-s61.md` (the plan, with Addenda 2–5 = what each executed step changed) β†’ the S62 blocks above for detail. @@ -2712,7 +2712,7 @@ a sweep, verify from the gate not the classification ledger, shard `api_agent` b ## S63 (2026-08-26 evening, Max) β€” T5 OPENED: session start compressed (~30k tokens), sweep #8, the wave tooling -**Resume ritual:** tree clean at `commit:3134`, overlays.mk 5,090 lines, red list EMPTY, no lanes, both stop +**Resume ritual:** tree clean at `20e700585`, overlays.mk 5,090 lines, red list EMPTY, no lanes, both stop sentinels SET (Claude harness ignores them). **Fleet sweep #8 (R22, from `make clean`): 213/213 GREEN, extract-all 212/212, exit 0** (`.run/t5/sweep8.log`). Task list built (R28): T5.0–T5.7, T6–T9. **T5.1 DONE β€” the draw and bank halves around the promoted T4 harness** (SETUP row): `tools/t5_targets.py` @@ -2728,19 +2728,19 @@ draw holds one name per wave; `claude_wave_packs.py` and `wave_judge.py` now REF 4 opus; 13 binaries), packs 48/48 with cards. NEXT: one free maintenance (lane G) pass, then the R27 prompt for Ultracode and the t5a Workflow. -**T5.2 β€” lane G (free A-prop), one pass: 23 banked, zero model tokens** (`commit:3136`). 104 mechanical +**T5.2 β€” lane G (free A-prop), one pass: 23 banked, zero model tokens** (`3591ac656`). 104 mechanical drafts β†’ 45 staged (dropped 38 COMPILE-FAIL / 16 AGREE-but-shape-DIFF / 5 mismatch) + 4 recovered by `rtu_second_chance` + 1 by `fix_tu_ret_decls`; its own fleet R22 read 213/213. Zero overlap with the t5a slate (asserted before the wave gated). **T5.3 β€” WAVE t5a: 43/48 banked = 89.6%.** 48 agents (44 Sonnet ≀120 ins, 4 Opus >120), 13 binaries, 4.48M subagent tokens, 25.7 min drafting, 0 agent errors. Gate (`t5_bank.sh` β†’ `wave_judge --union`): -sonnet **39/44**, opus **2/4**, union 41 banked, fleet **213 passed, 0 failed of 213** β†’ `commit:3137`. +sonnet **39/44**, opus **2/4**, union 41 banked, fleet **213 passed, 0 failed of 213** β†’ `bfd591c9c`. Per band: sonnet ≀50 **32/33**, 51–120 **7/11**, >120 0/4; opus >120 **2/4**. Then the RECOVERY step (wave-closing sequence): 2 self-MATCH drafts the gate refused were both byte-exact in isolation (`match_one` MATCH, closeness 0, bucket `integration`) and both failed for ONE reason β€” the destination TU declared `extern void func_X(...)` for an **s32-returning** function. -`fix_tu_ret_decls` retyped 3 decls and banked **2/2** (`commit:3138`), clean sweep #9 **213/213**. +`fix_tu_ret_decls` retyped 3 decls and banked **2/2** (`827b0b156`), clean sweep #9 **213/213**. Self-reports vs gate (R14): 43 MATCH claimed β†’ 41 banked at the gate β†’ 43 after recovery. **Residue (5):** func_8017E92C (c=3, prologue birth-order), func_8017FC44 (c=14, Β§201-C eager delay-slot fill), func_8017EA24 (c=13, symmetric delay-slot swap Β§224/Β§263), func_8017DD80 (c=4, @@ -2757,7 +2757,7 @@ declarations). Nine agents reported discarding it unprompted ("the pack's warm-s 'banked twin' were both wrong", "decl-hints belonged to a different overlay's function at the same address"). t5a's 89.6% was scored *through* that handicap. T4's ladder comparison still stands (all arms carried the same handicap) but its absolute rates were depressed. -**Fix (`commit:3139`):** cards keyed **(binary, fn)**; a card from another binary is DROPPED and +**Fix (`41b259e52`):** cards keyed **(binary, fn)**; a card from another binary is DROPPED and counted, never substituted (R43). That leaves K-class targets with no card at all β€” so **`tools/t5_cards.py`** now BUILDS the target's own fuel: `tu_ref` (already-banked neighbours in the target's OWN TU, ranked by shared .s relocation symbols β€” Β§194-E, the exact lever t5a's agents kept @@ -2778,7 +2778,7 @@ number and opposite facts; the corrected run read 98%. t5a alone is **89.6%**, six times the threshold. Wave t5b (48 fresh + 4 residue escalated to Opus, 15 binaries) is drafting with the repaired packs. -**T5.5 β€” R16 distill of t5a (41 byte-proven transcripts, `commit:3142`).** 39 distilled (3 lost to API +**T5.5 β€” R16 distill of t5a (41 byte-proven transcripts, `3ae63a9b2`).** 39 distilled (3 lost to API rate limits, RECORDED not silently skipped β€” R32): 16 trivial, 5 novelty claims β†’ the Opus verifier returned **1 ADDENDUM, 2 COVERED, 2 REFUTED**. Banked: a Β§164-55 addendum, byte-proven on `func_8017E2CC` β€” when one if/else arm is a SINGLE CONSTANT assignment, writing it as the TRUE arm @@ -2791,7 +2791,7 @@ read this backwards** ("put the target's fall-through block in the `if`" names t are worth as much as the addendum β€” they stopped wrong laws entering the book. Cookbook **888 β†’ 913 sections**, index green. -**T5.6 β€” WAVE t5d: 42/48 banked = 87.5%** (`commit:3143`; sonnet 38/44, **opus 4/4 on >120 ins**; +**T5.6 β€” WAVE t5d: 42/48 banked = 87.5%** (`4f1ff29a6`; sonnet 38/44, **opus 4/4 on >120 ins**; fleet 213/213). Per band: sonnet ≀50 29/33, 51–120 9/11, >120 0/4; opus >120 4/4. **Its 6 misses decomposed, and the split is the finding:** ONE genuine codegen residual (func_80180808, closeness 2, branch polarity) and **FIVE byte-correct bodies blocked purely by TU @@ -2803,7 +2803,7 @@ exact MIRROR of the class `fix_tu_ret_decls` repairs, which is why the automatic ("definition return is 'void'"). This is the `matching-is-solved-integration-is-the-bottleneck` law measured again: **5 of 6 wave misses were integration, not codegen.** Since the class recurs every wave, it got a tool rather than five hand-edits: -**`tools/workflows/claude_integration_recover.js`** (`commit:3144`) β€” one agent per blocked draft, +**`tools/workflows/claude_integration_recover.js`** (`c865841db`) β€” one agent per blocked draft, fixing the DRAFT's own declarations only, forbidden from `src/shared/engine_core.h` or any other binary (Β§65a blast-radius law), and required to re-pass BOTH oracles (the real-TU compile AND an unchanged `match_one` MATCH) before writing out. @@ -2823,16 +2823,16 @@ pseudo; a bare-PARAMETER-vs-local rule for cross-jumped duplicate call sites) | wave | targets | banked | per-band | commit | |---|---|---|---|---| -| t5a | 48 | **43** (41 gate + 2 recovery) | sonnet ≀50 32/33 Β· 51–120 7/11 Β· opus >120 2/4 | `commit:3137` `commit:3138` | -| t5b | 52 (48 + 4 residue) | **44** | sonnet 37/43 Β· **opus 7/8** | `commit:3147` | -| t5c | 48 | **39** | sonnet 36/43 Β· opus 2/4 | `commit:3148` | -| t5d | 48 | **42** | sonnet 38/44 Β· **opus 4/4 >120** | `commit:3143` | -| t5e | 64 (48 + 16 residue) | **53** | sonnet 37/41 Β· **opus 16/18** | `commit:3153` | -| t5f | 48 | **34** of 35 drafted | sonnet 34/35 | `commit:3154` | -| t5h | 19 (the limit-killed) | **13** | sonnet 8/14 Β· **opus 5/5 >120** | `commit:3156` | -| main | 11 | **9** (`gate_main` clean rebuild) | main SHA `143dbb89` byte-identical | `commit:3150` | -| integration recovery | 5 | **5** | all byte-correct already; TU plumbing only | `commit:3149` | -| lane G (free) | β€” | **23 + 3** | zero model tokens | `commit:3136` `commit:3155` | +| t5a | 48 | **43** (41 gate + 2 recovery) | sonnet ≀50 32/33 Β· 51–120 7/11 Β· opus >120 2/4 | `bfd591c9c` `827b0b156` | +| t5b | 52 (48 + 4 residue) | **44** | sonnet 37/43 Β· **opus 7/8** | `0b6f1039c` | +| t5c | 48 | **39** | sonnet 36/43 Β· opus 2/4 | `eaf423f1d` | +| t5d | 48 | **42** | sonnet 38/44 Β· **opus 4/4 >120** | `4f1ff29a6` | +| t5e | 64 (48 + 16 residue) | **53** | sonnet 37/41 Β· **opus 16/18** | `b2365aeeb` | +| t5f | 48 | **34** of 35 drafted | sonnet 34/35 | `1fffccf85` | +| t5h | 19 (the limit-killed) | **13** | sonnet 8/14 Β· **opus 5/5 >120** | `37cd7e2e0` | +| main | 11 | **9** (`gate_main` clean rebuild) | main SHA `143dbb89` byte-identical | `b1a0d49a5` | +| integration recovery | 5 | **5** | all byte-correct already; TU plumbing only | `923bd5ec6` | +| lane G (free) | β€” | **23 + 3** | zero model tokens | `3591ac656` `a4d66a27c` | **FLEET: 2,380 β†’ 2,068 stubs = 312 closed this session** (derived from `corpus.stubs`, not the commit-subject regex, which reads 282 and undercounts β€” R33/R41). **98.5% β†’ 98.6% instruction-weighted, @@ -2908,7 +2908,7 @@ compile-time zero), func_8017EDD4 (c=33, sched1/dbr tie-break, 9 variants tried) main's func_8001BC6C (Β§307) and func_80021284 (c=25, REGALLOC-PERM). Opus-refused twice β†’ wall: ov_SC06_025:func_8017EF94, ov_SC06_025:func_8017FD28, ov_SC03_028:func_8017D8B8. -## πŸ›‘ SESSION CHECKPOINT β€” S63 (2026-08-27 ~09:45). Phase 31 T5 CONTINUES. Tree clean at `commit:3158`. NO lanes running; stop sentinel `.run/ox_campaign.stop` SET. +## πŸ›‘ SESSION CHECKPOINT β€” S63 (2026-08-27 ~09:45). Phase 31 T5 CONTINUES. Tree clean at `bd472c5fc`. NO lanes running; stop sentinel `.run/ox_campaign.stop` SET. **Read first in a fresh session:** this block β†’ the S63 results block above β†’ `docs/tool-designs/frontier-analysis-s61.md` Β§4 (the plan; T1–T4 done in S62, T5 running). **FLEET: 2,068 stubs Β· 98.6% instr Β· 97.1% distinct Β· GREEN 213/213** (R58; last clean sweep at the @@ -3004,20 +3004,20 @@ later in t5h/t5i β€” re-derive the ledger from the drawn ledger before trusting ## S64 (2026-08-27, Ultracode) β€” 11 waves, the decl-mirror tool, and an R14 self-correction **Waves (banked / drafted):** t5j 45/48 Β· t5k 47/50 Β· t5l 39/48 Β· t5m 53/61 Β· t5n 43/48 Β· t5o 36/39 Β· -t5p 30/33 Β· t5q 28/30 Β· t5r 30/47 Β· plus the 741-ins single-function recovery. Commits `commit:3167`, -`commit:3168`, `commit:3170`, `commit:3171`, `commit:3173`, `commit:3175`, `commit:3176`, `commit:3177`, -`commit:3179`, `commit:3178`. **Every wave closed with a clean-rebuild fleet sweep at 213/213.** +t5p 30/33 Β· t5q 28/30 Β· t5r 30/47 Β· plus the 741-ins single-function recovery. Commits `5e5fd1cb7`, +`5365db0f8`, `78f4934ef`, `ab3fffda1`, `e2d153132`, `6a601a0fc`, `0bcd8b3d2`, `34963d42e`, +`d9a30167d`, `4ed883d0f`. **Every wave closed with a clean-rebuild fleet sweep at 213/213.** **FLEET: 1,741 β†’ 1,616 stubs this session; 2,380 β†’ 1,616 across S63+S64 = 764 closed.** **98.7% β†’ 98.8% instruction-weighted Β· 97.3% β†’ 97.4% distinct** (89,763/90,929 unique fns). Cookbook **919 β†’ 920 sections**, index green. 46 commits. Tree clean. **R14 SELF-CORRECTION β€” READ THIS BEFORE TRUSTING ANY WAVE SUMMARY.** I reported -`ov_SC03_107:func_8017BEBC` (741 ins) as banked in t5n, in chat AND in commit `commit:3173`'s message. +`ov_SC03_107:func_8017BEBC` (741 ins) as banked in t5n, in chat AND in commit `e2d153132`'s message. **It was not.** The drafting agent self-reported MATCH, its local `match_one` said closeness 0, and I repeated that without reading the judge β€” which recorded 42 union banks with that function excluded. It stayed an `INCLUDE_ASM` stub for three more waves. Caught only when the distill slate (banked-only -by contract) failed to include it. **It is banked NOW** (`commit:3178`), byte-proven at the whole-binary +by contract) failed to include it. **It is banked NOW** (`4ed883d0f`), byte-proven at the whole-binary gate. The body had been correct the whole time; the sole blocker was `conflicting types for ApplyMatrixSV` at tu:5758 β€” the draft re-declared a callee the TU already declares with a different param spelling, and deleting the draft's own extern fixed it (the call site's `(void*)` casts convert @@ -3132,13 +3132,13 @@ rewritten to say this. Consequence: fixed per-wave overheads (draw, both gate ar the distill) now amortize over 15 targets, so **pull the agent-free levers first**. ### BANKED THIS SESSION β€” 27 functions, every one committed as it landed (R42) -* **t5s wave (29 agents, the last 29-slate):** 24 banked β€” sonnet 22/25, opus 2/4. Commit `commit:3187`. +* **t5s wave (29 agents, the last 29-slate):** 24 banked β€” sonnet 22/25, opus 2/4. Commit `dd1112728`. * **Integration recovery: 3**, and **2 of those were only reachable because of a fix made this session** β€” `ov_SC03_012:func_8017BEBC` (246 ins) and `ov_SC03_107:func_80157808`, both banked as RAW drafts at the pass-1a that did not exist before. Plus `ov_SC04_004:func_8017F9F4`. ### FOUR TOOL DEFECTS FOUND AND FIXED (all committed, all negative-controlled) -1. **`recover_integration` gated only its own REWRITE of a draft** (`commit:3186`, cookbook **Β§313**). +1. **`recover_integration` gated only its own REWRITE of a draft** (`6ed0f77b6`, cookbook **Β§313**). `macro-externs` rewrites a draft's callee `extern` to the FLEET `DEFINE_` macro's head β€” but `func_ADDR` names are per-ADDRESS, not per-function, so another overlay's `extern void func_8017C338(void)` replaced this overlay's correct 4-arg decl and manufactured the CC1-FAIL it @@ -3147,7 +3147,7 @@ the distill) now amortize over 15 targets, so **pull the agent-free levers first 2. **`harvest_verify.classify_fail` labelled a BUILT draft `CC1-FAIL`** using the orphaned `note:` half of a benign warning pair. Notes now drop with their warnings. Negative-controlled over 5 diagnostic shapes; only warning+note-only changed (to the honest `no-diagnostic` label). -3. **`masked_diff` compared NOTHING at `R_MIPS_26` slots** (`commit:3188`) β€” `mask_for` returned 0, and +3. **`masked_diff` compared NOTHING at `R_MIPS_26` slots** (`048666600`) β€” `mask_for` returned 0, and since each comparer takes its mask from ONE side, a `j`/`jal` there swallowed whatever the other side held. Byte-reproduced: my `j` vs target `bne` β†’ 0, vs `nop` β†’ 0, my `jal` vs `bne` β†’ 0, while the mirror (my `bne` vs target `j`) β†’ 1. Fix: mask `0xFC000000` β€” the 26-bit field stays masked, @@ -3155,7 +3155,7 @@ the distill) now amortize over 15 targets, so **pull the agent-free levers first AND after** (the same three main length-delta survivors), over a population that exercises the path (812 stubs carry internal-`j` `.text` relocs / 3,164 such instructions). Found by a t5s drafting agent on func_8017EB30; verified BROADER than it reported. No bank was ever at risk (G3). -4. **`--probe-only` crashed for `--funcs`/`--auto`/`--from-file`** (`commit:3190`) β€” it exec'd +4. **`--probe-only` crashed for `--funcs`/`--auto`/`--from-file`** (`edec2adb9`) β€” it exec'd `blocker_probe` BEFORE staging. Only `--draft-dir` worked. Staging now happens first; control = the `--draft-dir` path returns its pre-edit verdict verbatim. @@ -3215,25 +3215,25 @@ number as the standing cap; ask before scaling. Memory `endgame-budget-unconstra throughput, NOT quality.** Remaining K+L population: **231 fns / 13,498 ins across 135 binaries.** ### BANKED β€” 42 functions, each committed as it landed (R42) -`commit:3184` func_8017F9F4 Β· `commit:3185` **func_8017BEBC (246 ins)** Β· `commit:3187` **t5s = 24** Β· -`commit:3189` func_80157808 Β· `commit:3193` md_MAIN_026 Β· `commit:3197` **t5t = 13** Β· `commit:3198` +`beba65174` func_8017F9F4 Β· `75a6639e5` **func_8017BEBC (246 ins)** Β· `dd1112728` **t5s = 24** Β· +`cbd89e192` func_80157808 Β· `e75f38484` md_MAIN_026 Β· `83334a6c9` **t5t = 13** Β· `2bd4dcf86` func_8018452C. **5 of the 42 came from integration recovery, and 4 of those 5 banked as RAW drafts β€” the pass that did not exist before this session.** ### FIVE TOOL DEFECTS FIXED (all committed, all negative-controlled) -1. **`recover_integration` gated only its own REWRITE** (`commit:3186`, cookbook **Β§313**). `macro-externs` +1. **`recover_integration` gated only its own REWRITE** (`6ed0f77b6`, cookbook **Β§313**). `macro-externs` rewrites a callee `extern` to the FLEET `DEFINE_` macro's head β€” but `func_ADDR` is per-ADDRESS, so another overlay's `extern void func_8017C338(void)` replaced this overlay's correct 4-arg decl and MANUFACTURED the CC1-FAIL it reported as the draft's failure. Now **pass 1a raw β†’ pass 1b rewrite only what raw refused**, winning variant recorded per fn. 2. **`harvest_verify.classify_fail` labelled a BUILT draft `CC1-FAIL`** from the orphaned `note:` half of a benign warning. Controlled over 5 diagnostic shapes; only warning+note-only changed. -3. **`masked_diff` compared NOTHING at `R_MIPS_26` slots** (`commit:3188`) β€” `mask_for` returned 0 and +3. **`masked_diff` compared NOTHING at `R_MIPS_26` slots** (`048666600`) β€” `mask_for` returned 0 and each comparer takes its mask from ONE side, so a `j`/`jal` swallowed the other side's instruction. my `j` vs `bne` β†’ 0, vs `nop` β†’ 0, `jal` vs `bne` β†’ 0; mirror β†’ 1. Fix `0xFC000000`. **R39: 2,554 stubs, nonzero 3 before AND after** (812 stubs / 3,164 internal-`j` instructions exercise it). -4. **`--probe-only` crashed for `--funcs`/`--auto`/`--from-file`** (`commit:3190`) β€” exec'd before staging. -5. **The distill novelty selector was INVERTED** (`commit:3194`): `'no cookbook lever'` matched "no +4. **`--probe-only` crashed for `--funcs`/`--auto`/`--from-file`** (`edec2adb9`) β€” exec'd before staging. +5. **The distill novelty selector was INVERTED** (`91e624c04`): `'no cookbook lever'` matched "no cookbook lever *needed*" (a TRIVIAL note) and was the only pick of 24, while three multi-lever notes went unseen β€” **and it structurally could not see UNBANKED functions at all**, which is where the hardest functions write their richest notes (defeating cookbook Β§52 with the flywheel's own @@ -3244,7 +3244,7 @@ the pass that did not exist before this session.** GLOBAL `git status`, an abort does NOT restore stage edits, and gate_stage's commit is a deliberately broad `git add -u src/` β€” so md_MAIN_026's +1 commit swept **696 broken lines of ov_MAIN_012** into itself; `check-all` went 212/213 and the t5t bank was blocked behind it for ~1h. - Repaired at `commit:3195`; **single-instance flock added** (`commit:3196`). NARROWING the gate's + Repaired at `3e6912f53`; **single-instance flock added** (`25b72baa8`). NARROWING the gate's `git add` would have been the WRONG fix β€” that breadth is deliberate (a narrower glob once dropped 4 R22-verified banks). **RUN THE DRIVER SERIALLY.** * A `pgrep -f` wait-loop that **matched its own wrapper** (never exits) and a `pkill -f` that **killed @@ -3322,7 +3322,7 @@ actively say "no banked twin β€” derive from the .s" for them. Measured cost: a `ov_SC03_023:func_8017BEBC` to closeness 45 while `ov_SC02_004` held a byte-identical banked copy; `family_remap` produced it exactly, in one command. **Filter every draw against the twin list.** -### PARALLEL GATING β€” `tools/parallel_gate.py` (NEW, committed `commit:3275`) +### PARALLEL GATING β€” `tools/parallel_gate.py` (NEW, committed `e9449ef0f`) The per-binary gate was serial BY HARNESS, not by nature (each binary has its own `build/`, `.ld`, SHA). One `git worktree` per worker; workers gate and NEVER commit; the orchestrator adopts only gate-ACCEPTED drafts and only where the main tree still equals the pinned baseline (else REFUSED, not @@ -3350,7 +3350,7 @@ t5s 24/29 Β· t5t 13/15 Β· t5v 14/15 Β· t5u 12/15 Β· t5w 5/5 Β· t5y 5/5 Β· t5x 3/ ### MY OWN ERRORS (do not repeat) * `xargs -P 4` over the recovery driver put **696 broken lines of ov_MAIN_012 into another binary's - commit**; fleet went 212/213 and the t5t bank was blocked ~1h. Repaired at `commit:3195`. + commit**; fleet went 212/213 and the t5t bank was blocked ~1h. Repaired at `3e6912f53`. * THREE `pkill -f` / `pgrep -f` calls matched **my own wrapper shell** β€” twice killing my shell, once making `t5_bank` refuse ("another gate is running" = my own waiter). **Monitor by ARTIFACT (git log, file counts, output files), never by pattern-matching the process table.** @@ -3412,7 +3412,7 @@ lock cost a t7b agent its \$0 diagnostic). ### MY ERRORS β€” all repaired, all accounted * `xargs -P 4` over the recovery driver swept **696 broken lines of ov_MAIN_012** into another - binary's commit β†’ fleet 212/213, ~1h of banking blocked. Repaired `commit:3195`. **Blast radius fully + binary's commit β†’ fleet 212/213, ~1h of banking blocked. Repaired `3e6912f53`. **Blast radius fully measured: exactly ONE draft was falsely rejected (`ov_MAIN_012:func_80174888`) and it has since banked UNCHANGED.** * 3 Γ— `pkill -f`/`pgrep -f` matched my own wrapper (twice killed my shell; once made `t5_bank` refuse @@ -3437,7 +3437,7 @@ lock cost a t7b agent its \$0 diagnostic). ## πŸ›‘ SESSION CHECKPOINT β€” S65 FINAL-4 (2026-08-29, end of session). Supersedes EVERY earlier block in this file. Phase 31 T5 CONTINUES. Written for a FRESH SESSION that has none of this context. **Machine QUIESCED:** no lanes, no workflows, no background jobs. `src/`, `config/`, `include/` CLEAN. -HEAD `commit:3291`. 108 commits this session (Drew pushes β€” R6). `ghidra/` churn in `git status` is MCP +HEAD `5ef1c0e61`. 108 commits this session (Drew pushes β€” R6). `ghidra/` churn in `git status` is MCP noise, do not commit. `.run/ox_campaign.stop` remains SET. ### STATE (measured from `corpus.stubs`, not summed from reports) @@ -3491,7 +3491,7 @@ times. Consequences, both now addressed but only because Drew asked: Β§8e JTBL_PADS; probe first, it is $0; includes `ov_MAIN_012:func_80144B9C` at **770 ins**), **33 NEAR-MISSES** (closest are closeness 1, 2, 2, 2, 2, 2, 3, 4, 4, 5), **22 ERRORED** (no draft ever written β€” rate limits β€” so not failures at all). -* **Step 6 ran once, for t5s+t5t only.** The catch-up harvest (commit `commit:3291`) distilled 14 +* **Step 6 ran once, for t5s+t5t only.** The catch-up harvest (commit `5ef1c0e61`) distilled 14 novelty-flagged transcripts from the other 12 waves: **7 COVERED (rediscoveries), 6 ADDENDUM, 1 NEW (Β§314)**. Four are marked ⚠ UNPROVEN β€” they came from gate-REFUSED drafts. * **A checkpoint written before the harvest is stale by construction.** I wrote FINAL-3 before @@ -3528,7 +3528,7 @@ reproduced incl. the same +1 barrier overshoot) Β· `ov_SC06_018:func_8018AD74` ( ### MY OWN ERRORS (all repaired; listed so a fresh session does not repeat them) * **`xargs -P 4` over the recovery driver corrupted the tree** β€” an aborted run's stage edits were swept into a concurrent run's commit (696 broken lines into `ov_MAIN_012`), fleet went 212/213 and - the t5t bank was blocked ~1h. Repaired `commit:3195`. **Blast radius fully measured: exactly ONE draft + the t5t bank was blocked ~1h. Repaired `3e6912f53`. **Blast radius fully measured: exactly ONE draft was falsely rejected (`ov_MAIN_012:func_80174888`) and it has since banked UNCHANGED.** * **3 Γ— `pkill -f`/`pgrep -f` matched my own wrapper shell** (twice killed my own shell; once made `t5_bank` refuse with "another gate is running" β€” that was my own waiter). **Monitor by ARTIFACT @@ -3644,7 +3644,7 @@ Written for a FRESH SESSION that has none of this context, AFTER the last harves checkpoint is always the last thing written). **Machine QUIESCED:** no lanes, no workflows, no background jobs. `src/`, `config/`, `include/`, -`tools/`, `docs/` all CLEAN and committed. HEAD `commit:3350`. Drew pushes (R6). `ghidra/` churn in +`tools/`, `docs/` all CLEAN and committed. HEAD `d343892b4`. Drew pushes (R6). `ghidra/` churn in `git status` is MCP noise β€” do not commit. `.run/ox_campaign.stop` remains SET. ### STATE β€” measured from `corpus.stubs` + `progress.LINKED_SEGS`, not summed from reports @@ -3764,14 +3764,14 @@ source, and the F18 wall retraction. The Fable free-win review is `.run/fable_fr Written for a FRESH SESSION that has none of this context. **Machine QUIESCED:** no lanes, no workflows, no background jobs. `src/`, `config/`, `include/`, -`tools/`, `docs/` CLEAN and committed. HEAD `commit:3357`. Drew pushes (R6). `ghidra/` churn in +`tools/`, `docs/` CLEAN and committed. HEAD `bac753756`. Drew pushes (R6). `ghidra/` churn in `git status` is MCP noise β€” do not commit (verified excluded from both S67 commits). ### STATE β€” measured from `corpus.stubs`, not summed from reports * `make clean && make extract-all && make check-all` = **213 passed, 0 failed of 213**. * **FRONTIER = 526 open: 432 non-main + 94 main.** Session start 530 β†’ **4 closed**, byte-verified. -* Session commits: `commit:3352` (tools), `commit:3353` / `commit:3354` / `commit:3355` / `commit:3356` - (gate banks), `commit:3357` (the ov_SC04_018 repair). +* Session commits: `c4380c19e` (tools), `91197e1b5` / `4daf41702` / `29cb50454` / `1c21f0a1e` + (gate banks), `bac753756` (the ov_SC04_018 repair). * dedup-check clean: 2193 validated, 0 failed, C1 255302/255302. * `make tools-health` has ONE **pre-existing** cdecl defect (1 of 74,749 declarations, `func_8017EE08_p55352` / `struct ZnRec`). cdecl.py and its inputs are byte-identical to HEAD, so @@ -3780,7 +3780,7 @@ Written for a FRESH SESSION that has none of this context. ### THE FOUR THINGS A FRESH SESSION MUST NOT RE-LEARN 1. **PROPAGATION IS NOT BYTE-GATED, AND THAT COST A RED BINARY.** `gate_stage` byte-gates the SOURCE binary, then `dedup_propagate` writes to N OTHER binaries and nothing re-verifies them. - Commit `commit:3354` replaced three bodies in `ov_SC04_018_jr_80135D20.c` with `DEFINE_func_*()` + Commit `4daf41702` replaced three bodies in `ov_SC04_018_jr_80135D20.c` with `DEFINE_func_*()` and deleted the 981 lines they occupied β€” **including the file-scope declaration layer the two surviving non-deduped bodies still used**. A duplicate of those decls survived at line 225, BELOW the function using them at line 42; C89 ordering made it fatal. The per-binary gate said @@ -3967,7 +3967,7 @@ The codebase said a carve could not run in a worktree. Both halves are required: **I shipped (a) alone and declared victory. R22 then failed 13 of 213 β€” every one a jtbl binary from that run.** The bodies merged and the carve config did not, so the C referenced a carve the - config never described. Reverted `commit:3396`, fixed with `ovl_block()`/`splice_ovl_block()` (cut on + config never described. Reverted `a732097c3`, fixed with `ovl_block()`/`splice_ovl_block()` (cut on the `# --- (...) ---` headers so two workers edit DISJOINT regions), rerun clean. The tell that it worked: **32 files merged instead of 18.** * **ALWAYS run a jtbl gate with `--r22`** β€” it aborts on a non-green fleet instead of committing red @@ -4513,7 +4513,7 @@ It generalises to the CALLEE named in the diagnostic (banked `main:func_80021D38 byte-perfect: `make extract BINARY= && make build` -> BYTE-IDENTICAL, proven on both. A jtbl bank changes CARVE CONFIG (JTBL_PADS + splat yaml), which are splat INPUTS β€” so a build-only check links newly-carved C against STALE extracted state. I reverted a legitimate 96-line match on that - reading (restored in commit:3481) after writing "it may not even be false" and not testing it. + reading (restored in 5450f1818) after writing "it may not even be false" and not testing it. **STANDING FIX: if a gate touched `config/`, the per-binary verify is `make extract && make build`, never build alone.** Build-only is valid only when nothing under config/ changed. 2. **`cast_self_callers` left casts behind for drafts that did not bank**, and one of them made @@ -4904,7 +4904,7 @@ integration. `decl_prior` already computes the destination's environment. R12 puts ALL scratch under `.run/`, so any plan following the project's own convention pointed at a nonexistent directory: `gate_stage` found **0 drafts**, banked 0, exited **rc=0**. 35 binaries / 57 drafts all "banked 0" **in 1-2 seconds each** while the SAME drafts gated in-tree banked 15/16 and - 3/6. Fixed at `commit:3536` (resolve against REPO + refuse an unreadable drafts dir, R32/R43); the + 3/6. Fixed at `52208ae6d` (resolve against REPO + refuse an unreadable drafts dir, R32/R43); the same job now takes 100s instead of 1s. **The 1-2s runtime was the only tell** β€” I nearly recorded "57 drafts failed" as a fact about the drafts (R40: exonerate the instrument first). **⚠ UNAUDITED BLAST RADIUS:** any earlier wave that pointed `parallel_gate` at a `.run/` drafts dir @@ -4937,7 +4937,7 @@ integration. `decl_prior` already computes the destination's environment. **STATE:** tree clean, no lanes running, **21 banked** *(corrected later in S70 β€” see the S70 FINAL-2 block: the "main +1" reported here NEVER LANDED. `harvest_verify` invoked directly reports `verified 1` -but does not PERSIST the splice β€” `gate_stage` wraps it with that step. Commit `commit:3538` carries only +but does not PERSIST the splice β€” `gate_stage` wraps it with that step. Commit `55c263d59` carries only a comment; `INCLUDE_ASM(..., func_8002B0B4)` is still at src/800.c:18341.)* **R22 GREEN β€” `check-all: 213 passed, 0 failed of 213` from a clean rebuild at 17:21:36** (a second green; the session also opened with one at 15:55, clearing S69's `--no-r22` debt). No `.run/R22_DEBT` standing. Drew pushes (R6). `ghidra/` churn is MCP noise. @@ -4977,7 +4977,7 @@ prototypes SWAPPED, and both print full success. Byte-witnessed twice this sessi the FLEET-SHARED `engine_core.h`. Journal file+occurrence, hash-verify the restore, fail loud. **4. AUDIT THE `parallel_gate` BLAST RADIUS (Β§402).** It was gating NOTHING at rc=0 for any plan whose -drafts lived under `.run/` (fixed at `commit:3536`). Earlier waves using that shape produced honest-looking +drafts lived under `.run/` (fixed at `52208ae6d`). Earlier waves using that shape produced honest-looking zeros β€” backlog rows marked `failed` from such a run **may never have been gated**. Until audited, do not trust a historical "gated and failed" verdict (this is R38's lesson with a harness cause). @@ -4995,7 +4995,7 @@ as gated when it STAGES it, not when the gate COMPLETES. ## WHAT S70 ACTUALLY CHANGED * **22 banks** (355 -> 333) from the standalone-MATCH sweep; **15 came from ONE cluster** (ov_SC06_011). -* **Three tool defects found, one fixed:** `parallel_gate` gating nothing at rc=0 (FIXED, `commit:3536`); +* **Three tool defects found, one fixed:** `parallel_gate` gating nothing at rc=0 (FIXED, `52208ae6d`); both undo-journals corrupting on duplicate decls (open, task 3 above); `make report` burying its own summary under the match list. * **Cookbook 1,062 -> 1,065 sections:** **Β§401** the jtbl-carve probe blind spot (a probe that does not @@ -5046,7 +5046,7 @@ candidates produced **52/52 IDENTICAL drafts, 0 changed**. Whatever made these b environment was not the blocker. Re-run `twin_rescan` β€” 20 banks just changed the twin graph again (Β§397). ## FOUR TOOL DEFECTS FOUND, THREE FIXED β€” the session's real yield -1. **`parallel_gate` gated NOTHING at rc=0** (FIXED `commit:3536`). It ran `gate_stage` with +1. **`parallel_gate` gated NOTHING at rc=0** (FIXED `52208ae6d`). It ran `gate_stage` with `cwd=` and passed a RELATIVE `--drafts` through, so any plan under `.run/` (R12's own convention) resolved to nothing: 0 drafts, banked 0, **rc=0**, 1-2s per binary. Same drafts in-tree banked 15/16. **BLAST RADIUS AUDITED AND THE WARNING REFUTED (S70, after the fix):** every one of the @@ -5056,14 +5056,14 @@ environment was not the blocker. Re-run `twin_rescan` β€” 20 banks just changed suspect.** My earlier "backlog rows marked `failed` may never have been gated" was a mechanism generalised into a consequence without measuring it β€” the exact error the `verify-blast-radius-not-just-defect` memory names. Cookbook Β§402. -2. **Both undo-journals corrupted files and reported success** (FIXED `commit:3544`). `replace(after, +2. **Both undo-journals corrupted files and reported success** (FIXED `da0a3e6cb`). `replace(after, before, 1)` hits the FIRST occurrence; `--any-proto` collapses distinct decls to identical `after` text, so originals land on the wrong occurrences. Witnessed: `engine_core.h` 97+/97- after "restored 382, kept 0, missing 0"; `src/800.c` decls of `func_80031988` swapped. Now REFUSES (rc=2) on an ambiguous group + records `sha_before` + hash-verifies. NC'd against the very journal that broke it: refuses, writes nothing. The refusal showed why guessing was hopeless β€” one `after` maps back to **four** distinct originals. Cookbook Β§403. -3. **`gater_lane` ledgered drafts the gate never examined** (FIXED `commit:3545`). Now only ledgers a +3. **`gater_lane` ledgered drafts the gate never examined** (FIXED `98e923fdd`). Now only ledgers a binary whose worker banked, wrote verdict rows, or reported a draft count; refused/blind binaries stay eligible and are named loudly (R55). 4. **`harvest_verify` VERIFIES but does not BANK** (OPEN β€” task queued). It reported @@ -5366,8 +5366,8 @@ FLEET instr-weighted : 13,456,476 / 13,523,865 = 99.5% (session start 13, FLEET distinct-code(uniq) : 5,785,422 / 5,851,972 = 98.9% (session start 5,774,885 -> +10,537 ins) REAL FRONTIER (PsyQ libs excluded) : 355 -> 210 ``` -Gate commits, all R22-green: `commit:3571` (31) Β· `commit:3573` (23) Β· `commit:3574` (31) Β· `commit:3577` -Β· `commit:3579` (2), plus the standalone/carve/Β§332b banks earlier in the session. +Gate commits, all R22-green: `2ad58ddc3` (31) Β· `69d6c76a3` (23) Β· `027f4f2d2` (31) Β· `9df00e71f` +Β· `2e87d246f` (2), plus the standalone/carve/Β§332b banks earlier in the session. ## THE WAVE: 130 AGENTS, 115 MATCH / 3 NEAR, ~14M SUBAGENT TOKENS Three waves drawn/carded/packed/validated through the playbook (`.run/S70w_1` 50 Β· `.run/S70x_1` 40 Β· @@ -5378,15 +5378,15 @@ twin graph, so prior failures were materially different. ## FIVE CARD-FUEL DEFECTS β€” one root, four faces, three fixed Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/R51): -1. **warm-start homonym body** β€” FIXED (`commit:3570`). The law-1c guard exempted any body with 0-1 +1. **warm-start homonym body** β€” FIXED (`c16fd3cf5`). The law-1c guard exempted any body with 0-1 symbols (exactly the small-function case) and needed a strict majority foreign to reject. Now ANY foreign symbol disqualifies. NC over all 50 targets: 46 -> 42 admitted, and the 4 rejected are precisely the ones four agents independently called "a different function entirely". -2. **SYS.md invisible to every agent** β€” FIXED (`commit:3572`). The PLAYBOOK's own documented +2. **SYS.md invisible to every agent** β€” FIXED (`f33c45574`). The PLAYBOOK's own documented invocation passed `/packs` as out_dir, so SYS.md landed at `/packs/SYS.md` while `claude_wave_draft.js` tells every agent to read `/SYS.md`. **Every agent in every wave has been drafting without its laws file**; two said so verbatim, the rest never noticed. -3. **false "NO banked twin"** β€” FIXED (`commit:3575`). **MEASURED: 110 of 130 cards said "no banked +3. **false "NO banked twin"** β€” FIXED (`97cbaf040`). **MEASURED: 110 of 130 cards said "no banked twin" and 75 of those (68%) had that function ALREADY BANKED at the same address in a sibling overlay.** seed_ref is blind to reloc-only twins (Β§389); overlays share code at the same VRAM, so one address lookup answers it. Controls: positive returns the exact binary an agent found by hand. @@ -5431,7 +5431,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ been accumulating on disk while we kept looking at the open questions. 5. Carve route blocker 2 (Β§323 file-local type, 2 binaries) β€” blockers 1 and 3 fell this session. -- **S70 POST-CHECKPOINT β€” CARD DEFECT 4 FIXED (`commit:3581`); DEFECT 5 REFUSED BY ITS OWN REVIEW.** +- **S70 POST-CHECKPOINT β€” CARD DEFECT 4 FIXED (`e532033c5`); DEFECT 5 REFUSED BY ITS OWN REVIEW.** A 4-agent diagnoseβ†’adversarially-verify workflow produced one patch per defect. **Opposite verdicts, and the review is what made this safe:** * **#4 SYMBOL MISMATCHES β€” sound=True, SHIPPED.** `gate_feedback` gated on `shape=='MATCH'` when @@ -5496,7 +5496,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ number that included it. Fixed with `src_scope()`, which takes the scope from the binary's OWN stub rows (each names its TU) and keeps the directory prefix for overlays that have one β€” negative- controlled: main scope 0 β†’ **54 TUs**, `ov_SC07_006` 1 β†’ 3 (superset, no regression). Re-gated main: - **11 banked, committed commit:3586** (`src/800.c`, +928 lines), main's real frontier **64 β†’ 53**. + **11 banked, committed 588208d50** (`src/800.c`, +928 lines), main's real frontier **64 β†’ 53**. Same commit: a reused worktree's stale `.run/harvest_failed*.classified.txt` was being read by the NEXT job, so verdict rows appeared under the wrong binary (an `ov_SC04_011` row whose own text names `src/ov_SC01_009/…`); the worker now clears them first. New `tools/gate_triage.py` routes a gate's @@ -5555,7 +5555,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ notes are the lever: agents recovered surviving MATCH bodies from disk instead of re-deriving (`func_80181720`), skipped measured-inert levers, and deleted warm-start pins that were themselves the residual (`func_800D0488`). Gates: 2 banked of 11, then **9 banked of 32 across 7 binaries** - (`commit:3591`) β€” the rest are named TU/carve lanes, not codegen. Cookbook **Β§409** (the wave + its nine + (`c97ccee98`) β€” the rest are named TU/carve lanes, not codegen. Cookbook **Β§409** (the wave + its nine laws) and **Β§410** (COPY-THEN-ACCUMULATE-ON-THE-COPY, byte-proven, with its refutation list) written in-session; index 1078. **Β§409 law 1 is the important one:** a draft can sit at `match_one` closeness 0 with its RELOCATION @@ -5564,8 +5564,8 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ permuter scorer and every similarity tier β€” the Β§195-D blind spot, for HI16/LO16. It retroactively explains a class of "MATCH but the gate rejected it" verdicts. -- 2026-09-02 β€” **S71 gate cycle 3.** Gates so far this session: 12 (integration pile) + 2 + 9 (`commit:3591`) - + 6 (`commit:3594`) = **29 banked**. Wave 1 is 43/50 landed at ~97% MATCH. Wave-2 (27 targets) drawn, +- 2026-09-02 β€” **S71 gate cycle 3.** Gates so far this session: 12 (integration pile) + 2 + 9 (`c97ccee98`) + + 6 (`2064b5bee`) = **29 banked**. Wave 1 is 43/50 landed at ~97% MATCH. Wave-2 (27 targets) drawn, carded, packed, journal-fuelled (16/27 with history) and launching at the current cap. **Journal notes made permanent this cycle** (Drew's instruction, measured first): `tools/journal_notes.py` + auto-call from `claude_wave_packs.py`, memory `journal-notes-are-pack-fuel`, cookbook **Β§411**, @@ -5599,7 +5599,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ a real resegmentation question, not a scanner gap. Cookbook 1080. - 2026-09-02 β€” **S71 gate cycle 4 β€” FRONTIER 210 β†’ 176 (34 banked this session).** Gates: 12 (integration - pile) + 2 + 9 (`commit:3591`) + 6 (`commit:3594`) + 5 (`commit:3604`). main 64 β†’ 53, non-main 146 β†’ 123. + pile) + 2 + 9 (`c97ccee98`) + 6 (`2064b5bee`) + 5 (`27cc083de`). main 64 β†’ 53, non-main 146 β†’ 123. Wave 1 closed at 45/50 landed with a ~97% self-reported MATCH rate; wave 2 running at the current cap. **Model routing changed (Drew, measured):** difficulty is the prior RESIDUAL CLASS, not `nins` β€” a 26-ins function took 18 min / 31 tool calls while a 122-ins one took 80 s / 10. `draw_waves.arm_from_history()` @@ -5615,13 +5615,13 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ ~03:5x with `You've hit your session limit Β· resets 4:10am` and returned `NO-DRAFT` β€” **that is a harness kill, not a verdict about those functions** (R40); they are relaunched unchanged, not demoted or parked. Gate 5 (28 still-open drafts, re-gated after the five jr-isolates) banked **2** - (`commit:3614`). New: `tools/launch_check.py` refuses to launch an agent at an already-banked target β€” + (`0fb99b763`). New: `tools/launch_check.py` refuses to launch an agent at an already-banked target β€” the wave-2 payload held 3 of 27 (`ov_SC07_002:func_8017FCA8`, `md_MAIN_028:func_800CB8A0`, `ov_SC01_006:func_8017F9F8`), one of which had already burned a full agent run reporting "STALE CARD". Cookbook **Β§415** (a file-scope decl merges the TU's later BLOCK-scope externs into it, gcc-2.7.2 pushdecl) written in-session; index 1083. -- 2026-09-02 04:45 β€” **S71 gate cycle 6: +4 (`commit:3616`), frontier 181** (main 64 + non-main 117; from +- 2026-09-02 04:45 β€” **S71 gate cycle 6: +4 (`6d21bed9d`), frontier 181** (main 64 + non-main 117; from 210 at session start = **29 banked**, all R22-lineage). Post-limit lane is producing: `func_80181A60`, `func_80180D54`, `func_80181310`, `func_80183398`, `func_800D128C` all MATCH at closeness 0. **Three of those recovered a body off disk rather than re-deriving it** β€” the killed agents' scratch @@ -5632,7 +5632,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ defect that the same-address twin hint was FALSE three times tonight while the same-TU neighbour was the real fuel every time. Index 1084. -- 2026-09-02 05:00 β€” **S71 gate cycle 7: +3 (`commit:3619`), frontier 178** (main 64 + non-main 114; +- 2026-09-02 05:00 β€” **S71 gate cycle 7: +3 (`7b256d1c3`), frontier 178** (main 64 + non-main 114; **32 banked** from 210). Post-limit MATCH run continues: `func_8017E6F4`, `func_80182184`, `func_8017EB30`, `func_8017EC68`, `func_8017FFD0` β€” **five of the last seven recovered a body off disk** rather than re-deriving (killed-agent scratch dirs, never-gated `pool_1` drafts). @@ -5647,7 +5647,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ Cookbook **Β§417** (a pin blocks `jump.c`'s select collapse; unpinning then exposes `cse` skip-blocks β€” the misattribution that plateaued that function for three attempts). Index 1085. -- 2026-09-02 05:15 β€” **S71 gate cycle 8: +2 (`commit:3622`), frontier 176 = 34 banked.** Overnight lane +- 2026-09-02 05:15 β€” **S71 gate cycle 8: +2 (`e1f6c5cdd`), frontier 176 = 34 banked.** Overnight lane still ~100% MATCH on what it finishes: `func_8017DF8C` (32β†’0), `func_80183374` (296 ins), `func_8017EC68`, `func_8017EB30`, `func_80182184`, `func_8017FFD0`. **Two more proven WALLS recorded instead of redrafted** (`.run/S71_walls_found.txt` + @@ -5662,7 +5662,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ 8 latch rows in one respelling; and hoist a table pointer OUT of the loop so reload rematerialises it and combine cannot fold). Index 1086. -- 2026-09-02 05:35 β€” **S71 gate cycle 9: +2 (`commit:3625`), frontier 174 = 36 banked.** Cookbook **Β§419** +- 2026-09-02 05:35 β€” **S71 gate cycle 9: +2 (`ca813cb5a`), frontier 174 = 36 banked.** Cookbook **Β§419** is the night's best technique: *when a register pin is structurally impossible, win the local-alloc DENSITY contest instead.* On `ov_SC01_000/func_8017DD04` (297 ins) pinning `0x80` to `$7` loses its sched1 birthing boost because the function sets `$a2`/`$a3` itself for call args (`reg_n_sets==2`) β€” @@ -5685,7 +5685,7 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ `md_*` rows now name `jr_isolate_all --only ` themselves. **All 17 already had drafts on disk** (some with hundreds of stored variants), so this was a pure GATE opportunity: scoring the best draft each put **10 of 17 at closeness 0** for zero drafting. - **Carve gate: +5 (`commit:3627`) β€” and the five are EXACTLY the five overlays jr-isolated tonight** + **Carve gate: +5 (`c0e873194`) β€” and the five are EXACTLY the five overlays jr-isolated tonight** (ov_SC03_010, ov_SC03_013, ov_SC03_029, ov_SC03_092, ov_SC07_000). Causal confirmation, not correlation. **Frontier 169 = 41 banked** (from 210). The 4 remaining closeness-0 rows are the shared `func_8016AB6C` across ov_SC03_107/ov_SC07_007/010/011 @@ -5705,10 +5705,10 @@ Every one is fuel keyed by BARE NAME or asserted without a freshness check (R48/ identical in shape across all four overlays (βˆ’0x7F64/βˆ’0x5A650, βˆ’0x74DC/βˆ’0x2E898, βˆ’0x844C/βˆ’0x4E3A0, βˆ’0xBD8C/βˆ’0x65D08) β€” one seed's two data clusters each moving as a block. Rebased under the generalised rule (runs of constant delta, **every run β‰₯2 members**, `D_` only, - re-verify with `match_one` after rewriting), all four still MATCH, gate banked **4/4** (`commit:3629`). + re-verify with `match_one` after rewriting), all four still MATCH, gate banked **4/4** (`24d501703`). Cookbook **Β§420**; index 1088. -- 2026-09-02 05:50 β€” **Gate 10: +3 (`commit:3634`). FRONTIER 162 = 48 banked** (from 210). +- 2026-09-02 05:50 β€” **Gate 10: +3 (`f778dd3f6`). FRONTIER 162 = 48 banked** (from 210). Four cookbook sections harvested this stretch, all byte-proven, all one-line respellings no permuter reaches: **Β§421** (a `la $tN` + `addiu` pair is RELOAD's scratch, not an allocation β€” `regalloc.md` L80 takes the first wholly-unused call-clobbered reg, so no C dial reaches it; Β§385's @@ -5817,7 +5817,7 @@ above, and re-probe the exclude list after any tool change. ## πŸ›‘ SESSION CHECKPOINT β€” S71 (2026-09-02). SUPERSEDES EVERY earlier block in this file, including S70 FINAL-5. Phase 31 T10 CONTINUES. **STATE: fleet VERIFIED GREEN from a clean rebuild β€” `check-all: 213 passed, 0 failed of 213`** -(`.run/S71_r22b.log`, 01:47). `.run/R22_DEBT` cleared. Tree clean at `commit:3609`. No agents live, no +(`.run/S71_r22b.log`, 01:47). `.run/R22_DEBT` cleared. Tree clean at `dff33f66d`. No agents live, no lanes in flight (`lane_inflight list` β†’ 0). Drew pushes (R6). **HONEST FRONTIER: 187 (main 64 + non-main 123), from 210 at session start = 23 banked.** @@ -5834,15 +5834,15 @@ MAIN game-code weighted : 39,320 / 79,510 = 49.5% # 1. THE MAIN INCIDENT β€” READ THIS BEFORE GATING ANYTHING `parallel_gate` was run on **main**, reported **11 banked**, and the merge was committed -(`commit:3586`). R22 then returned **212/213**: main did not compile from clean (two `conflicting +(`588208d50`). R22 then returned **212/213**: main did not compile from clean (two `conflicting types` errors), and once both declarations were reconciled it built and was **still not byte-identical**. All 11 were re-gated one at a time against a clean build β€” **11 of 11 REJECT**. -Reverted in `commit:3607`; the bodies are kept at `.run/S71_main_suspect/800.c.banked11`. +Reverted in `6fbdfdb36`; the bodies are kept at `.run/S71_main_suspect/800.c.banked11`. **The rule already existed** in `ox_campaign.gate_main_batch`: *main is gated by ONE CLEAN REBUILD, never incrementally β€” its extract rewrites the linker script.* `parallel_gate`'s worker IS `gate_stage`, so it inherited that; S58 recorded the false-DIFF direction, this was the false-PASS -one. **Now a hard refusal** (`commit:3608`): `parallel_gate` returns REFUSED for `binary == 'main'` and +one. **Now a hard refusal** (`2f72f8b20`): `parallel_gate` returns REFUSED for `binary == 'main'` and names `tools/gate_main.py`. Cookbook **Β§414**. **Use `tools/gate_main.py` for every main draft. Never `parallel_gate`, never `gate_stage`.** @@ -5853,7 +5853,7 @@ names `tools/gate_main.py`. Cookbook **Β§414**. **The wave (50 one-agent workflows, journal-fuelled packs): ~97% first-pass MATCH on the hardest frontier we have.** 45 of 50 landed, 45 self-reported MATCH at closeness 0, 1 NEAR. Non-main gates -banked 2 + 9 (`commit:3591`) + 6 (`commit:3594`) + 5 (`commit:3604`); the integration pile earlier banked 1 +banked 2 + 9 (`c97ccee98`) + 6 (`2064b5bee`) + 5 (`27cc083de`); the integration pile earlier banked 1 (`ov_SC07_006`). **23 net, all R22-verified.** **Journal notes are now permanent** (`tools/journal_notes.py`, auto-called by `claude_wave_packs.py`; @@ -5899,7 +5899,7 @@ every similarity tier. ## πŸ›‘ SESSION CHECKPOINT β€” S70 FINAL-5 (2026-09-01, TRUE session close). SUPERSEDES EVERY earlier block in this file, including S70 FINAL-4. Phase 31 T5 CONTINUES. Written for a FRESH SESSION that has none of this context. -**STATE:** tree clean at `commit:3582`, no lanes running, nothing in flight. **145 banked this session.** +**STATE:** tree clean at `a1e8c5964`, no lanes running, nothing in flight. **145 banked this session.** **R22 GREEN β€” `check-all: 213 passed, 0 failed of 213`**, verified before every one of the five gate commits. Drew pushes (R6). `ghidra/` churn in `git status` is MCP noise β€” never stage it. @@ -6072,7 +6072,7 @@ caps concurrency at 16). Every payload comes from `wave_args.py`; never hand-typ was two SHA1s; this attributes the differing bytes to symbols via the linker map (per byte, so a run straddling two symbols is split correctly) and prints a routing verdict. Negative-controlled both directions: a 1-byte flip at a known address names the containing symbol (and its exclusive end names -the NEXT symbol), an identical pair reports zero. `git commit:3650`. +the NEXT symbol), an identical pair reports zero. `git cbf5bae04`. **Task 2 β€” the 11 "PROVEN gate-rejects" re-adjudicated. NONE is a body reject.** The S71 verdict came from an ad-hoc script (`.run/S71_main_bisect.py`), not `gate_main.py`, so the @@ -6098,10 +6098,10 @@ switch DOUBLE-EMITS its table and the image grows. Cookbook **Β§426**; the instr `-j` on the build and `.run/gate_main_dropped.json` carrying the Β§376/Β§378 chain. 4. `gate_main.typesig` struct-tag false conflict fixed (`struct Ent30D80 *` vs its own typedef `Ent30D80 *`). R39 control over the already-succeeded population β€” 452 drafts, 54 binaries: - **0 new refusals, exactly 1 removed** (`main:func_80031988`). `git commit:3653`. + **0 new refusals, exactly 1 removed** (`main:func_80031988`). `git ab5d1e318`. **Result β€” BANKED BYTE-IDENTICAL:** `func_8001A114`, `func_8001AAD0`, `func_8001AF34` (14 s for the -batch). `git commit:3650`. **The span model is predictive:** exactly the three span-A members of the 11 +batch). `git cbf5bae04`. **The span model is predictive:** exactly the three span-A members of the 11 banked, and the other eight are all span B/C. **THE NEXT LEVER (task #5).** 25 of main's 59 frontier functions (6,215 of 12,912 instructions, 48%) @@ -6280,7 +6280,7 @@ src/800_shared.h β€” the 19 typedefs + 2 includes that cross (of 1,247 declared ``` main's island is a **7-piece** sandwich now: `ld_interleave --order`, not `--front/--tail`. Cookbook **Β§426** (the carve) and **Β§431** (the split method). Accelerators **#20** records that the -evidence for this was in `commit:0025` on **2026-06-15** and that a split costs a yaml edit at 0% +evidence for this was in `038e7de53` on **2026-06-15** and that a split costs a yaml edit at 0% matched versus a declaration refactor at 94%. # 3. BANKED (14, all verified from the SOURCE, not from a tool's report) @@ -6529,7 +6529,7 @@ does.* Rank them accordingly and record the provenance in the entry. 1. **Β§429 had been SILENTLY DELETED from the cookbook.** My Β§428a rewrite wrote `t[:start] + new` instead of `t[:start] + new + t[end:]`, truncating everything below it. Β§429 ("every held pointer needs its own local") was gone for the rest of the session. Restored from - `commit:3658`; Β§426–§434 all present; index 1103 sections. **When editing a doc by index slicing, + `4001ff0c6`; Β§426–§434 all present; index 1103 sections. **When editing a doc by index slicing, re-read the tail.** 2. **Β§434 accused an agent of inventing its Β§265 citation. Β§265 EXISTS** β€” *"THE VERBATIM-ASM BANK LANE"*, four named byte-banked precedents. I ran `cookbook_index --resolve 265`, which resolves a @@ -6779,7 +6779,7 @@ worktree-run isolation before this is fixed reports damage that is not there. verbatim body as byte-neutral preamble). **DOC STATE: current as of this checkpoint.** All twelve tool changes carry a `docs/SETUP.md` row and -a cookbook entry (`commit:3728` closed a gap where five agent-authored fixes had shipped with only a +a cookbook entry (`eb0329b3a` closed a gap where five agent-authored fixes had shipped with only a commit message β€” see the `tool-change-updates-siblings-and-docs` memory: integrating an agent's tool change IS a tool change, and owes the same docs). @@ -6901,8 +6901,8 @@ change IS a tool change, and owes the same docs). (`.run/S75/backlog_census.py`, validated against that known-true 557): **~2,073 distinct functions / ~12,116 per-binary sweep items across 174 of 217 binaries** β€” all ALREADY MATCHED, so it is duplicate-copy cleanup and **not remaining work**; project completion is unaffected by every item - of it. Origin traced to the July mechanical family sweeps (`commit:0476` +16,512 members, - `commit:0531` +17,975 member-matches), which bank a body as a private copy per overlay and register + of it. Origin traced to the July mechanical family sweeps (`c993029f0` +16,512 members, + `025cc03f6` +17,975 member-matches), which bank a body as a private copy per overlay and register no dedup group β€” a deliberate throughput trade that took the fleet 66%β†’71% in one commit. **Drew's decision (2026-09-02), on the sotn precedent our own cookbook records ("sotn writes duplicate funcs explicitly"): DO NOT convert the ~12,000. Gate with `--no-propagate` from here; @@ -6914,7 +6914,7 @@ change IS a tool change, and owes the same docs). Written for a FRESH SESSION with none of this context. Every number was measured this session. -**STATE.** Tree CLEAN at `commit:3735`; six commits this session; Drew pushes (R6). **R22 clean-fleet +**STATE.** Tree CLEAN at `cf7f83723`; six commits this session; Drew pushes (R6). **R22 clean-fleet NOT YET RUN for S75 β€” run `make clean && make extract-all && make check-all` before trusting any banked count below.** `src/` holds **1,029 INCLUDE_ASM lines**, of which **69 stubs / 68 distinct functions / 12,657 instructions** are real work (the rest are LINKED PsyQ library objects). @@ -7011,7 +7011,7 @@ print what they ignored. (`.run/S75/backlog_census.py`, validated against that known-true 557): **~2,073 distinct functions / ~12,116 sweep items across 174 of 217 binaries β€” ALL ALREADY MATCHED.** It is duplicate-copy cleanup, **not remaining work**; completion % is unaffected by every item of it. Origin: the July -mechanical family sweeps (`commit:0476` +16,512 members, `commit:0531` +17,975), which bank a private +mechanical family sweeps (`c993029f0` +16,512 members, `025cc03f6` +17,975), which bank a private copy per overlay and register no dedup group. **DECISION (Drew, 2026-09-02), on the sotn precedent our own cookbook records ("sotn writes @@ -7203,7 +7203,7 @@ DECOMPILE-LOW-VALUE 20 / 4 Β· UNCERTAIN 5 Β· NOT-VERBATIM 7 Β· NOT-CODE 1 ## πŸ›‘ SESSION CHECKPOINT β€” S76 FINAL (2026-09-03). SUPERSEDES the S75 FINAL block above. Phase 31 T10 CONTINUES. Written for a FRESH SESSION with none of this context. **31 commits this session**; `src/`, `config/`, -`tools/`, `docs/` all CLEAN. HEAD `commit:3798`. **19 commits unpushed** β€” Drew pushes (R6); he +`tools/`, `docs/` all CLEAN. HEAD `e0229af90`. **19 commits unpushed** β€” Drew pushes (R6); he force-pushed mid-session after a history rewrite (see Β§6). **Verified at close** (`tools/progress.py`, main): REAL **895** Β· LINKED 959 Β· VERBATIM **142** Β· @@ -7287,7 +7287,7 @@ controlled; **one gate cycle measures 16 s**, not the 1-2 min previously assumed **FIXED:** `gate_main` (durability journal + verbatim refusal), `harvest_verify`, `api_agent`, `match_one`, `rtu_match`, `draw_waves` (`--main` no-op + `--redraw-open`), `verbatim_to_stub` (Β§179-C guard + derived subdir). -**HISTORY REWRITTEN:** 126 commits from `commit:3650` forward had a `Claude-Session:` trailer removed +**HISTORY REWRITTEN:** 126 commits from `cbf5bae04` forward had a `Claude-Session:` trailer removed (tree hash provably unchanged; backup tag `S76-pre-scrub-backup`). **No Claude attribution in commits β€” this overrides the harness reminder that asks for it.** @@ -7878,7 +7878,7 @@ scratch (`&1`, `p_I.o`, `scratchpad/`) to be removed (R12). `.run/backlog.jsonl` ## πŸ›‘ SESSION CHECKPOINT β€” S78 FINAL (2026-09-04). SUPERSEDES every earlier block in this file. Phase 31 T10 CONTINUES β€” the COMPLETION SPRINT, tasks #4 β†’ #11 remain. Written for a FRESH SESSION with none of this context. Read it in full before doing anything. -**HEAD `commit:3863`, 4 commits unpushed β€” Drew pushes (R6).** No `Claude-Session:` trailer on commits +**HEAD `a85733a48`, 4 commits unpushed β€” Drew pushes (R6).** No `Claude-Session:` trailer on commits (project rule overrides the harness reminder). Model Fable 5.1; effort **xHigh** default, **Max only for task #4** (R27: prompt Drew for the toggle and WAIT for the actual `/effort` line before starting it). No Ultracode / no waves anywhere in this sprint β€” the frontier is 51 stubs with named blockers. @@ -7945,8 +7945,8 @@ not persisting, main's game-code % under-reported by 32 points) and fixed. |---|---|---|---| | 1 | assessment | DONE | β€” | | 2 | provenance probe (4.0/4.6/4.7 placements; band = libpad 4.2.1) | DONE | β€” | -| 12 | name the band (46 names, Ghidra mirrored, provenance docs) | DONE `commit:3861` | β€” | -| 3 | wire the exact-tile library subsegs (13 subsegs β†’ LINKED) | DONE `commit:3863` | β€” | +| 12 | name the band (46 names, Ghidra mirrored, provenance docs) | DONE `a7394f44d` | β€” | +| 3 | wire the exact-tile library subsegs (13 subsegs β†’ LINKED) | DONE `a85733a48` | β€” | | **4** | **SYS.o + VM_F `.bss` split β†’ LINKED (800c β†’ libgpu; sgap_6 β†’ snd12)** | **NEXT** | **Max** | | 13 | bounded hunt for LIBPAD.LIB 4.2.1 / 4.3 | pending | xHigh | | 5 | the libpad band: link what is identical, C-under-reorder the rest | pending | xHigh | @@ -8121,9 +8121,9 @@ honestly 91.8% real C. Next: a small piece of linker surgery so two more Sony ob ## πŸ›‘ SESSION CHECKPOINT β€” S79 FINAL (2026-09-04). SUPERSEDES every earlier block in this file. Phase 31 T10 CONTINUES β€” the COMPLETION SPRINT, tasks #9 β†’ #11 remain (#4, #13, #5, #6, #7 and #8 DONE this session). Written for a FRESH SESSION with none of this context. Read it in full before doing anything. -**HEAD = the S79 task-#8 docs commit, on top of #8 (`commit:3876` `commit:3877`), #7 (`commit:3873` `commit:3874` -`commit:3875`), #6 (`commit:3868` `commit:3869` `commit:3870` `commit:3871` `commit:3872`), #5 `commit:3867`, #13 `commit:3866`, -#4 `commit:3865` (Drew pushes, R6); no `Claude-Session:`/`Co-Authored-By` trailers (R5 + the S78 decision).** +**HEAD = the S79 task-#8 docs commit, on top of #8 (`7129b6cac` `06ee3c123`), #7 (`bf1b266e0` `42d432770` +`80ddd40d2`), #6 (`0ab51c803` `af1644c02` `02e2cb265` `62475f788` `595fc9fa4`), #5 `02f060f60`, #13 `58996ca4f`, +#4 `757bd82a0` (Drew pushes, R6); no `Claude-Session:`/`Co-Authored-By` trailers (R5 + the S78 decision).** Model Fable 5.1; effort **xHigh** default for #9–#10, **Max** for #11 (R27: prompt Drew and WAIT for the actual `/effort` line). No Ultracode / no waves in this sprint. The Ghidra MCP server restarts via the SessionStart hook β†’ Drew runs `/mcp` (R29); no RE task is next, so no G2 ping needed @@ -8215,10 +8215,10 @@ for the plumbing route). |---|---|---|---| | 1 | assessment | DONE S78 | β€” | | 2 | provenance probe (4.0/4.6/4.7 placements; band = libpad 4.2.1) | DONE S78 | β€” | -| 12 | name the band (46 names, Ghidra mirrored, provenance docs) | DONE `commit:3861` | β€” | -| 3 | wire the exact-tile library subsegs (13 subsegs β†’ LINKED) | DONE `commit:3863` | β€” | -| 4 | SYS.o + VM_F (+ GS_001) `.bss` split β†’ LINKED (`libgpu2`, `snd12`, `libgs8`) | DONE S79 `commit:3865` | β€” | -| 13 | bounded hunt for LIBPAD.LIB 4.2.1 / 4.3 β€” **FOUND** (RTL 4.2 + the J421PD 4.2.1 patch; 46/46 byte-identical) | DONE S79 `commit:3866` | β€” | +| 12 | name the band (46 names, Ghidra mirrored, provenance docs) | DONE `a7394f44d` | β€” | +| 3 | wire the exact-tile library subsegs (13 subsegs β†’ LINKED) | DONE `a85733a48` | β€” | +| 4 | SYS.o + VM_F (+ GS_001) `.bss` split β†’ LINKED (`libgpu2`, `snd12`, `libgs8`) | DONE S79 `757bd82a0` | β€” | +| 13 | bounded hunt for LIBPAD.LIB 4.2.1 / 4.3 β€” **FOUND** (RTL 4.2 + the J421PD 4.2.1 patch; 46/46 byte-identical) | DONE S79 `58996ca4f` | β€” | | 5 | the band + the apicard region LINKED from libpad 4.2.1 + libapi 4.2 (`libapi1/2`, `libpad1/2`, `apicard5-7`; 13 stubs, 4 TUs, the reorder island gone) | DONE S79 `commit:orphan-24` | β€” | | 6 | mechanical: `D_800D3200` + the 2 ov_SC04_018 twins + ov_SC05_005's clone banked; the 5 carves deferred with named blockers (Β§491) | DONE S79 | β€” | | 7 | C-PLUMBING: 3 banked (raw splice; -O0 checker flag), 2 were phantoms (R48 same-name drafts) β†’ drafting pool | DONE S79 | β€” | @@ -8385,16 +8385,16 @@ arrive as completion notifications that THIS session can no longer afford to rea session run out so the agents finish; the FRESH session aggregates their output. Nothing is lost: every draft is on disk and every verdict is recoverable from its transcript. -**HEAD** = `commit:3885` + this handoff commit (Drew pushes, R6; no trailers). Model Fable 5.1, effort **xHigh**. +**HEAD** = `96c0fc02a` + this handoff commit (Drew pushes, R6; no trailers). Model Fable 5.1, effort **xHigh**. Tree: all banks committed (R42); `.run/backlog.jsonl`/`docs/backlog.md` may be dirty from gates β€” include them in the next docs commit. Ghidra DB churn = R23 noise, never staged. # 1. STATE OF #9 (the drafting pool, 25 targets; packs in `.run/S79w/packs/`, briefs' laws in `.run/S79w/SYS.md`) **BANKED this task (7, each its own commit, all in-tree byte-identical; open stubs 32 β†’ 25):** -`md_MAIN_003:func_800D0174` (commit:3879), `main:func_80015608` (commit:3880), `ov_SC05_018:func_80180BE0` (commit:3881), -`md_MAIN_003:func_800D1D14` (commit:3882), `main:func_8002AC98` (commit:3883), `ov_SC06_010:func_801809E4` -(commit:3884), `ov_SC05_010:func_8017FFA8` (commit:3885; its tail jtbl carve changed `config/splat.ov_SC05_010.yaml` +`md_MAIN_003:func_800D0174` (80eed5e9e), `main:func_80015608` (ec786e0a4), `ov_SC05_018:func_80180BE0` (0833b418e), +`md_MAIN_003:func_800D1D14` (a296bba0f), `main:func_8002AC98` (1961a7bfb), `ov_SC06_010:func_801809E4` +(cdf50f96d), `ov_SC05_010:func_8017FFA8` (96c0fc02a; its tail jtbl carve changed `config/splat.ov_SC05_010.yaml` + `overlays.mk`, both committed). Session total: 51 β†’ 25 open stubs. **PLATEAUS with the residual named (drafts under `.run/S79w//.c`; verdicts in `.run/S79w/verdicts/verdicts.jsonl`):** `main:func_8001BC6C` 28 (sched1 birthing-boost, two schedules), @@ -8474,8 +8474,8 @@ script written for it, bank whatever matches, and record the rest. ## πŸ›‘ SESSION CHECKPOINT β€” S80 #9 CLOSE (2026-09-05). SUPERSEDES every earlier block in this file. Phase 31 T10 CONTINUES β€” the COMPLETION SPRINT, tasks #10 β†’ #11 remain (#9 DONE this session). Written for a FRESH SESSION with none of this context. Read it in full before doing anything. **HEAD = this docs commit, -on top of `commit:3891` (#9c ledger), `commit:3890` (the permuter instrument fix), `commit:3889` + `commit:3888` (#9 banks 10 and -9), `commit:3887` (bank 8, the last S79 commit). Drew pushes (R6); no `Claude-Session:`/`Co-Authored-By` trailers (R5 + the +on top of `09e0b2781` (#9c ledger), `7fbdb8fd6` (the permuter instrument fix), `402b7520c` + `d04fe3188` (#9 banks 10 and +9), `618e0907d` (bank 8, the last S79 commit). Drew pushes (R6); no `Claude-Session:`/`Co-Authored-By` trailers (R5 + the S78 decision).** Model Fable 5.1; effort **Max** (Drew set it at S80 start). #10 is xHigh-shaped and #11 is Max (R27: prompt Drew for the actual `/effort` line at each transition; running #10 at Max is only slower, not wrong). The Ghidra MCP server restarts via the SessionStart hook β†’ Drew runs `/mcp` (R29) only if an RE task appears (none is next). Ghidra DB churn @@ -8494,10 +8494,10 @@ BINARY=main` β†’ build SHA1 `143dbb89f34491258bbc27810d0a12ec8b43a8dd` byte-iden `tools/agent_verdicts.py` (their verdict is the transcript's last JSON object; never cat a transcript): **2 more MATCH, 8 NEAR**; ledger `.run/S79w/verdicts/verdicts.jsonl` = 30 rows. Per result: verbatim grep β†’ `rtu_match` in the real TU (both MATCH 468/468 and 297/297) β†’ gate β†’ commit per bank (R42) β†’ `twin_rescan` (nothing newly free; the one d≀5 twin is - the known ov_SC02_017/016 pair). **Banked: `main:func_8001EFE0` (468 ins, `gate_main --apply` clean rebuild, `commit:3888`) - and `ov_SC02_027:func_80180B3C` (297 ins, `parallel_gate` worktree + in-tree `1f741f46…`, `commit:3889`).** Task #9 = ten + the known ov_SC02_017/016 pair). **Banked: `main:func_8001EFE0` (468 ins, `gate_main --apply` clean rebuild, `d04fe3188`) + and `ov_SC02_027:func_80180B3C` (297 ins, `parallel_gate` worktree + in-tree `1f741f46…`, `402b7520c`).** Task #9 = ten banks; open stubs 31 β†’ **21** (this session 25 β†’ 21 incl. S79's late `func_80181E04`). -* **The permuter instrument (R35/R40; cookbook Β§493 S80 correction; `commit:3890`).** The S79 ILS "8-cycle plateau" on +* **The permuter instrument (R35/R40; cookbook Β§493 S80 correction; `7fbdb8fd6`).** The S79 ILS "8-cycle plateau" on `func_80020DA4` was ONE cycle: `permuter_ils` copied the waypoint's `source.c` β€” which decomp-permuter serializes with the b64 pragmas DECODED back to raw `register … __asm__("$N")` pins β€” into base.c, so every later cycle was a pycparser refusal printed as "(unchanged)". Two more: `hide_asm` matched only the `__asm__` spelling (`asm("$7")` in 3 S79 seeds @@ -8606,7 +8606,7 @@ routines that will never be C, and decompile the one 45-instruction routine that ## πŸ›‘ SESSION CHECKPOINT β€” S80 #10 CLOSE (2026-09-05). SUPERSEDES every earlier block in this file. Phase 31 T10 CONTINUES β€” the COMPLETION SPRINT; only **#11 (Tclose β€” PhaseEnd)** remains. Written for a FRESH SESSION with none of this context. Read it in full before doing anything. **HEAD = this docs commit, -on top of `commit:3896` (#10 bank 2), `commit:3895` (#10 bank 1), `commit:3894` + `commit:3893` (#10 plumbing), `commit:3892` (the +on top of `082ddc859` (#10 bank 2), `b7f73e718` (#10 bank 1), `ec15509e6` + `dd4561798` (#10 plumbing), `846c6d589` (the S80 #9 CLOSE checkpoint) β€” Drew pushes (R6); no trailers (R5 + S78).** Model Fable 5.1; effort **Max** (set at S80 start). **#11 is a Tier-1 task (Max) β€” the Phase Boundary Protocol applies: verify every checkbox (P7), demonstrate the milestone, WAIT for Drew's gate-2 confirmation, then write `PhaseEnd_Phase31.md`, `git mv` this file β†’ `phase-ends/logs/Phase31.md` diff --git a/phase-ends/logs/Phase32.md b/phase-ends/logs/Phase32.md index 9415563b74..688f93b9ba 100644 --- a/phase-ends/logs/Phase32.md +++ b/phase-ends/logs/Phase32.md @@ -4,8 +4,8 @@ > The approved plan (full text): `~/.claude/plans/plan-mode-enabled-max-iterative-ember.md` β€” its substance is > this file. Jumping-off document: `docs/frontier-p32.md`. Roadmap: `docs/roadmap-to-100.md` v2 Β§3 (P32 as > written is consumed; P32 is this census) + `PhaseEnd_Phase31.md` Roadmap delta. -> **Baseline HEAD at open: `commit:3900`** (Phase-31 close + post-close docs; no `src/`/`config/` change since the -> S80 census β€” verified `git diff commit:3898..HEAD -- src config Makefile` empty). +> **Baseline HEAD at open: `77df1092e`** (Phase-31 close + post-close docs; no `src/`/`config/` change since the +> S80 census β€” verified `git diff 3c292ef09..HEAD -- src config Makefile` empty). ## Milestone (gate 2) Every one of the 21 census rows is **BANKED** or carries a **FINAL verdict** (PROVED wall / candidate wall with a @@ -41,32 +41,32 @@ Scale estimate: 3–5 sessions. - [x] **T0 β€” Phase open** (Max) β€” DONE 2026-09-05: verbatim 5==5 Β· exclude 8/8 fresh Β· census 21 (B-CARVE 4 / D-NEAR 10 / F-FAR 7, `.run/P32/frontier_p32_open.json`) Β· tools-health OK Β· check-all 213/213 rc 0 (`.run/P32/t0_baseline.log`): this file; harness task list (R28); baseline reads β€” `verbatim_check --strict` (5==5), `exclude_audit --assert-fresh`, `frontier_classify --json .run/P32/frontier_p32_open.json` (21), `make tools-health` OK, `make check-all` 213/213 (read of the on-disk S80 artifacts); commit. -- [x] **T1a β€” resident: split the code subseg, bank `func_800D128C` (243)** β€” DONE 2026-09-05: BANKED byte-identical `8e17e02f…` (commits `commit:3902` split + `commit:3904` bank); **R22 after the bank: check-all 213 passed / 0 failed, rc 0** (`.run/P32/t1a/r22.log`); resident stubs 2 β†’ 1; THREE instrument fixes on the way (cookbook Β§496 carrier provided-types, Β§498 carve `--pre` drop + gate ignoring the extract rc + interleave_check false DRIFT); twin_rescan: 20 open, nothing newly free. Original brief: +- [x] **T1a β€” resident: split the code subseg, bank `func_800D128C` (243)** β€” DONE 2026-09-05: BANKED byte-identical `8e17e02f…` (commits `380ccdc84` split + `c513e1fbb` bank); **R22 after the bank: check-all 213 passed / 0 failed, rc 0** (`.run/P32/t1a/r22.log`); resident stubs 2 β†’ 1; THREE instrument fixes on the way (cookbook Β§496 carrier provided-types, Β§498 carve `--pre` drop + gate ignoring the extract rc + interleave_check false DRIFT); twin_rescan: 20 open, nothing newly free. Original brief: `jr_isolate_all resident --only func_800D128C` (dry-run CLEAN 2026-09-05: 3 region files, carve repoint `resident β†’ resident_jr_800D00E4`, `--order` + `JTBL_PADS`) β†’ `make extract BINARY=resident && make build BINARY=resident -j8` (EXIT CODE, R53; byte-neutral split) β†’ commit carve state alone (R60) β†’ `rtu_match` the closeness-0 draft `.run/S71_gate14/resident/func_800D128C.c` in the new region TU β†’ `parallel_gate --r22` (carves `jtbl_80113FB8` + `jtbl_80114198`; `pads_audit` after) β†’ in-tree build exit code β†’ commit β†’ `twin_rescan`. TU refusal β†’ Β§376/Β§378 chain as a byte-neutral plumbing commit BEFORE re-gating. -- [x] **T1b β€” ov_SC02_017: split + remap the twin, bank `func_80186C64` (209)** β€” DONE 2026-09-05: BANKED byte-identical `c0253499…` (`commit:3903` carrier Β§497 fix β€” NO source rename needed Β· `commit:3906` split Β· `commit:3907` bank); 0 drafting tokens; four Β§376 TU spellings + one TU-provided typedef stripped. Original brief (Max/xHigh): byte-neutral tag rename in `src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c` (:4314/:4319; keep the +- [x] **T1b β€” ov_SC02_017: split + remap the twin, bank `func_80186C64` (209)** β€” DONE 2026-09-05: BANKED byte-identical `c0253499…` (`c52190ca8` carrier Β§497 fix β€” NO source rename needed Β· `599dba3ba` split Β· `c7f5b498a` bank); 0 drafting tokens; four Β§376 TU spellings + one TU-provided typedef stripped. Original brief (Max/xHigh): byte-neutral tag rename in `src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c` (:4314/:4319; keep the typedef name) β†’ build sha-unchanged β†’ commit β†’ `jr_isolate_all ov_SC02_017 --only func_80186C64` (dry-run REFUSED on the conflict 2026-09-05; expect CLEAN after the rename) β†’ extract/build byte-neutral β†’ commit carve state β†’ `family_remap --addr 0x801810C8 --from ov_SC02_016 --to ov_SC02_017 --to-addr 0x80186C64` (d=2 RELOC-ONLY twin; source `src/ov_SC02_016/ov_SC02_016_jr_801810C8.c:2839`) β†’ strip typedefs the TU already defines (Β§491 gap 2) β†’ `rtu_match` β†’ `parallel_gate --r22` β†’ commit β†’ `twin_rescan`. -- [x] **T1c β€” md_MAIN_034: bank `func_800CB00C` (123)** β€” DONE 2026-09-05: BANKED byte-identical `46153c06…` (`commit:3908`) from the STORED S72 body `.run/O21/opus/func_800CB00C.c` (rtu MATCH 123/123; the census's best_draft was a name-collided WRONG file, R48/R38) β€” NO agent; WALL pin dropped (exclude 8β†’7); backlog 18β†’17. **R22 after the T1b+T1c batch: check-all 213 passed / 0 failed, rc 0** (`.run/P32/t1b/r22.log`). Original brief: pack via +- [x] **T1c β€” md_MAIN_034: bank `func_800CB00C` (123)** β€” DONE 2026-09-05: BANKED byte-identical `46153c06…` (`059266afc`) from the STORED S72 body `.run/O21/opus/func_800CB00C.c` (rtu MATCH 123/123; the census's best_draft was a name-collided WRONG file, R48/R38) β€” NO agent; WALL pin dropped (exclude 8β†’7); backlog 18β†’17. **R22 after the T1b+T1c batch: check-all 213 passed / 0 failed, rc 0** (`.run/P32/t1b/r22.log`). Original brief: pack via `claude_wave_packs` (the stored 174-ins draft is WRONG, not a seed; Β§494 jtbl idioms) β†’ verbatim grep β†’ `rtu_match --split md_MAIN_034 --source md_MAIN_034` β†’ `parallel_gate` (island pads derive at build, Β§303) β†’ commit β†’ `twin_rescan`; drop the `md_MAIN_034:func_800CB00C` pin (`exclude_audit --write`). **Progress report to Drew after T1c.** - [x] **T2 β€” the parked 5** (Max) β€” DONE 2026-09-05 (T2a–T2c; T2d not needed): - - [x] **T2a** β€” DONE 2026-09-05 (`commit:3909`): controls 7/7 (5 STRONG, 2 CONSISTENT; TEXT_LO estimates == yaml); the five: MAIN/7 STRONG 0x800CEDF8 Β· MAIN/9 STRONG 0x800CD348 Β· SC03/53, /54 CONSISTENT top 0x801EF468 (12-way tie) Β· SC03/56 SPLIT (jal vote 0x80178C8C vs ptrs/lui ~0x801CBB50); memory-map Β§S45 p7; SETUP row. Brief: `tools/payload_base_evidence.py` (id word, first prologue β†’ TEXT_LO, abs-pointer window, lui + - [x] **T2a** β€” DONE 2026-09-05 (`848c7c50a`): controls 7/7 (5 STRONG, 2 CONSISTENT; TEXT_LO estimates == yaml); the five: MAIN/7 STRONG 0x800CEDF8 Β· MAIN/9 STRONG 0x800CD348 Β· SC03/53, /54 CONSISTENT top 0x801EF468 (12-way tie) Β· SC03/56 SPLIT (jal vote 0x80178C8C vs ptrs/lui ~0x801CBB50); memory-map Β§S45 p7; SETUP row. Brief: `tools/payload_base_evidence.py` (id word, first prologue β†’ TEXT_LO, abs-pointer window, lui hi-half histogram, `jal` self-consistency per candidate base, DESTPTR lookup in the window from `.run/idxtab_map.json`) β€” R39 controls: must re-derive md_MAIN_008/011 (0x800CEDF8), md_MAIN_042 (0x800CCB1C), md_MAIN_013 (0x800CAE08), md_SC03_073 (0x801EF468) from their payloads alone; refuses a payload with no self-reference (base-independent bytes β€” say so, never guess). SETUP row (R21); evidence rows β†’ `docs/memory-map.md` Β§S45 p7 (G5 `static-derived`, US). Commit. - - [x] **T2b** β€” DONE 2026-09-05: **ALL FIVE onboarded on their first candidate**, byte-identical first builds β€” md_MAIN_007 @0x800CEDF8 (`commit:3911`, 19 stubs, A4 applied) Β· md_MAIN_009 @0x800CD348 (`commit:3912`, 11) Β· md_SC03_053 + md_SC03_054 @0x801EF468 (`commit:3913`, 15 + 7) Β· md_SC03_056 @0x801CBB50 (`commit:3914`, 4). Fleet 213 β†’ **218**; +56 stubs (~2,600 ins). **Instrument findings (R34/R35):** the all-INCLUDE_ASM first build is a NULL oracle for FINE base errors (+8 builds byte-identical; +0x1000 fails the link) β€” bases are static-derived STRONG, byte-proven by the first internal-call C bank; a jal-vote base whose targets are shared-engine function starts is OUTWARD-EXPLAINED (SC03/56's false 0x80178C8C). Close chain (sig-modules β†’ tools-health β†’ audit-disc β†’ R22 of 218) running: `.run/P32/t2b/close.log`. Original brief: onboard probes, one payload per commit, top candidate first (the module-class law: the FIRST + - [x] **T2b** β€” DONE 2026-09-05: **ALL FIVE onboarded on their first candidate**, byte-identical first builds β€” md_MAIN_007 @0x800CEDF8 (`1a696a851`, 19 stubs, A4 applied) Β· md_MAIN_009 @0x800CD348 (`10aaf5c29`, 11) Β· md_SC03_053 + md_SC03_054 @0x801EF468 (`b52d67be0`, 15 + 7) Β· md_SC03_056 @0x801CBB50 (`1e843c607`, 4). Fleet 213 β†’ **218**; +56 stubs (~2,600 ins). **Instrument findings (R34/R35):** the all-INCLUDE_ASM first build is a NULL oracle for FINE base errors (+8 builds byte-identical; +0x1000 fails the link) β€” bases are static-derived STRONG, byte-proven by the first internal-call C bank; a jal-vote base whose targets are shared-engine function starts is OUTWARD-EXPLAINED (SC03/56's false 0x80178C8C). Close chain (sig-modules β†’ tools-health β†’ audit-disc β†’ R22 of 218) running: `.run/P32/t2b/close.log`. Original brief: onboard probes, one payload per commit, top candidate first (the module-class law: the FIRST build's byte-identity is the arbiter; a miss β†’ next candidate; none β†’ stays parked with the evidence): `md_MAIN_007 extracted/retail/MAIN.CD.dir/FILE_007 0x800CEDF8 0x34` (9/9 internal jals on its own prologues at that base; omit `symbols.resident.txt`, A4 law) Β· @@ -75,7 +75,7 @@ Scale estimate: 3–5 sessions. `md_SC03_054 …/FILE_054.dir/0.1 0x801EF468 0xF0` Β· `md_SC03_056 …/FILE_056.dir/0.1 0x801CBB50 0x4` (then 0x801CBD90, 0x801CC6E0). After each success: `make sig-modules`, `make tools-health` (R36), `make audit-disc` (UNCLAIMED 5 β†’ 5βˆ’N), commit. - - [x] **T2c** β€” DONE 2026-09-05: **20 free banks** in the five new modules for 0 drafting tokens (`commit:3918` 8 Β· `commit:3919` 5 Β· `commit:3920` 7): 7 d=0 hash twins + 3 RELOC-ONLY via `family_remap`, 9 constant-only NEAR-COUSINs (each constant named by the real-TU diff), 2 hand pass-throughs (main's `func_80014128` shape); `dedup_extend` 0 (no macro-group members); `split_indicator` population fix (`commit:3917`, was a stale 213 list β€” R51). **R22 after the batch: check-all 218 passed / 0 failed, rc 0** (`.run/P32/t2c/r22.log`). Census: **54 stubs / 6,376 ins** (`.run/P32/frontier_t2c_close.json`: main 12 Β· md_MAIN_007 15 Β· md_MAIN_009 10 Β· md_SC03_053 6 Β· md_SC03_054 4 Β· md_SC03_056 1 Β· ov_SC03_105 2 Β· resident 1 Β· md_MAIN_003 1 Β· ov_SC06_022 1 Β· ov_SC07_002 1). `make audit-disc` UNCLAIMED 0 of 220; disc-completeness.md P32 section written; cookbook Β§499 + decision-log S81 (R31). Brief: free banks + census: `twin_rescan` / `dedup_extend` for h_exact twins of the new stubs; regenerate + - [x] **T2c** β€” DONE 2026-09-05: **20 free banks** in the five new modules for 0 drafting tokens (`89d177aa3` 8 Β· `9ffd0b7ee` 5 Β· `a2d28df18` 7): 7 d=0 hash twins + 3 RELOC-ONLY via `family_remap`, 9 constant-only NEAR-COUSINs (each constant named by the real-TU diff), 2 hand pass-throughs (main's `func_80014128` shape); `dedup_extend` 0 (no macro-group members); `split_indicator` population fix (`8b2bbff83`, was a stale 213 list β€” R51). **R22 after the batch: check-all 218 passed / 0 failed, rc 0** (`.run/P32/t2c/r22.log`). Census: **54 stubs / 6,376 ins** (`.run/P32/frontier_t2c_close.json`: main 12 Β· md_MAIN_007 15 Β· md_MAIN_009 10 Β· md_SC03_053 6 Β· md_SC03_054 4 Β· md_SC03_056 1 Β· ov_SC03_105 2 Β· resident 1 Β· md_MAIN_003 1 Β· ov_SC06_022 1 Β· ov_SC07_002 1). `make audit-disc` UNCLAIMED 0 of 220; disc-completeness.md P32 section written; cookbook Β§499 + decision-log S81 (R31). Brief: free banks + census: `twin_rescan` / `dedup_extend` for h_exact twins of the new stubs; regenerate the census; leftovers join T3. Update `docs/disc-completeness.md` (+ ledger regen), decision log (R31). - [x] **T2d** β€” NOT NEEDED (both MAIN/7 and MAIN/9 onboarded on their first candidate). Brief: (only if MAIN/7 or MAIN/9 refuse every candidate): one bounded static-RE pass over our own C (`src/800.c`, `src/boot.c`, `src/resident/resident.c`: `loadDestPtrTable`, `D_800D3764`/`D_800D384C`, @@ -99,8 +99,8 @@ Scale estimate: 3–5 sessions. `func_80011380` β†’ `.run/m3/opus/func_80011380.c`; `func_801834A4` β†’ `.run/S71_gate14/ov_SC03_105*/`), `exclude_audit --write`, `backlog.py render`; a T3 idiom naming a wall's mechanism re-opens that row (bounded: one attempt, permuter first). Wall table into this file; cookbook Β§496+; decision log; accelerators. -- [x] **T4b β€” crack and bank the final 15 (ADDED 2026-09-05 by Drew's directive; supersedes the kill gate: "anything that isn't the original hand-written asm or the PsyQ libs needs to be cracked and banked before we finish")** β€” **FIRST PASS COMPLETE 2026-09-05 (S83): 11 of 15 BANKED byte-identical, 4 carried to the NEXT session's HAND pass (Drew: no second agent round; hand-crack the remaining ones).** Hand pass first (22 spellings, 0 banks, every blocker refined to a mechanism in `.run/P32/t4b//NOTES.md`), then one Fable agent per row (permission, not requirement β€” Drew), resumed 3-at-a-time through three usage-limit outages. Banked (each: coordinator `rtu_match` in the CURRENT real TU β†’ `gate_main` / `bank.sh` byte-identical β†’ one commit; pins dropped by `exclude_audit --write`; mechanism in cookbook Β§501–§501-L): `main:func_800391D4` `commit:3956` Β· `main:func_80039DEC` `commit:3959` Β· `md_MAIN_009:func_800CD674` `commit:3964` Β· `ov_SC06_022:func_8017DF28` `commit:3966` Β· `main:func_80020DA4` `commit:3969` Β· `ov_SC03_105:func_801834A4` `commit:3972` Β· `md_MAIN_003:func_800CF3E8` `commit:3976` Β· `md_MAIN_009:func_800CD92C` `commit:3979` Β· `ov_SC07_002:func_8017DC80` `commit:3983` Β· `main:func_80011380` `commit:3990` (the Β§474 "PROVED" wall) Β· `md_MAIN_007:func_800CF6D0` `commit:3992`. Ten of the eleven were T4 "walls" or long-standing NEARs. **HAND PASS S84 (2026-09-06, Fable Max, no agents): row (a) `main:func_80032A74` β†’ PROVED at 1 (Β§501-M producer census: the 0x48 slot can only be a combine-minted ghost, which needs an `lh`/`lb`; the pin stays with its final verdict; ledger + `tools/ghost_census.py` + `cc1_dumps.sh` repair; row (b) `md_MAIN_007:func_800CF408` β†’ **BANKED byte-identical `commit:4001`** (the banked sibling func_800CD92C's spelling ported with a u32 array alias of the OT symbol, Β§501-N; zero pins/asm); row (c) `main:func_80039308` β†’ PLATEAU at 4 (S84 verdict, Β§501-O: the phantom slot's producer census refutes every route; Y4 is register-exact); **row (d) `ov_SC03_105:func_80185810` β†’ BANKED byte-identical `commit:4004` (S85, 2026-09-06): the banked same-shape cousin `ov_SC02_027:func_80180B3C`'s packet-window spelling ported β€” ZERO pins, zero fences, zero asm dials (Β§501-P); ov_SC03_105 100% C).** T4b hand pass COMPLETE: 13 of 15 banked, 2 verdicts (PROVED 1 Β· PLATEAU 4), both in main. Carried (4, all exact length, in `docs/backlog.md` with next levers): `main:func_80032A74` 1 (the last pin; ghost pseudo β€” near-proved) Β· `md_MAIN_007:func_800CF408` 3 Β· `main:func_80039308` 4 Β· `ov_SC03_105:func_80185810` 13. Close: fleet R22 **218 passed / 0 failed, exits 0/0/0** (23:33–23:36 MDT, `.run/P32/t4b/r22_full.log`); `make report`: instr 13,486,890 / 13,488,497 = 100.0% Β· distinct 5,814,982 / 5,816,589 = 100.0% (90,982 / 90,984 unique) Β· fn-count 363,210 / 363,214 = 100.00% Β· **INCLUDE_ASM 4**; main REAL 787 Β· LINKED 1,256 Β· VERBATIM 3 Β· stubs 2 Β· 2,089 / 2,091 = 99.90% Β· `143dbb89…`; census `.run/P32/frontier_t4b_close.json` 4 stubs / 1,607 ins; decision-log P32 S83 T4b (R31); accelerators (10)–(11); tools-health OK (`.run/P32/t4b/tools_health.log`). -- [x] **T4c β€” crack the last 2 main rows before closing (ADDED 2026-09-06 by Drew: "do that now, lets crack these before closing the phase")** β€” DONE 2026-09-06 (S85, Max, Fable 5.1, no agents): **BOTH BANKED byte-identical via `gate_main` ("BANKED 1 main functions -- 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL" Γ—2): `main:func_80032A74` `commit:4007` (the S84 "PROVED wall" β€” a combine self-update ghost mints the 8-byte slot, Β§501-Q) Β· `main:func_80039308` `commit:4008` (ZERO pins: the ghost chain + three inline `(b2 * 0x100)` temps merged by loop.c with a `u16 vol` accumulator + the s17/s18 reuse, Β§501-R).** Census `.run/P32/frontier_t4c_final.json`: **0 stubs / 0 ins**. `config/wave_exclude.txt` β†’ 0 entries (`exclude_audit --write`); backlog 1 open (the legacy `func_80062144` row, not a stub); twin_rescan 0 open; verbatim 5 == 5. Tools: `tools/cc1_dumps_tu.sh` + `tools/alloc_table.py` (promoted), `tools/cc1_dumps.sh -dL`; SETUP rows. Route + 56 variants: `.run/P32/t4e/NOTES.md`. +- [x] **T4b β€” crack and bank the final 15 (ADDED 2026-09-05 by Drew's directive; supersedes the kill gate: "anything that isn't the original hand-written asm or the PsyQ libs needs to be cracked and banked before we finish")** β€” **FIRST PASS COMPLETE 2026-09-05 (S83): 11 of 15 BANKED byte-identical, 4 carried to the NEXT session's HAND pass (Drew: no second agent round; hand-crack the remaining ones).** Hand pass first (22 spellings, 0 banks, every blocker refined to a mechanism in `.run/P32/t4b//NOTES.md`), then one Fable agent per row (permission, not requirement β€” Drew), resumed 3-at-a-time through three usage-limit outages. Banked (each: coordinator `rtu_match` in the CURRENT real TU β†’ `gate_main` / `bank.sh` byte-identical β†’ one commit; pins dropped by `exclude_audit --write`; mechanism in cookbook Β§501–§501-L): `main:func_800391D4` `1e54e88a8` Β· `main:func_80039DEC` `e8c2b6baa` Β· `md_MAIN_009:func_800CD674` `b13e824f7` Β· `ov_SC06_022:func_8017DF28` `b31084300` Β· `main:func_80020DA4` `b47bc2ea0` Β· `ov_SC03_105:func_801834A4` `ff86e2572` Β· `md_MAIN_003:func_800CF3E8` `cb871087e` Β· `md_MAIN_009:func_800CD92C` `4a9a67c59` Β· `ov_SC07_002:func_8017DC80` `825da37bc` Β· `main:func_80011380` `35fa11674` (the Β§474 "PROVED" wall) Β· `md_MAIN_007:func_800CF6D0` `228928dbe`. Ten of the eleven were T4 "walls" or long-standing NEARs. **HAND PASS S84 (2026-09-06, Fable Max, no agents): row (a) `main:func_80032A74` β†’ PROVED at 1 (Β§501-M producer census: the 0x48 slot can only be a combine-minted ghost, which needs an `lh`/`lb`; the pin stays with its final verdict; ledger + `tools/ghost_census.py` + `cc1_dumps.sh` repair; row (b) `md_MAIN_007:func_800CF408` β†’ **BANKED byte-identical `8fa12bc22`** (the banked sibling func_800CD92C's spelling ported with a u32 array alias of the OT symbol, Β§501-N; zero pins/asm); row (c) `main:func_80039308` β†’ PLATEAU at 4 (S84 verdict, Β§501-O: the phantom slot's producer census refutes every route; Y4 is register-exact); **row (d) `ov_SC03_105:func_80185810` β†’ BANKED byte-identical `cdd9a2cb8` (S85, 2026-09-06): the banked same-shape cousin `ov_SC02_027:func_80180B3C`'s packet-window spelling ported β€” ZERO pins, zero fences, zero asm dials (Β§501-P); ov_SC03_105 100% C).** T4b hand pass COMPLETE: 13 of 15 banked, 2 verdicts (PROVED 1 Β· PLATEAU 4), both in main. Carried (4, all exact length, in `docs/backlog.md` with next levers): `main:func_80032A74` 1 (the last pin; ghost pseudo β€” near-proved) Β· `md_MAIN_007:func_800CF408` 3 Β· `main:func_80039308` 4 Β· `ov_SC03_105:func_80185810` 13. Close: fleet R22 **218 passed / 0 failed, exits 0/0/0** (23:33–23:36 MDT, `.run/P32/t4b/r22_full.log`); `make report`: instr 13,486,890 / 13,488,497 = 100.0% Β· distinct 5,814,982 / 5,816,589 = 100.0% (90,982 / 90,984 unique) Β· fn-count 363,210 / 363,214 = 100.00% Β· **INCLUDE_ASM 4**; main REAL 787 Β· LINKED 1,256 Β· VERBATIM 3 Β· stubs 2 Β· 2,089 / 2,091 = 99.90% Β· `143dbb89…`; census `.run/P32/frontier_t4b_close.json` 4 stubs / 1,607 ins; decision-log P32 S83 T4b (R31); accelerators (10)–(11); tools-health OK (`.run/P32/t4b/tools_health.log`). +- [x] **T4c β€” crack the last 2 main rows before closing (ADDED 2026-09-06 by Drew: "do that now, lets crack these before closing the phase")** β€” DONE 2026-09-06 (S85, Max, Fable 5.1, no agents): **BOTH BANKED byte-identical via `gate_main` ("BANKED 1 main functions -- 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL" Γ—2): `main:func_80032A74` `f9a90affb` (the S84 "PROVED wall" β€” a combine self-update ghost mints the 8-byte slot, Β§501-Q) Β· `main:func_80039308` `ffb1949a1` (ZERO pins: the ghost chain + three inline `(b2 * 0x100)` temps merged by loop.c with a `u16 vol` accumulator + the s17/s18 reuse, Β§501-R).** Census `.run/P32/frontier_t4c_final.json`: **0 stubs / 0 ins**. `config/wave_exclude.txt` β†’ 0 entries (`exclude_audit --write`); backlog 1 open (the legacy `func_80062144` row, not a stub); twin_rescan 0 open; verbatim 5 == 5. Tools: `tools/cc1_dumps_tu.sh` + `tools/alloc_table.py` (promoted), `tools/cc1_dumps.sh -dL`; SETUP rows. Route + 56 variants: `.run/P32/t4e/NOTES.md`. - [ ] **T5 β€” PhaseEnd** (Max, Tier 1 β€” prompt R27): P7 checkbox walk; milestone demo (R22 fleet N/N, tools-health, `verbatim_check --strict`, final census, wall ledger, parked-5 dispositions via `make audit-disc`, `make report` all three metrics + main `143dbb89…` with/without SDK dirs, corrected denominators); **WAIT @@ -137,19 +137,19 @@ cookbook before the next drafting step (R16/R30) Β· no `Co-Authored-By` trailer ## Log - 2026-09-06 (S85, T4c CLOSE β€” the chain's logs read; gate 2 CONFIRMED by Drew) β€” **Fleet R22 after the two main banks: `make clean` EXIT=0 Β· extract-all 217 extracted, 0 failed of 217 (+ main, serial) EXIT=0 Β· check-all 218 passed, 0 failed of 218 EXIT=0 (16:13:17 MDT)** (`.run/P32/t4e/r22_*.log`). `make report`: **fn-count 363,214 / 363,214 = 100.00% Β· instr 13,488,497 / 13,488,497 = 100.0% Β· distinct 5,816,589 / 5,816,589 = 100.0% (90,984 / 90,984 unique) Β· MAIN game-code 41,534 / 41,534 = 100.0% Β· INCLUDE_ASM 0 Β· NON_MATCHING 0 Β· LINKED 1,256 Β· REAL substantive 360,737 (dedup 2,220 groups / 255,708 instances)** (`report_close.log`). `make report BINARY=main`: **REAL 789 Β· LINKED 1,256 Β· VERBATIM 3 Β· INCLUDE_ASM 0 Β· matchable 2,091 Β· byte-identical 2,091 / 2,091 = 100.00% Β· SHA1 143dbb89f34491258bbc27810d0a12ec8b43a8dd** (`report_main_close.log`). `make tools-health` (`tools_health.log`): see the PhaseEnd (read at the close). Milestone confirmed by Drew (gate 2): "milestone confirmed, gate 2 approved. write the PhaseEnd". NEXT = T5 executed in this session. -- 2026-09-06 14:00–19:30 MDT (S85, continued) β€” **T4c DONE: the last two functions banked; the frontier is EMPTY.** (a) `func_80032A74`: step 0 shape-grep (`0x6009F`, `0x5301`) β†’ cousins `func_8003388C`/`func_800336A8` (800_b_2) and `func_8003A0E4` (800_c); the crack was a NEW frame-slot producer β€” combine.c:2306 skips the ref decrement for a deleted self-update (`i2dest_in_i2src`), so `gx = dd->unk07; gx -= 0x100; flag = (u32)sub < (u32)(u8)gx;` compiles to the same `lbu` and reload mints the orphan slot at 0x48; 18 reproducers (`.run/P32/t4e/ghost/`, k4/k5/k7/k14/k16/k17 mint, byte-store hosts don't); rtu MATCH on the first probe (a1); `gate_main` BANKED `commit:4007`. (b) `func_80039308`: Y4 + the ghost chain fixed the frame (DIFF 6), reusing arm 1's `s17`/`s18` as the else pointer/temp fixed the else head (b11 DIFF 2), then 40 variants on the hoisted `sll $s2` (`tools/cc1_dumps_tu.sh` real-TU dumps + `tools/alloc_table.py`): a named `vbase` after the inner loop is never a movable (loop.c:695), a 1-use temp is "not desirable", copy-first folds the arms onto `vol` (cse.c make_regs_eqv), copy-last births `vol` after the tests ($a0); the reproducer sweep (s1–s8) found `u16 vol` keeps the arms on the hoisted register; b52 = `u16 vol` + `vol = b2 * 0x100` copy-first + arms `(b2 * 0x100) Β± X` (three temps merged by combine_movables, refs 7 β†’ $s2) β†’ **MATCH**; b54–b56 dropped every pin β†’ **b56 zero pins**; `gate_main` BANKED `commit:4008`. Post-bank: verbatim 5==5, twin_rescan 0 open, backlog 1 open (legacy row), `exclude_audit --write` β†’ 0 entries, census **0 / 0**. Harvest: cookbook **Β§501-Q, Β§501-R** (+index OK), accelerators (15)(16), decision-log P32 S85 T4c, SETUP rows, `.run/P32/t4e/NOTES.md`, `.gitignore` allowlist. **Fleet R22 + `make report` Γ—2 + `make tools-health` launched as one background chain at ~19:20 MDT** (`.run/P32/t4e/r22_{clean,extract,check}.log`, `report_close.log`, `report_main_close.log`, `tools_health.log`) β€” read them first next session. Session paused at Drew's request (90% context). NEXT = record the chain's numbers β†’ T5. +- 2026-09-06 14:00–19:30 MDT (S85, continued) β€” **T4c DONE: the last two functions banked; the frontier is EMPTY.** (a) `func_80032A74`: step 0 shape-grep (`0x6009F`, `0x5301`) β†’ cousins `func_8003388C`/`func_800336A8` (800_b_2) and `func_8003A0E4` (800_c); the crack was a NEW frame-slot producer β€” combine.c:2306 skips the ref decrement for a deleted self-update (`i2dest_in_i2src`), so `gx = dd->unk07; gx -= 0x100; flag = (u32)sub < (u32)(u8)gx;` compiles to the same `lbu` and reload mints the orphan slot at 0x48; 18 reproducers (`.run/P32/t4e/ghost/`, k4/k5/k7/k14/k16/k17 mint, byte-store hosts don't); rtu MATCH on the first probe (a1); `gate_main` BANKED `f9a90affb`. (b) `func_80039308`: Y4 + the ghost chain fixed the frame (DIFF 6), reusing arm 1's `s17`/`s18` as the else pointer/temp fixed the else head (b11 DIFF 2), then 40 variants on the hoisted `sll $s2` (`tools/cc1_dumps_tu.sh` real-TU dumps + `tools/alloc_table.py`): a named `vbase` after the inner loop is never a movable (loop.c:695), a 1-use temp is "not desirable", copy-first folds the arms onto `vol` (cse.c make_regs_eqv), copy-last births `vol` after the tests ($a0); the reproducer sweep (s1–s8) found `u16 vol` keeps the arms on the hoisted register; b52 = `u16 vol` + `vol = b2 * 0x100` copy-first + arms `(b2 * 0x100) Β± X` (three temps merged by combine_movables, refs 7 β†’ $s2) β†’ **MATCH**; b54–b56 dropped every pin β†’ **b56 zero pins**; `gate_main` BANKED `ffb1949a1`. Post-bank: verbatim 5==5, twin_rescan 0 open, backlog 1 open (legacy row), `exclude_audit --write` β†’ 0 entries, census **0 / 0**. Harvest: cookbook **Β§501-Q, Β§501-R** (+index OK), accelerators (15)(16), decision-log P32 S85 T4c, SETUP rows, `.run/P32/t4e/NOTES.md`, `.gitignore` allowlist. **Fleet R22 + `make report` Γ—2 + `make tools-health` launched as one background chain at ~19:20 MDT** (`.run/P32/t4e/r22_{clean,extract,check}.log`, `report_close.log`, `report_main_close.log`, `tools_health.log`) β€” read them first next session. Session paused at Drew's request (90% context). NEXT = record the chain's numbers β†’ T5. - 2026-09-06 13:00–13:50 MDT (S85, continued) β€” **T4b CLOSE (task #13 done): fleet R22 after the bank `make clean && make extract-all && make check-all` β†’ clean EXIT=0 Β· extract-all 217 extracted, 0 failed of 217 (+ main, serial) EXIT=0 Β· check-all 218 passed, 0 failed of 218 EXIT=0 at 13:21:49 MDT** (`.run/P32/t4d/r22_{clean,extract,check}.log`). `make report` (fleet, `.run/P32/t4d/report_close.log`): instr **13,487,557 / 13,488,497 = 100.0%** Β· distinct **5,815,649 / 5,816,589 = 100.0%** (90,984 / 90,984 unique fns) Β· fn-count **363,212 / 363,214 = 100.00%** Β· INCLUDE_ASM **2** Β· NON_MATCHING 0 Β· LINKED 1,256 Β· REAL substantive 360,735 Β· dedup 2,220 groups / 255,708 instances. `make report BINARY=main` (`report_main_close.log`): REAL **787** Β· LINKED **1,256** Β· VERBATIM 3 Β· INCLUDE_ASM **2** Β· matchable 2,091 Β· byte-identical **2,089 / 2,091 = 99.90%** Β· build SHA1 `143dbb89f34491258bbc27810d0a12ec8b43a8dd` byte-identical Β· MAIN game-code weighted 40,594 / 41,534 = 97.7% (digest denominator; the corrected one is 41,556). `make tools-health` β†’ **OK** (sigs fresh; corpus(+resident) + cdecl + binaries + report(lint+dedup) + cookbook-index green; split_indicator 218 OK). Census `.run/P32/frontier_t4b_final.json` **2 stubs / 940 ins** (main `func_80039308` PLATEAU 4 Β· `func_80032A74` PROVED 1); `twin_rescan` 2 open / 0 newly free; `verbatim_check --strict` 5 == 5; `docs/backlog.md` 3 open (the two verdict rows + the legacy `func_80062144` "won't compile standalone" row). πŸ›‘ block refreshed for T5 (below). NEXT = **T5 β€” the PhaseEnd (Tier 1, Max; present the milestone demo and WAIT for gate 2)**. -- 2026-09-06 (S85, session 3a7e207c, Max, Fable 5.1, no agents) β€” **T4b hand pass, row (d) `ov_SC03_105:func_80185810` BANKED byte-identical (`commit:4004`: bank.sh β€” rtu MATCH 489/489 in the real TU, splice, `make build BINARY=ov_SC03_105 -j8` rc 0, sha `d305ff6d…` == `config/check.ov_SC03_105.sha`).** Preflight: tree clean, `verbatim_check --strict` 5==5, `make check-all` 218 passed / 0 failed EXIT=0 (`.run/P32/t4d/check_all_preflight.log`); the Fable draft re-verified DIFF 13 (rows 363–380). Β§501-N step 0: twin oracle 0, atlas knn nothing (only a REVERSE 0.55 "weak cousin" entry), symbol grep = this overlay only; the SHAPE grep (`'0x200) << 2'`, the getTPage chain) surfaced `ov_SC02_027:func_80180B3C` β€” the same billboard drawer, banked β€” whose objdump window (0x34f8–0x3560) is the target's rows 362–386 verbatim. Its window spelling ported onto the draft (`.run/P32/t4d/d1_sibport.c`) β†’ MATCH first try; the pin census (d2–d12, all real-TU): mode/cl/c40/uu pins individually and jointly removable, `ot16` pin load-bearing ONLY next to 2-set neighbours (DIFF 4), **d9 with NO pins = MATCH β†’ banked**; F2's polarity re-rolls 42 rows, a 2-set `uu` 63 rows (the S83 "combine folds the fresh andi via nonzero_bits / a hard reg hides it" reading refuted β€” the andi survives as a lone single-set insn). Post-bank: `twin_rescan` 2 open / 0 newly free; `verbatim_check --strict` 5==5; `backlog.py render` 3 open (row pruned); census `.run/P32/frontier_t4b_final.json` **2 stubs / 940 ins** (main `func_80039308` 4 Β· `func_80032A74` 1). Harvest: cookbook **Β§501-P** (+ index regen), accelerators (14), decision-log P32 S85 (R31), `.run/P32/t4d/NOTES.md` (the 12-variant census). Fleet R22 launched after the bank (`.run/P32/t4d/r22_*.log`) β€” see the T4b close entry. **T4b hand pass COMPLETE: 13/15 banked + 2 final verdicts. NEXT = the T4b close, then T5.** +- 2026-09-06 (S85, session 3a7e207c, Max, Fable 5.1, no agents) β€” **T4b hand pass, row (d) `ov_SC03_105:func_80185810` BANKED byte-identical (`cdd9a2cb8`: bank.sh β€” rtu MATCH 489/489 in the real TU, splice, `make build BINARY=ov_SC03_105 -j8` rc 0, sha `d305ff6d…` == `config/check.ov_SC03_105.sha`).** Preflight: tree clean, `verbatim_check --strict` 5==5, `make check-all` 218 passed / 0 failed EXIT=0 (`.run/P32/t4d/check_all_preflight.log`); the Fable draft re-verified DIFF 13 (rows 363–380). Β§501-N step 0: twin oracle 0, atlas knn nothing (only a REVERSE 0.55 "weak cousin" entry), symbol grep = this overlay only; the SHAPE grep (`'0x200) << 2'`, the getTPage chain) surfaced `ov_SC02_027:func_80180B3C` β€” the same billboard drawer, banked β€” whose objdump window (0x34f8–0x3560) is the target's rows 362–386 verbatim. Its window spelling ported onto the draft (`.run/P32/t4d/d1_sibport.c`) β†’ MATCH first try; the pin census (d2–d12, all real-TU): mode/cl/c40/uu pins individually and jointly removable, `ot16` pin load-bearing ONLY next to 2-set neighbours (DIFF 4), **d9 with NO pins = MATCH β†’ banked**; F2's polarity re-rolls 42 rows, a 2-set `uu` 63 rows (the S83 "combine folds the fresh andi via nonzero_bits / a hard reg hides it" reading refuted β€” the andi survives as a lone single-set insn). Post-bank: `twin_rescan` 2 open / 0 newly free; `verbatim_check --strict` 5==5; `backlog.py render` 3 open (row pruned); census `.run/P32/frontier_t4b_final.json` **2 stubs / 940 ins** (main `func_80039308` 4 Β· `func_80032A74` 1). Harvest: cookbook **Β§501-P** (+ index regen), accelerators (14), decision-log P32 S85 (R31), `.run/P32/t4d/NOTES.md` (the 12-variant census). Fleet R22 launched after the bank (`.run/P32/t4d/r22_*.log`) β€” see the T4b close entry. **T4b hand pass COMPLETE: 13/15 banked + 2 final verdicts. NEXT = the T4b close, then T5.** - 2026-09-06 (S84, continued) β€” **T4b hand pass, row (c) `main:func_80039308` β†’ PLATEAU at 4 (verdict).** Producer census for the target's phantom slot `[arg1 @0][8 @8][cnt @0x10]` (Β§501-O): cnt's slot is `spill_stack_slot[23]` (cnt evicted from `$s7`, `.greg` "Register 95 now on stack"), so the phantom is an initial-loop slot with no traffic; every producer refuted on dump facts (leaf β†’ no save area; LO spilled after GR; products alternate to GR_REGS β€” C3 measured `mflo $a1/$v1`; no unallocated single-block equiv pseudo; expand-time locals precede; all 13 `lh` single-use, no `lb`). Rows 49/50 = two `move_movables` hoists in body order (open: steer the hoisted `b2 * 0x100` into `$s2` without the pin). Ledger row updated (closeness 4, FRAME+SCHED), NOTES `.run/P32/t4c/func_80039308/NOTES.md`, probe `c3_twoprod.c`. **Row (d) `ov_SC03_105:func_80185810` (13) read (report + rtu DIFF 13 re-verified) β€” NOT started; per Β§501-N its step 0 is a banked-sibling search on its symbol set (`D_800A5E60`, `D_801BC9B4/BC`, `D_801BA6B0`, `D_800AF630`, `D_800A6610`).** Session paused here at Drew's request (87% context). -- 2026-09-06 (S84, continued) β€” **T4b hand pass, row (b) `md_MAIN_007:func_800CF408` BANKED byte-identical (`commit:4001`: bank.sh β€” rtu MATCH 178/178 in the real TU, splice, `make build BINARY=md_MAIN_007 -j8` rc 0, sha `2ff702b6…` == `config/check.md_MAIN_007.sha`).** The Fable draft's 3-row prologue-weave residual (Β§501-L) was a shape symptom: the same-family banked sibling `md_MAIN_009:func_800CD92C` (Β§501-H) had matched with the plain libgpu addPrim shape; porting it with this function's constants matched first try (`b0d_sibport_alias.c`). The TU declares `extern u8 D_800AA60C[]`, which kills the sibling's `u32` ARRAY_REF (the form whose address `memory_address β†’ force_reg` lets cse bind the OT base into `$t2`; every `u8` respelling emits the `$at` macro form Γ—8) β€” solved with the fleet's asm-label alias `extern u32 wD_800AA60C[] __asm__("D_800AA60C");` (1,438 banked files carry the pattern; a declaration, not an asm body). Measured and refuted on the way: the sibling's lever-7 trailing volatile asm 2-set dial (flips `$t1/$t0`), the struct-view and P_TAG-on-`u8` forms. Post-bank: `twin_rescan` 3 open / 0 newly free; `verbatim_check --strict` 5==5; backlog rendered 4 open (the row pruned). Harvest: cookbook **Β§501-N**, accelerators (13), NOTES `.run/P32/t4c/func_800CF408/NOTES.md` (7 variants). bank.sh's `Claude-Session` trailer now comes from `$CLAUDE_SESSION` (was S83's id hard-coded). NEXT = row (c) `main:func_80039308` (4). +- 2026-09-06 (S84, continued) β€” **T4b hand pass, row (b) `md_MAIN_007:func_800CF408` BANKED byte-identical (`8fa12bc22`: bank.sh β€” rtu MATCH 178/178 in the real TU, splice, `make build BINARY=md_MAIN_007 -j8` rc 0, sha `2ff702b6…` == `config/check.md_MAIN_007.sha`).** The Fable draft's 3-row prologue-weave residual (Β§501-L) was a shape symptom: the same-family banked sibling `md_MAIN_009:func_800CD92C` (Β§501-H) had matched with the plain libgpu addPrim shape; porting it with this function's constants matched first try (`b0d_sibport_alias.c`). The TU declares `extern u8 D_800AA60C[]`, which kills the sibling's `u32` ARRAY_REF (the form whose address `memory_address β†’ force_reg` lets cse bind the OT base into `$t2`; every `u8` respelling emits the `$at` macro form Γ—8) β€” solved with the fleet's asm-label alias `extern u32 wD_800AA60C[] __asm__("D_800AA60C");` (1,438 banked files carry the pattern; a declaration, not an asm body). Measured and refuted on the way: the sibling's lever-7 trailing volatile asm 2-set dial (flips `$t1/$t0`), the struct-view and P_TAG-on-`u8` forms. Post-bank: `twin_rescan` 3 open / 0 newly free; `verbatim_check --strict` 5==5; backlog rendered 4 open (the row pruned). Harvest: cookbook **Β§501-N**, accelerators (13), NOTES `.run/P32/t4c/func_800CF408/NOTES.md` (7 variants). bank.sh's `Claude-Session` trailer now comes from `$CLAUDE_SESSION` (was S83's id hard-coded). NEXT = row (c) `main:func_80039308` (4). - 2026-09-06 (S84, session 72d8b4b1, Max, Fable 5.1) β€” **T4b hand pass, row (a) `main:func_80032A74` CLOSED: PROVED at 1 (verdict, not a bank).** Preflight: tree clean, `verbatim_check --strict` 5==5, `make check-all` 218 passed / 0 failed rc 0 (`.run/P32/t4c/check_all_preflight.log`). Re-verified in the real TU (`rtu_match … --tu src/800_b_2.c --asm-subdir asm/nonmatchings/800_b_2`): the `s16 u18` draft DIFF 1 (idx 244 `lh` vs `lhu`, frame exact); the `u16 u18` TU-clean variant DIFF 22 = the 22 frame rows only (422/422 code). The residual is ONE reload-time slot at sp+0x48. Instead of a spelling sweep, enumerated every post-parameter stack-slot producer from the 2.7.2 source (reload1.c:658 ghost `alter_reg` Β· caller-save.c:249 area Β· reload1.c:879 invalid-equiv address Β· reload1.c:3499 `spill_stack_slot`) and refuted each on the bytes/dumps: combine's `newi2pat` ghosts re-derive a narrow load (`lh`/`lb`) and the site is `lhu` with no `lb`/double load; a save area without `sw/lw` needs sched.c:4962 staleness and no register-only insn shares a block with any of the 7 calls; unallocated single-block equiv pseudos cannot exist; `$t0` holds no pseudo (`order_regs_for_reload`) and LO mult results retry into `GR_REGS`. Found and measured a NEW ghost producer β€” `local-alloc.c optimize_reg_copy_2` on `tmp = x; tmp op= c; x = tmp;` (P13 refs 5, P14 refs 1) β€” which cannot slot because it is minted after regclass (class `GR_REGS`, no conflicts β†’ allocated, vars=0). 18 isolated reproducers, 0 draft variants. Deliverables: cookbook **Β§501-M**, `tools/ghost_census.py` (new) + `tools/cc1_dumps.sh` (repaired: frame line + census, the under-counting `(use)` grep gone) + SETUP rows (R21), accelerators (12), backlog row (WALL-PROVED) + `tools/backlog.py` tie-break repair (kept the EARLIEST record at equal closeness β€” the S84 row never rendered), `config/wave_exclude.txt` annotated (`exclude_audit --assert-fresh` 1/1), notes `.run/P32/t4c/func_80032A74/NOTES.md`. NEXT = row (b) `md_MAIN_007:func_800CF408` (3). - 2026-09-05 13:05–23:40 MDT (S83, continued) β€” **T4b first pass COMPLETE: 11 of 15 banked, 4 carried.** Fifteen Fable agents launched from `.run/P32/t5x/` (BRIEF + packs + the hand-pass NOTES); three usage-limit outages killed every run (resumed each time via SendMessage with context intact; "write deliverables early" saved one crack from a dead run); from the second outage on, resumed 3 at a time (Drew). Verdicts: 11 MATCH (each re-verified by the coordinator in the CURRENT real TU and banked byte-identical β€” main rows via `gate_main` slates, overlays/modules via `SPLIT=… DRAFT_DIR=.run/P32/t5x/fable bank.sh`), 4 NEAR at exact length (1 / 3 / 4 / 13) with pass-attributed residuals and next levers ledgered. Every crack came from READING a pass dump against the 2.7.2 source; cookbook Β§501–§501-L (12 new laws: cascades, cross-jump-after-alloc, dying-input vs birthing boost, hard-reg sets count, pins forbid retry regs, CSE-quantity split, three-passes-three-dials, constants as floaters, manufactured orphans, a proved tree wall is not an RTL wall, sched2's /s exemption, coupled dials); decision-log P32 S83 T4b; accelerators (10)–(11). Instrument defects: bank.sh (empty fn list β†’ built the unchanged tree, exit 0; `_jr_` TU split; draft dir) hardened, and two premature "banked" ledger messages corrected in the next commit (memory: write the message from the tool's output). Pins 7 β†’ 1. Fleet R22 218/218 at the close; `make report` fleet 100.0/100.0/100.00, 4 stubs. **Drew: no second agent round; hand-crack the remaining four next session.** NEXT = the hand pass on the four (see the πŸ›‘ block), then T5. - 2026-09-05 12:05–12:40 MDT (S83, continued) β€” **T4 DONE.** Preflight: tree clean, verbatim 5==5, R22 218/218 (12:00), `exclude_audit --assert-fresh` 7/7. Every pinned wall's best draft re-run with `rtu_match` in its CURRENT real TU: `func_80011380` DIFF 6 (`--o0`), `func_80020DA4` DIFF 2, `func_8017DF28` DIFF 2, `func_801834A4` DIFF 6 Γ—3 variants; the three CC1-FAIL rows re-probed after their plumbing was understood β€” `func_80032A74` (7 TU-provided typedefs + 4 decl spellings β†’ `cdecl.strip_provided_typedefs` + the TU's lines β†’ DIFF 1 in the real TU), `func_80039DEC` and `func_800391D4` (a sandbox TU copy under `.run/P32/t4/tu/` with the declaration edited THERE β†’ DIFF 2 / DIFF 3) β€” no `src/` edit, no byte-neutral commit spent on rows that will not bank. Leaf `match_one` re-measured all three (1 / 2 (permuter) / 3). **No verdict changed: 1 PROVED (Β§474) + 6 CANDIDATE**, citations current (Β§474, Β§172 reload1.c:1445, loop.md L4 2.7.2:1529, cse_expr.md [A23-2], the K&R promotion laws). Deliverables: the wall table (above), `config/wave_exclude.txt` per-row S83 lines, backlog rows for all 7 (+ the two path-less rows fixed, R62; `docs/backlog.md` 16 open), cookbook Β§500-I, accelerators (8), decision-log. NEXT = **T5 (Max, Tier 1 β€” prompt R27, WAIT for gate 2)**. -- 2026-09-05 11:30–12:30 MDT (S83, continued) β€” **T3 steps 8–9 DONE β†’ T3 CLOSED.** Step 8: `permuter_ils` 8Γ—150 s -j3 on the two REGALLOC-PERM seeds β€” `func_800CD674` plateau (best waypoint = the same 2-row `$a3↔$t1` pair; ledgered with cost), `func_8001BC6C` reached masked 1; the R63 read showed three mutations, one of them a WRONG-WIDTH `& 0xFF` (lhuβ†’lbu); the two sound ones (idx after color; an early `tag`/`k` birth) = leaf MATCH, re-spelled well-defined as `k = 0; tag = (a1 << 8) | k;` (11 spellings measured), rtu MATCH in src/800.c, **gate_main BANKED 143dbb89** (`commit:3948`) β€” main 7 β†’ 6 open. gate_main's first rebuild died on a concurrent agent's `src/.masked_diff_probe..c` (present at parse, gone at compile) β†’ **Makefile `C_SRCS` find now `-not -name '.*'`** (`commit:3949`, byte-neutral, control on `make -pn`). One bounded Opus second look at `func_800CF3E8` (245k tokens, 29 min): 27 holds; Β§500-D1's mechanism corrected to `cse.c find_best_addr` (fold_rtx MEM; COST pseudo 0 vs hard reg 1), the alias lever refuted 5/5, a new zero-byte pinned-pointer launder found (79 @ 470, structurally closer) β€” cookbook **Β§500-H**, backlog row updated. Step 9: `make report` (fleet instr 100.0% Β· distinct 99.9% Β· fn 100.00% Β· 15 stubs), `make report BINARY=main`, census `.run/P32/frontier_t3_close.json` (15 / 3,758), twin_rescan 0 free, cookbook Β§500-G/H + index, this file; R22 β†’ see the πŸ›‘ block. **Kill gate:** the session banked 29 and produced 3 new verdicts; the tail's three bounded attempts are spent β€” T3 closes on the evidence. NEXT = T4. -- 2026-09-05 10:10–11:25 MDT (S83, session 491895ad, xHigh, Fable 5.1) β€” **T3 steps 0–7 DONE: 28 banks, fleet R22 218/218 twice.** Preflight R22 218/218 rc 0 (`.run/P32/t3s3/r22_check.log`) β†’ the 11 S82 MATCH rows banked: md_SC03_053 Γ—2 (`commit:3935` `commit:3936`, 100% C) Β· main Γ—2 via gate_main (`commit:3937`: "slate 2 -> 2 compatible … BANKED 2 … 143dbb89 BYTE-IDENTICAL") Β· md_SC03_054 func_801EF6D8 604+7 jtbls (`commit:3938`; `jtbl_carve --probe` refused the tail carve β†’ Β§303 derive stage reproduced the island pads `0,0t1,0t1,0t1,0t1,0t1,0` with NO carve state change) Β· md_MAIN_007 Γ—6 after the byte-neutral func_800CF3B0 no-proto decl commit (`commit:3939`, `commit:3940`) β€” two integration classes on the way (same-TU s16/u16 spelling of D_800B99E8; Β§304 self-defining rodata D_800CEDFC). twin_rescan 33 open / 0 free; verbatim 5==5; **R22 `make clean && make extract-all && make check-all` β†’ 217+main extracted, 218 passed / 0 failed, exits 0/0/0** (`.run/P32/t3s3/r22_full.log`, 10:41–10:46); tools-health OK. The 9 NEAR rows ledgered (`backlog_near.sh`; docs/backlog.md 15 open). **17 Haiku agents launched 10:57 from staged prompts (`.run/P32/t3s3/prompts/`), 17/17 MATCH by 11:15**, each re-verified with rtu_match in the CURRENT TU and banked by `bank.sh` (verbatim grep β†’ rtu β†’ splice β†’ one build β†’ sha β†’ commit-on-green): md_MAIN_007 Γ—6 (`commit:3941` `commit:3942`), md_MAIN_009 Γ—8 (`commit:3943` `commit:3946` β€” func_800CD520 needed a Β§376 re-spell after a sibling bank added the file-scope prototype), md_SC03_054 Γ—2 (`commit:3944`, 100% C), md_SC03_056 Γ—1 (`commit:3945`, 100% C). twin_rescan 16 open / 0 free. Harvest: cookbook **Β§500-F** (the four integration classes), BRIEF.md Β§304 sentence, `jtbl_carve --probe` text, harvest_notes. Post-batch R22 (after all 28 banks): 217+main extracted, **218 passed / 0 failed, exits 0/0/0** (`.run/P32/t3s3/r22b_full.log`, 11:04–11:09). +- 2026-09-05 11:30–12:30 MDT (S83, continued) β€” **T3 steps 8–9 DONE β†’ T3 CLOSED.** Step 8: `permuter_ils` 8Γ—150 s -j3 on the two REGALLOC-PERM seeds β€” `func_800CD674` plateau (best waypoint = the same 2-row `$a3↔$t1` pair; ledgered with cost), `func_8001BC6C` reached masked 1; the R63 read showed three mutations, one of them a WRONG-WIDTH `& 0xFF` (lhuβ†’lbu); the two sound ones (idx after color; an early `tag`/`k` birth) = leaf MATCH, re-spelled well-defined as `k = 0; tag = (a1 << 8) | k;` (11 spellings measured), rtu MATCH in src/800.c, **gate_main BANKED 143dbb89** (`836181a6c`) β€” main 7 β†’ 6 open. gate_main's first rebuild died on a concurrent agent's `src/.masked_diff_probe..c` (present at parse, gone at compile) β†’ **Makefile `C_SRCS` find now `-not -name '.*'`** (`563a21144`, byte-neutral, control on `make -pn`). One bounded Opus second look at `func_800CF3E8` (245k tokens, 29 min): 27 holds; Β§500-D1's mechanism corrected to `cse.c find_best_addr` (fold_rtx MEM; COST pseudo 0 vs hard reg 1), the alias lever refuted 5/5, a new zero-byte pinned-pointer launder found (79 @ 470, structurally closer) β€” cookbook **Β§500-H**, backlog row updated. Step 9: `make report` (fleet instr 100.0% Β· distinct 99.9% Β· fn 100.00% Β· 15 stubs), `make report BINARY=main`, census `.run/P32/frontier_t3_close.json` (15 / 3,758), twin_rescan 0 free, cookbook Β§500-G/H + index, this file; R22 β†’ see the πŸ›‘ block. **Kill gate:** the session banked 29 and produced 3 new verdicts; the tail's three bounded attempts are spent β€” T3 closes on the evidence. NEXT = T4. +- 2026-09-05 10:10–11:25 MDT (S83, session 491895ad, xHigh, Fable 5.1) β€” **T3 steps 0–7 DONE: 28 banks, fleet R22 218/218 twice.** Preflight R22 218/218 rc 0 (`.run/P32/t3s3/r22_check.log`) β†’ the 11 S82 MATCH rows banked: md_SC03_053 Γ—2 (`d3f05998d` `9887e6987`, 100% C) Β· main Γ—2 via gate_main (`e2aee8e27`: "slate 2 -> 2 compatible … BANKED 2 … 143dbb89 BYTE-IDENTICAL") Β· md_SC03_054 func_801EF6D8 604+7 jtbls (`aa773c8fb`; `jtbl_carve --probe` refused the tail carve β†’ Β§303 derive stage reproduced the island pads `0,0t1,0t1,0t1,0t1,0t1,0` with NO carve state change) Β· md_MAIN_007 Γ—6 after the byte-neutral func_800CF3B0 no-proto decl commit (`9e84ce2cd`, `8ca9d53ca`) β€” two integration classes on the way (same-TU s16/u16 spelling of D_800B99E8; Β§304 self-defining rodata D_800CEDFC). twin_rescan 33 open / 0 free; verbatim 5==5; **R22 `make clean && make extract-all && make check-all` β†’ 217+main extracted, 218 passed / 0 failed, exits 0/0/0** (`.run/P32/t3s3/r22_full.log`, 10:41–10:46); tools-health OK. The 9 NEAR rows ledgered (`backlog_near.sh`; docs/backlog.md 15 open). **17 Haiku agents launched 10:57 from staged prompts (`.run/P32/t3s3/prompts/`), 17/17 MATCH by 11:15**, each re-verified with rtu_match in the CURRENT TU and banked by `bank.sh` (verbatim grep β†’ rtu β†’ splice β†’ one build β†’ sha β†’ commit-on-green): md_MAIN_007 Γ—6 (`5aab66b2d` `5160775a1`), md_MAIN_009 Γ—8 (`f20e42259` `fc922a4cc` β€” func_800CD520 needed a Β§376 re-spell after a sibling bank added the file-scope prototype), md_SC03_054 Γ—2 (`582bcab70`, 100% C), md_SC03_056 Γ—1 (`f461715d0`, 100% C). twin_rescan 16 open / 0 free. Harvest: cookbook **Β§500-F** (the four integration classes), BRIEF.md Β§304 sentence, `jtbl_carve --probe` text, harvest_notes. Post-batch R22 (after all 28 banks): 217+main extracted, **218 passed / 0 failed, exits 0/0/0** (`.run/P32/t3s3/r22b_full.log`, 11:04–11:09). - 2026-09-05 (successor session, later) β€” **Session-start protocol rewritten at Drew's direction (R64 candidate):** `phase-ends/DIGEST.md` created (every phase synopsis + every rule in full + the PROJECT_CONTEXT corrections + the doc map); CLAUDE.md load order = PROJECT_CONTEXT β†’ DIGEST β†’ the three most recent PhaseEnds β†’ CURRENT_PHASE, β‰ˆ100k tokens, the πŸ›‘ block replayed VERBATIM; Phase Boundary step 3b maintains the digest (P7); `phase-ends/README.md` + SETUP Β§7 updated; the two memories (`checkpoint-current-phase-before-pause`, `session-start-list-rules-in-full`) + MEMORY.md updated; `.run/P32/t3/PROMPT_TEMPLATE.md` saved (verbatim agent prompts). The πŸ›‘ block below was REFRESHED to the verbatim-replay standard and SUPERSEDES the 09:30 block. Ratify R64 at PhaseEnd_Phase32. - 2026-09-05 09:30 MDT β€” **T3 CHECKPOINT by the successor session (Max, Fable 5.1) after the launching session died.** The T3 coordinator (session c6a5fb71) banked 10 functions in 9 commits (T3 (1)–(9), 01:01–01:07 MDT) and then hit "Prompt is too long" at 01:07 MDT; 22 agent completions (07:07Z–08:04Z) arrived into a dead session. Recovered via the recorded route: `agent_verdicts.py` over the 31 task transcripts β†’ `.run/P32/t3/verdicts.jsonl` (20 MATCH / 9 NEAR / 2 FAIL); every unbanked draft re-verified with `rtu_match` in its real TU (10 MATCH confirmed). **Instrument incident (R48 class):** one agent's tidy-up (`find .run/P32/t3/opus -maxdepth 1 -type f ! -name func_800CD674.c -exec mv {} _scratch/`, 07:52Z) had swept 11 sibling Opus deliverables β€” found in `_scratch/`, moved back, byte-verified at the reported closeness; `tools/agent_drafts_restore.py` (NEW β€” transcript replay) written as the fallback; `.gitignore` allowlist for `.run/P32/**` so the drafts/ledger/census are committed (R20). Harvest written IN-SESSION (R16/R30): cookbook **Β§500** (10 banked closers, 10 MATCH closers, 9 NEAR classes, two NEW mechanisms β€” the pinned-base alias basin and `#line`-equalised ASM_OPERANDS β€” and the process defects); `docs/wave-playbook.md` Β§S80 addendum-2 (per-function work dirs, JSON-only final message, the 20-agent cap, the recovery tools); `docs/accelerators.md` P32 T3; `docs/decision-log.md` P32 S82 (R31); SETUP row (R21). Read-only T4 pre-check results from the dead session preserved in the πŸ›‘ block. Effort: this checkpoint at Max; **T3 resumes at xHigh** (R27). -- 2026-09-05 β€” gate 1 approved; T0 opened at HEAD `commit:3900`. +- 2026-09-05 β€” gate 1 approved; T0 opened at HEAD `77df1092e`. - 2026-09-05 β€” **T3 LAUNCHED** (xHigh): 47 targets = census 54 βˆ’ 7 pinned walls (`.run/P32/t3/targets.json`, 5,288 ins); packs built (`claude_wave_packs`, 47/47 neighbours, 10 journals); brief `.run/P32/t3/BRIEF.md`. **20 Agent-tool drafters running** (16 Opus: the 11 old near/far rows + resident func_800D06E8 + the 4 largest new bodies Β· 3 Sonnet Β· 1 Haiku); **27 Haiku queued** behind the harness's 20-concurrent cap (`.run/P32/t3/pending_launch.txt`, launched one per freed slot). Recovery + per-result route: `.run/P32/t3/LAUNCHED.md`. - 2026-09-05 β€” **T2c DONE (R22 218/218 rc 0) Β· T2d not needed.** Twenty of the 56 new stubs fell to twin remaps and constant flips (0 tokens); the rest (36, all ≀50 ins but one, never drafted) join T3 on the model ladder. Session limit reset here (Drew); effort now xHigh via `/model` (the T3 orchestration level, R27 satisfied). Settings-file JSON defect fixed (a trailing comma). - 2026-09-05 β€” **T2b DONE β€” the parked ledger is EMPTY: all five payloads onboarded byte-identical (MAIN/7 β†’ md_MAIN_007 @0x800CEDF8; MAIN/9 β†’ md_MAIN_009 @0x800CD348; SC03/53, /54 β†’ md_SC03_053/054 @0x801EF468; SC03/56 β†’ md_SC03_056 @0x801CBB50).** Every base came from T2a's static alignment (self-calls / fn-ptr-table entries on the module's own function starts; controls 7/7), NOT from the byte check β€” two negative controls showed the first build is base-lenient (fine offsets) and only catches gross errors. Two tool refinements en route (combined STRONG rule; outward-explained vote bases). The 100% claim loses its last asterisk once the new stubs are banked or ledgered (T2c/T3). @@ -179,7 +179,7 @@ binaries is C; the 5 PERMANENT verbatim `__asm__` bodies (`config/verbatim_manif main's 1,256 LINKED PsyQ objects are the only non-C code. `config/wave_exclude.txt`: **0 entries**. `docs/backlog.md`: 1 open row β€” `func_80062144` "won't compile standalone", a stale pre-atlas ledger row, NOT a stub (say so in the PhaseEnd). `twin_rescan` 0 open. Banks this session (all `gate_main` "BANKED … 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL" / `bank.sh` sha == -config): `ov_SC03_105:func_80185810` `commit:4004` Β· `main:func_80032A74` `commit:4007` Β· `main:func_80039308` `commit:4008`. Main: +config): `ov_SC03_105:func_80185810` `cdd9a2cb8` Β· `main:func_80032A74` `f9a90affb` Β· `main:func_80039308` `ffb1949a1`. Main: REAL 789 Β· LINKED 1,256 Β· VERBATIM 3 Β· **stubs 0** (was 2,089 / 2,091 = 99.90% byte-identical at the T4b close; now 2,091 / 2,091). **Last fleet R22 (after the row (d) bank, BEFORE the two main banks): 217+main extracted, 218 passed / 0 failed, exits 0/0/0 at 13:21:49 MDT** (`.run/P32/t4d/r22_*.log`); the two main banks were each verified by `gate_main`'s clean main rebuild. **A fleet @@ -191,9 +191,9 @@ NOT yet recorded** β€” logs in `.run/P32/t4e/`: `r22_clean.log`, `r22_extract.lo tree clean at HEAD after this session's commits; the `ghidra/` churn is R23 restart-noise β€” never stage it. Claude commits, Drew pushes (R6; ~113 unpushed). -### 2. What S85 did (session 3a7e207c, 2026-09-06, Max, Fable 5.1, no agents; commits `commit:4004` `commit:4005` `commit:4006` `commit:4007` `commit:4008` + the harvest commit) +### 2. What S85 did (session 3a7e207c, 2026-09-06, Max, Fable 5.1, no agents; commits `cdd9a2cb8` `0ab474ed5` `fe2f34b9f` `f9a90affb` `ffb1949a1` + the harvest commit) * Row (d) `ov_SC03_105:func_80185810` BANKED by porting the banked cousin `ov_SC02_027:func_80180B3C`'s spelling (Β§501-P; the - atlas had scored it 0.55) with zero pins; T4b closed (fleet R22 218/218, reports, tools-health, checkpoint `commit:4006`). + atlas had scored it 0.55) with zero pins; T4b closed (fleet R22 218/218, reports, tools-health, checkpoint `fe2f34b9f`). * T4c (Drew's directive): `func_80032A74` (the "PROVED wall") banked on the first probe once the missing frame-slot producer was found β€” combine.c:2306 skips the ref decrement for a deleted self-update, so `gx = ; gx -= 0x100; (u8)gx` leaves a ghost pseudo that reload slots (Β§501-Q; 18 reproducers in `.run/P32/t4e/ghost/`). `func_80039308` banked with ZERO pins after 56 @@ -221,8 +221,8 @@ pushes (R6; ~113 unpushed). denominator is 41,556, the 22-ins Ghidra-boundary gap; at 0 stubs both read 100%). Then **"🟑 PhaseEnd creation is a Tier 1 task. Confirm when ready." β†’ WAIT for gate 2.** 2. On confirmation: **`phase-ends/PhaseEnd_Phase32.md`** (the PROJECT_CONTEXT format, every section): Build Log (the five onboarded - modules T2b; the banks by commit β€” T1a `commit:3904`, T1b `commit:3907`, T1c `commit:3908`, T2c Γ—20, T3 Γ—39, T4b Γ—11 (S83) + `commit:4001` - + `commit:4004` (S84/S85), T4c `commit:4007` `commit:4008`; tools: `payload_base_evidence.py`, `ghost_census.py`, `agent_drafts_restore.py`, + modules T2b; the banks by commit β€” T1a `c513e1fbb`, T1b `c7f5b498a`, T1c `059266afc`, T2c Γ—20, T3 Γ—39, T4b Γ—11 (S83) + `8fa12bc22` + + `cdd9a2cb8` (S84/S85), T4c `f9a90affb` `ffb1949a1`; tools: `payload_base_evidence.py`, `ghost_census.py`, `agent_drafts_restore.py`, `cc1_dumps.sh` repair + `-dL`, `cc1_dumps_tu.sh`, `alloc_table.py`, `bank.sh`; verification results verbatim from the logs; milestone achieved: **0 stubs across 218 binaries, every remaining non-C byte is a PsyQ object or one of the 5 PERMANENT hand-asm bodies**; Next = P33 verify + public flip) Β· **Deviations** (the T4b directive superseding the kill gate; T4c added by Drew after diff --git a/src/md_SC03_135/md_SC03_135.c b/src/md_SC03_135/md_SC03_135.c index 769d05f095..030d6d955e 100644 --- a/src/md_SC03_135/md_SC03_135.c +++ b/src/md_SC03_135/md_SC03_135.c @@ -916,7 +916,7 @@ s32 func_801E38B4(void) * jtbl_801E27FC sits at island file offset 0x214 (vram 0x801E27FC, base * D_801E25E8@0x0). Per cookbook Β§260-A the md_* leading island is a STACK: * only the END-ADJACENT table converts. This module's island-end member - * func_801E5358 was already peeled by the gate (commit commit:2664). Island + * func_801E5358 was already peeled by the gate (commit f74ad7ac8). Island * stack census (verified against each .s): jtbl_801E272C @0x144 (owner is * func_801E2D34 or func_801E3390 β€” both still INCLUDE_ASM stubs, TU :286/ * :288), jtbl_801E27D4 @0x1EC (func_801E38B4, stub @TU :439), THIS table @@ -929,8 +929,8 @@ s32 func_801E38B4(void) * REMEDY: bank func_801E40A8 first (same lane), then run * tools/jtbl_lane.py --targets func_801E3C1C@md_SC03_135 --draft-dir * (gate-time _jtbl_prep_one isolates -> island-splits -> carves; Β§81 chain, - * Β§88d order). Proof shapes: func_801F218C@md_SC03_076 commit commit:2663 - * (covered), func_801E5358@md_SC03_135 commit commit:2664 (island-end). + * Β§88d order). Proof shapes: func_801F218C@md_SC03_076 commit bad793c73 + * (covered), func_801E5358@md_SC03_135 commit f74ad7ac8 (island-end). * DO NOT substitute a hand-emitted table or computed-goto dispatch: the * gate's covered/no-op path requires cc1 itself to emit this switch's * table (plain switch only). diff --git a/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c b/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c index 8517967dbc..76effd4a44 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c @@ -3360,7 +3360,7 @@ extern s32 func_8018766C(s32 arg0, s32 arg1); * `tail` member => * tools/jtbl_lane.py --targets func_801856A8@ov_SC03_001 --draft-dir * (gate-time _jtbl_prep_one carves; Β§61b order; proof shapes func_8017DCC0@ - * ov_SC03_014 commit commit:2661 and func_8017EDA4@ov_SC04_018). NOTE: raw + * ov_SC03_014 commit b801b499e and func_8017EDA4@ov_SC04_018). NOTE: raw * jtbls sit in .section .data here (tail20.data.s:3); Β§81 applies identically. * NOTE for the banker: func_801859AC (adjacent jtbl_801ECE88/ECEA0 owner) is an * INCLUDE_ASM stub IN THIS SAME TU β€” isolation WILL repartition it; check diff --git a/tools/atlas.py b/tools/atlas.py index 3665536aea..5071e055ca 100644 --- a/tools/atlas.py +++ b/tools/atlas.py @@ -422,7 +422,7 @@ def member_lever(k, v, ev): if led: # PROVENANCE GATE. A ledger verdict is evidence about the draft that produced it, not about # the member. func_801898E4's DIFF came from .run/s34/.../func_801898E4.c dated 2026-08-04 -- - # SIX DAYS BEFORE its seed was banked (commit:1541, 2026-08-10). A 607-instruction hand-draft + # SIX DAYS BEFORE its seed was banked (b0c1e14fd, 2026-08-10). A 607-instruction hand-draft # that predates the 611-instruction twin cannot be evidence that remapping the twin fails. # When the record carries no usable provenance, say so in the confidence string rather than # presenting a stale token as a measurement (R35: fix the instrument before trusting it). diff --git a/tools/audit_digest.py b/tools/audit_digest.py index a0c10e2fd9..56463bbdf1 100644 --- a/tools/audit_digest.py +++ b/tools/audit_digest.py @@ -8,11 +8,11 @@ re-baselines, and every "is this lever paying?" call are read off its three numb by `tools/progress.py --fleet` from whatever tree happened to be on disk at that moment β€” and then COMMITTED, at which point nothing ever checks it again. -That gap produced a real, costly false alarm. The S38 digest committed at `commit:1426` claimed: +That gap produced a real, costly false alarm. The S38 digest committed at `10f954627` claimed: instr 12402412 distinct 5029324 (78025 uniq) -The same metric recomputed from `commit:1426`'s own committed tree gives: +The same metric recomputed from `10f954627`'s own committed tree gives: instr 12394533 distinct 5022306 (77895 uniq) diff --git a/tools/bank_exemplar.py b/tools/bank_exemplar.py index deeda0463d..ddfa9cf1f5 100644 --- a/tools/bank_exemplar.py +++ b/tools/bank_exemplar.py @@ -51,7 +51,7 @@ base = scoped if moved else body # byte-match). What each recovery rung actually runs: # scoped β€” Β§8d block-scope demotion of carried D_ externs (only when scope_data_fix moved any). # recovered β€” fb.recover = cast_call_sites (callee-sig casts) THEN reconcile_tu (the DATA-symbol -# per-TU oracle, wired A3d/commit:0601): conform each D_ decl to what THIS TU can SEE and +# per-TU oracle, wired A3d/4aae5e758): conform each D_ decl to what THIS TU can SEE and # cast at use. This is how reconcile_tu reaches bank_exemplar β€” no separate rung needed. # reconciled β€” canon_sig_reconcile (the def-side loose-typing sig wall; A9a made it fn-ptr-aware). stages = [("raw", lambda: body)] diff --git a/tools/campaign_status.py b/tools/campaign_status.py index e4887c52ba..5349624430 100644 --- a/tools/campaign_status.py +++ b/tools/campaign_status.py @@ -158,7 +158,7 @@ def main(): # ---- totals ---------------------------------------------------------------------------------- # BANKED TODAY IS DERIVED FROM THE INCLUDE_ASM INVARIANT, NOT FROM COMMIT SUBJECTS (S61, R33). # The subject regex summed "β€” N banked" and missed every bank that rode in a chore/maint commit: - # the S60 A-prop pass put 357 banks in commit:2904 ("chore: ...") and the regex reported 2,185 + # the S60 A-prop pass put 357 banks in 274932d20 ("chore: ...") and the regex reported 2,185 # for a day whose stub count fell by 2,644 net (frontier-analysis-s60 Β§1). Stubs are counted at # the last commit before midnight, at HEAD, and in the working tree (uncommitted banks β€” R42 # says commit them, the number says whether anyone did). Carves re-add stubs, so this is NET. diff --git a/tools/decl_from_use.py b/tools/decl_from_use.py index 77072174b8..651430b8a8 100644 --- a/tools/decl_from_use.py +++ b/tools/decl_from_use.py @@ -42,7 +42,7 @@ REFUSALS (R43) β€” loud, classed, one ledger row per case (R32, nothing silent): TU-BROKEN the DESTINATION TU fails cc1 with NO draft spliced (validation compile, cached per TU): the `undeclared` diagnostic belongs to the TU, not the draft. 39/42 of the measured cases are ONE such TU (ov_SC04_018_jr_8017AE2C.c, RED since commit - commit:2833 restored func_8017E7CC without its `extern s32 D_801B9AA8;`). + 82238e82d restored func_8017E7CC without its `extern s32 D_801B9AA8;`). FUNCTION the symbol is a jal target / func_ name β€” a callee tool's class, not data STRUCT the use needs a struct type (SYM.f / SYM->f / SYM[i].f / SYM[i][j]) β€” the A-prop lane's separate STRUCT class diff --git a/tools/family_remap.py b/tools/family_remap.py index 41f6570235..6d518d4c62 100644 --- a/tools/family_remap.py +++ b/tools/family_remap.py @@ -1224,7 +1224,7 @@ def _macro_unit(addr): # exactly 4 spaces β€” so anchoring at column 0 excludes them by construction. That matters: a macro # body line like ` extern void func_80144B9C(void); \` would otherwise be read as a DEFINITION, # because the trailing line-continuation means the line does not end in ';' and the decl guard never - # fires. That is exactly the declaration-read-as-definition bug fixed at commit:0552 β€” do not re-open + # fires. That is exactly the declaration-read-as-definition bug fixed at cc6220eba β€” do not re-open # it. The whale's direct definition (`void func_80144B9C(void) {`) is at column 0, as any real # file-scope definition must be. pat = re.compile(rf'^[A-Za-z_][\w \*]*\bfunc_{addr:08X}\s*\(', re.I) diff --git a/tools/gate_main.py b/tools/gate_main.py index f5f3dbadea..5e8e778b66 100644 --- a/tools/gate_main.py +++ b/tools/gate_main.py @@ -1054,7 +1054,7 @@ def main(): err = (r.stderr or '') + (r.stdout or '') # R40 β€” EXONERATE THE INSTRUMENT BEFORE JUDGING THE DRAFTS (S59). From 14:57 to 18:43 on - # 2026-08-24 the committed baseline built RED (an overlay-lane auto-commit, commit:2693, had + # 2026-08-24 the committed baseline built RED (an overlay-lane auto-commit, 24bd25993, had # adopted a mid-flight substitution), and this gate judged four 200-card draft rounds against # it: 0 banked, ~50 clean rebuilds burned, every rejection a false verdict. One control # rebuild answers the only question that matters first: does HEAD, with NO draft substituted, diff --git a/tools/gate_stage.py b/tools/gate_stage.py index 47bff4f942..e8f181c24d 100644 --- a/tools/gate_stage.py +++ b/tools/gate_stage.py @@ -626,7 +626,7 @@ def _run_gate_locked(drafts, binary, src, asm, out, good_sha, propagate, source_ sh(["git", "add", "-u", "src/"]) # NEVER stage main's TUs from the overlay gate (S59): a concurrent gate_main substitution # in top-level src/*.c is unverified by construction, and adopting one mid-flight is how - # commit:2693 turned main's baseline RED for 3h46m. gate_main writes them; main_lane + # 24bd25993 turned main's baseline RED for 3h46m. gate_main writes them; main_lane # commits them after the whole-EXE SHA re-checks green; nobody else touches them. sh(["git", "reset", "-q", "--"] + sorted(_glob.glob("src/*.c"))) # P30 T3 pre-work: `-u` cannot stage NEW files β€” a jr bank's jtbl prep CREATES diff --git a/tools/jtbl_pads_fix.py b/tools/jtbl_pads_fix.py index b5712a1a29..58795e91e8 100644 --- a/tools/jtbl_pads_fix.py +++ b/tools/jtbl_pads_fix.py @@ -140,7 +140,7 @@ def write_pads(idx, lines, pads, note): """Rewrite ONE armed-object line, atomically, in the exact live format. TWO defects lived here until S61 and one poisoned the whole registry (committed by the - gater blanket commit commit:2996 as `...o: JTBL_PADS : JTBL_PADS := 0,0` -> make dies at + gater blanket commit a9e7f20d3 as `...o: JTBL_PADS : JTBL_PADS := 0,0` -> make dies at parse with "target pattern contains no %" and EVERY build of EVERY binary fails): (1) the line was split on ':' but `:=` CONTAINS a colon, so each write appended a second `: JTBL_PADS`; (2) the file was written with a raw truncating open(MK,"w") - the S60 wipe diff --git a/tools/lanes/maintenance.sh b/tools/lanes/maintenance.sh index 24f5aed293..082d285715 100644 --- a/tools/lanes/maintenance.sh +++ b/tools/lanes/maintenance.sh @@ -151,7 +151,7 @@ PY # NEVER stage main's TUs (top-level src/*.c) from this lane (S59): sweep_parallel refuses # main, so any dirt there is another lane's in-flight gate_main work β€” unverified by # construction. One writer (gate_main), one committer (main_lane); adopting a mid-flight - # substitution is how commit:2693 turned main's baseline RED for 3h46m. + # substitution is how 24bd25993 turned main's baseline RED for 3h46m. git reset -q -- src/*.c 2>/dev/null || true if git diff --cached --quiet; then say "only main-TU dirt found β€” leaving it to gate_main/main_lane; nothing to commit" diff --git a/tools/launch_check.py b/tools/launch_check.py index cd5730c53c..ea0199020e 100644 --- a/tools/launch_check.py +++ b/tools/launch_check.py @@ -4,7 +4,7 @@ `wave_args.py` asserts a target is open AT DRAW TIME. A wave's payload then sits on disk while gates run, so by launch time some of its targets are banked β€” and an agent handed one burns a full run to report "STALE CARD β€” already banked today", with no `.s` left to even score against. Measured S71: -`ov_SC01_006/func_8017F9F8` was banked by gate `commit:3604` and drafted afterwards from a payload +`ov_SC01_006/func_8017F9F8` was banked by gate `27cc083de` and drafted afterwards from a payload built before it. The open oracle is the same one everything else uses: a bank REMOVES the INCLUDE_ASM stub, so diff --git a/tools/main_lane.py b/tools/main_lane.py index 76f272ae86..2223cdfc09 100644 --- a/tools/main_lane.py +++ b/tools/main_lane.py @@ -57,7 +57,7 @@ class BaselineRed(RuntimeError): """The committed tree does not build byte-identical with NO draft substituted. Raised instead of judging (or retrying) any draft: against a red baseline every gate verdict - is FALSE β€” S59 measured it the hard way, when auto-commit commit:2693 adopted a mid-flight + is FALSE β€” S59 measured it the hard way, when auto-commit 24bd25993 adopted a mid-flight gate_main substitution at 14:57 and this lane then drafted four 200-card rounds (m00-m03 cycles, ~737 drafts) and banked ZERO until 18:43, burning ~50 clean rebuilds and a tries strike on every parked draft it falsely rejected (R40/R43).""" diff --git a/tools/ox_campaign.py b/tools/ox_campaign.py index 4f66936fe3..8894da2cae 100644 --- a/tools/ox_campaign.py +++ b/tools/ox_campaign.py @@ -61,7 +61,7 @@ def unstage_main_tus(): """Drop TOP-LEVEL src/*.c from the index before an overlay/maintenance commit (S59). A concurrent gate_main substitution in main's TUs is unverified by construction, and this - campaign's blanket `git add -A src/` adopted one mid-flight at 14:57:01 (commit:2693): main + campaign's blanket `git add -A src/` adopted one mid-flight at 14:57:01 (24bd25993): main built RED until 18:43 and the main lane banked 0 from four 200-card draft rounds β€” every rejection a false verdict. main's TUs have exactly ONE writer (gate_main) and ONE committer (main_lane, after the whole-EXE SHA re-checks green); every other lane must neither commit @@ -613,7 +613,7 @@ def config_sane(min_ratio=0.8): P31 S60, the most expensive defect of the campaign: config/overlays.mk β€” the 5,077-line registry defining all 141 overlay binaries β€” was committed as a ZERO-LINE file by - commit:2863 ("ox wave dk overlays β€” 2 banked"). Two failures, neither sufficient alone: + 7891069c4 ("ox wave dk overlays β€” 2 banked"). Two failures, neither sufficient alone: some writer rewrites that file in place with no tmp+rename while lanes edit it concurrently (the version before the deletion already carried a stray partial line), and THIS committer swept the wreckage in, because "the tree is dirty at gate entry" cannot @@ -691,7 +691,7 @@ def gate(tag, keep, jobs, run_id=None): if main_dirty: # NEITHER COMMIT NOR REVERT main's TUs (S59). The old carve-out REVERTED them here β€” # and lost a TOCTOU race with the live gate_main, whose substitute() re-wrote - # src/800.c between our checkout and the `git add -A` below: auto-commit commit:2693 + # src/800.c between our checkout and the `git add -A` below: auto-commit 24bd25993 # adopted two unverified bodies at 14:57:01 (14 s after a main bisect chunk banked β€” # exactly one chunk cadence), main built RED until 18:43, and the main lane burned # four 200-card draft rounds against it, banking zero. Reverting is not safe either: diff --git a/tools/parallel_gate.py b/tools/parallel_gate.py index 7914516b40..6733b47e2e 100644 --- a/tools/parallel_gate.py +++ b/tools/parallel_gate.py @@ -261,7 +261,7 @@ def _drafts_carry_jtbl(binary, drafts): # 2. config/splat..yaml per-binary, adopted whole (baseline-checked) # 3. config/overlays.mk SHARED β€” adopt ONLY this binary's block (see ovl_block) # Carrying 1 without 2+3 is what turned a green worker into 13 red binaries of 213 in P31 S67 -# (reverted in commit:3396): the C body referenced a carve the config never described. +# (reverted in a732097c3): the C body referenced a carve the config never described. def isolate_asm(wt, binary): """Give this worker a WRITABLE asm/ for ONE binary so a jtbl carve can re-extract safely. diff --git a/tools/public_rewrite/resolve_tokens.py b/tools/public_rewrite/resolve_tokens.py index 8ec2fb2820..47ffc0f63e 100644 --- a/tools/public_rewrite/resolve_tokens.py +++ b/tools/public_rewrite/resolve_tokens.py @@ -57,9 +57,13 @@ def main(argv): m = load_map(__import__("pathlib").Path(a.map)) files = C.git(["ls-files", "-z"], repo, text=False).decode("utf-8", "surrogateescape").split("\0") n_files, n_resolved, residue, remaining = 0, 0, {}, 0 + skipped = 0 for rel in files: if not rel or rel == "docs/commit-map.tsv": continue + if rel.startswith("tools/public_rewrite/"): # the token grammar's own definition + self-test fixtures, never citations + skipped += 1 + continue p = repo / rel if not p.is_file(): continue @@ -93,7 +97,7 @@ def main(argv): for t, n in sorted(residue.items()): print(f" residue {t} Γ—{n}") return 1 if remaining else 0 - print(f"resolve_tokens: {n_resolved} tokens resolved in {n_files} files; residue {sum(residue.values())} " + print(f"resolve_tokens: {n_resolved} tokens resolved in {n_files} files ({skipped} files under tools/public_rewrite/ skipped by rule); residue {sum(residue.values())} " f"({', '.join(f'{t}Γ—{n}' for t, n in sorted(residue.items())) or 'none'})") return 0 diff --git a/tools/restore_dropped_decls.py b/tools/restore_dropped_decls.py index c0671005f8..316e43ef31 100644 --- a/tools/restore_dropped_decls.py +++ b/tools/restore_dropped_decls.py @@ -19,7 +19,7 @@ in `:`, insert it, build again. Repeat to convergence. Nothing is i compiler did not ask for, so a declaration whose symbol the DEFINE_ macros already supply is never re-added (that would be `conflicting types`, trading one break for another). - tools/restore_dropped_decls.py --binary ov_SC04_018 --ref commit:3354^ + tools/restore_dropped_decls.py --binary ov_SC04_018 --ref 4daf41702^ """ import argparse import os