Commit Graph

1933 Commits

Author SHA1 Message Date
Drew T 85fb289db5 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:49:06 -06:00
Drew T 624c5fc731 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:48:17 -06:00
Drew T af11b6bcee feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:47:28 -06:00
Drew T fdfde40136 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:46:39 -06:00
Drew T 8a75972e0e feat(decomp): worker gate — +2 fns x0 propagated (fleet 95.2%) 2026-08-14 01:45:51 -06:00
Drew T 7cfc35e1f5 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:45:00 -06:00
Drew T 9b6175f4ba feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:41:43 -06:00
Drew T e6e806aebd feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:40:54 -06:00
Drew T 5fd8979864 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:40:05 -06:00
Drew T 4fc14796d6 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:39:16 -06:00
Drew T 05f924e9f2 feat(phase-30 S49): propagate func_8017DEA0 (adapt lane) 2026-08-14 01:37:37 -06:00
Drew T d9c7fddf41 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:36:31 -06:00
Drew T ad2917f463 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:35:38 -06:00
Drew T 0e8f0e5ddb feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:31:49 -06:00
Drew T a00747dc35 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:29:10 -06:00
Drew T c74a9ef025 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:26:32 -06:00
Drew T 78d5259293 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:02:09 -06:00
Drew T b3143ce422 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:01:13 -06:00
Drew T c6853c1d45 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:00:20 -06:00
Drew T 8cddbef831 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:59:28 -06:00
Drew T 357afb29c7 feat(decomp): worker gate — +2 fns x0 propagated (fleet 95.2%) 2026-08-14 00:58:35 -06:00
Drew T 4e44032e94 feat(decomp): worker gate — +2 fns x0 propagated (fleet 95.2%) 2026-08-14 00:57:44 -06:00
Drew T f3c509f7e1 feat(phase-30 S50): aprop_autodraft — mechanical A-prop drafts at zero token cost (§171a)
A lane-A member's body IS its matched sibling's body with the per-location symbols rebased.
Two mechanisms had each left that population on the table: family_sweep remaps but CARRIES
the seed's decl layer (decl-agreement = 331 of 458 S49 failures), and the agent wave
re-derives the same body at ~80k tok/fn. This does neither — seed body + symbol_map
(positional reloc zip) + a minimal synthesized preamble.

- Byte-proven before the tool existed: a hand-written draft of exactly this shape banked
  func_801E2858@md_SC03_132, in a family the mechanical sweep had refused. Then 9/9 banked
  on the first generated batch.
- THE SELECTOR, measured: only PURE members (every diff site a RELOC) are drafted. An IMM
  (per-location literal) or STRUCT (register/opcode drift) site cannot be reached by a
  rename — the first 5 gated 0/5, all IMM or STRUCT. classify_member now decides that
  BEFORE a build is spent, not after. --allow-impure to override.
- Macro seeds supported: DEFINE_<fn>() de-macroizes back to a plain self-contained block
  (3737/3737 extract). They were the largest skip bucket — 567 of 1196 members.
- 592 drafts emitted (304 macro / 288 inline) from 1196 members; every skip is named (R32).
- aprop_symfix: asm_syms_ordered() so an n:m card hands over the target's reference ORDER.
- Two defects caught by probes before they scaled: a typedef regex that stopped at the `;`
  INSIDE the struct braces, and a continuation walk that started on the empty pre-newline
  element and returned an empty body.
2026-08-14 00:50:55 -06:00
Drew T 39bf80b759 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:40:16 -06:00
Drew T 5335a914af feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:39:16 -06:00
Drew T 265b2424dc feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:38:26 -06:00
Drew T a25e101663 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:37:36 -06:00
Drew T 307a74b3d6 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:36:46 -06:00
Drew T e057b6a0cc feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:35:56 -06:00
Drew T 906d04ad88 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:35:06 -06:00
Drew T 1d64102382 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:34:16 -06:00
Drew T 36224fdda7 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:33:27 -06:00
Drew T 7549b61b88 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:29:23 -06:00
Drew T 895bb6a239 feat(phase-30 S50): clear the func_801EDC18 carry blocker — 4/4 banked, and re-priced
- The blocker was carried as "one missing file-scope extern gates 83 PURE members". Both
  halves were wrong (R14): corpus.stubs says 4 open members, and D_801ED98C is a DEFINED
  const Blk8 whose rodata lives inside the member's own nonmatchings .s — replacing the stub
  deletes the data with it. gather_externs can carry an extern DECL, never a DEFINITION,
  which is why it reported "no file-scope decl" for a symbol md_SC05_023 defines on line 114.
- Fix: paste typedef + const definition + body per sibling (data bytes verified identical
  across md_SC05_024/025/028/029). 4/4 banked.
- aprop_symfix: new `local-only` class — draft-DEFINED identifiers that merely carry a
  vram-looking suffix (Blk8_…, S8_…, L_call_…) are not stale symbols. Measured: that is every
  non-clean case in the whole wave-7a/7b stored-draft residue, which holds ZERO stale-symbol
  recoveries (a clean negative result — the defect was A-prop-specific).
