mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 01:04:13 -04:00
docs(phase-29): SESSION-24 REVISED-2 checkpoint — 1,771 banked, fleet 86.6% instr
Supersedes both earlier SESSION-24 blocks. Session total reconciled against the metric (fn-count 320524 -> 322295 = +1,771; instr +134,811), the lesson earned nine times, a ranked measured NEXT list led by the T2a immediate-rate measurement (which decides whether the 26 remaining byte-variant families are worth sweeping), my errors, carried defects. Fresh session safe from here: HEAD commit:1175, tree clean but for the R23 db.*.gbf churn, R22 clean-fleet 140/140 (run 17x), tools-health OK, dedup 1886/0, 0 NON_MATCHING.
This commit is contained in:
@@ -8494,3 +8494,62 @@ R22 clean-fleet **140 passed, 0 failed of 140** · `tools-health` OK · **0 NON_
|
||||
3. **The arity trio** (`func_80144B14`/`func_8013BD34`/`func_8014358C`, ~410 members) — §99.
|
||||
4. **`func_80146750`** (137) — the family that failed after its header was corrected.
|
||||
5. The 13 SAFE audit findings (15 binaries) — cheap, low value; batch them into some other gate.
|
||||
|
||||
---
|
||||
|
||||
# 🛑 SESSION-24 FINAL CHECKPOINT — REVISED 2 (2026-07-28) — FRESH SESSION SAFE HERE
|
||||
> Supersedes both earlier SESSION-24 blocks (written before T59 and before T67).
|
||||
|
||||
**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn (never stage). HEAD **`commit:1175`**.
|
||||
**R22 clean-fleet 140/140** (run **17×** this session), `tools-health` OK, dedup **1886/0**,
|
||||
**0 NON_MATCHING** (G4).
|
||||
**FLEET: 86.6% instr · 76.9% distinct · 91.12% fn-count** (opened 85.5 / 76.1 / 90.62).
|
||||
|
||||
## SESSION TOTAL — **1,771 functions banked · +134,811 instructions**
|
||||
Reconciled against the metric: fn-count **320,524 → 322,295 = +1,771**; instr **11,240,111 →
|
||||
11,374,922**. Per-task: T52 132 · T56 136 · T57 132 · T58 137 · T63 137 · T64 137 · T65 137 ·
|
||||
T68 685 · T70 138.
|
||||
|
||||
## THE ONE LESSON, EARNED NINE TIMES
|
||||
**A family-wide `0/N` is a statement about the HARNESS, not the code.** Nine separate causes this
|
||||
session, **none** of them the compiler: a lever unreachable from the sweep path · a lever off by
|
||||
default · a param-name bug · a shared header contradicting byte truth (×4, found one at a time then
|
||||
systematically) · an extraction taking the wrong function · a `--band` default silently dropping
|
||||
targets. Before calling a family hard: enumerate the levers the invocation enabled, then read ONE
|
||||
member's real cc1 output (`make -j1` the single object, filter out `warning:`).
|
||||
|
||||
## ▶ START HERE NEXT SESSION (ranked, all measured)
|
||||
1. **Measure the T2a immediate-resolution rate** on the 9 failed byte-variant families (T70) BEFORE
|
||||
sweeping the other 26. The 2,962-distinct projection assumes a bank rate the one data point
|
||||
(1/10) contradicts. One diagnosis decides whether that lever is worth 26 sweeps.
|
||||
2. **`func_80147364`** (137) — `conform_decls` over the 272 colliding TUs, then the header fix.
|
||||
3. **The arity trio** (`func_80144B14`/`func_8013BD34`/`func_8014358C`, ~410 members) — §99
|
||||
no-prototype treatment (correcting their headers breaks the macro's own call site).
|
||||
4. **`func_80146750`** (137) — failed its sweep even after its header was corrected; diagnose.
|
||||
5. **The 13 SAFE audit findings** (`.run/header_audit3.json`) — only 15 binaries; batch them.
|
||||
6. **The 13 byte-IDENTICAL families** (80,085 ins, 0 distinct) — cheap instr-only yield, still the
|
||||
highest-confidence sweep available (they bank 137/137).
|
||||
|
||||
## ⚠️ MY ERRORS THIS SESSION (recorded, not buried)
|
||||
- **Wrote a precondition that blocked all six corrections I had just proven safe** — twice, on two
|
||||
different wrong models (type spelling, then population instead of intersection). Caught only by
|
||||
running it against known-good AND known-bad controls. **Every gate deserves that control.**
|
||||
- **Reported `func_8016163C` as "genuine codegen"** — it was my own `--fix-def-sig` deleting a fifth
|
||||
of the function. A "clean DIFF" right after a transform is a suspect, not a result.
|
||||
- **Grouped three families as one 30,000-ins block** on a shared error message; three unrelated causes.
|
||||
- **Claimed 7 families had banked exemplars**; 2 had none (name-grep instead of `corpus.stubs`).
|
||||
- **`int(x,16)` in one comprehension, forgotten in the next** — made every family look byte-identical
|
||||
and would have inverted the T66 conclusion for 36 of 49 families.
|
||||
- **`--band` defaults to `substantial`** — 3 of 5 targets silently never ran; I read past the tool's
|
||||
own selection line.
|
||||
- Common thread: **the tool's own output answers the question faster than my inference does.**
|
||||
|
||||
## ⚠️ CARRIED DEFECTS
|
||||
- The **21-file absolute-include portability defect** — PhaseEnd carry item.
|
||||
- **`docs/backlog.md` is not a work queue** — 44% misfiled partials (§83).
|
||||
- **Roadmap re-baseline owed**; the 39 type-1 modules are in no phase.
|
||||
- **`gate_stage` ladder destroys good drafts**; **bare gate has no snapshot/restore**.
|
||||
- **`.run/autopsy/residuals.jsonl` dated Jul 21** — `route_for` protects the ROUTE (T54) but the
|
||||
`klass` measurements are stale; a re-collect is owed before trusting the grinder.
|
||||
**DO NOT close P29 on ROI** — +1.1pp instr today; items 1-3 are un-mined and item 6 is a
|
||||
known-137/137 sweep worth 80k instructions.
|
||||
|
||||
Reference in New Issue
Block a user