Files
BFM-decomp/docs/progress.fleet.md
T
Drew T bb65d36341 fix(phase-26a): A1 — dedup_integrate was a gate that could print a FALSE GREEN
The audit's priority #1: a fail-closed byte-honesty validator whose silent skips nothing
downstream can catch. Three false-green paths, all measured, all now fail-closed with
negative controls.

R33 FIRST (derive, don't re-derive). The registry makes two claims; the tool only ever
checked one, and mis-described that one:
  C1 EQUIVALENCE ("these vrams hold the same code in the ORIGINAL") — checked against the
     sigs, which sign the ORIGINAL bytes. KEPT. But the docstring claimed it also caught
     SOURCE drift: it cannot. A sig is a property of the ROM, immutable w.r.t. src/. Source
     drift is caught by the BUILD. Docstring corrected (P9).
  C2 BANK ("matched once in the source header, instantiated at every member") — NEVER
     CHECKED. Now DERIVED from the build invariant: INCLUDE_ASM pastes the ORIGINAL asm, so
     a member NOT wrapped in it is byte-exact, and one that IS wrapped is not banked —
     whatever the registry says. C2a: the group's macro token must occur in its source file.
     C2b: no member may still be an INCLUDE_ASM stub.

THE THREE FALSE GREENS
 1. 1808 groups claimed a DEFINE_func_* macro; only 1801 exist. The 7 ghosts printed [ OK ] —
    hiding 532 member-instances / 22,344 instructions of REAL, UNBANKED work (4 fns matched in
    ov_SC01_077, still INCLUDE_ASM in the other 133 overlays).
 2. An absent .run/sig.<bin>.jsonl degraded to "0 validated, 0 failed" and EXIT 0. On a fresh
    clone the gate validated NOTHING and passed. Now fails; --allow-unsigned is the escape.
 3. The bank claim was never checked at all.

THE CAUSAL CHAIN (the audit's thesis in one example). 3 of the 4 hidden fns are defined in
ov_SC01_077_jr_8012ACE0.c — a _jr_* split file. dedup_propagate.overlay_files allowlists only
("_a","_o0","_o0b","_after"), so the propagator could not SEE them; the group was registered
anyway; dedup_integrate greenlit the lie. TWO silent-skip bugs compounding: one created the
hole, the other hid it. Harvest fuel -> .run/audit/a1_harvest_fuel.json, banked in A5.

BLAST RADIUS, MEASURED NOT PREDICTED (R14). Headline metrics UNCHANGED to the decimal
(instr-weighted 66.5%, distinct-code 46.8%) — weighted_metrics() derives from the invariant and
was structurally immune to the lying registry. FLEET REAL substantive unchanged (282,466):
progress.py had already been taught to distrust it (commit:0574). Only dedup_integrate still
believed it. A null result that CONFIRMS R33: the tool that refused to re-derive was the one
that was right.

- registry repaired: 1813 -> 1806 groups (7 ghosts removed; instances 223,725 -> 222,787)
- make report GREEN end-to-end: 1806 validated, 0 failed | C1 coverage 222,787/222,787 signed
- negative controls: stubbed member -> exit 1; missing sig -> exit 1; --allow-unsigned -> exit 0
- report-only tool: no compiled artifact depends on it, so no R22 clean-fleet is owed here
2026-07-14 02:50:28 -06:00

155 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
# 136 binaries: main + resident + 134 location overlays. DETERMINISTIC,
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 283995 / 343774 = 82.61% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 8448285 / 12707182 = 66.5% (shipped .text across resident+134 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 2530637 / 5410077 = 46.8% (51834/84996 unique fns; the DISTINCT-RE number; main EXE not sig'd)
FLEET REAL substantive : 282466 (of which dedup-shared 222743 via 1806 groups / 222787 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 59772
FLEET matchable : 343774
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---:|---:|---:|---:|---:|---:|
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
| ov_SC01_000 | 2081 | 1665 | 0 | 2081 | 2403 | 86.6% |
| ov_SC01_001 | 2085 | 1665 | 0 | 2087 | 2467 | 84.6% |
| ov_SC01_004 | 2077 | 1656 | 0 | 2078 | 2414 | 86.1% |
| ov_SC01_005 | 2103 | 1678 | 0 | 2103 | 2504 | 84.0% |
| ov_SC01_006 | 2103 | 1678 | 0 | 2103 | 2504 | 84.0% |
| ov_SC01_008 | 2076 | 1656 | 0 | 2078 | 2426 | 85.7% |
| ov_SC01_009 | 2097 | 1657 | 0 | 2098 | 2508 | 83.7% |
| ov_SC01_074 | 2081 | 1657 | 0 | 2083 | 2425 | 85.9% |
| ov_SC01_077 | 2320 | 1624 | 0 | 2322 | 2586 | 89.8% |
| ov_SC01_080 | 2113 | 1660 | 0 | 2113 | 2513 | 84.1% |
| ov_SC01_084 | 2120 | 1660 | 0 | 2125 | 2579 | 82.4% |
| ov_SC02_000 | 2166 | 1695 | 0 | 2166 | 2684 | 80.7% |
| ov_SC02_003 | 2166 | 1695 | 0 | 2166 | 2684 | 80.7% |
| ov_SC02_004 | 2082 | 1660 | 0 | 2082 | 2401 | 86.7% |
| ov_SC02_005 | 2183 | 1656 | 0 | 2193 | 2928 | 74.9% |
| ov_SC02_011 | 2188 | 1663 | 0 | 2199 | 2894 | 76.0% |
| ov_SC02_015 | 2087 | 1662 | 0 | 2087 | 2414 | 86.5% |
| ov_SC02_016 | 2112 | 1662 | 0 | 2115 | 2546 | 83.1% |
| ov_SC02_017 | 2155 | 1662 | 0 | 2163 | 2733 | 79.1% |
| ov_SC02_021 | 2093 | 1662 | 0 | 2093 | 2437 | 85.9% |
| ov_SC02_026 | 2102 | 1660 | 0 | 2108 | 2573 | 81.9% |
| ov_SC02_027 | 2127 | 1660 | 0 | 2136 | 2693 | 79.3% |
| ov_SC02_028 | 2128 | 1660 | 0 | 2138 | 2702 | 79.1% |
| ov_SC02_031 | 2116 | 1661 | 0 | 2121 | 2563 | 82.8% |
| ov_SC02_035 | 2093 | 1660 | 0 | 2096 | 2521 | 83.1% |
| ov_SC02_039 | 2077 | 1660 | 0 | 2077 | 2416 | 86.0% |
| ov_SC02_041 | 2104 | 1660 | 0 | 2107 | 2561 | 82.3% |
| ov_SC03_001 | 2209 | 1661 | 0 | 2226 | 2870 | 77.6% |
| ov_SC03_002 | 2139 | 1665 | 0 | 2154 | 2632 | 81.8% |
| ov_SC03_003 | 2082 | 1660 | 0 | 2083 | 2423 | 86.0% |
| ov_SC03_006 | 2149 | 1666 | 0 | 2158 | 2768 | 78.0% |
| ov_SC03_007 | 2129 | 1660 | 0 | 2133 | 2624 | 81.3% |
| ov_SC03_010 | 2092 | 1660 | 0 | 2092 | 2470 | 84.7% |
| ov_SC03_011 | 2096 | 1660 | 0 | 2102 | 2528 | 83.1% |
| ov_SC03_012 | 2076 | 1660 | 0 | 2077 | 2406 | 86.3% |
| ov_SC03_013 | 2093 | 1660 | 0 | 2093 | 2493 | 84.0% |
| ov_SC03_014 | 2141 | 1685 | 0 | 2141 | 2686 | 79.7% |
| ov_SC03_015 | 2144 | 1685 | 0 | 2144 | 2686 | 79.8% |
| ov_SC03_023 | 2082 | 1660 | 0 | 2083 | 2435 | 85.5% |
| ov_SC03_024 | 2136 | 1665 | 0 | 2143 | 2642 | 81.1% |
| ov_SC03_028 | 2119 | 1660 | 0 | 2123 | 2665 | 79.7% |
| ov_SC03_029 | 2120 | 1662 | 0 | 2130 | 2645 | 80.5% |
| ov_SC03_030 | 2098 | 1664 | 0 | 2100 | 2496 | 84.1% |
| ov_SC03_031 | 2093 | 1660 | 0 | 2097 | 2515 | 83.4% |
| ov_SC03_089 | 2110 | 1660 | 0 | 2117 | 2582 | 82.0% |
| ov_SC03_090 | 2112 | 1660 | 0 | 2120 | 2626 | 80.7% |
| ov_SC03_091 | 2113 | 1660 | 0 | 2121 | 2641 | 80.3% |
| ov_SC03_092 | 2119 | 1660 | 0 | 2131 | 2588 | 82.3% |
| ov_SC03_093 | 2100 | 1660 | 0 | 2104 | 2564 | 82.1% |
| ov_SC03_094 | 2095 | 1660 | 0 | 2101 | 2577 | 81.5% |
| ov_SC03_095 | 2086 | 1660 | 0 | 2089 | 2475 | 84.4% |
| ov_SC03_096 | 2086 | 1660 | 0 | 2089 | 2466 | 84.7% |
| ov_SC03_097 | 2109 | 1660 | 0 | 2116 | 2604 | 81.3% |
| ov_SC03_098 | 2093 | 1660 | 0 | 2096 | 2542 | 82.5% |
| ov_SC03_099 | 2087 | 1660 | 0 | 2090 | 2505 | 83.4% |
| ov_SC03_100 | 2094 | 1660 | 0 | 2098 | 2540 | 82.6% |
| ov_SC03_101 | 2095 | 1660 | 0 | 2099 | 2529 | 83.0% |
| ov_SC03_102 | 2090 | 1660 | 0 | 2093 | 2493 | 84.0% |
| ov_SC03_103 | 2093 | 1662 | 0 | 2096 | 2511 | 83.5% |
| ov_SC03_104 | 2113 | 1660 | 0 | 2120 | 2617 | 81.0% |
| ov_SC03_105 | 2107 | 1660 | 0 | 2114 | 2598 | 81.4% |
| ov_SC03_108 | 2079 | 1660 | 0 | 2079 | 2444 | 85.1% |
| ov_SC03_109 | 2080 | 1660 | 0 | 2082 | 2424 | 85.9% |
| ov_SC03_110 | 2085 | 1660 | 0 | 2085 | 2469 | 84.4% |
| ov_SC03_111 | 2093 | 1660 | 0 | 2096 | 2511 | 83.5% |
| ov_SC03_112 | 2091 | 1662 | 0 | 2093 | 2527 | 82.8% |
| ov_SC03_113 | 2085 | 1662 | 0 | 2088 | 2469 | 84.6% |
| ov_SC03_114 | 2075 | 1660 | 0 | 2077 | 2415 | 86.0% |
| ov_SC03_115 | 2089 | 1660 | 0 | 2091 | 2473 | 84.6% |
| ov_SC03_116 | 2083 | 1660 | 0 | 2086 | 2439 | 85.5% |
| ov_SC03_117 | 2101 | 1660 | 0 | 2107 | 2558 | 82.4% |
| ov_SC03_118 | 2144 | 1684 | 0 | 2145 | 2686 | 79.9% |
| ov_SC03_119 | 2141 | 1684 | 0 | 2142 | 2686 | 79.7% |
| ov_SC03_121 | 2086 | 1660 | 0 | 2089 | 2460 | 84.9% |
| ov_SC03_124 | 2158 | 1656 | 0 | 2178 | 2742 | 79.4% |
| ov_SC03_125 | 2121 | 1660 | 0 | 2133 | 2589 | 82.4% |
| ov_SC03_126 | 2083 | 1662 | 0 | 2083 | 2423 | 86.0% |
| ov_SC04_000 | 2100 | 1664 | 0 | 2109 | 2547 | 82.8% |
| ov_SC04_002 | 2114 | 1660 | 0 | 2118 | 2637 | 80.3% |
| ov_SC04_003 | 2092 | 1660 | 0 | 2096 | 2503 | 83.7% |
| ov_SC04_004 | 2106 | 1660 | 0 | 2108 | 2559 | 82.4% |
| ov_SC04_005 | 2107 | 1660 | 0 | 2113 | 2613 | 80.9% |
| ov_SC04_006 | 2083 | 1660 | 0 | 2085 | 2454 | 85.0% |
| ov_SC04_007 | 2102 | 1660 | 0 | 2106 | 2570 | 81.9% |
| ov_SC04_008 | 2078 | 1660 | 0 | 2078 | 2415 | 86.0% |
| ov_SC04_009 | 2087 | 1660 | 0 | 2090 | 2441 | 85.6% |
| ov_SC04_010 | 2083 | 1660 | 0 | 2084 | 2419 | 86.2% |
| ov_SC04_011 | 2133 | 1660 | 0 | 2139 | 2804 | 76.3% |
| ov_SC04_012 | 2081 | 1660 | 0 | 2082 | 2420 | 86.0% |
| ov_SC04_015 | 2141 | 1661 | 0 | 2152 | 2612 | 82.4% |
| ov_SC04_016 | 2080 | 1660 | 0 | 2082 | 2440 | 85.3% |
| ov_SC04_018 | 2187 | 1695 | 0 | 2187 | 2858 | 76.5% |
| ov_SC04_019 | 2193 | 1695 | 0 | 2193 | 2858 | 76.7% |
| ov_SC04_020 | 2110 | 1660 | 0 | 2122 | 2568 | 82.6% |
| ov_SC04_021 | 2082 | 1662 | 0 | 2082 | 2423 | 85.9% |
| ov_SC05_000 | 2086 | 1664 | 0 | 2089 | 2422 | 86.3% |
| ov_SC05_001 | 2102 | 1660 | 0 | 2107 | 2575 | 81.8% |
| ov_SC05_002 | 2085 | 1660 | 0 | 2088 | 2443 | 85.5% |
| ov_SC05_003 | 2085 | 1660 | 0 | 2086 | 2482 | 84.0% |
| ov_SC05_004 | 2082 | 1660 | 0 | 2084 | 2465 | 84.5% |
| ov_SC05_005 | 2087 | 1660 | 0 | 2088 | 2492 | 83.8% |
| ov_SC05_006 | 2081 | 1660 | 0 | 2081 | 2430 | 85.6% |
| ov_SC05_007 | 2088 | 1660 | 0 | 2093 | 2483 | 84.3% |
| ov_SC05_008 | 2107 | 1660 | 0 | 2109 | 2544 | 82.9% |
| ov_SC05_009 | 2082 | 1660 | 0 | 2086 | 2438 | 85.6% |
| ov_SC05_010 | 2107 | 1660 | 0 | 2111 | 2589 | 81.5% |
| ov_SC05_011 | 2084 | 1660 | 0 | 2085 | 2409 | 86.6% |
| ov_SC05_017 | 2183 | 1657 | 0 | 2194 | 2843 | 77.2% |
| ov_SC05_018 | 2133 | 1660 | 0 | 2146 | 2674 | 80.3% |
| ov_SC05_019 | 2082 | 1662 | 0 | 2082 | 2423 | 85.9% |
| ov_SC06_000 | 2142 | 1669 | 0 | 2145 | 2692 | 79.7% |
| ov_SC06_006 | 2091 | 1660 | 0 | 2092 | 2512 | 83.3% |
| ov_SC06_008 | 2107 | 1662 | 0 | 2113 | 2542 | 83.1% |
| ov_SC06_010 | 2093 | 1660 | 0 | 2098 | 2518 | 83.3% |
| ov_SC06_011 | 2091 | 1660 | 0 | 2095 | 2469 | 84.9% |
| ov_SC06_013 | 2084 | 1660 | 0 | 2085 | 2425 | 86.0% |
| ov_SC06_014 | 2088 | 1660 | 0 | 2090 | 2453 | 85.2% |
| ov_SC06_015 | 2085 | 1660 | 0 | 2085 | 2421 | 86.1% |
| ov_SC06_016 | 2103 | 1660 | 0 | 2105 | 2550 | 82.5% |
| ov_SC06_018 | 2101 | 1663 | 0 | 2108 | 2666 | 79.1% |
| ov_SC06_020 | 2091 | 1662 | 0 | 2092 | 2519 | 83.0% |
| ov_SC06_022 | 2107 | 1660 | 0 | 2115 | 2643 | 80.0% |
| ov_SC06_024 | 2113 | 1660 | 0 | 2119 | 2668 | 79.4% |
| ov_SC06_025 | 2100 | 1660 | 0 | 2105 | 2573 | 81.8% |
| ov_SC06_027 | 2075 | 1660 | 0 | 2076 | 2408 | 86.2% |
| ov_SC06_029 | 2128 | 1660 | 0 | 2140 | 2663 | 80.4% |
| ov_SC06_030 | 2086 | 1660 | 0 | 2086 | 2457 | 84.9% |
| ov_SC06_032 | 2097 | 1661 | 0 | 2104 | 2659 | 79.1% |
| ov_SC06_033 | 2101 | 1661 | 0 | 2108 | 2632 | 80.1% |
| ov_SC07_000 | 2100 | 1664 | 0 | 2102 | 2522 | 83.3% |
| ov_SC07_001 | 2087 | 1660 | 0 | 2089 | 2455 | 85.1% |
| ov_SC07_002 | 2104 | 1660 | 0 | 2108 | 2580 | 81.7% |
| ov_SC07_008 | 2071 | 1660 | 0 | 2071 | 2386 | 86.8% |
| ov_SC07_009 | 2082 | 1660 | 0 | 2084 | 2430 | 85.8% |