docs(phase-29): SESSION-25 final checkpoint v6 — 3-step recipe for the stacked blocker

This commit is contained in:
Drew T
2026-07-30 12:15:29 -06:00
parent 2b76b73f73
commit 9f1f2e94b6
+66 -1
View File
@@ -9713,7 +9713,7 @@ Fleet unchanged from T90: **87.3% instr · 78.0% distinct · 91.88% fn-count**.
---
# 🛑 SESSION-25 FINAL CHECKPOINT v5 (2026-07-30) — FRESH SESSION SAFE HERE
# (superseded) SESSION-25 checkpoint v5 — written before T92
> Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3.
**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing
@@ -9815,3 +9815,68 @@ re-wires it, gate it against this exact function** — it is now a known, reprod
No banks -> nothing to verify. Tree clean; the T91 wiring stays reverted; the probe ran entirely in
`.run/` and a scratch copy (`src/` untouched). Fleet unchanged: **87.3% instr · 78.0% distinct ·
91.88% fn-count**.
---
# 🛑 SESSION-25 FINAL CHECKPOINT v6 (2026-07-30) — FRESH SESSION SAFE HERE
> Supersedes every earlier SESSION-25 block and SESSION-24 REVISED-3.
**Nothing running.** Tree clean but for the R23 `db.*.gbf` churn + the pre-existing
`.run/backlog.jsonl` edit. HEAD **`commit:1202`**. **R22 clean-fleet 140/140** (10x this session),
dedup **1886/0**, **0 NON_MATCHING** (G4).
**FLEET: 87.3% instr · 78.0% distinct · 91.88% fn-count** (opened 86.7 / 76.9 / 91.23).
## SESSION TOTAL — **2,302 banked · +86,206 ins · +1,548 unique fns** (instr +0.6pp, distinct +1.1pp)
T79 641 · T82 251 · T83 821 · T84 137 · T85 133 · T87 149 · T88 9 · T89 138 · T90 23.
## ▶ START HERE NEXT SESSION — a 3-step recipe, not a search (T92)
`func_801759D8` (137 members / ~130 distinct) is **two stacked blockers**, both identified by
experiment against the assembled TU:
1. **Strip draft file-scope typedefs whose NAME is already in `tu_ambient(tu)['typedefs'].`**
The draft's `typedef … S_AF634;` duplicates the TU's own, character-identical, and gcc-2.7.2
rejects a typedef redefinition regardless. **Byte-neutral** (type names never reach codegen).
**Proven to clear blocker #1.**
2. **Then fix the §8d demotion for this shape:** `extern S_AF634 D_800AF634[];` lands at block scope
**below its first use** -> `used prior to declaration`. Hoist it above first use, or keep it at file
scope when the TU has no conflicting decl of that symbol.
3. **Re-probe** `rtu_match func_801759D8 --split ov_SC01_000_jr_801734BC --source ov_SC01_000`,
**then** sweep. The auto-named `S_*` typedefs recur across the byte-identical stragglers, so step 1
alone may unblock siblings.
> `_uniquify_draft_types` is the existing lever for step 1 and lives only on `--reconcile-raw`.
> I wired it into the hseq path, it did NOT fix this case, and **I reverted it**. `tu_ambient` does
> scan the whole file, so why it missed is unresolved — **gate any re-wiring against this function.**
**Then, in order:** the `func_80151944` three-edit decl job (138 members: §112 header + §20 call-site
cast in `DEFINE_func_80151924()`'s own body + a scripted §99 pass over 2,022 overlay-local decls;
param is `void *`, so T75 does not apply) · the ~82-family still-zero residue (~200 distinct,
long-tailed — **the §119 flag 2x2 is EXHAUSTED on it, diagnose, do not re-permute**; 34
immediate-refusals + 86 STRUCT remain) · the `-O0` cluster stays **WALLED** (Arm-A splat, not yield).
**Closed, do not re-open:** `func_801457A4` 133/133 · `0x80174784` 251/251 · `func_801599A4` 137/137 ·
`0x80161c98` 138/138 · `func_80146750` 137/137 · STRUCT residue (0.02pp) · pre-§117 masked-MATCH
backlog (8 eligible, 0) · the §119 flag matrix.
## ⚠️ MY ERRORS THIS SESSION (recorded, not buried)
- **§116 written with the wrong fix, tool built before testing** — the build refuted it in 56s.
- **Predicted `func_801599A4` would bank** from its correct header decl while `diff_class: IMM` sat in
a table I printed myself — the T76 shape, in the session where I cited T76.
- **Promoted the backlog item as "126 entries"; it was 8** — a raw count without the still-a-stub filter.
- **Mis-attributed T84's 137 banks to `0x80161c98`; they were `func_80146750`** — committed wrong in
`commit:1193`, corrected in `commit:1198`.
- **`new_distinct` over-projects ~2x** (priced 259, measured 125).
- **Four of five are ONE habit: asserting the composition of a number I did not derive.**
Standing fix: *derive attribution from `corpus.stubs` before/after — never from what I was looking at.*
- Done right and worth keeping: wired a lever, it failed its own motivating case, **reverted it**
rather than leave an unvalidated default-ON change in a shared path (T91).
## ⚠️ CARRIED DEFECTS
21-file absolute-include portability defect · **`docs/backlog.md` is not a work queue** (§83) ·
roadmap re-baseline owed (39 type-1 modules in no phase) · `gate_stage` ladder destroys good drafts;
bare gate has no snapshot/restore · `.run/autopsy/residuals.jsonl` stale (Jul 21) ·
**`--fix-def-sig` is a REPAIR, not a default** (T84/§119).
## 📓 NEW COOKBOOK ENTRIES THIS SESSION
**§116** (opt level is a property of the FILE; `asm/` follows the *segment*, object membership the
*`.c`*) · **§117** (spell the sibling's symbol from the sibling's address; a masked oracle will MATCH
a wrong symbol) · **§118** (ordinal immediates; exclude compiler-synthesised uses from the count) ·
**§119** (two levers on one axis in opposite directions — test the off-diagonal).