mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-07 17:31:49 -04:00
c55ad64614
Wave 6 (wf_9729fd89-c16, 76 agents, 6.7M tok): 40 targets -> 35 agent-MATCH, 1 refuted, 0 UNVERIFIED (the new field works), 4 NEAR -> 24 BANKED. *** THE FINDING OF THE CAMPAIGN, and it is not a compiler idiom *** func_8017F2D4 had been "MATCH standalone / DIFF at gate" SEVEN times across five waves. Every attempt hunted codegen. The body was byte-correct the whole time. The fault was that the prior notes named the WRONG DESTINATION TU: ..._jr_8017C340.c holds only a CALLER and a prototype; the INCLUDE_ASM lives in ..._jr_8017ED5C.c. Splicing into the wrong file is a no-op, the binary differs, and harvest recorded its canned string "match_one MATCH but gate rejected (declaration/TU plumbing)" — A GUESS, NOT A MEASUREMENT. No declaration conflict ever existed. NEW LAW (zero-cost oracle): THE SPLAT ASM SUBDIR NAMES THE DESTINATION TU. asm/<overlay>/nonmatchings/<TU_basename>/<fn>.s => the INCLUDE_ASM is in src/<overlay>/<TU_basename>.c, always — the third path component IS the TU stem. Never accept a prose TU citation that disagrees with the --asm-subdir you were handed: a grep for the function name also hits callers and prototypes in OTHER TUs and reads exactly like a destination hit. Corollary: re-derive the TU path from the asm subdir BEFORE hunting codegen on any gate-refused backlog entry. The agent proved it properly: in-situ splice into BOTH TUs, full pinned triple, 279/279 with 0 masked diffs, plus a collateral-drift check (71/71 other sized symbols byte-identical). It also corrected the reach to x2 (only two .s files for that function exist, byte-identical modulo the overlay name). Bank rate across six waves: 67% -> 79% -> 69% -> 68% -> 73% -> 60%.