23 Commits

Author SHA1 Message Date
Drew T 46ba9f1b16 T7.1.c3: gte_consolidate --keep-levers; batch c3b1: 40 files consolidated, oracle IDENTICAL 2026-10-02 18:32:34 -06:00
Drew T e6197697ac T4: batch t4_md_S1 — restruct: batch t4_md_S1 rung S — 63 files (TUs; 63 drawable) · 291 bodies: 692 sites → members / 8 kept / 240 skipped · levers off 0 · compiles 375 in 167 s wall · final 63/63 identical · written 63 files | R22 check-all: 218 passed, 0 failed of 218 | type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 339947 cast sites in 51172 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4 (restruct_cycle) 2026-10-02 03:56:55 -06:00
Drew T b0b9c4c465 T5.1.c2b: lift_types --census: batch md moved (297 groups, 359 defs) 2026-09-30 10:37:58 -06:00
Drew T e5ba087390 T5.c2: variants - rename 543 divergent-layout defs to <Name>_<suffix> (scope-aware) 2026-09-30 00:21:07 -06:00
Drew T 22915a6972 src(phase-37): T4 batch t4_D58 — restruct: batch t4_D58 rung D — 145 files (TUs; 145 drawable) · 50 declaration units: 14 canonical / 0 promoted / 36 K&R marked / 0 aliases typed / 0 __builtin_abs → abs / 36 kept · compiles 128 in 131 s wall · final 145/145 identical · written 32 files | R22 check-all: 218 passed, 0 failed of 218 | (census skipped) (restruct_cycle) 2026-09-12 21:50:43 -06:00
Drew T 25c70a0097 src(phase-37): T4 batch t4_D40 — restruct: batch t4_D40 rung D — 300 files (TUs; 2367 drawable) · 619 declaration units: 547 canonical / 0 promoted / 8 K&R marked / 0 aliases typed / 0 __builtin_abs → abs / 72 kept · compiles 756 in 154 s wall · final 300/300 identical · written 286 files | R22 check-all: 218 passed, 0 failed of 218 | (census skipped) (restruct_cycle) 2026-09-12 19:25:46 -06:00
Drew T 67e91ad4d4 phase-36: T7 sweep s5 — the TAIL closes at 36%: 285 of 800 bodies lever-free for zero tokens (29,527 → 29,204 sites, R22 218/218)
search: 285 of 800 exemplars matched lever-free in 2.32 h (285 of 800 bodies behind them; 94,627 compiles) — NO-MATCH 499 · MATCH 285 · UNSTRIPPABLE 9 · UNSCORED 7

- the first broad draw of non-head classes, at the cheap width, with the full generator set. By first move:
  R7 105, R10 59, R12 42, R6 26, R9 20, R18 13, R8 9, R3 6, R15 4, R14 1 — and 242 of the 285 closed in ONE move.
  These are not deep searches; they are bodies nobody had ever offered a single shape to. R18, one day old, is 13 of them.
- the contrast that steers the rest of T7: 36% of the tail closes mechanically, against 6 closes in ~128,000 compiles on
  the head. The head's 57 classes are the agents' work; everything else is the engine's, at zero tokens. Sweep the whole
  residue before spending another agent.
- check-all: 218 passed, 0 failed of 218
  lever_census --check: 29,204 pin/asm sites, 29,204 marked !FAKE, 0 UNMARKED — OK
