Commit Graph

2631 Commits

Author SHA1 Message Date
Drew T 8870146e24 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 09:25:27 -06:00
Drew T b2a2b10435 feat(decomp): ox wave bd overlays — 3 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 08:53:13 -06:00
Drew T 7f6cd48521 feat(decomp): ox wave bc overlays — 233 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 08:34:17 -06:00
Drew T c0466cb171 feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 08:29:45 -06:00
Drew T 8ba832c237 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 08:20:05 -06:00
Drew T f74fd335e0 feat(decomp): ox wave bb overlays — 29 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 07:54:38 -06:00
Drew T 7f70a9f42f feat(decomp): ox wave ba overlays — 287 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 07:28:26 -06:00
Drew T d336ed15ec feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 07:18:47 -06:00
Drew T 5db8daf4de chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 07:17:14 -06:00
Drew T 73d5a17a49 feat(decomp): ox wave az overlays — 4 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 06:48:16 -06:00
Drew T b4161aa25f feat(decomp): ox wave ar overlays — 69 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 06:23:04 -06:00
Drew T b7bdf475a5 feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 06:11:34 -06:00
Drew T c47d820d59 feat(decomp): ox wave aw overlays — 6 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 05:45:34 -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 423313180d feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 04:58:39 -06:00
Drew T 8dfba33869 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 04:58:11 -06:00
Drew T 01c152c985 feat(decomp): ox wave au overlays — 37 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 04:18:21 -06:00
Drew T 49609fc1a6 feat(decomp): ox wave aq overlays — 60 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 03:26:53 -06:00
Drew T 30487c7aa7 feat(decomp): ox wave as overlays — 5 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 02:40:17 -06:00
Drew T d90da77e5b chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 02:33:14 -06:00
Drew T 840f280020 fix(gate_main): read implicit-declaration errors; document the non-idempotent hoist loop
The main probe (8 drafts) ran 38 minutes without a verdict. Two defects, neither about the
drafts:

1. FIXED — the compile-error shortcut matched only 'previous declaration of', but gcc printed
   'previous implicit declaration of func_80017930'. So a batch whose culprit gcc had already
   named fell through to bisection, which costs a full clean EXE rebuild per step. The matcher
   now accepts the implicit and conflicting-types forms too. (resolve_conflicts is separately
   blind to this class: an implicit decl comes from a call site with no prototype.)

2. NOT FIXED, documented — the typedef-hoist repair is not idempotent. It emitted 'hoisted 2
   typedef(s)' 150 times and left a duplicated marker comment; it re-hoists, rebuilds, fails
   identically and repeats, so it cannot converge. Make it idempotent and bound the bisect
   before gating main again.

Also: ox_campaign pre-draws the next wave AFTER launching shards (doing it before left the
fleet at 8 agents while a card job ran), collect_drafts grants stragglers a grace period
instead of letting 2 of 220 shards idle the fleet for 34 minutes, and drafter bands are now
mostly full-range (the 400-2000 band drew 9 cards for a 2,000-worker fleet).
2026-08-24 02:05:16 -06:00
Drew T ccb974c09d chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 01:46:09 -06:00
Drew T e390f4771a docs(tool-designs): o0/cc1 lane study + the grep that refutes half its headline
ox's study correctly found that the atlas o0-lane lever is MISCLASSIFIED on its probe
instance (func_801F0A9C @ md_SC03_076 has no frame pointer — verified, zero $fp under
asm/md_SC03_076/). Its proposed replacement population is fabricated: md_MAIN_003 and
md_MAIN_011 have zero $fp in either module. $fp does appear in 311 files across asm/,
which is the population an -O0 lane would really target.

Recorded rather than discarded: the misclassification finding is load-bearing (a lane
built on the lever label drafts the wrong functions) and the study named checkable files
for every claim, which is what made the refutation cheap.
2026-08-24 01:31:57 -06:00
Drew T aa1d016014 feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 01:25:53 -06:00
Drew T 3a0c4cab45 feat(decomp): ox wave aa overlays — 25 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 01:19:03 -06:00
Drew T e0b427f92e chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 01:13:45 -06:00
Drew T 5554d2b68e feat(decomp): ox wave an overlays — 2 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 01:13:39 -06:00
Drew T 2cce079def chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-24 01:01:51 -06:00
Drew T de9a550edb fix(jtbl): refuse md_*/main in jtbl_carve — it corrupts those configs before erroring
Two independent reviews (ox design study + Fable validation) found parse_config does not
implement its own documented contract on md_*/main: it can DELETE the c config line and
corrupt the yaml on disk before failing. main also has no config/splat.main.yaml (it is
splat.us.exe.yaml), which is the FileNotFoundError seen on every main jtbl target.

