mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
chore(phase-31): wave Y checkpoint + wave Z staged (not launched); harvest outstanding on API 529s
547 banked this session, fleet 96.0% instr-weighted / 91.7% distinct / 97.07% fn-count, R22 213/213 twice for wave Y. Wave Z drawn and staged at .run/wave_p31z_workflow.js + .run/wave_z_args.json (75 cards / 6,517 ins / 8 gate groups) per Drew's instruction not to launch it. Wave Y's harvest is the one outstanding step of the seven-step closing sequence -- three launches lost every agent to 529 Overloaded at zero tokens; gap reports and target snapshots are on disk and the checkpoint carries the exact resume invocation.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# P30 S49 — cousin-unit survey (similarity tier over the open frontier)
|
||||
|
||||
> Generated by `tools/family_cousins.py` at HEAD `commit:2530` from `.run/family_hseq.json` + the binary sigs (R32-checked against an independent stub recount — a stale map fails loud). Compare digests only at the same HEAD.
|
||||
> Generated by `tools/family_cousins.py` at HEAD `commit:2541` from `.run/family_hseq.json` + the binary sigs (R32-checked against an independent stub recount — a stale map fails loud). Compare digests only at the same HEAD.
|
||||
>
|
||||
> **A unit is a CANDIDATE grouping** — same-source cousins split by skeleton drift (insertion/deletion; the li-expansion class). Cousins need a per-member seeded CRACK, never a `family_sweep` remap. The whole-binary byte-gate stays the sole arbiter.
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
| category | units | open fns | open ins | lever |
|
||||
|---|--:|--:|--:|---|
|
||||
| A-prop | 443 | 2092 | 93879 | family_sweep (propagation) |
|
||||
| seeded | 360 | 890 | 33559 | seeded crack — edit a >=0.85-similar MATCHED body |
|
||||
| cousin-multi | 1177 | 4040 | 164874 | 1 crack seeds the unit's other members |
|
||||
| cold | 2930 | 2930 | 188190 | full-price crack (the honest unique tail) |
|
||||
| **total** | **4910** | **9952** | **480502** | |
|
||||
| A-prop | 442 | 2099 | 94202 | family_sweep (propagation) |
|
||||
| seeded | 360 | 888 | 33691 | seeded crack — edit a >=0.85-similar MATCHED body |
|
||||
| cousin-multi | 1170 | 4015 | 162666 | 1 crack seeds the unit's other members |
|
||||
| cold | 2878 | 2878 | 183157 | full-price crack (the honest unique tail) |
|
||||
| **total** | **4850** | **9880** | **473716** | |
|
||||
|
||||
## Top units by open instructions (whole-cluster weight)
|
||||
|
||||
|
||||
+4
-4
@@ -5,13 +5,13 @@
|
||||
|
||||
> Generated by `tools/family_hseq.py` from the 212 binary sigs + per-binary src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
|
||||
>
|
||||
> **Scope (212 binaries): 141 location overlays + 70 md_* modules + the resident · MAIN IS EXCLUDED** · generated at HEAD `commit:2537` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
|
||||
> **Scope (212 binaries): 141 location overlays + 70 md_* modules + the resident · MAIN IS EXCLUDED** · generated at HEAD `commit:2541` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
|
||||
|
||||
**Fleet (overlays):** 97.3% fn / 96.5% instr / 92.6% distinct-code matched. Unmatched: 9,888 instances / 474,446 ins (8,523 distinct classes).
|
||||
**Fleet (overlays):** 97.3% fn / 96.5% instr / 92.7% distinct-code matched. Unmatched: 9,880 instances / 473,716 ins (8,515 distinct classes).
|
||||
|
||||
**Tail cross-check (Phase-25 close):** 6,523 tail fns / 314,128 ins → 369 h_seq families ≥2, **43 substantial (nins≥80) / 23,407 ins**.
|
||||
**Tail cross-check (Phase-25 close):** 6,518 tail fns / 313,680 ins → 369 h_seq families ≥2, **43 substantial (nins≥80) / 23,407 ins**.
|
||||
|
||||
**Full frontier (all unmatched by h_seq):** 1820 target families (≥2 members or a matched sibling) + 4025 singletons (Step-D residue). Substantial: **171 families / 65,998 templatable ins**, 71 with a matched sibling (zero-crack). Substantial member classes: 409 PURE · 18 IMM · 6 STRUCT-excluded.
|
||||
**Full frontier (all unmatched by h_seq):** 1818 target families (≥2 members or a matched sibling) + 4021 singletons (Step-D residue). Substantial: **169 families / 65,622 templatable ins**, 69 with a matched sibling (zero-crack). Substantial member classes: 406 PURE · 17 IMM · 6 STRUCT-excluded.
|
||||
|
||||
|
||||
## Top substantial families (by templatable byte-weight)
|
||||
|
||||
+17
-17
@@ -1,39 +1,39 @@
|
||||
# The Frontier Atlas (P31 T5)
|
||||
|
||||
> Generated at HEAD `commit:2530` by `tools/atlas.py` — REGENERATE, never edit. Groups are ADVISORY (the byte-gate is the arbiter). Calibration: warm merge at norm-ratio ≥ 0.7, kNN floor 0.55.
|
||||
> Generated at HEAD `commit:2541` by `tools/atlas.py` — REGENERATE, never edit. Groups are ADVISORY (the byte-gate is the arbiter). Calibration: warm merge at norm-ratio ≥ 0.7, kNN floor 0.55.
|
||||
|
||||
**Scope:** 10704 open instances / 6468 skeletons across 213 binaries (main: 752 — atlas-layer join (family maps stay non-main)).
|
||||
**Tiers:** T1.5 h_seqn merges 2 · warm merges 868 (from 17432 ratio calls) · seed sweep: 4617 skeletons carry a ≥0.55 seed from the 3524-skeleton matched pool.
|
||||
**Scope:** 10632 open instances / 6406 skeletons across 213 binaries (main: 752 — atlas-layer join (family maps stay non-main)).
|
||||
**Tiers:** T1.5 h_seqn merges 2 · warm merges 868 (from 17018 ratio calls) · seed sweep: 4586 skeletons carry a ≥0.55 seed from the 3587-skeleton matched pool.
|
||||
|
||||
## Groups by category
|
||||
|
||||
| cat | groups | instances | ins |
|
||||
|---|--:|--:|--:|
|
||||
| A-prop | 442 | 2124 | 94152 |
|
||||
| cold | 2023 | 2023 | 160208 |
|
||||
| cousin-multi | 1371 | 5188 | 202113 |
|
||||
| A-prop | 441 | 2131 | 94475 |
|
||||
| cold | 1971 | 1971 | 155174 |
|
||||
| cousin-multi | 1364 | 5163 | 199906 |
|
||||
| main-only | 314 | 314 | 27589 |
|
||||
| seeded | 360 | 892 | 33583 |
|
||||
| seeded | 360 | 890 | 33715 |
|
||||
| tiny | 97 | 163 | 827 |
|
||||
|
||||
## Groups by lever (confidence)
|
||||
|
||||
| lever | groups | instances | ins |
|
||||
|---|--:|--:|--:|
|
||||
| head-crack[default] | 938 | 3089 | 110899 |
|
||||
| UNKNOWN[none] | 1636 | 1636 | 106602 |
|
||||
| extend-tell[tell] | 581 | 1040 | 77877 |
|
||||
| jtbl-carve[tell] | 190 | 281 | 45673 |
|
||||
| redraft[measured] | 241 | 987 | 38971 |
|
||||
| family-sweep[default] | 232 | 891 | 32299 |
|
||||
| integration[measured] | 47 | 483 | 20617 |
|
||||
| seeded-crack[default] | 272 | 586 | 18952 |
|
||||
| head-crack[default] | 933 | 3069 | 109454 |
|
||||
| UNKNOWN[none] | 1585 | 1585 | 101713 |
|
||||
| extend-tell[tell] | 582 | 1042 | 78266 |
|
||||
| jtbl-carve[tell] | 191 | 286 | 46068 |
|
||||
| redraft[measured] | 236 | 973 | 37467 |
|
||||
| family-sweep[default] | 230 | 891 | 32253 |
|
||||
| integration[measured] | 47 | 483 | 20618 |
|
||||
| seeded-crack[default] | 272 | 591 | 19205 |
|
||||
| len-vein[measured] | 146 | 659 | 13375 |
|
||||
| plumbing[ledger] | 39 | 188 | 9526 |
|
||||
| swaprepeat-tell[tell] | 70 | 119 | 9316 |
|
||||
| o0-lane[tell] | 31 | 69 | 6564 |
|
||||
| cc1[measured] | 12 | 104 | 6382 |
|
||||
| cc1[ledger] | 15 | 69 | 5429 |
|
||||
| cc1[ledger] | 16 | 70 | 5489 |
|
||||
| needs-autopsy[measured] | 52 | 263 | 5090 |
|
||||
| frame-172[measured] | 8 | 32 | 4078 |
|
||||
| needs-autopsy[ledger] | 10 | 34 | 4036 |
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
| gid | cat | lever | inst | ins | exemplar | seed |
|
||||
|---|---|---|--:|--:|---|---|
|
||||
| 405f69e924dd | cousin-multi | integration[measured] | 257 | 5925 | ov_SC01_084:func_80180CBC (31) | 0.72 |
|
||||
| 527622c1c114 | cousin-multi | integration[measured] | 257 | 5926 | ov_SC01_084:func_80180CBC (31) | 0.72 |
|
||||
| e8bf2260391b | cousin-multi | frame-172[measured] | 16 | 3936 | ov_SC01_077:func_8017C294 (246) | |
|
||||
| b0e41839e641 | cousin-multi | redraft[measured] | 111 | 2848 | main:func_8001FB8C (31) | 0.72 |
|
||||
| 4a254010e122 | A-prop | needs-autopsy[ledger] | 4 | 2444 | ov_SC03_001:func_801898E4 (611) | 1.00 |
|
||||
|
||||
@@ -290,3 +290,28 @@ lane. The tool was silently overriding the doctrine, and the "thinning frontier"
|
||||
|
||||
**Gate-group concentration is the wall-clock lever overnight**: 3 rebuilds instead of 9 is roughly an
|
||||
hour back per wave, and wall-clock — not tokens — is what bounds a session that runs waves in series.
|
||||
|
||||
## Wave Y (P31 S55) — the recovery lane earns its place on its first outing
|
||||
|
||||
| | wave X | **wave Y** |
|
||||
|---|--:|--:|
|
||||
| cards / drafted ins | 65 / 6,549 | 70 / 6,550 |
|
||||
| gate groups | 4 | 5 |
|
||||
| standalone MATCH | 64/65 | **69/70** |
|
||||
| banked at the gate | 62 | 64 |
|
||||
| **recovered afterwards** | — | **+4** (§200, **zero agent tokens**) |
|
||||
| mechanical siblings | 1 | +4 |
|
||||
| **wave total** | 63 | **72** |
|
||||
|
||||
**The recovery lane changed the wave's yield by 6%, and it ran during a total API outage.** Twelve
|
||||
agents died across two rounds of 529 Overloaded without starting, so the five gate drops were fixed
|
||||
by hand — and the five refusal classes collapsed into one move (§200: bind a private C identifier to
|
||||
the link symbol instead of negotiating over the shared one). Four re-gated and banked; the fifth had
|
||||
already banked. **The lane cost nothing and returned four functions.**
|
||||
|
||||
**Read that number carefully before generalising it.** Recovery is cheap here because the drops were
|
||||
DECLARATION refusals on already-byte-verified drafts — §181's class, where the work is done and only
|
||||
the plumbing failed. A recovery lane over genuine near-misses is a different economy: wave Y's one
|
||||
near-miss (`func_8017FCFC`, closeness 3) was NOT recovered, and its previous agent had already
|
||||
attributed the residual to sched1 by elimination. **Budget recovery against gate drops; treat
|
||||
near-misses as permuter fuel unless a specific new law applies.**
|
||||
|
||||
@@ -291,14 +291,57 @@ R22 clean-fleet **213/213** after every banked batch · tools-health green · 0
|
||||
3 verifiers outstanding. `Workflow({scriptPath, resumeFromRunId, args})` replayed 10 finished agents
|
||||
from cache and re-ran only the 3: **398k tokens against the original run's 1.31M**.
|
||||
|
||||
- 2026-08-18 — **WAVE Y: 69/70 drafted, 72 banked (64 gate + 4 recovery + 4 siblings).** Groups:
|
||||
ov_SC03_007 20/21 · ov_SC03_121 14/14 · ov_SC02_017 15/19 · ov_SC03_001 12/12 · ov_SC05_018 3/3.
|
||||
R22 **213/213** twice (before and after the recovery lane). Fleet **96.0% instr-weighted · 91.7%
|
||||
distinct · 97.07% fn-count**. One reconcile agent died on a server error, so I built that group's
|
||||
slate from the drafts on disk and ran the ladder by hand — which is exactly why the Reconcile
|
||||
phase's product is a FILE, not an agent return value.
|
||||
|
||||
- 2026-08-18 — **§200 — THE ALIAS IS THE UNIVERSAL DECLARATION ESCAPE, and it was found because the
|
||||
API went down.** Wave Y's recovery lane lost 12 agents to two rounds of 529 Overloaded (0 tokens),
|
||||
so the five gate drops were fixed BY HAND — and five different refusal classes turned out to need
|
||||
ONE move. §183's playbook negotiates with the TU's spelling; §200 declines to share the C
|
||||
identifier at all: only the LINK name has to agree, so bind a private identifier to the symbol with
|
||||
gcc's asm label (§37/§124). `extern u8 aD8018A800[] __asm__("D_8018A800");`. Classes recovered:
|
||||
array-vs-scalar where `reconcile_slate`'s own array fix had BROKEN the match · a slate-mate's
|
||||
private struct · `void *` vs `s32` · and TWO DEF-side return conflicts (one of them a function
|
||||
whose only in-TU use takes its ADDRESS as a callback) — the case §183.3 says has no cast escape.
|
||||
All five still MATCH; 4 re-gated and banked. **Ordering recorded so it stays an escape hatch:**
|
||||
adopt the TU's spelling → cast at the use site → alias. Every alias in the tree carries a comment
|
||||
naming the spelling it could not use.
|
||||
|
||||
- 2026-08-18 — **THIRD INSTANCE OF THE §192 CLASS, on our own idiom.** `sym_of` returned `__asm__` as
|
||||
the symbol for every asm-label alias (an identifier followed by `(`, matched before the real one),
|
||||
so aliased declarations all collided under that name — 1 byte-verified draft DROPPED and 2 phantom
|
||||
CONFLICTING-EXTERNs **on the very slate the recovery lane was fixing**. NC over the tree: **1,210
|
||||
changed verdicts, 0 regressions**, 899 of them one symbol — the idiom is fleet-wide, so the
|
||||
miscount was too. *A project idiom the tools cannot parse is an idiom that silently costs work.*
|
||||
|
||||
- 2026-08-18 — **WAVE Z IS BUILT AND STAGED, DELIBERATELY NOT LAUNCHED** (Drew's instruction).
|
||||
75 cards / 6,517 ins / **8 gate groups** (9.4 drafts per rebuild) · seed_ref 46 · tu_ref 50 ·
|
||||
decl_prior 70 · 43 siblings staged. Binaries: ov_SC02_005 20 · ov_SC01_084 16 · ov_SC05_001 11 ·
|
||||
ov_SC03_011 10 · ov_SC03_094 8 · md_MAIN_034 7 · md_SC03_075 2 · ov_SC06_018 1.
|
||||
**To fire it:**
|
||||
Workflow({scriptPath: ".run/wave_p31z_workflow.js", args: <the object in .run/wave_z_args.json>})
|
||||
Cards `.run/wave_z_cards.json`, siblings `.run/wave_z_cards.siblings.json`, wavedir `.run/wave_p31z`.
|
||||
|
||||
- 2026-08-18 — **⚠ WAVE Y'S HARVEST IS OUTSTANDING — the API is 529-Overloaded for subagents.** Three
|
||||
separate launches lost every agent at spawn (12 recovery + 5 readers), all at zero tokens. The gap
|
||||
reports are captured at `.run/wave_y_gaps.json` (67 of them) and the targets are snapshotted at
|
||||
`.run/waveY_asm_snapshot/`, so nothing is lost. **Resume with:**
|
||||
Workflow({scriptPath: ".run/wave_y_harvest_workflow.js", resumeFromRunId: "wf_ef996308-610",
|
||||
args: <the object in .run/wave_y_harvest_args.json>})
|
||||
This is the ONLY step of the seven-step wave-closing sequence left undone for wave Y.
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S54 FINAL (2026-08-17). Phase 31 CONTINUES. NOTHING IN FLIGHT.
|
||||
|
||||
**HEAD `commit:2529`+ · tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) ·
|
||||
**HEAD `commit:2541`+ · tree clean except Ghidra `db.*.gbf` restart-noise (R23: do NOT stage) ·
|
||||
R22 `make check-all` = 213 passed / 0 failed of 213 from a CLEAN tree (run 3x this session, after
|
||||
each wave) · EXE `143dbb89` · 0 NON_MATCHING.** No process running, no cron armed, no workflow in
|
||||
flight. Drew pushes.
|
||||
|
||||
### Banked this session: 475 functions (365 gated heads + 109 mechanical siblings + 1 main)
|
||||
### Banked this session: 547 functions (433 gated heads + 113 mechanical siblings + 1 main)
|
||||
| lane | banked | notes |
|
||||
|---|--:|---|
|
||||
| wave T — mass band, 5 groups | 70 of 70 | **zero drops** — first wave ever to bank every byte-verified draft |
|
||||
@@ -307,9 +350,10 @@ flight. Drew pushes.
|
||||
| mechanical siblings (`family_sweep --hseq`) | 49 + 34 + 25 = **108** | ~0 tokens; 9 failed of 112 attempts |
|
||||
| wave W — UNKNOWN lane, 3 groups | 68 of 70 | 71/71 drafted; 0 siblings (UNKNOWN groups are singletons) |
|
||||
| wave X — UNKNOWN lane, 4 groups | 62 of 63 | 2nd module binary clean; 1 sibling |
|
||||
| wave Y — UNKNOWN lane, 5 groups | 72 | 64 gate + 4 recovery (§200, 0 agent tokens) + 4 siblings |
|
||||
| §180 leftover sweep | 24 | byte-perfect drafts already on disk from waves M/O/P/R/S |
|
||||
|
||||
**Fleet 96.0% instr-weighted · 91.6% distinct-code · 97.05% fn-count · MAIN 20.5%.**
|
||||
**Fleet 96.0% instr-weighted · 91.7% distinct-code · 97.07% fn-count · MAIN 20.5%.**
|
||||
(Session start: 95.6 / 90.8 / 96.92.)
|
||||
|
||||
### THE FIVE RESULTS THAT OUTLIVE THE COUNT
|
||||
|
||||
Reference in New Issue
Block a user