mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 23:00:29 -04:00
e92ba14028
C, unblocked by B's declaration conform. 23/23/16 banked across ov_SC03_107, ov_MAIN_012, ov_SC02_037 — the first non-zero result on this population (S46 got 0/142, then 0/129). R22 clean-fleet: check-all 213 passed / 0 failed of 213. tools-health OK. dedup-check 1949 validated / 0 failed, C1 coverage 249295 (= 249233 + 62, independent confirmation of the count). Fleet 93.9% instr / 87.2% distinct / 95.72% fn-count. THE TOOL REPORTED "BANKED 0 / 129" AND WAS WRONG. gate_stage's ladder hands the same --verified-out path to harvest_verify on every rung, and each rung opens it for write: stage 0 banked 23 and wrote them, then a later rung that banked nothing truncated the file to 1 byte. The in-memory list uses += and stayed correct, which is why the JSON verdict listed all 23 names while the file said nothing. dedup_extend read the file, printed BANKED 0, and took its `if not banked:` branch — skipping add_members_surgical, so the registry was missing 62 memberships for functions already spliced in and byte-verified. - Registry repaired by deriving the banked set from git diff (+DEFINE_func_*), not from the broken file. Post-check: 0 missing. - ensure_include_revert did NOT fire (added_include False, include already present) — the P29-S19 defect that once stripped a load-bearing include from 135 binaries stayed closed. - gate_stage now writes verified_out once at the end from the accumulated truth. Caught only because bank truth is derived from source (§55b), never from the gate report. Residue (67) is consistent with the symbols B deliberately left: memcpy 17, ApplyMatrixSV 12, gte_SetRotMatrix 4, plus 21 CC1-FAIL and 3 DIFF. Not separated: how much of the 62 is B's conform vs the ladder's own recovery rungs.