Refuse loudly rather than corrupt quietly (R43). Lift only after parse_config is hardened
and proven on two examples.

Also: gate() stages into a per-run dir (a killed gate's 3,186 stale drafts survived into the
next gate of the same tag and poisoned every group); reloc_filter no longer treats
NOT-A-STUB as a pass (it means ALREADY BANKED — wave an staged 480 of them over source that
already byte-matches).

Designs recorded: docs/tool-designs/jtbl-island-split.md (ox) and -review.md (Fable):
14 CONFIRMED / 8 WRONG / 1 UNVERIFIABLE, verdict GO-WITH-CHANGES, and the correct fix is
SMALLER than proposed — one inserted .rodata carve line + jr_isolate_all.py --only, no _pre
piece and no ld_interleave leading mode.
2026-08-24 01:00:59 -06:00
Drew T 3425963519 feat(decomp): ox wave ao overlays — 66 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 00:38:19 -06:00
Drew T 0b7f0a2b46 feat(decomp): ox wave an — 0 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\n 2026-08-24 00:32:28 -06:00
Drew T e05dc116be chore(phase-31): S58 crash-recovery checkpoint + autonomous lane architecture
CURRENT_PHASE.md gains a CRASH-RECOVERY checkpoint (not a fresh-session handoff): what is
running, restart order, the measured fleet/scaling facts, the fixes that must not regress,
and the ordered work queue.

Lanes: drafter (never stop it), gater (restartable), maintenance (free A-prop sibling lane),
stallguard (60s auto-repair). Drafting holds no lock; one narrow draw-vs-gate lock exists
because build_wave_atlas reads corpus.stubs and misreads substituted drafts mid-gate.

main is off the wave critical path — 157 drafts parked to .run/main_queue/ rather than
stalling the gater for another hour on a bisecting whole-EXE rebuild.

api_agent: 5xx retried like 429 (a 502 was abandoning functions at near-19), HTTP_TIMEOUT
420s not 1800 (a hung request parked an agent 30 min), EXTRA_READABLE for tooling briefs,
and bare-directory paths no longer refused against their own granted root.
2026-08-24 00:24:11 -06:00
Drew T a13fd38ee1 feat(decomp): ox wave an overlays — 421 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-23 23:05:05 -06:00
Drew T 7d4ab202b7 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-23 22:52:37 -06:00
Drew T 9adeed39f6 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted.
2026-08-23 14:10:25 -06:00
Drew T 8fe3918682 feat(decomp): ox wave aj overlays — 61 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-23 13:45:26 -06:00
Drew T e7ebb1cd45 docs+rules(S58): R42 commit-banked-work-immediately, R43 refuse-unsupported-input
R42: gate_main reverted 61 byte-proven overlay banks it could not distinguish from its own
substitution (sweep_parallel gates commit=False by design). Fixed by committing overlay banks
before the main batch, chunking main at 8 to bound bisect cost, and replacing every blind
'git checkout -- src/ config/' with commit-or-refuse in ox_campaign and idiom_serial.

R43: sweep_parallel had an explicit branch admitting main, which cannot be gated incrementally
— wave ab banked 0/105 main cards while its non-main cards banked 94/115 (82%), and the wave
read as a drafting failure. sweep_parallel now refuses main and names gate_main.py.

Also: validate_targets now prefers the card's own addr field (named symbols like SYS_OBJ_F00
were MALFORMED and discarded whole 220-card waves); ox_campaign deals model lanes by
smallest-ratio scheduling (a 73-card wave had put 73 shards on ox and 0 on deepseek);
docs/accelerators.md gains the four vacuous-check defects.
2026-08-23 12:59:59 -06:00
Drew T 7274e0026c docs(cookbook): §207-§232 — 26 sections harvested from waves ab..ag
278 novel-idiom candidates extracted by tools/idiom_harvest.py from 1,004 drafting notes,
restricted to functions the WHOLE-BINARY BYTE-GATE banked (banked-ness derived from
corpus.stubs, not from match_one, whose relocation masking would admit lessons drawn from
functions we never actually reproduced).

