fix(api_agent): prior_draft accepts a warm-start body only when its symbols overlap the target .s (law 1c) — 22/60 T4 agents had received another overlay's same-named function; fleet ledger regenerated (2,380 stubs) (P31 S62)

This commit is contained in:
Drew T
2026-08-26 19:02:07 -06:00
parent 6a64eee98f
commit 5962bb70ed
2 changed files with 43 additions and 25 deletions
+22 -22
View File
@@ -4,16 +4,16 @@
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 360584 / 362984 = 99.34% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 13317257 / 13523865 = 98.5% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5664904 / 5851972 = 96.8% (89066/90929 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 360601 / 362984 = 99.34% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 13318444 / 13523865 = 98.5% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5666091 / 5851972 = 96.8% (89083/90929 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 31341 / 79510 = 39.4% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13285916 / 13444355 = 98.8%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13287103 / 13444355 = 98.8%)
FLEET REAL substantive : 358412 (of which dedup-shared 254655 via 2165 groups / 254731 instances)
FLEET REAL substantive : 358429 (of which dedup-shared 254655 via 2165 groups / 254731 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 3 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 2397
FLEET INCLUDE_ASM stubs : 2380
FLEET matchable : 362984
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
@@ -26,11 +26,11 @@ FLEET matchable : 362984
| md_MAIN_011 | 17 | 0 | 0 | 18 | 21 | 85.7% |
| md_MAIN_013 | 11 | 0 | 0 | 11 | 16 | 68.8% |
| md_MAIN_014 | 11 | 0 | 0 | 12 | 13 | 92.3% |
| md_MAIN_015 | 18 | 0 | 0 | 18 | 20 | 90.0% |
| md_MAIN_015 | 19 | 0 | 0 | 19 | 20 | 95.0% |
| md_MAIN_016 | 8 | 0 | 0 | 9 | 13 | 69.2% |
| md_MAIN_017 | 6 | 0 | 0 | 6 | 10 | 60.0% |
| md_MAIN_018 | 8 | 0 | 0 | 9 | 11 | 81.8% |
| md_MAIN_019 | 21 | 0 | 0 | 21 | 22 | 95.5% |
| md_MAIN_019 | 22 | 0 | 0 | 22 | 22 | 100.0% |
| md_MAIN_020 | 10 | 0 | 0 | 11 | 13 | 84.6% |
| md_MAIN_021 | 7 | 0 | 0 | 8 | 11 | 72.7% |
| md_MAIN_022 | 31 | 0 | 0 | 33 | 33 | 100.0% |
@@ -95,7 +95,7 @@ FLEET matchable : 362984
| ov_SC01_001 | 2440 | 1811 | 0 | 2442 | 2465 | 99.1% |
| ov_SC01_004 | 2410 | 1802 | 0 | 2411 | 2414 | 99.9% |
| ov_SC01_005 | 2480 | 1833 | 0 | 2480 | 2503 | 99.1% |
| ov_SC01_006 | 2471 | 1833 | 0 | 2471 | 2503 | 98.7% |
| ov_SC01_006 | 2472 | 1833 | 0 | 2472 | 2503 | 98.8% |
| ov_SC01_008 | 2415 | 1803 | 0 | 2417 | 2426 | 99.6% |
| ov_SC01_009 | 2475 | 1803 | 0 | 2476 | 2507 | 98.8% |
| ov_SC01_074 | 2420 | 1803 | 0 | 2422 | 2426 | 99.8% |
@@ -112,11 +112,11 @@ FLEET matchable : 362984
| ov_SC02_017 | 2696 | 1810 | 0 | 2704 | 2732 | 99.0% |
| ov_SC02_021 | 2430 | 1808 | 0 | 2430 | 2437 | 99.7% |
| ov_SC02_026 | 2559 | 1807 | 0 | 2565 | 2572 | 99.7% |
| ov_SC02_027 | 2666 | 1828 | 0 | 2675 | 2692 | 99.4% |
| ov_SC02_028 | 2682 | 1827 | 0 | 2692 | 2701 | 99.7% |
| ov_SC02_031 | 2538 | 1809 | 0 | 2543 | 2562 | 99.3% |
| ov_SC02_027 | 2667 | 1828 | 0 | 2676 | 2692 | 99.4% |
| ov_SC02_028 | 2683 | 1827 | 0 | 2693 | 2701 | 99.7% |
| ov_SC02_031 | 2540 | 1809 | 0 | 2545 | 2562 | 99.3% |
| ov_SC02_035 | 2511 | 1806 | 0 | 2514 | 2520 | 99.8% |
| ov_SC02_037 | 2399 | 1704 | 0 | 2481 | 2516 | 98.6% |
| ov_SC02_037 | 2400 | 1704 | 0 | 2482 | 2516 | 98.6% |
| ov_SC02_039 | 2410 | 1807 | 0 | 2410 | 2416 | 99.8% |
| ov_SC02_041 | 2553 | 1806 | 0 | 2556 | 2561 | 99.8% |
| ov_SC03_001 | 2826 | 1807 | 0 | 2843 | 2869 | 99.1% |
@@ -125,14 +125,14 @@ FLEET matchable : 362984
| ov_SC03_006 | 2744 | 1814 | 0 | 2753 | 2767 | 99.5% |
| ov_SC03_007 | 2602 | 1806 | 0 | 2606 | 2623 | 99.4% |
| ov_SC03_010 | 2459 | 1807 | 0 | 2459 | 2471 | 99.5% |
| ov_SC03_011 | 2498 | 1807 | 0 | 2504 | 2527 | 99.1% |
| ov_SC03_011 | 2499 | 1807 | 0 | 2505 | 2527 | 99.1% |
| ov_SC03_012 | 2401 | 1806 | 0 | 2402 | 2406 | 99.8% |
| ov_SC03_013 | 2476 | 1807 | 0 | 2476 | 2493 | 99.3% |
| ov_SC03_014 | 2667 | 1855 | 0 | 2667 | 2685 | 99.3% |
| ov_SC03_015 | 2443 | 1855 | 0 | 2443 | 2468 | 99.0% |
| ov_SC03_023 | 2431 | 1806 | 0 | 2432 | 2435 | 99.9% |
| ov_SC03_024 | 2606 | 1813 | 0 | 2613 | 2641 | 98.9% |
| ov_SC03_028 | 2635 | 1807 | 0 | 2639 | 2664 | 99.1% |
| ov_SC03_028 | 2636 | 1807 | 0 | 2640 | 2664 | 99.1% |
| ov_SC03_029 | 2615 | 1810 | 0 | 2625 | 2644 | 99.3% |
| ov_SC03_030 | 2475 | 1811 | 0 | 2477 | 2495 | 99.3% |
| ov_SC03_031 | 2499 | 1808 | 0 | 2502 | 2514 | 99.5% |
@@ -160,14 +160,14 @@ FLEET matchable : 362984
| ov_SC03_111 | 2499 | 1806 | 0 | 2502 | 2510 | 99.7% |
| ov_SC03_112 | 2507 | 1808 | 0 | 2509 | 2526 | 99.3% |
| ov_SC03_113 | 2461 | 1808 | 0 | 2464 | 2468 | 99.8% |
| ov_SC03_114 | 2408 | 1806 | 0 | 2410 | 2415 | 99.8% |
| ov_SC03_114 | 2409 | 1806 | 0 | 2411 | 2415 | 99.8% |
| ov_SC03_115 | 2463 | 1806 | 0 | 2465 | 2472 | 99.7% |
| ov_SC03_116 | 2423 | 1806 | 0 | 2426 | 2438 | 99.5% |
| ov_SC03_117 | 2537 | 1806 | 0 | 2543 | 2557 | 99.5% |
| ov_SC03_118 | 2647 | 1845 | 0 | 2648 | 2684 | 98.7% |
| ov_SC03_119 | 2651 | 1845 | 0 | 2652 | 2685 | 98.8% |
| ov_SC03_121 | 2445 | 1807 | 0 | 2447 | 2459 | 99.5% |
| ov_SC03_124 | 2687 | 1802 | 0 | 2707 | 2741 | 98.8% |
| ov_SC03_124 | 2688 | 1802 | 0 | 2708 | 2741 | 98.8% |
| ov_SC03_125 | 2566 | 1815 | 0 | 2578 | 2588 | 99.6% |
| ov_SC03_126 | 2416 | 1810 | 0 | 2416 | 2423 | 99.7% |
| ov_SC04_000 | 2528 | 1811 | 0 | 2537 | 2546 | 99.6% |
@@ -191,7 +191,7 @@ FLEET matchable : 362984
| ov_SC05_000 | 2415 | 1810 | 0 | 2418 | 2422 | 99.8% |
| ov_SC05_001 | 2556 | 1808 | 0 | 2561 | 2574 | 99.5% |
| ov_SC05_002 | 2437 | 1806 | 0 | 2440 | 2442 | 99.9% |
| ov_SC05_003 | 2471 | 1806 | 0 | 2472 | 2481 | 99.6% |
| ov_SC05_003 | 2472 | 1806 | 0 | 2473 | 2481 | 99.7% |
| ov_SC05_004 | 2447 | 1806 | 0 | 2449 | 2464 | 99.4% |
| ov_SC05_005 | 2482 | 1812 | 0 | 2483 | 2491 | 99.7% |
| ov_SC05_006 | 2429 | 1808 | 0 | 2429 | 2430 | 100.0% |
@@ -200,18 +200,18 @@ FLEET matchable : 362984
| ov_SC05_009 | 2432 | 1806 | 0 | 2436 | 2438 | 99.9% |
| ov_SC05_010 | 2541 | 1807 | 0 | 2545 | 2588 | 98.3% |
| ov_SC05_011 | 2402 | 1806 | 0 | 2403 | 2409 | 99.8% |
| ov_SC05_017 | 2811 | 1806 | 0 | 2822 | 2842 | 99.3% |
| ov_SC05_017 | 2812 | 1806 | 0 | 2823 | 2842 | 99.3% |
| ov_SC05_018 | 2636 | 1814 | 0 | 2649 | 2673 | 99.1% |
| ov_SC05_019 | 2415 | 1810 | 0 | 2415 | 2423 | 99.7% |
| ov_SC06_000 | 2664 | 1817 | 0 | 2667 | 2691 | 99.1% |
| ov_SC06_006 | 2495 | 1807 | 0 | 2496 | 2511 | 99.4% |
| ov_SC06_008 | 2533 | 1808 | 0 | 2539 | 2542 | 99.9% |
| ov_SC06_010 | 2500 | 1806 | 0 | 2505 | 2516 | 99.6% |
| ov_SC06_010 | 2501 | 1806 | 0 | 2506 | 2516 | 99.6% |
| ov_SC06_011 | 2459 | 1806 | 0 | 2463 | 2468 | 99.8% |
| ov_SC06_013 | 2420 | 1806 | 0 | 2421 | 2425 | 99.8% |
| ov_SC06_014 | 2440 | 1806 | 0 | 2442 | 2453 | 99.6% |
| ov_SC06_015 | 2419 | 1806 | 0 | 2419 | 2421 | 99.9% |
| ov_SC06_016 | 2530 | 1807 | 0 | 2532 | 2549 | 99.3% |
| ov_SC06_016 | 2531 | 1807 | 0 | 2533 | 2549 | 99.4% |
| ov_SC06_018 | 2641 | 1807 | 0 | 2648 | 2665 | 99.4% |
| ov_SC06_020 | 2506 | 1808 | 0 | 2507 | 2518 | 99.6% |
| ov_SC06_022 | 2610 | 1806 | 0 | 2618 | 2642 | 99.1% |
@@ -222,7 +222,7 @@ FLEET matchable : 362984
| ov_SC06_030 | 2446 | 1807 | 0 | 2446 | 2456 | 99.6% |
| ov_SC06_032 | 2632 | 1807 | 0 | 2639 | 2657 | 99.3% |
| ov_SC06_033 | 2605 | 1807 | 0 | 2612 | 2631 | 99.3% |
| ov_SC07_000 | 2497 | 1811 | 0 | 2499 | 2521 | 99.1% |
| ov_SC07_000 | 2498 | 1811 | 0 | 2500 | 2521 | 99.2% |
| ov_SC07_001 | 2439 | 1807 | 0 | 2441 | 2454 | 99.5% |
| ov_SC07_002 | 2549 | 1807 | 0 | 2553 | 2578 | 99.0% |
| ov_SC07_006 | 2360 | 1625 | 0 | 2440 | 2457 | 99.3% |
+21 -3
View File
@@ -640,17 +640,35 @@ def prior_draft(t):
accepted, so it is offered as a starting point to improve or discard, never as a seed to trust.
"""
best, where = None, None
# LAW 1c FOR WARM STARTS (P31 S62 T4): drafts are stored by function NAME, and the same name at
# the same address in a DIFFERENT overlay is usually a different function. 22 of 60 probe agents
# reported "the warm-start body was a different function entirely" — a strong model discards
# it, a weak one follows it, so the warm start was confounding the arms. Accept a candidate
# only when the symbols it references overlap the target .s's own relocations.
try:
tgt = set(re.findall(r'\b(?:func_|D_|jtbl_|a[A-Z0-9]+_)[0-9A-Fa-f]{8}\b', open(os.path.join(REPO, t['asm'])).read()))
except Exception:
tgt = None
skipped = 0
for pat in (f".run/wave_*/shard*/{t['name']}.c", f".run/*/{t['name']}.c"):
for p in sorted(glob.glob(pat), key=lambda x: -os.path.getmtime(x)):
try:
body = open(p).read()
except OSError:
continue
if body.strip():
best, where = body, p
break
if not body.strip():
continue
if tgt is not None:
syms = set(re.findall(r'\b(?:func_|D_|jtbl_|a[A-Z0-9]+_)[0-9A-Fa-f]{8}\b', body)) - {t['name']}
if len(syms) >= 2 and len(syms & tgt) * 2 < len(syms):
skipped += 1
continue # another overlay's same-named function — not this body
best, where = body, p
break
if best:
break
if skipped:
print(f" {t['name']}: skipped {skipped} same-named draft(s) whose symbols do not match this .s (law 1c)", flush=True)
return best, where