Commit Graph

3119 Commits

Author SHA1 Message Date
Drew T 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) 2026-08-26 15:55:57 -06:00
Drew T 99f601d02a docs: cookbook §305 addendum — glued DEFINE carrier, attribute typedefs, leading-jr cut, the overlays.mk merge race closed at the root (P31 S62) 2026-08-26 15:49:08 -06:00
Drew T 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) 2026-08-26 15:48:50 -06:00
Drew T 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) 2026-08-26 15:43:29 -06:00
Drew T 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) 2026-08-26 15:41:20 -06:00
Drew T 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) 2026-08-26 15:38:23 -06:00
Drew T 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) 2026-08-26 15:38:23 -06:00
Drew T 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) 2026-08-26 15:34:11 -06:00
Drew T 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) 2026-08-26 15:25:58 -06:00
Drew T 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) 2026-08-26 15:24:41 -06:00
Drew T 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) 2026-08-26 15:22:11 -06:00
Drew T 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) 2026-08-26 15:09:45 -06:00
Drew T 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) 2026-08-26 15:07:03 -06:00
Drew T 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) 2026-08-26 15:06:21 -06:00
Drew T 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) 2026-08-26 15:02:15 -06:00
Drew T 56542b18d5 feat(decomp): integration-resolver pass — 54 banked of 90 staged (zero model tokens)
Drafts the ledgers already recorded as byte-correct (closeness 0 / reloc shape MATCH), re-judged against today's tree by rtu_match + reloc_identity, staged, and gated on the whole-binary SHA. Ledger: .run/resolver/verdicts.jsonl
2026-08-26 15:02:09 -06:00
Drew T dfd42d4586 docs: cookbook §304 (self-defining rodata) + T3 log incl. fleet sweep #3 = 213/213 (P31 S62) 2026-08-26 14:56:06 -06:00
Drew T 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) 2026-08-26 14:55:49 -06:00
Drew T 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) 2026-08-26 14:54:44 -06:00
Drew T 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) 2026-08-26 14:50:12 -06:00
Drew T c71cd7edb5 docs: cookbook §303 (module island pads derived at build time; island-pads/island-blocked dissolve) + SETUP row (P31 S62 T3a) 2026-08-26 14:48:42 -06:00
Drew T 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) 2026-08-26 14:48:17 -06:00
Drew T 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) 2026-08-26 14:43:26 -06:00
Drew T 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) 2026-08-26 14:38:59 -06:00
Drew T 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 2026-08-26 14:35:06 -06:00
Drew T 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) 2026-08-26 14:34:32 -06:00
Drew T 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) 2026-08-26 14:29:35 -06:00
Drew T 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) 2026-08-26 14:28:24 -06:00
Drew T 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) 2026-08-26 14:27:15 -06:00
Drew T 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) 2026-08-26 14:25:14 -06:00
Drew T 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) 2026-08-26 14:24:07 -06:00
Drew T 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) 2026-08-26 14:21:24 -06:00
Drew T 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) 2026-08-26 14:18:31 -06:00
Drew T 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) 2026-08-26 14:14:39 -06:00
Drew T 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) 2026-08-26 14:14:00 -06:00
Drew T 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) 2026-08-26 14:11:20 -06:00
Drew T 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) 2026-08-26 14:10:20 -06:00
Drew T 85b7577886 chore(docs): progress.fleet.md regenerated after T1 (2,511 stubs) 2026-08-26 14:05:15 -06:00
Drew T 3ee2d8e22a chore(lanes): maintenance.sh lock-aware R22 sweep window (S61 leftover, self-documented; the pgrep guard meant the fleet sweep never ran) 2026-08-26 14:04:54 -06:00
Drew T 3a5caa65b1 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 2026-08-26 14:04:54 -06:00
Drew T f449a455bc 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) 2026-08-26 14:00:50 -06:00
Drew T 80124c6810 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) 2026-08-26 13:53:56 -06:00
Drew T 528f543d84 chore(docs): progress.md regenerated at S61 close 2026-08-26 12:56:26 -06:00
Drew T f71cbbb53e chore(docs): sweep auto-rendered ledgers at S61 close 2026-08-26 12:56:10 -06:00
Drew T d7bfa03d92 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) 2026-08-26 12:55:57 -06:00
Drew T d79cee5f9c docs(phase-31): handoff item 2 done — cookbook distill committed, planner notified 2026-08-26 12:52:28 -06:00
Drew T aee82bb4da 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 2026-08-26 12:52:28 -06:00
Drew T c94fbe0d17 docs(phase-31): handoff item 1 done — frontier doc verified and committed 2026-08-26 12:45:16 -06:00
Drew T bd37b7eb7b 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) 2026-08-26 12:45:16 -06:00
Drew T fa475da0f8 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 2026-08-26 12:31:35 -06:00