26 new sections (§207 is the harvest header + discard ledger, §208-§232 the laws), 6 folded
as addenda to existing sections (§30, §194-B, §176-B, §165-40, §164-63, §193-A/§194-E).
~200 candidates discarded or merged — 103 of them self-reported 'nothing the cookbook did
not already cover', which is the knowledge base doing its job.

§209 CORRECTS existing guidance: §194-B's 'needs >=2 sh stores' bound is byte-wrong
(func_801A8738 has one sb and still needs the s16 declaration). Insertions only; the
existing file is byte-identical by prefix md5.
2026-08-23 10:52:33 -06:00
Drew T af016a6604 feat(decomp): ox wave ah — 64 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017DD24 func_8017F9FC func_8017EAB0 func_80180518 func_80180818 func_80180958 func_8017EA2C func_8017F444 func_8017F600 func_8017DDF8 func_8017E014 func_8017E524 func_8017EB2C func_8017EDAC func_80180650 func_801845EC func_801874BC func_8017D3BC func_8017D68C func_8017DBD4 func_8017E438 func_8017EF48 func_800CCB78 func_800CCDC8 func_800CCFDC func_800CD708 func_8017DB6C func_8017F264 func_8017F33C func_8017F9F4 func_801804F8 func_80180828 func_80181E80 func_80181FB8 func_8017F894 func_8017E998 func_80183768 func_80185FB4 func_80188FA4 func_8017DB70 … 2026-08-23 10:50:25 -06:00
Drew T 28d1160ef9 feat(decomp): ox wave ag — 161 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017EF88 func_8017F1A4 func_8017F590 func_8017FA2C func_8017FC50 func_8017FDB4 func_80180250 func_80180904 func_80180B44 func_80180E94 func_80181598 func_801817D8 func_801818EC func_80182360 func_80182580 func_80182958 func_80183154 func_801831B4 func_80183214 func_80183600 func_80183878 func_80183928 func_80183968 func_801844B0 func_80184B18 func_80184D34 func_80185378 func_80185D08 func_80185F38 func_80186CE4 func_80186D90 func_80186F9C func_801870B8 func_8018723C func_8017DE5C func_8017E454 func_8017E4F8 func_8017F118 func_8017F244 func_8017F748 … 2026-08-23 10:20:17 -06:00
Drew T c3d074253d feat(decomp): ox wave af — 57 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8018066C func_80180B28 func_801A6BC0 func_801A6CA8 func_801A7200 func_801A7F84 func_801A8990 func_801A900C func_801AA210 func_801AA3CC func_801AACD4 func_801ABFF8 func_801AC47C func_801ACC24 func_801AE138 func_801AE520 func_8017EEDC func_80181414 func_80182698 func_80184230 func_80184A40 func_80186D84 func_8018753C func_80187C28 func_80187D48 func_80188DC0 func_8018A878 func_8018A960 func_8018AA58 func_8017FB8C func_8017FED0 func_801809B8 func_80181760 func_8017E408 func_8017E934 func_8017F0A4 func_8017FB74 func_801804C0 func_801805AC func_8018130C … 2026-08-23 09:03:28 -06:00
Drew T 4bfb94cc8e feat(decomp): ox wave ae — 177 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017D684 func_8017DAA8 func_8017DF5C func_8017E1D8 func_8017E400 func_8017E424 func_8017E568 func_8017E59C func_8017E5C0 func_8017ED18 func_8017EE90 func_8017EF34 func_8017FBA0 func_801800A4 func_801800F4 func_80180580 func_801805C4 func_80180730 func_80180A48 func_80180B38 func_80180C6C func_80180CE8 func_80180D5C func_80180E74 func_80180EC8 func_80180F38 func_80181280 func_80181384 func_801813A8 func_801813CC func_8018141C func_8018144C func_80181470 func_80181494 func_80181730 func_801817D0 func_80181960 func_80181AA8 func_80181B28 func_80181DFC … 2026-08-23 07:09:48 -06:00
Drew T 8629bdba75 feat(decomp): ox wave ad — 186 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017F7E4 func_8017F8A0 func_8017FA44 func_8017FADC func_8017FDC0 func_801802B8 func_80181374 func_801830B0 func_801843D8 func_801843FC func_80184E3C func_80185028 func_8018509C func_8018558C func_80185D34 func_80186838 func_80186A88 func_80186B0C func_80186C98 func_80186E60 func_80186F04 func_801871EC func_80187688 func_80187860 func_801878A8 func_80187954 func_80187EEC func_80188034 func_801880AC func_801883E4 func_8018854C func_8018870C func_80188950 func_80188BEC func_80188CAC func_80188D14 func_80188EC0 func_8018A800 func_8018AB7C func_8018ABC4 … 2026-08-23 05:47:07 -06:00
Drew T b5724e07e2 feat(decomp): ox wave ac — 170 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_801A03A4 func_801A0C58 func_801A108C func_801A115C func_801A2330 func_801A2364 func_801A2C88 func_801A3A6C func_801A3B08 func_801A3EEC func_801A3F10 func_801A4328 func_801A43EC func_801A445C func_801A46B8 func_801A46D4 func_801A46F0 func_801A4A18 func_801A4FDC func_801A5654 func_801A5798 func_801A5CE8 func_801A6330 func_801A6428 func_801A64DC func_801A6560 func_801A6DF4 func_801A6E78 func_801A6F3C func_801A70D0 func_801A7808 func_801A7864 func_801A7AF8 func_801A7C34 func_801A7C58 func_801A7CDC func_801A7D18 func_801A8494 func_801A8528 func_801A86F8 … 2026-08-23 05:43:33 -06:00
Drew T a572979857 feat(decomp): ox wave ab — 94 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_80181F04 func_80181F70 func_80181FA8 func_801821C8 func_801827A8 func_80182810 func_80182E04 func_80182F78 func_80182FAC func_8018300C func_80183174 func_801831A4 func_801834C8 func_80183C7C func_801840E8 func_801844D4 func_80184C20 func_80184CA4 func_80184E30 func_801853CC func_8018548C func_80185D6C func_80185D84 func_80185E54 func_801860F4 func_80186144 func_80186C70 func_80186CA8 func_80186D74 func_801871E4 func_80187348 func_80187508 func_801876B0 func_801877FC func_80187A8C func_80187B0C func_80187C14 func_80187D0C func_80187D4C func_80187DCC … 2026-08-23 05:39:57 -06:00
Drew T 5d8d497c48 feat(decomp): free A-prop remap lane — 390 banked, zero model tokens
aprop_autodraft over regenerated A-prop cards (582 mechanical drafts), reloc_identity
pre-filter (509/582 AGREE), sweep_parallel gate across 107 binaries in 54m35s.
Result: 390 banked of 511 gated (76.3%).

