chore(phase-31): S54/S55 fresh-session checkpoint — 547 banked, fleet 96.0/91.7/97.07, wave Z staged

Refreshed rather than appended: the previous checkpoint (commit:2542) was outrun by the §201-A fix,
wave Z's redraw and wave Y's harvest, and a checkpoint the tree has moved past is worse than none
because it is believed. Written for a session that has none of this context: what banked, the seven
results that outlive the count, every tool shipped, the eight-step wave-closing sequence, the exact
invocation that fires the staged wave Z, the four known-open near-misses with their attributions,
and the transient-failure recovery that worked five times tonight.

Wave-metrics gains a single six-wave table: 405 drafted, 405 banked or recovered.
This commit is contained in:
Drew T
2026-08-18 12:41:37 -06:00
parent 68481253de
commit 87a2ed3ad6
3 changed files with 146 additions and 7 deletions
+6 -6
View File
@@ -402,7 +402,6 @@
{"ts": "2026-07-14 22:52:52", "addr": null, "name": "func_8017D184", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 19, "where_stuck": "residual: 19 mismatch", "best_draft": ".run/backlog_drafts/func_8017D184.c", "binary": "ov_SC01_074", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 22:52:52", "addr": null, "name": "func_8017D7A4", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 25, "where_stuck": "residual: 25 mismatch", "best_draft": ".run/backlog_drafts/func_8017D7A4.c", "binary": "ov_SC01_074", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 22:52:52", "addr": null, "name": "func_8017D80C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 38, "where_stuck": "residual: 38 mismatch", "best_draft": ".run/backlog_drafts/func_8017D80C.c", "binary": "ov_SC01_074", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 22:52:52", "addr": "0x8017d98c", "name": "func_8017D98C", "reach": 1, "klass": "plumbing", "nins": 31, "status": "near", "closeness": 93, "where_stuck": "none \u2014 MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves", "best_draft": ".run/backlog_drafts/func_8017D98C.c", "binary": "ov_SC01_074", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-14 19:58:56", "addr": "0x8017f1f8", "name": "func_8017F1F8", "reach": null, "klass": "LENGTH-DRIFT", "nins": null, "status": "near", "closeness": 1, "where_stuck": "lenmiss permuter-length route", "best_draft": ".run/backlog_drafts/func_8017F1F8.c", "binary": "ov_SC01_001", "source": "warmstart", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 22:53:41", "addr": null, "name": "func_801803E0", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 22, "where_stuck": "residual: 22 mismatch", "best_draft": ".run/backlog_drafts/func_801803E0.c", "binary": "ov_SC01_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 22:53:41", "addr": null, "name": "func_80180890", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 17, "where_stuck": "residual: 17 mismatch", "best_draft": ".run/backlog_drafts/func_80180890.c", "binary": "ov_SC01_001", "source": "worker", "residual": null, "passes_tried": null}
@@ -466,7 +465,6 @@
{"ts": "2026-07-14 23:05:04", "addr": null, "name": "func_80184920", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 58, "where_stuck": "residual: 58 mismatch", "best_draft": ".run/backlog_drafts/func_80184920.c", "binary": "ov_SC03_014", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:05:04", "addr": null, "name": "func_80189630", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 18, "where_stuck": "residual: 18 mismatch", "best_draft": ".run/backlog_drafts/func_80189630.c", "binary": "ov_SC03_014", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:05:37", "addr": null, "name": "func_8017F768", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 112, "where_stuck": "residual: 112 mismatch", "best_draft": ".run/backlog_drafts/func_8017F768.c", "binary": "ov_SC02_017", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:05:37", "addr": null, "name": "func_801807DC", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 92, "where_stuck": "residual: 92 mismatch", "best_draft": ".run/backlog_drafts/func_801807DC.c", "binary": "ov_SC02_017", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:05:37", "addr": null, "name": "func_8018337C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 31, "where_stuck": "residual: 31 mismatch", "best_draft": ".run/backlog_drafts/func_8018337C.c", "binary": "ov_SC02_017", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:05:37", "addr": null, "name": "func_80184630", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 18, "where_stuck": "residual: 18 mismatch", "best_draft": ".run/backlog_drafts/func_80184630.c", "binary": "ov_SC02_017", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-17 14:12:07", "addr": "0x80185b5c", "name": "func_80185B5C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 50, "where_stuck": "residual: 50 mismatch", "best_draft": ".run/backlog_drafts/func_80185B5C.c", "binary": "ov_SC02_017", "source": "worker", "residual": [[6, "10620035 beq\tv1,v0,f0 <func_80185B5C+0xf0>", "10620037 beq $v1, $v0, .L80185C54"], [7, "00000000 nop", "00001021 addu $v0, $zero, $zero"], [10, "14400031 bnez\tv0,f0 <func_80185B5C+0xf0>", "14400033 bnez $v0, .L80185C54"], [11, "00000000 nop", "00001021 addu $v0, $zero, $zero"], [15, "1440002c bnez\tv0,f0 <func_80185B5C+0xf0>", "1440002e bnez $v0, .L80185C54"], [16, "00000000 nop", "00001021 addu $v0, $zero, $zero"], [20, "10400027 beqz\tv0,f0 <func_80185B5C+0xf0>", "14400003 bnez $v0, .L80185BBC"], [22, "3c030000 lui\tv1,0x0", "08061715 j .L80185C54"], [23, "94630000 lhu\tv1,0(v1)", "00001021 addu $v0, $zero, $zero"], [24, "3c050000 lui\ta1,0x0", "3c038012 lui $v1, %hi(D_80126B5E)"], [25, "94a50000 lhu\ta1,0(a1)", "94636b5e lhu $v1, %lo(D_80126B5E)($v1)"], [26, "3c060000 lui\ta2,0x0", "3c058012 lui $a1, %hi(D_80126B62)"], [27, "94c60000 lhu\ta2,0(a2)", "94a56b62 lhu $a1, %lo(D_80126B62)($a1)"], [28, "a7a30020 sh\tv1,32(sp)", "3c068012 lui $a2, %hi(D_80126B66)"], [29, "a7a50022 sh\ta1,34(sp)", "94c66b66 lhu $a2, %lo(D_80126B66)($a2)"], [30, "a7a60024 sh\ta2,36(sp)", "a7a30020 sh $v1, 0x20($sp)"], [31, "96020006 lhu\tv0,6(s0)", "a7a50022 sh $a1, 0x22($sp)"], [32, "00000000 nop", "a7a60024 sh $a2, 0x24($sp)"], [33, "00621823 subu\tv1,v1,v0", "96020006 lhu $v0, 0x6($s0)"], [34, "a7a30018 sh\tv1,24(sp)", "00000000 nop"], [35, "9602000a lhu\tv0,10(s0)", "00621823 subu $v1, $v1, $v0"], [36, "00000000 nop", "a7a30018 sh $v1, 0x18($sp)"], [37, "00a22823 subu\ta1,a1,v0", "9602000a lhu $v0, 0xA($s0)"], [38, "a7a5001a sh\ta1,26(sp)", "00000000 nop"]], "passes_tried": null}
@@ -490,7 +488,6 @@
{"ts": "2026-07-14 23:07:14", "addr": null, "name": "func_80181134", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 25, "where_stuck": "residual: 25 mismatch", "best_draft": ".run/backlog_drafts/func_80181134.c", "binary": "ov_SC03_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:14", "addr": null, "name": "func_80181300", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 28, "where_stuck": "residual: 28 mismatch", "best_draft": ".run/backlog_drafts/func_80181300.c", "binary": "ov_SC03_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:14", "addr": null, "name": "func_80184A1C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 27, "where_stuck": "residual: 27 mismatch", "best_draft": ".run/backlog_drafts/func_80184A1C.c", "binary": "ov_SC03_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:14", "addr": null, "name": "func_80184DDC", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 77, "where_stuck": "residual: 77 mismatch", "best_draft": ".run/backlog_drafts/func_80184DDC.c", "binary": "ov_SC03_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:14", "addr": null, "name": "func_80186984", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 16, "where_stuck": "residual: 16 mismatch", "best_draft": ".run/backlog_drafts/func_80186984.c", "binary": "ov_SC03_001", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:41", "addr": null, "name": "func_8017E240", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 23, "where_stuck": "residual: 23 mismatch", "best_draft": ".run/backlog_drafts/func_8017E240.c", "binary": "ov_SC03_030", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:07:41", "addr": null, "name": "func_8017E7D4", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 241, "where_stuck": "residual: 241 mismatch", "best_draft": ".run/backlog_drafts/func_8017E7D4.c", "binary": "ov_SC03_030", "source": "worker", "residual": null, "passes_tried": null}
@@ -626,7 +623,6 @@
{"ts": "2026-07-14 23:33:49", "addr": null, "name": "func_8017D49C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 15, "where_stuck": "residual: 15 mismatch", "best_draft": ".run/backlog_drafts/func_8017D49C.c", "binary": "ov_SC03_121", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-14 07:11:30", "addr": "0x8017effc", "name": "func_8017EFFC", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 2, "where_stuck": "residual: 2 mismatch", "best_draft": ".run/backlog_drafts/func_8017EFFC.c", "binary": "ov_SC05_017", "source": "worker", "residual": [[9, "24020002 li\tv0,2", "24020003 addiu $v0, $zero, 0x3"], [10, "a6020003 sh\tv0,3(s0)", "a6020002 sh $v0, 0x2($s0)"]], "passes_tried": null}
{"ts": "2026-07-14 23:33:49", "addr": null, "name": "func_8017FAC8", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 23, "where_stuck": "residual: 23 mismatch", "best_draft": ".run/backlog_drafts/func_8017FAC8.c", "binary": "ov_SC03_121", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:33:49", "addr": null, "name": "func_80180568", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 185, "where_stuck": "residual: 185 mismatch", "best_draft": ".run/backlog_drafts/func_80180568.c", "binary": "ov_SC03_121", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:34:19", "addr": null, "name": "func_80180548", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 21, "where_stuck": "residual: 21 mismatch", "best_draft": ".run/backlog_drafts/func_80180548.c", "binary": "ov_SC04_000", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:34:45", "addr": null, "name": "func_8017F5E0", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 15, "where_stuck": "residual: 15 mismatch", "best_draft": ".run/backlog_drafts/func_8017F5E0.c", "binary": "ov_SC04_004", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:34:46", "addr": null, "name": "func_8018056C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 24, "where_stuck": "residual: 24 mismatch", "best_draft": ".run/backlog_drafts/func_8018056C.c", "binary": "ov_SC04_004", "source": "worker", "residual": null, "passes_tried": null}
@@ -680,7 +676,6 @@
{"ts": "2026-07-14 23:43:34", "addr": null, "name": "func_8017F3A8", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 15, "where_stuck": "residual: 15 mismatch", "best_draft": ".run/backlog_drafts/func_8017F3A8.c", "binary": "ov_SC05_018", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:44:01", "addr": null, "name": "func_8017D600", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 18, "where_stuck": "residual: 18 mismatch", "best_draft": ".run/backlog_drafts/func_8017D600.c", "binary": "ov_SC06_006", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-14 19:58:56", "addr": "0x8017d974", "name": "func_8017D974", "reach": null, "klass": "LENGTH-DRIFT", "nins": null, "status": "near", "closeness": 1, "where_stuck": "lenmiss permuter-length route", "best_draft": ".run/backlog_drafts/func_8017D974.c", "binary": "ov_SC06_006", "source": "warmstart", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:44:02", "addr": null, "name": "func_8017F074", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 121, "where_stuck": "residual: 121 mismatch", "best_draft": ".run/backlog_drafts/func_8017F074.c", "binary": "ov_SC06_006", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:44:02", "addr": null, "name": "func_80180840", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 29, "where_stuck": "residual: 29 mismatch", "best_draft": ".run/backlog_drafts/func_80180840.c", "binary": "ov_SC06_006", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:44:25", "addr": null, "name": "func_8017CDE4", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 16, "where_stuck": "residual: 16 mismatch", "best_draft": ".run/backlog_drafts/func_8017CDE4.c", "binary": "ov_SC06_011", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:44:25", "addr": null, "name": "func_8017D29C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 37, "where_stuck": "residual: 37 mismatch", "best_draft": ".run/backlog_drafts/func_8017D29C.c", "binary": "ov_SC06_011", "source": "worker", "residual": null, "passes_tried": null}
@@ -702,7 +697,6 @@
{"ts": "2026-07-14 23:49:01", "addr": null, "name": "func_8017D524", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 31, "where_stuck": "residual: 31 mismatch", "best_draft": ".run/backlog_drafts/func_8017D524.c", "binary": "ov_SC06_008", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-04 22:25:24", "addr": "0x80184d0c", "name": "func_80184D0C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 4, "where_stuck": "residual: 4 mismatch", "best_draft": ".run/backlog_drafts/func_80184D0C.c", "binary": "ov_SC06_008", "source": "worker", "residual": [[21, "24020002 li\tv0,2", "24020006 addiu $v0, $zero, 0x6"], [22, "a6020006 sh\tv0,6(s0)", "a6020002 sh $v0, 0x2($s0)"], [36, "24020002 li\tv0,2", "24020006 addiu $v0, $zero, 0x6"], [37, "a6020006 sh\tv0,6(s0)", "a6020002 sh $v0, 0x2($s0)"]], "passes_tried": null}
{"ts": "2026-07-14 23:49:25", "addr": null, "name": "func_8017D784", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 31, "where_stuck": "residual: 31 mismatch", "best_draft": ".run/backlog_drafts/func_8017D784.c", "binary": "ov_SC06_013", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:49:53", "addr": null, "name": "func_8017F3B8", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 112, "where_stuck": "residual: 112 mismatch", "best_draft": ".run/backlog_drafts/func_8017F3B8.c", "binary": "ov_SC06_016", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:50:23", "addr": null, "name": "func_801856F0", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 24, "where_stuck": "residual: 24 mismatch", "best_draft": ".run/backlog_drafts/func_801856F0.c", "binary": "ov_SC06_022", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:51:18", "addr": null, "name": "func_8017D940", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 94, "where_stuck": "residual: 94 mismatch", "best_draft": ".run/backlog_drafts/func_8017D940.c", "binary": "ov_SC06_032", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-14 23:51:18", "addr": null, "name": "func_8017EEB0", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 33, "where_stuck": "residual: 33 mismatch", "best_draft": ".run/backlog_drafts/func_8017EEB0.c", "binary": "ov_SC06_032", "source": "worker", "residual": null, "passes_tried": null}
@@ -995,3 +989,9 @@
{"ts": "2026-08-16 20:03:56", "addr": "0x80181170", "name": "func_80181170", "reach": null, "klass": null, "nins": null, "status": "failed", "closeness": null, "where_stuck": "won't compile standalone (loose-typing / missing decl)", "best_draft": ".run/backlog_drafts/func_80181170.c", "binary": "ov_SC06_029", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-16 20:15:43", "addr": "0x801846cc", "name": "func_801846CC", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 0, "where_stuck": "match_one MATCH but the whole-binary gate rejected \u2014 CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm/<ov>/nonmatchings/<TU_stem>/<fn>.s => src/<ov>/<TU_stem>.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual.", "best_draft": ".run/backlog_drafts/func_801846CC.c", "binary": "ov_SC02_005", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-17 20:53:21", "addr": "0x8017d72c", "name": "func_8017D72C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 0, "where_stuck": "match_one MATCH but the whole-binary gate rejected \u2014 CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm/<ov>/nonmatchings/<TU_stem>/<fn>.s => src/<ov>/<TU_stem>.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual.", "best_draft": ".run/backlog_drafts/func_8017D72C.c", "binary": "ov_SC01_080", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-18 01:35:04", "addr": "0x801abc8c", "name": "func_801ABC8C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 0, "where_stuck": "match_one MATCH but the whole-binary gate rejected \u2014 CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm/<ov>/nonmatchings/<TU_stem>/<fn>.s => src/<ov>/<TU_stem>.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual.", "best_draft": ".run/backlog_drafts/func_801ABC8C.c", "binary": "md_SC07_004", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-18 01:35:04", "addr": "0x801ad31c", "name": "func_801AD31C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 0, "where_stuck": "match_one MATCH but the whole-binary gate rejected \u2014 CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm/<ov>/nonmatchings/<TU_stem>/<fn>.s => src/<ov>/<TU_stem>.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual.", "best_draft": ".run/backlog_drafts/func_801AD31C.c", "binary": "md_SC07_004", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-18 04:15:53", "addr": "0x8017db98", "name": "func_8017DB98", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 115, "where_stuck": "residual: 115 mismatch", "best_draft": ".run/backlog_drafts/func_8017DB98.c", "binary": "ov_SC06_025", "source": "worker", "residual": [[0, "27bdffd0 addiu\tsp,sp,-48", "27bdffc8 addiu $sp, $sp, -0x38"], [1, "afb10024 sw\ts1,36(sp)", "afb20028 sw $s2, 0x28($sp)"], [2, "00808821 move\ts1,a0", "00809021 addu $s2, $a0, $zero"], [3, "afb20028 sw\ts2,40(sp)", "afb40030 sw $s4, 0x30($sp)"], [4, "00a09021 move\ts2,a1", "00a0a021 addu $s4, $a1, $zero"], [5, "afbf002c sw\tra,44(sp)", "afb3002c sw $s3, 0x2C($sp)"], [6, "afb00020 sw\ts0,32(sp)", "afbf0034 sw $ra, 0x34($sp)"], [7, "96250000 lhu\ta1,0(s1)", "afb10024 sw $s1, 0x24($sp)"], [8, "240200ff li\tv0,255", "afb00020 sw $s0, 0x20($sp)"], [9, "30a3ffff andi\tv1,a1,0xffff", "96450000 lhu $a1, 0x0($s2)"], [10, "10620061 beq\tv1,v0,1b0 <func_8017DB98+0x1b0>", "240200ff addiu $v0, $zero, 0xFF"], [11, "24900008 addiu\ts0,a0,8", "30a3ffff andi $v1, $a1, 0xFFFF"], [12, "30a3ffff andi\tv1,a1,0xffff", "10620063 beq $v1, $v0, .L8017DD58"], [13, "24020009 li\tv0,9", "00009821 addu $s3, $zero, $zero"], [14, "14620057 bne\tv1,v0,198 <func_8017DB98+0x198>", "24900008 addiu $s0, $a0, 0x8"], [15, "00000000 nop", "30a3ffff andi $v1, $a1, 0xFFFF"], [16, "9602fffc lhu\tv0,-4(s0)", "24020009 addiu $v0, $zero, 0x9"], [17, "00000000 nop", "14620058 bne $v1, $v0, .L8017DD40"], [18, "a7a20010 sh\tv0,16(sp)", "00000000 nop"], [19, "9602fffe lhu\tv0,-2(s0)", "9602fffc lhu $v0, -0x4($s0)"], [21, "a7a20012 sh\tv0,18(sp)", "a7a20010 sh $v0, 0x10($sp)"], [22, "96020000 lhu\tv0,0(s0)", "9602fffe lhu $v0, -0x2($s0)"], [24, "a7a20014 sh\tv0,20(sp)", "a7a20012 sh $v0, 0x12($sp)"], [25, "96020002 lhu\tv0,2(s0)", "96020000 lhu $v0, 0x0($s0)"]], "passes_tried": null}
{"ts": "2026-08-18 10:24:18", "addr": "0x8018183c", "name": "func_8018183C", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 15, "where_stuck": "residual: 15 mismatch", "best_draft": ".run/backlog_drafts/func_8018183C.c", "binary": "ov_SC02_017", "source": "worker", "residual": [[61, "10400004 beqz\tv0,108 <func_8018183C+0x108>", "14400003 bnez $v0, .L80181940"], [63, "8e630064 lw\tv1,100(s3)", "08060655 j .L80181954"], [65, "a4620002 sh\tv0,2(v1)", "8e630064 lw $v1, 0x64($s3)"], [66, "8fbf0058 lw\tra,88(sp)", "0c05e2fe jal func_80178BF8"], [67, "8fb30054 lw\ts3,84(sp)", "a4620002 sh $v0, 0x2($v1)"], [68, "8fb20050 lw\ts2,80(sp)", "3c028017 lui $v0, %hi(func_80172710)"], [69, "8fb1004c lw\ts1,76(sp)", "24422710 addiu $v0, $v0, %lo(func_80172710)"], [70, "8fb00048 lw\ts0,72(sp)", "8fbf0058 lw $ra, 0x58($sp)"], [71, "27bd0060 addiu\tsp,sp,96", "8fb30054 lw $s3, 0x54($sp)"], [72, "03e00008 jr\tra", "8fb20050 lw $s2, 0x50($sp)"], [73, "00000000 nop", "8fb1004c lw $s1, 0x4C($sp)"], [74, "--", "8fb00048 lw $s0, 0x48($sp)"], [75, "--", "27bd0060 addiu $sp, $sp, 0x60"], [76, "--", "03e00008 jr $ra"], [77, "--", "00000000 nop"]], "passes_tried": null}
{"ts": "2026-08-18 10:24:18", "addr": "0x80182468", "name": "func_80182468", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 0, "where_stuck": "match_one MATCH but the whole-binary gate rejected \u2014 CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm/<ov>/nonmatchings/<TU_stem>/<fn>.s => src/<ov>/<TU_stem>.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual.", "best_draft": ".run/backlog_drafts/func_80182468.c", "binary": "ov_SC02_017", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-08-18 10:24:18", "addr": "0x80183e70", "name": "func_80183E70", "reach": null, "klass": null, "nins": null, "status": "near", "closeness": 72, "where_stuck": "residual: 72 mismatch", "best_draft": ".run/backlog_drafts/func_80183E70.c", "binary": "ov_SC02_017", "source": "worker", "residual": [[0, "27bdffd0 addiu\tsp,sp,-48", "27bdffd8 addiu $sp, $sp, -0x28"], [1, "afb10024 sw\ts1,36(sp)", "afb00020 sw $s0, 0x20($sp)"], [2, "00808821 move\ts1,a0", "afbf0024 sw $ra, 0x24($sp)"], [3, "afbf0028 sw\tra,40(sp)", "0c04afba jal func_8012BEE8"], [5, "afb00020 sw\ts0,32(sp)", "10400007 beqz $v0, .L80183EA4"], [6, "10400007 beqz\tv0,38 <func_80183E70+0x38>", "240405d7 addiu $a0, $zero, 0x5D7"], [7, "240405d7 li\ta0,1495", "0c00b532 jal func_8002D4C8"], [9, "00002821 move\ta1,zero", "0c04b086 jal func_8012C218"], [11, "02202021 move\ta0,s1", "08060fe5 j .L80183F94"], [13, "00000000 nop", "86020070 lh $v0, 0x70($s0)"], [14, "86220070 lh\tv0,112(s1)", "00000000 nop"], [15, "00000000 nop", "10400021 beqz $v0, .L80183F34"], [16, "10400021 beqz\tv0,c8 <func_80183E70+0xc8>", "27a50010 addiu $a1, $sp, 0x10"], [17, "27a50010 addiu\ta1,sp,16", "00021100 sll $v0, $v0, 4"], [18, "3c100000 lui\ts0,0x0", "3c04801f lui $a0, %hi(D_801EF9FC)"], [19, "26100000 addiu\ts0,s0,0", "8c84f9fc lw $a0, %lo(D_801EF9FC)($a0)"], [20, "00021100 sll\tv0,v0,0x4", "27a60018 addiu $a2, $sp, 0x18"], [21, "8e040000 lw\ta0,0(s0)", "a7a20010 sh $v0, 0x10($sp)"], [22, "27a60018 addiu\ta2,sp,24", "a7a00012 sh $zero, 0x12($sp)"], [23, "a7a20010 sh\tv0,16(sp)", "0c04bc85 jal func_8012F214"], [24, "a7a00012 sh\tzero,18(sp)", "a7a00014 sh $zero, 0x14($sp)"], [26, "a7a00014 sh\tzero,20(sp)", "00000000 nop"], [27, "97a20018 lhu\tv0,24(sp)", "a6020006 sh $v0, 0x6($s0)"], [28, "00000000 nop", "97a2001a lhu $v0, 0x1A($sp)"]], "passes_tried": null}
+24
View File
@@ -315,3 +315,27 @@ the plumbing failed. A recovery lane over genuine near-misses is a different eco
near-miss (`func_8017FCFC`, closeness 3) was NOT recovered, and its previous agent had already
attributed the residual to sched1 by elimination. **Budget recovery against gate drops; treat
near-misses as permuter fuel unless a specific new law applies.**
## Session S54/S55 (2026-08-17/18) — six waves, one table
| wave | cards | gate groups | drafted | banked | siblings | wave total | harvest (conf/rej/covered) |
|---|--:|--:|--:|--:|--:|--:|---|
| T | 71 | 5 | 70 (99%) | **70/70** | 49 | 119 | 9 / 5 / 61 |
| U | 73 | 7 | **73 (100%)** | **73/73** | 34 | 107 | 14 / 5 / 44 |
| V | 70 | 9 | 69 (99%) | 68/69 | 25 | 93 | 14 / 9 / 76 |
| W | 71 | **3** | 71/71 run | 68/70 | 0 | 68 | 4 / 3 / 41 |
| X | 65 | 4 | 64 (98%) | 62/63 | 1 | 63 | 7 / 2 / 56 |
| Y | 70 | 5 | 69 (99%) | 64 + **4 recovered** | 4 | 72 | 5 / 8 / 53 |
**Banking is the stable result; drafting was never the problem.** Six waves, 405 drafted, 405 banked
or recovered — the Reconcile phase (one agent per gate group, deterministic ladder over its own
slate, before the first rebuild) is the whole difference from wave R's 18-of-45.
**Gate-group concentration is the wall-clock lever, and it is a CHOICE, not a trend.** 5 -> 7 -> 9
looked like a thinning frontier; it was `--levers` excluding UNKNOWN. Adding it gave wave W three
groups at 24.3 drafts per rebuild. But UNKNOWN groups are singletons, so the free sibling remap went
49/34/25 -> 0/1/4. **Face mass and delivered mass are different numbers; pick per wave.**
**Harvest yield falls as it should.** Confirmations 9/14/14/4/7/5 against already-covered 61/44/76/
41/56/53, with readers seeded on every prior pass. Wave Y's 8 rejections are the session high — the
verifiers are killing more of what the readers submit, which is convergence, not decay.
+116 -1
View File
@@ -334,7 +334,122 @@ R22 clean-fleet **213/213** after every banked batch · tools-health green · 0
args: <the object in .run/wave_y_harvest_args.json>})
This is the ONLY step of the seven-step wave-closing sequence left undone for wave Y.
## 🛑 SESSION CHECKPOINT — S54 FINAL (2026-08-17). Phase 31 CONTINUES. NOTHING IN FLIGHT.
## 🛑 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
(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.
### Banked this session: 547 functions
| lane | banked | notes |
|---|--:|---|
| wave T — 5 groups | 70 of 70 | **zero drops** — first wave ever to bank every byte-verified draft |
| wave U — 7 groups | 73 of 73 | **100% drafted AND banked**; 15% fewer tokens, 64% of the wall-clock |
| wave V — 9 groups | 68 of 69 | |
| wave W — 3 groups, UNKNOWN lane | 68 of 70 | 24.3 drafts/rebuild; first MODULE binary |
| wave X — 4 groups | 62 of 63 | second module binary clean |
| wave Y — 5 groups | 72 | 64 gate + **4 recovery (§200, 0 agent tokens)** + 4 siblings |
| mechanical siblings (all waves) | 113 | `family_sweep --hseq`, ~0 tokens |
| §180 leftover sweep | 24 | byte-perfect drafts already on disk from waves M/O/P/R/S |
**Fleet 96.0% instr-weighted · 91.7% distinct-code · 97.07% fn-count · MAIN 20.5%.**
(Session start: 95.6 / 90.8 / 96.92.)
### THE ONE-LINE VERSION OF WHAT THIS SESSION LEARNED
**Every single lever that moved the numbers was already computed and simply not carried anywhere.**
§193-A (the atlas's banked twin, discarded by the card builder) · §194-E (`tu_ref`, the banked
neighbour in the destination TU) · §196 (`decl_prior`, the fleet's declaration consensus) · §198
(the UNKNOWN lever lane, excluded by a default flag while the PROMPT told agents to draft it) ·
§200 (the asm-label alias, an idiom the project already used and the tools could not parse) ·
`gap_triage` (the harvest's majority verdict is a text search). **Before adding an agent, an
attempt, or a prompt paragraph, ask what the tree already knows.**
### THE SEVEN RESULTS THAT OUTLIVE THE COUNT
1. **RECONCILIATION BELONGS INSIDE THE WAVE.** One agent per gate group runs the deterministic
ladder over its OWN slate before the first rebuild. Wave R banked 18 of 45 and needed a recovery
lane; waves T-Y banked 70/70, 73/73, 68/69, 68/70, 62/63, 64/69. Costs one agent per group.
2. **THE CARD IS THE CHEAPEST PLACE IN THE PIPELINE TO PUT A FACT.** `seed_ref` (banked 51/51 on
wave U's draw vs `exemplar` 0/73) took wave U to 100% drafted at 15% fewer tokens and 64% of the
wall-clock. `tu_ref` reaches 48-64 cards per wave. `decl_prior` answers the arity guess §195-A
proved the asm cannot answer. Every field costs zero tokens per wave, forever.
3. **§198 — THE SELECTOR WAS OVERRIDING THE DOCTRINE.** `UNKNOWN` held 607 of 1,179 in-band members,
more than every other lane combined, and `--levers` excluded it while the prompt told agents it
drafts like any other lane. Promoted (measured 71/71 drafted, 68 banked, 24.3 drafts/rebuild).
**Recorded cost: zero siblings** — UNKNOWN groups are singletons.
4. **§200 — THE ALIAS IS THE UNIVERSAL DECLARATION ESCAPE.** Only the LINK name has to agree:
`extern u8 aD8018A800[] __asm__("D_8018A800");`. Five refusal classes, one move, five still
MATCH, four re-gated — during a total API outage, by hand, at zero agent cost. Ordering: adopt
the TU's spelling -> cast at the use site -> alias.
5. **FOUR SELF-CORRECTIONS IN ONE SESSION.** §194-E corrected §193-A · §199-A byte-refuted §189-A ·
§197-A refuted §136-9's cure · §201-A caught `decl_prior`'s address-keyed DEF row **before wave Z
launched**. A law from one wave is a first draft; the next wave is its review. This is the
adversarial verifier paying for itself, and it is why the harvest is a pipeline step.
6. **THE §192 DEFECT CLASS, THREE MORE INSTANCES.** The pre-gate ladder was main-only and said
"clean" about it; `sym_of` returned the keyword `void` for pointer-to-function decls (189,301
verdicts corrected) and `__asm__` for the project's own alias idiom (1,210 more); `masked_diff`
dropped every internal `j` so a `break`-vs-`return` error read as MATCH. **A tool written against
one binary — or blind to one idiom — silently narrows its own domain and reports success over
what is left.**
7. **THE HARVEST CONVERGES, AND THAT IS THE POINT.** already-covered by wave: 61/71 (T), 44/64 (U),
76/67 (V), 41/68 (W), 56/63 (X), 53/67 (Y); confirmations 9, 14, 14, 4, 7, 5; wave Y's 8
rejections are the session high. Readers seeded with all prior passes cannot re-derive them.
### Tooling shipped (all negative-controlled)
`build_wave_atlas`: `--one-per-gid` · `--rank total` · `seed_ref`/`matched_n` (§193-A) · `tu_ref` +
null self-exemplars (§194-E) · `decl_prior` rows (§196), now per-binary (§201-A) · UNKNOWN in the
default lane (§198) ·
**NEW** `tools/decl_prior.py` (67,558 symbols; DEF keyed by binary) ·
**NEW** `tools/gap_triage.py` (harvest pre-filter; wired as step 0 of the harvest prompt, SETUP.md
row, named in the wave-closing memory) ·
`gate_main`: `_stubs_for` · `sym_of` x2 · `norm_sig`/`sig_conflict` · `substitute(transform=)` ·
common.h-derived aliases · `pregate_check`: overlay driver transform, builtin->WARN, block-scope
typedefs, `[DROP]` reporting, refuse-on-zero-files · `masked_diff`: internal `j` compared.
### WAVE Z IS BUILT AND STAGED — DELIBERATELY NOT LAUNCHED (Drew's instruction)
**75 cards / 6,517 ins / 8 GATE GROUPS** (9.4 drafts per rebuild) · seed_ref 46 · tu_ref 50 ·
decl_prior 70 · 43 siblings staged. Binaries: ov_SC02_005 20 · ov_SC01_084 16 · ov_SC05_001 11 ·
ov_SC03_011 10 · ov_SC03_094 8 · md_MAIN_034 7 · md_SC03_075 2 · ov_SC06_018 1.
**Cards were REDRAWN after the §201-A fix** — the first staging carried 24 poisoned DEF rows of 292;
the current file has 0 poisoned and 24 withheld with a stated reason.
**To fire it:**
```
Workflow({scriptPath: ".run/wave_p31z_workflow.js", args: <the object in .run/wave_z_args.json>})
```
Cards `.run/wave_z_cards.json` · siblings `.run/wave_z_cards.siblings.json` · wavedir `.run/wave_p31z`.
### THE WAVE-CLOSING SEQUENCE (eight steps, memory `wave-harvest-is-a-pipeline-step`)
snapshot+verify+**gate** -> **RECOVER** the failures (near-miss / gate-drop / errored) -> gate the
recovery -> `family_sweep --hseq` siblings -> **R22 once** -> **harvest+bank idioms** (run
`gap_triage` first) -> **build the next wave's cards** -> **CHECKPOINT, always, written for a fresh
session — and refresh it if any work lands after it.**
### Known-open items
* `func_8017FCFC` (ov_SC02_017, closeness 3) — the ONE wave-Y near-miss not recovered. Its agent
attributed the last 3 instructions to sched1 by elimination (`oracle_reorder` bypass+`as -O2` = 9
diffs so NOT an assembler artifact; `-fno-schedule-insns2` alone does not fix it;
`-fno-schedule-insns` alone fixes idx 25-27 and breaks 50-52). Permuter fuel, not a hand lever.
* `func_80184F18` (wave V, closeness 9) · `func_80184500` (wave W, closeness 4) · `func_8017F9D8`
(wave X, closeness 1 — 93 of 94 words identical, a branch landing one instruction early).
* `func_80031A98` — the `D_800C5328` wall, unchanged. The 6 §188 SDK objects -> `psyq_integrate`.
`GsSortBg`/`GsSortFastBg` fragment merges. `gfx2D_BG0_OBJ_4D8` (§181 mirror class).
* Two wave-W cards released back to the pool (agents died on rate limits, no draft):
`func_80185480`, `func_8017EC98`.
### Watch-fors
* **Transient API failures are normal at this scale and the recovery is always the same.** Session
limit (wave X harvest) and 529 Overloaded (wave Y recovery + harvest, four rounds, ~17 agents, 0
tokens) both resolved with `Workflow({scriptPath, resumeFromRunId, args})` — cached agents replay,
only the dead ones re-run (measured 398k vs the original 1.31M). Do not rebuild a wave by hand.
* A wave script's LAWS block is a JS template literal: **backticks inside law text terminate it.**
* `gate_lane` needs `binary` + `name` per slate record; `scan_leftovers` slates carry `fn` + `draft`.
* If a Reconcile agent dies, its group has NO slate — build it from the drafts on disk and run the
ladder by hand (that is why the phase's product is a FILE, not an agent return value).
* `pregate_check` models the banking DRIVER: main goes through gate_main's hoist/strip, overlays
through harvest_verify's `strip_provided_typedefs`. A third driver would need teaching.
* Snapshot every target's `.s` BEFORE gating — banking prunes it and recovery/harvest need both sides.
## 🛑 (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) ·
R22 `make check-all` = 213 passed / 0 failed of 213 from a CLEAN tree (run 3x this session, after