- snapshot row 15.
2026-09-10 07:21:39 -06:00
Drew T 5b6e1a2fe7 phase-36: T5 — the consolidation applied (644 files: 8,951 per-TU GTE definitions gone, 629 clobber variants byte-identical without the clobber, 70 kept as marked levers, 575 direct statements → canonical calls, 85 header-bound homonyms kept) + the marker repair (scrub 344 misplaced, re-mark 349); four instrument fixes: scoped renames, header-bound homonyms kept, object-like macros, the canonical table stable (the header's definitions in the inventory) and the census cache keyed on the tables; R22 218/218; the number 34,090 (33,625 + 465 GTE levers) all marked, 0 orphans, --check OK; kit corpus; log entry 2026-09-09 06:29:00 -06:00
Drew T 145ab77194 src(phase-36): T5 batch gte1 — gte_consolidate: batch gte1 — 400 files: 400 consolidated, 0 defs-only, 0 unchanged, 0 refused, 0 no-recipe · definitions deleted 8056 / renamed as lever variants 5 (variant trials: 416 freed, 5 kept) · header-bound definitions kept 80 · use renames 930 · direct statements → calls 460 / lever 252 / unmatched 185 · markers 276 · compiles 1146 · final 400/400 identical | R22 check-all: 218 passed, 0 failed of 218 | census: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,901 sites in 12,601 bodies (1,756 distinct) · marked !FAKE 33,665 · UNMARKED 236 (delever_cycle) 2026-09-09 05:55:45 -06:00
Drew T cb2fb5e6db src(phase-36): T4 batch tus10 — delever: batch tus10 — 83 files (TUs; 83 drawable) · 362 bodies: 99 lever-free, 258 residue, 2 refused · sites removed 411 / needed 483 / refused 37 / deferred 3 · replays 4 (0 disagreed) · compiles 1171 in 25 s wall · final 83/83 identical · written 83 files | R22 check-all: 218 passed, 0 failed of 218 | census: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 34,100 sites in 12,570 bodies (1,823 distinct) · marked !FAKE 32,973 · UNMARKED 1,127 (delever_cycle) 2026-09-09 04:18:13 -06:00
Drew T 89ede18c22 feat(decomp): S67-wave gate — +1 fns x0 propagated (fleet 99.2%) 2026-08-31 10:21:36 -06:00
Drew T ba49d7e829 feat(decomp): parallel gate — 15 fns across 12 binaries (10 workers)
md_MAIN_031    func_800CB1CC
  md_MAIN_044    func_800CCDB0
  md_MAIN_047    func_800CCBC0
  md_MAIN_046    func_800CD5CC
  md_MAIN_003    func_800D2A24
  ov_SC02_017    func_80181E98
  ov_SC02_003    func_801888F4 func_80188C0C
  ov_SC01_080    func_80180728
  ov_SC02_005    func_8017E798 func_80185A88
  ov_SC02_011    func_80185098
  ov_SC01_074    func_8017E07C
  ov_SC02_027    func_801806FC func_80180A54
2026-08-30 22:58:29 -06:00
Drew T 6e25fc910b feat(decomp): integration-resolver pass — 72 banked of 245 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-25 23:48:21 -06:00
Drew T 7713700d72 feat(decomp): ox wave dj overlays — 43 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 12:21:43 -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 829361dd7b feat(decomp): ox wave cf overlays — 50 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 01:09:05 -06:00
Drew T 2a95f6e0f1 feat(decomp): ox wave ce overlays — 40 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 00:14:57 -06:00
Drew T 5be231d446 feat(decomp): ox wave bu overlays — 42 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 18:02:49 -06:00
Drew T c17b35fb37 feat(decomp): ox wave bl overlays — 35 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 12:42:19 -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 ff11fc556c feat(phase-30 S47-W1s): the reach-15 wave templates to 140 members (81% conversion)
The 10 exemplars from W1 flipped modal -> matched in the regenerated map, so family_sweep could
template them. 9 non-jr families swept: BANKED 140 member-matches / 32 failed across 50 overlays.
Derived net = report = 140 (no untracked carve files this time, so the two counts agree).
R22 clean-fleet: check-all 213 passed / 0 failed of 213.

Fleet 94.3 -> 94.4% instr / 88.2 -> 88.3% distinct / 96.22 -> 96.27% fn-count; stubs 13,713 -> 13,563.

WAVE ONE, FULLY ACCOUNTED: 10 agent cracks + 140 templated members = 150 functions for 1.36M
tokens (~9k tokens/function). Still owed from this wave: 73 member-slots in 2 NEAR families,
34 in 3 rate-limited targets, 9 in the jr family (routes to jtbl_family_bank, §53).

TWO MEASUREMENTS THAT CORRECT MY OWN FORECASTS (R14):
 1. Conversion was 81%, not the 58% I projected from this morning's propagation run. Today's
    plumbing fixes (alias-drop, cpp-derived TU type map, group-level draft-vs-draft aliasing) are
    paying off in a population they were not tuned for.
 2. The effective multiplier was 15x, not the 2-3.5x I predicted. That estimate used the MEAN
    family size across the whole zero-crack pool (3.55); this wave deliberately targeted the TOP of
    the reach distribution, where families run 10-28 members. Ordering waves by reach is what
    produced the difference — the mean was the wrong statistic for a wave that selects on the tail.

The regen step is load-bearing and now byte-proven twice: a fresh crack reads as `modal` until sigs
+ family_hseq are rebuilt, and family_sweep templates only from `matched`. Skipping it sweeps a
stale map and the multiplier evaporates (the Phase-26 finding, whose surviving qualifier is that
remap works BEHIND a fresh crack).
2026-08-11 11:41:13 -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 85b526cddd feat(phase-30 S45 II.1a): all 38 MAIN modules onboarded byte-identical at the §S44 static addresses
- slot A 29/29 (md_MAIN_013..041 @ 0x800CAE08), slot B 6/6 (md_MAIN_042..047 @ 0x800CCB1C),
  boot trio 3/3 (md_MAIN_001 [=MAIN/0 twin], md_MAIN_008, md_MAIN_011 @ 0x800CEDF8) — every one
  BYTE-IDENTICAL on its FIRST build (byte-corroborating the §S44 loader table for slots A/B/boot)
- TLO roster derived from the §154 id-word law (.run/s45/derive_tlo.py): 0x4 default;
  011=0x7C, 025=0xC, 034=0x80, 039=0xC (first-prologue scan)
- new_binary.sh: module hdr carve is now a dot-typed .rodata PAIRED with the c segment —
  a header can hold a function's jump table (md_MAIN_034), and standalone rodata emits
  .L locals that don't cross objects; bin links in the data block (both refuted by bytes)
- A4 law: symbols.resident.txt dropped from the boot trio's stacks (windows inside the
  resident region; DsMix @0x800D1BD8 had minted a phantom fn boundary in md_MAIN_011) —
  re-extracted clean, all three byte-identical, phantom gone
2026-08-06 12:36:49 -06:00