From f9eaa671b7a6f22156dc0a561c97f85cb8b52328 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:44:31 -0600 Subject: [PATCH] =?UTF-8?q?docs(phase-30=20S38):=20checkpoint=20v2=20?= =?UTF-8?q?=E2=80=94=20S1/S2=20landed;=20the=20residue=20is=20TWO=20symbol?= =?UTF-8?q?s,=20not=20a=20missing=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FLEET 96.32 / 94.3 / 89.1 (+19,300 instructions this session, the great majority for ~0 agent tokens). R22 140/140 seven times. S38 was eight tool defects, not a compiler problem โ€” all eight enumerated in the checkpoint. The headline: harvest_verify._reload_corpus deleting the stub it had just followed through a carve (10 of 16 wave-6 drafts vanished with no verdict), and jr_isolate_all SILENTLY DELETING definition-side __asm__-alias functions during a repartition (the fifth tool with that same blindness, already fixed in family_remap and never propagated). T7 progress: S1a done (895 types lifted), S1c done (97 members banked, were 0), S2 done (10 members banked + 7 families now CLASSIFIED by the reporting fix), S1b CLOSED BY MEASUREMENT โ€” its premise was wrong, cast_call_sites/tu-scope/scope_data_fix are all already on by default in hseq_sweep, and --normalize-self-decls got a fair post-fix re-test and does nothing here. The real residue is 383 of ~398 conflicts on TWO symbols: func_80146A6C (fleet decls UNIFORM -> the draft is wrong, a bug hunt) and func_80161208 (four incompatible fleet shapes -> the genuine Phase-16 loose-typing wall). Recorded as task S1d, explicitly NOT scoped as "add a reconcile pass". Six process errors of my own recorded, the worst being that I asserted family_sweep hides its per-member errors when 23,211 classified files exist and both of the day's zeros were already diagnosed in them. --- phase-ends/CURRENT_PHASE.md | 93 ++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 108ac0d378..b8a86e0720 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -181,7 +181,98 @@ stub on a named wall/behemoth/queue ledger** โ€” 140/140 byte-identical througho --- -# ๐Ÿ›‘ SESSION-38 CHECKPOINT (2026-08-04, wave 6 BANKED + the gate defect fixed) โ€” FRESH SESSION SAFE HERE +# ๐Ÿ›‘ SESSION-38 CHECKPOINT โ€” **v2, POST-S1/S2** (2026-08-04) โ€” FRESH SESSION SAFE HERE +> **NOTHING IS RUNNING. Tree lock FREE. Tree CLEAN** but for the R23 `db.*.gbf` churn โ€” never stage. +> Effort: **xHigh** (Drew set it for the eventual S5 wave; the S1/S2 work was deterministic). +> **R22 clean-fleet run SEVEN times this session, 140/140 every time.** +> **Drew's standing decision: NO phase close โ€” keep grinding.** Plan = **T7 (the Fable-5 plan)**; +> **full report at `.run/fable_frontier/ANALYSIS.md`**, pools at `pool_ovres.json`. +> **VERIFY BEFORE TRUSTING:** `git log --oneline -3` should show this at/near HEAD and +> `grep -E 'FLEET (fn-count|instr|distinct)' docs/progress.fleet.md` must agree below. Digest wins. + +## FLEET โ€” R22 **140 passed / 0 failed of 140** +**96.32% fn-count ยท 94.3% instr-weighted ยท 89.1% distinct-code** (77,884 uniq) ยท 0 NON_MATCHING (G4). +Session opened 96.28 / 94.1 / 88.7 โ‡’ **+19,300 instructions**, the great majority for **~0 agent +tokens** (instrument repair, not drafting). + +## WHAT S38 ACTUALLY WAS: EIGHT TOOL DEFECTS, NOT A COMPILER PROBLEM +Every "wall" hit today was our own tooling keyed on the wrong thing. In order: +1. **`harvest_verify._reload_corpus`** re-applied `--src` after a carve โ†’ deleted the stub it had + just followed โ†’ uncaught `KeyError` โ†’ `_jtbl_restore` never ran โ†’ **stranded carve** โ†’ later gate + groups built against a mutated tree. **10 of wave 6's 16 drafts vanished with no verdict.** +2. **`.run/s6f_gate.py`** never checked the child's rc โ€” booked a crash as silence. Now asserts + `banked+failed+no-verdict == drafts`, prints rc + output tail, exits 1. +3. **`classify_fail`** truncated diagnostics **from the LEFT**, severing the symbol name. +4. **`jr_isolate_all` / `overlay_src_split`** SILENTLY DELETED definition-side `__asm__`-alias + functions during a repartition (`addr_of` resolves by C name; an alias def is spelled `aFโ€ฆ`). + โ†’ 3 wave-6 drafts recovered instantly. **Fifth tool with this same blindness** โ€” `family_remap` + fixed it and the fix was never propagated. +5. **`partition`/`_partition`** now REFUSE to rewrite a file when a construct's address won't resolve + (R32) instead of dropping it. +6. **The type-scope class** โ€” a remapped body names the exemplar's TU-local types โ†’ parse error, never + reaches codegen. **895 types lifted fleet-wide** โ†’ the class is gone. +7. **`jtbl_family_bank`** reported `gate-fail` with NO reason (only stage-construction errors were + captured, never the build's). Fixed โ†’ S2's failures are now classified. +8. `family_hseq`'s stdout called an OVERLAYS-ONLY number "fleet". + +## โœ… T7 PROGRESS +| task | result | +|---|---| +| **S1a** lift local types | **DONE** โ€” 895 types / 1,259 files | +| **S1c** re-sweep matched-exemplar families | **DONE โ€” 97 members banked** (were 0) | +| **S1b** "wire the reconcile" | **PREMISE REFUTED โ€” nothing to wire** (see below) | +| **S2** jr families via `jtbl_family_bank` | **DONE โ€” 10 members banked**, 7 families classified | +| S1d, S3โ€“S7 | pending โ€” see the task list + T7 | + +**S1b is closed by measurement:** `cast_call_sites` is ALREADY called in `hseq_sweep` +(family_sweep.py:632, default-on), as are tu-scope ยง103 and `scope_data_fix`. And +`--normalize-self-decls` โ€” whose only negative (0/1,622) its own author proved was a tool artifact โ€” +got a fair post-fix re-test: **0 banks + repeated "self-decl edit NON-NEUTRAL โ†’ reverted TU"**. It +also targets the wrong axis (the target's OWN decl; the residue conflicts are on callees/data). + +## ๐ŸŽฏ THE REAL RESIDUE โ€” **TWO SYMBOLS, 383 of ~398 CONFLICTS** (โ†’ task S1d) +- **`func_80146A6C` (208)** โ€” the fleet is **UNIFORM** (4,262 decls of + `extern s32 func_80146A6C(s32,void*,s32,s32,s32,s32,s32)` + 297 unnamed-param copies of the same + types), so **the TU is right and the templated draft carries the bad decl.** A draft-side bug hunt, + NOT a new lever โ€” and work out why `cast_call_sites` is not already resolving it. +- **`func_80161208` (175)** โ€” the fleet genuinely disagrees: `s32 f()` ร—3730 ยท `int f()` ร—1775 ยท + `s32 f(void)` ร—1517 ยท `s32 f(void*)` ร—138. **That is the Phase-16 loose-typing wall**, not plumbing. + Candidate: the ยง37/ยง124 DEFINITION-side asm-label alias (zero blast radius). **Probe one member.** + +## โ–ถ RESUME HERE (cheap deterministic lanes still pay; the wave costs ~20M tokens) +1. **S3 โ€” the SC07 carve** (task #5): the whale `0x80144b9c` is matched in 134/138 overlays and open + ONLY in the 4 SC07s = **3,080 ins of BYTE-IDENTICAL code** blocked by the T2 Arm-A `%lo +0x20` + defect. ~0 tokens. +2. **S1d** (task #10) โ€” the two symbols above, worth ~383 member failures. +3. **S2 residue** โ€” `.run/jrprop/*.log`: 2 families `isolate-fail`, 1 `carve-fail` (tool refusals, + likely routable); only 2 members are genuine DIFF. +4. **S4** (task #6) โ€” 39 draft-exemplar families + the 2 resident stubs with match_one-MATCH drafts + already gate-rejected for TU plumbing; **plus wave 6's 3 still-failing alias-class drafts** + (func_80189030 / 801878E8 / 801919A0 โ€” the three LARGEST, so the residual cause is size-correlated). +5. **S5 โ€” the wave** (task #7): 1,689 open-only h_norm clusters / 326,261 ins at a 2.7ร— multiplier. + **VERIFY the pool numbers first (Fable's, unverified โ€” R14)**, then ONE 8-target calibration wave + measuring REALIZED propagation before scaling. **Prompt Drew for the toggle (R27).** + +## ๐Ÿงฐ MY PROCESS ERRORS THIS SESSION +1. **I claimed `family_sweep` hides the per-member error.** FALSE โ€” **23,211 + `.run/hseq_failed.*.classified.txt` files** exist and both of the day's zeros were already + diagnosed in them. I asserted a tool limitation without looking, then spent two probes and a + manual `--stage-only` round rediscovering one. **Read the payload first.** +2. **I called 4 families "chance collisions"** while my own printout showed them `PURE`/`IMM` โ€” and + PURE means every differing word is at a RELOC position, the opposite of chance. Refuted by Fable. +3. **I reverted `config/` and re-extracted ONE overlay of sixteen** (the Phase-20 R22 corollary), + so a whole gate cycle measured against stale asm and read 3 real banks as failures. +4. **A backticked `` `make extract` `` in a `-m` commit message EXECUTED** โ€” corrupted the message + and ran a real extract. Use quoted heredocs. (No damage; re-committed.) +5. **`family_sweep โ€ฆ | tail` swallowed a non-zero exit** โ€” a pipeline's status is the LAST command's. +6. **I looked a just-banked head up in its family's `members` list** โ€” a banked head LEAVES `members` + and becomes `exemplar.kind='matched'`. +No bad bytes from any of them โ€” the byte-gate and R22 caught everything. + +--- + +# ๐Ÿ›‘ (superseded) SESSION-38 CHECKPOINT v1 โ€” wave 6 banked + the gate defect fixed + > **NOTHING IS RUNNING. Tree lock FREE. Tree CLEAN** but for the R23 `db.*.gbf` churn โ€” never stage. > Effort: **high** (Drew lowered from ultracode as an experiment; he will enable xHigh for wave 7). > **R22 clean-fleet run TWICE this session, 140/140 both times.**