Commit Graph

18 Commits

Author SHA1 Message Date
Drew T eebe792a0b feat(decomp): ox wave eh overlays — 129 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 17:10:42 -06:00
Drew T 317d31d18a feat(decomp): ox wave dw overlays — 33 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 15:04:19 -06:00
Drew T 2fea549c53 feat(decomp): ox wave dr overlays — 28 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 13:55:25 -06:00
Drew T ca5fd2e225 feat(decomp): ox wave di overlays — 81 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 12:13:33 -06:00
Drew T 7e1f554a05 feat(decomp): ox wave df overlays — 124 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:27:56 -06:00
Drew T 5357c8b448 feat(decomp): ox wave de overlays — 192 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:17:00 -06:00
Drew T 27a9c118ef feat(decomp): ox wave dd overlays — 217 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:00:28 -06:00
Drew T 3eb8056f22 feat(decomp): ox wave ck overlays — 69 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 03:57:39 -06:00
Drew T 8b2a1e5f1f feat(decomp): ox wave ca overlays — 42 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 21:40:22 -06:00
Drew T 9841c16e66 feat(decomp): ox wave ax overlays — 5 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 13:22:18 -06:00
Drew T 1103cdeaed feat(decomp): ox wave bm overlays — 103 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 13:12:23 -06:00
Drew T 7c674dc63d feat(decomp): ox wave av overlays — 428 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 05:09:47 -06:00
Drew T 4f95a4cc4c feat(decomp): worker gate — +1 fns x0 propagated (fleet 96.1%) 2026-08-23 00:31:37 -06:00
Drew T 57d0e4fa37 feat(decomp): worker gate — +24 fns x0 propagated (fleet 96.0%) 2026-08-18 04:01:20 -06:00
Drew T 6f975634c6 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 02:02:57 -06:00
Drew T fd80bd7007 feat(phase-30 S47-0a.1): the symbol-KIND fix banks 205 members; the residue crosses over to DIFF
Stage 0a's first defect, and the largest single zero-token bank of the session.

family_remap's kind test asked ONE question — is this address a function in the SIBLING'S OWN sig?
— and defaulted to `D_` on "no". But a body calls outside its image constantly: an overlay calls
resident helpers, an md_* module calls the overlay-range engine. Those addresses are absent from
the sibling's sig, so the test fell through and emitted a DATA NAME FOR A FUNCTION —
`D_800183E0`, `D_800D1EBC`, `D_80171A1C`. None exist anywhere in src/ or config/symbols.us.txt,
while `func_80171A1C` alone has 1,061 references. Measured: 611 member-rows across 45 symbols,
the largest named residue class. "Not in MY sig" means "not mine", not "is data".

Fix — three oracles, strongest first, never a blanket fallback:
 1. the sibling's own sig (authoritative for its image; this is what preserves the Phase-29 T82
    case where a slot is a function in the exemplar and DATA in the member — unioning every sig
    would have re-broken the 251 members T82 fixed),
 2. the always-linked images via extern_fn_addrs() — resident + main, 2,146 addresses whose ranges
    cannot collide with an overlay's,
 3. the exemplar reached it by `jal` — a call target is a function BY DEFINITION, which covers an
    external address neither sig claims (0x80171A1C from an md_* module, 112 rows).
Only a non-call reloc no oracle claims still falls to `D_`.

Result: BANKED 205 member-matches, failures 670 -> 575, derived net = report = 205.
R22 clean-fleet 213 passed / 0 failed of 213.
Fleet 94.4% instr / 88.3% distinct / 96.27 -> 96.33% fn-count; stubs 13,563 -> 13,345.

THE RESIDUE HAS CROSSED OVER: DIFF is now the LARGEST class at 143 of 575 — real byte divergence
outranks plumbing for the first time this session (undefined-ref 611 -> ~8, PLUMBING-other
231 -> 81). The ~5:1 plumbing:DIFF ratio that justified "tooling beats volume" has inverted in this
queue, exactly as the frontier analysis predicted: the declaration-axis vein was one-time.
The new head class is `conflicting types for func_80175414` (27) — the same addresses this fix
started naming correctly, now surfacing the NEXT layer (the symbol resolves; its declared signature
disagrees). That is the conform axis, not the remap axis.

Note for anyone auditing this class: rtu_match MASKS HI16/LO16, so a wrong %hi/%lo symbol still
reports MATCH (the T82 comment records `MATCH (10 ins)` on a member the fleet gate refused). This
defect is invisible to the per-function tool by construction — only the whole-binary gate sees it.
2026-08-11 14:02:38 -06:00
Drew T 4cadac4e11 feat(phase-30 S45 II.1c): module batch dedup-banked + verified — 408 banks, R22 183/183, audit-disc 75->34 (parked-only)
- dedup measure (R37 probe): 69/1,113 module fns h_exact-match matched corpus (~6%, LOW as
  planned — modules are novel frontier); dedup_extend inapplicable (same-vram group model) ->
  family_sweep --hseq --band all over the 57 matched-exemplar families: 408 member-matches
  banked (182 into modules, 226 into the big 3 — families Part I's --only scoping missed),
  169 failed + 77 STRUCT = genuine per-member frontier
- R22 clean-fleet 183/183 BYTE-IDENTICAL; audit-disc UNCLAIMED 75->34 residue 0 (34 = 31
  parked-for-L3 + SC03/53,54,56 — 3 rows Discovery-3 never tiered, now parked with evidence)
- three instrument fixes, each negative-control-proven:
  - family_sweep --hseq stub map derives ov_*+md_*+resident (was sig.ov_* glob -> module
    members silently 'not-stub', R32 class) [committed earlier as commit:1506]
  - sig-modules seeds from the built ELF's func_* symbols (bootstrap GLUES adjacent fns
    around jtbl dispatch -> 24 false TRUNCATED; perturbed-sig control still bites)
  - corpus.audit counts CODE lines only (module .s carries its header jtbl as .word lines);
    progress.py buckets INCLUDE_RODATA symbols as blobs (unbucketed R32 hole)
- NEW HONEST BASELINE (183 binaries): 94.0% instr / 95.96% fn-count / 87.6% distinct;
  tools-health OK, audit-digest OK
2026-08-06 13:14:03 -06:00
Drew T b15dae1077 feat(phase-30 S45 II.1b): SC07 module pair onboarded byte-identical at 0x801A00D8
- md_SC07_003 (345,132 B, text-lo 0xFC, 100 fns) + md_SC07_004 (365,152 B, text-lo 0x158,
  315 fns) — both BYTE-IDENTICAL on first build at the header-derived own slot
- independent first-prologue scan reproduced the plan's documented TLOs exactly
2026-08-06 12:37:24 -06:00