This lane was invisible until the atlas KeyError fix earlier this session: member_lever
emitted the confidence value 'aprop-pure' that _CONF_RANK never contained, so atlas.py
died on the first group carrying such a vote and could not produce an atlas at all.
With it fixed the remap lever shows 235 groups / 812 instances / 46,240 instructions.
2026-08-23 02:27:15 -06:00
Drew T 4253fbe973 feat(decomp): S58 fueled batch-10 — 9 banked via sweep_parallel (7 binaries, 53s)
DeepSeek card-fueled drafts from .run/bakeoff/ds-fuel{A,B}. reloc_identity AGREE 10/10
pre-gate; whole-binary gate banked 9/10 (func_8017F468 @ ov_SC02_021 held back).
Parallel gate farm (tools/sweep_parallel.py -j 8) instead of the serial gate_lane:
7 binaries in 53s vs ~25min for the 19-binary serial sub-50 run.
2026-08-23 00:55:54 -06:00
Drew T ad19417f50 feat(decomp): worker gate — +1 fns x0 propagated (fleet 96.1%) 2026-08-23 00:47:46 -06:00
Drew T 1a4ac3583c feat(decomp): worker gate — +1 fns x0 propagated (fleet 96.1%) 2026-08-23 00:46:50 -06:00
Drew T bc3c8a9815 feat(decomp): worker gate — +1 fns x0 propagated (fleet 96.1%) 2026-08-23 00:45:54 -06:00