- cookbook index regenerated (tools-health fails closed on a stale index — it caught §171).
- R22 clean rebuild: check-all 213 passed, 0 failed of 213. Stubs 12,445 -> 12,441.
2026-08-14 00:23:32 -06:00
Drew T d02b460bbb feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:18:16 -06:00
Drew T 8a19b5c065 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:17:27 -06:00
Drew T 84afd361c1 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:16:37 -06:00
Drew T 5e8db6a2c6 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 00:15:46 -06:00
Drew T 2f7e06564b feat(phase-30 S50): the stale seed symbol — A-prop's 57% was ours, not the lane's (§171)
- REFUTES §170's open hypothesis (batched cards concentrate members into one TU ⇒ §169
  collision): 5-draft groups banked 5/5; 11 of 35 unbanked drafts were already one-per-TU;
  and the two "concentrated" groups banked 12/12 and 10/10 once the real defect was fixed.
- The cause: a per-location data symbol carried out of the seed body unrebased. match_one
  compares instruction ENCODINGS and is blind to a relocation's target NAME, so it scores
  MATCH standalone and dies at link in the host TU. 24 of 24 concentrated failures, all 1:1
  rewritable at one constant vram delta (0x4128).
- tools/aprop_symfix.py: audit + --fix, emits a gate_lane-shaped slate; deterministic and
  build-free, so it runs BEFORE the gate. The R34 second oracle for the class match_one
  cannot see.
- family_cousins.py --aprop-cards: members now carry sym_map, the explicit {seed -> member}
  renames, read from the seed's C BODY (a matched seed has no .s of its own) vs the member's
  .s. Two case-mismatch defects fixed while wiring it (sig lowercase vs splat uppercase).
- 23/24 banked. Stubs 12,468 -> 12,445. Fleet 95.2% instr / 89.9% distinct / 96.57% fn.
  R22 clean rebuild: check-all 213 passed, 0 failed of 213. dedup 2,043/0.
- A-prop's true conversion is 87% (79/91); the 320 batched members are unblocked.
- Cookbook §171 + §170 struck in place; SETUP row; decision-log (R31).
2026-08-13 23:41:36 -06:00
Drew T e3aadd9150 feat(decomp): worker gate — +10 fns x0 propagated (fleet 95.2%) 2026-08-13 23:33:39 -06:00
Drew T dc6bbf5983 feat(decomp): worker gate — +12 fns x0 propagated (fleet 95.2%) 2026-08-13 23:32:27 -06:00
Drew T 94818c30c2 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-13 23:28:25 -06:00
Drew T 0189445b9a chore(phase-30 S49): FINAL session checkpoint — 177 banked, 95.2% instr, R22 213/213
- checkpoint block refreshed for a fresh session (R30/checkpoint-before-pause): the TU-spread
  test is the named FIRST action, the regen chain and gate contract are spelled out, and the
  >=16 head's three open items are listed with their evidence.
- promote gate_lane.py into tools/ (it was scratchpad-only): accepts slate OR confirmed shapes,
  explicit draft paths, R32 coverage assertion (refuses to report 0 as a result), dirty-tree
  abort, no outer timeout, per-function propagation after.
- session: 179 commits, 177 instances banked, 5 R22 clean-fleet gates all 213/213.
2026-08-13 17:58:26 -06:00
Drew T bcc3130eb4 feat(phase-30 S49): the A-prop word-diff card + aprop_wave — 56 banked from the >=16 head (§170)
- NEW family_cousins.py --aprop-cards + tools/wave/aprop_wave.js: lane A (1,700 open fns /
  76,419 ins) had NO card type — cousin diffs are empty for h_seq-identical members, so the card
  is a positional WORD diff vs the matched sibling, grouped BY FAMILY (one agent, N drafts).
  Head cards: 13 families / 433 members, median TWO differing words each.
- calibration 9 batches / 108 members: 98 agent-MATCH (91%, best of any wave) -> 56 BANKED (57%),
  ~80k tok/banked fn vs 157k (cousin card) vs 400k+ (crack wave). R22 213/213 BYTE-IDENTICAL.
- HONEST GAP (R14): 91% agent -> 57% gate is the worst conversion measured; 14 groups banked 0.
  Hypothesis TESTABLE not proven — family batching concentrates members per destination TU, the
  §169 collision. Re-gate unbanked ONE PER TU before scaling the remaining 320.
- >=16 head diagnosed: 3 of 4 blockers are plumbing — the --band substantial default hid 5 of 13
  families from every prior sweep; one missing file-scope extern (D_801ED98C) gates 56 PURE
  members; dedup_extend is macro-only. Only func_8017C294 is a genuine crack.
- fleet 96.56% fn / 95.2% instr / 89.9% distinct; stubs 12,535 -> 12,468; dedup 2,043/0.
- cookbook §170.
2026-08-13 17:44:20 -06:00
Drew T a3d748faa5 feat(phase-30 S49): propagate func_80184374 (adapt lane) 2026-08-13 17:38:33 -06:00
Drew T 596afa1385 feat(phase-30 S49): propagate func_80183890 (adapt lane) 2026-08-13 17:38:23 -06:00
Drew T 4c13e9b379 feat(phase-30 S49): propagate func_80182A7C (adapt lane) 2026-08-13 17:38:13 -06:00
Drew T 894b51e0ae feat(phase-30 S49): propagate func_801811F4 (adapt lane) 2026-08-13 17:38:03 -06:00
Drew T 60f54c33da feat(phase-30 S49): propagate func_80180190 (adapt lane) 2026-08-13 17:37:54 -06:00
Drew T c23bc5ef8f feat(phase-30 S49): propagate func_80181538 (adapt lane) 2026-08-13 17:34:36 -06:00