Commit Graph

  • a51c0785cf 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 Drew T 2026-08-29 11:51:45 -06:00
  • c5a60897bc docs(cookbook): §312 (a bare if(a<b) scatters the slt destination register — materialize the compare to force it) + a §41 FINDABILITY addendum. The 741-ins agent's headline 'new lever' was VERIFIED AS ALREADY-COVERED by §41 step 3 (cast a type-changed param at its uses, never via an intermediate local); the real gap was that §41's declaration-wall title hides its REGALLOC symptom, so the key is filed there with the n7/n9/n10 byte ladder incl. the inert decl-order control (§67). Index 919 -> 920 (P31 S64) Drew T 2026-08-29 11:50:44 -06:00
  • 1bdd62455e docs(report): regenerate the fleet scoreboard after t5o-t5r + the 741-ins bank Drew T 2026-08-29 11:44:42 -06:00
  • d9a30167dd feat(t5): Claude wave t5r — 30 banked (sonnet 22/37, opus 8/11, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-29 11:35:54 -06:00
  • 4ed883d0fe 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) Drew T 2026-08-27 16:19:57 -06:00
  • 34963d42ed feat(t5): Claude wave t5q — 28 banked (sonnet 28/30, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 16:04:57 -06:00
  • 0bcd8b3d22 feat(t5): Claude wave t5p — 30 banked (sonnet 30/33, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 16:02:23 -06:00
  • 6a601a0fce feat(t5): Claude wave t5o — 36 banked (sonnet 29/31, opus 6/8, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 15:59:13 -06:00
  • 1856524bec docs(report): regenerate the fleet scoreboard after t5m/t5n (1,968 -> 1,741 stubs; 98.7% instr / 97.3% distinct) Drew T 2026-08-27 14:05:55 -06:00
  • e2d1531324 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) Drew T 2026-08-27 14:03:01 -06:00
  • ba7afeed34 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) Drew T 2026-08-27 13:47:39 -06:00
  • ab3fffda1e feat(t5): Claude wave t5m — 53 banked (sonnet 35/43, opus 17/18, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 13:36:39 -06:00
  • 78f4934ef8 feat(t5): Claude wave t5l — 39 banked (sonnet 37/44, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 12:41:25 -06:00
  • 8c28a39df6 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) Drew T 2026-08-27 12:19:36 -06:00
  • 5365db0f87 feat(t5): Claude wave t5k — 47 banked (sonnet 40/44, opus 5/6, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 12:14:34 -06:00
  • 5e5fd1cb77 feat(t5): Claude wave t5j — 45 banked (sonnet 41/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 12:11:10 -06:00
  • e5956d021f docs(report): progress.md regenerated with the S63 scoreboard Drew T 2026-08-27 11:33:02 -06:00
  • f25b890480 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 Drew T 2026-08-27 11:32:45 -06:00
  • e268956de6 docs(report): regenerate the fleet scoreboard after t5g/t5i Drew T 2026-08-27 11:31:57 -06:00
  • 0edd7344c2 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 Drew T 2026-08-27 11:28:58 -06:00
  • 9b9385afd2 feat(t5): Claude wave t5i — 58 banked (sonnet 42/44, opus 16/19, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 11:16:01 -06:00
  • 9db3edf985 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) Drew T 2026-08-27 10:25:01 -06:00
  • 71f00b16d1 feat(t5): Claude wave t5g — 42 banked (sonnet 37/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 10:20:47 -06:00
  • 963519799d 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) Drew T 2026-08-27 09:44:58 -06:00
  • bd472c5fc9 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 Drew T 2026-08-27 09:44:26 -06:00
  • 689bbc7c2f docs(report): regenerate the fleet scoreboard after t5b-t5h + the free lane (2,310 -> 2,068 stubs; 98.6% instr / 97.1% distinct) Drew T 2026-08-27 09:43:27 -06:00
  • 37cd7e2e0a feat(t5): Claude wave t5h — 13 banked (sonnet 8/14, opus 5/5, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 09:40:08 -06:00
  • a4d66a27c4 feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens Drew T 2026-08-27 09:09:01 -06:00
  • 1fffccf859 feat(t5): Claude wave t5f — 34 banked (sonnet 34/35, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 09:02:59 -06:00
  • b2365aeeb5 feat(t5): Claude wave t5e — 53 banked (sonnet 37/41, opus 16/18, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-27 09:00:36 -06:00
  • 1180748502 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) Drew T 2026-08-26 21:42:47 -06:00
  • 926fc3f1c0 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) Drew T 2026-08-26 21:33:45 -06:00
  • b1a0d49a52 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) Drew T 2026-08-26 21:26:50 -06:00
  • 923bd5ec64 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) Drew T 2026-08-26 21:24:33 -06:00
  • eaf423f1d1 feat(t5): Claude wave t5c — 39 banked (sonnet 36/43, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-26 21:24:01 -06:00
  • 0b6f1039c6 feat(t5): Claude wave t5b — 44 banked (sonnet 37/43, opus 7/8, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-26 21:20:04 -06:00
  • 01d60955c7 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 Drew T 2026-08-26 21:13:42 -06:00
  • a197f45a9c 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) Drew T 2026-08-26 21:12:10 -06:00
  • c865841dbe 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) Drew T 2026-08-26 21:10:39 -06:00
  • 4f1ff29a6b feat(t5): Claude wave t5d — 42 banked (sonnet 38/44, opus 4/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-26 21:07:17 -06:00
  • 3ae63a9b2c 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) Drew T 2026-08-26 20:50:25 -06:00
  • 59bb3a23f8 docs(report): regenerate the fleet scoreboard after t5a + lane G (R32 digest describes the tree again) Drew T 2026-08-26 20:26:01 -06:00
  • 99ae0afe17 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 Drew T 2026-08-26 20:21:07 -06:00
  • 41b259e528 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) Drew T 2026-08-26 20:19:41 -06:00
  • 827b0b156f 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) Drew T 2026-08-26 20:14:26 -06:00
  • bfd591c9cc feat(t5): Claude wave t5a — 41 banked (sonnet 39/44, opus 2/4); fleet 213 passed, 0 failed of 213 (P31 S62 T5) Drew T 2026-08-26 20:12:09 -06:00
  • 3591ac6566 feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens Drew T 2026-08-26 19:42:23 -06:00
  • f8cc4c77d3 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) Drew T 2026-08-26 19:35:54 -06:00
  • 20e7005855 docs(phase-31): S62 FINAL checkpoint — no-DeepSeek decision, T5 first-wave recipe on the promoted harness, residue ledger, rule candidates Drew T 2026-08-26 19:18:23 -06:00
  • 5962bb70ed 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) Drew T 2026-08-26 19:02:07 -06:00
  • 6a64eee98f fix(tools): wave_judge.py takes the wave dir from WAVE (default .run/t4) Drew T 2026-08-26 19:01:57 -06:00
  • 74ec441d60 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) Drew T 2026-08-26 19:01:41 -06:00
  • 44f062a978 docs(phase-31): S62 checkpoint refresh at the T4/T5 boundary Drew T 2026-08-26 18:32:51 -06:00
  • 194cce7570 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) Drew T 2026-08-26 18:32:51 -06:00
  • ad273e7b69 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) Drew T 2026-08-26 18:31:10 -06:00
  • 02c5d757c2 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) Drew T 2026-08-26 18:14:48 -06:00
  • 05d13e52e7 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) Drew T 2026-08-26 17:07:12 -06:00
  • 1392bf6c93 docs(phase-31): checkpoint — fleet sweep #7 213/213 GREEN at T3 close Drew T 2026-08-26 16:02:20 -06:00
  • e8549eaf10 docs(phase-31): S62 session checkpoint — T0–T3+T5pre done, paused at the R27 gate for T4 Drew T 2026-08-26 16:00:43 -06:00
  • ceab8ad725 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) Drew T 2026-08-26 16:00:01 -06:00
  • 16d1d01b56 docs(phase-31): T3 log (75 banks; six carve-lane defect classes fixed; residue named) + frontier-s61 Addendum 4 (P31 S62) Drew T 2026-08-26 15:57:18 -06:00
  • 5382025752 chore(docs): fleet ledger + backlog regenerated after T3 (2,397 stubs, 98.5% instr, 96.8% distinct) Drew T 2026-08-26 15:57:18 -06:00
  • 4e562cfbf4 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) Drew T 2026-08-26 15:55:57 -06:00
  • 99f601d02a docs: cookbook §305 addendum — glued DEFINE carrier, attribute typedefs, leading-jr cut, the overlays.mk merge race closed at the root (P31 S62) Drew T 2026-08-26 15:49:08 -06:00
  • cd1e38ee0b 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) Drew T 2026-08-26 15:48:34 -06:00
  • 497d462c98 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) Drew T 2026-08-26 15:43:29 -06:00
  • 7324baebab 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) Drew T 2026-08-26 15:41:20 -06:00
  • 34c94a17c4 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) Drew T 2026-08-26 15:38:23 -06:00
  • fabde98078 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) Drew T 2026-08-26 15:38:23 -06:00
  • 0e05821b02 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) Drew T 2026-08-26 15:34:11 -06:00
  • dcbe05cabe 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) Drew T 2026-08-26 15:25:58 -06:00
  • d7d8fdb50c 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) Drew T 2026-08-26 15:24:41 -06:00
  • 0decb45580 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) Drew T 2026-08-26 15:22:11 -06:00
  • cc8df52299 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) Drew T 2026-08-26 15:09:45 -06:00
  • 910101fe21 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) Drew T 2026-08-26 15:07:03 -06:00
  • 7bc10e31c8 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) Drew T 2026-08-26 15:06:21 -06:00
  • 21972d9436 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) Drew T 2026-08-26 15:02:15 -06:00
  • 56542b18d5 feat(decomp): integration-resolver pass — 54 banked of 90 staged (zero model tokens) Drew T 2026-08-26 15:02:09 -06:00
  • dfd42d4586 docs: cookbook §304 (self-defining rodata) + T3 log incl. fleet sweep #3 = 213/213 (P31 S62) Drew T 2026-08-26 14:56:06 -06:00
  • e4d1c55dde 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) Drew T 2026-08-26 14:55:49 -06:00
  • 7a3ce3434f 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) Drew T 2026-08-26 14:54:44 -06:00
  • df8f369eea 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) Drew T 2026-08-26 14:50:12 -06:00
  • c71cd7edb5 docs: cookbook §303 (module island pads derived at build time; island-pads/island-blocked dissolve) + SETUP row (P31 S62 T3a) Drew T 2026-08-26 14:48:42 -06:00
  • 0b75da6a36 feat(build+tools): module jtbl pads DERIVED at build time — jtbl_rodata_pads --derive <binary> --tu <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) Drew T 2026-08-26 14:48:17 -06:00
  • ddd9029467 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) Drew T 2026-08-26 14:43:26 -06:00
  • 4b31ceaa13 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) Drew T 2026-08-26 14:38:59 -06:00
  • d718cecf9d 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 Drew T 2026-08-26 14:35:06 -06:00
  • 05f13d6c9f 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) Drew T 2026-08-26 14:34:32 -06:00
  • ab9e5770c7 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) Drew T 2026-08-26 14:29:35 -06:00
  • b3e879a95e 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) Drew T 2026-08-26 14:28:24 -06:00
  • 00e26c78d8 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) Drew T 2026-08-26 14:27:15 -06:00
  • 315699b597 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) Drew T 2026-08-26 14:25:14 -06:00
  • 7898b9faf8 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) Drew T 2026-08-26 14:24:07 -06:00
  • 48a42b9ed3 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) Drew T 2026-08-26 14:21:24 -06:00
  • bf10227dec 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) Drew T 2026-08-26 14:18:31 -06:00
  • 0060dfd976 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) Drew T 2026-08-26 14:14:39 -06:00
  • 46ad1a2de4 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) Drew T 2026-08-26 14:14:00 -06:00
  • c50e9578ba 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) Drew T 2026-08-26 14:11:20 -06:00
  • 5a87e741ea 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) Drew T 2026-08-26 14:10:20 -06:00
  • 85b7577886 chore(docs): progress.fleet.md regenerated after T1 (2,511 stubs) Drew T 2026-08-26 14:05:15 -06:00