fix(phase-26a): A9e — reconcile_tu already wired into bank_exemplar (A3d); document the ladder

NULL RESULT (P9/R14): the session-12 "wire reconcile_tu into bank_exemplar"
handoff item was stale — A3d (commit:0601) already wired reconcile_tu into
jtbl_family_bank.recover() ("on BOTH banking paths"), and bank_exemplar's
`recovered` stage delegates to fb.recover = cast_call_sites + reconcile_tu.
Proven working by A9b (func_8017A4AC banked at the recovered stage, reconcile_tu
resolving its struct + fn-ptr conflicts). No live tool references the RETIRED
reconcile_decls (only docstrings + the audit-cdecl differential harness).

No code change warranted. Byte-neutral hardening only: document the
raw/scoped/recovered/reconciled fallback-ladder composition inline in
bank_exemplar so a future session does not re-run this "is it wired?" trace.
This commit is contained in:
Drew T
2026-07-14 21:25:19 -06:00
parent 40477281ce
commit 68d29ba8af
2 changed files with 22 additions and 0 deletions
+15
View File
@@ -659,6 +659,21 @@ On approval → `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag
## Log
- **2026-07-14 (session 13, A9e — reconcile_tu already wired into bank_exemplar; NULL RESULT; Max):**
P9/R14 — the session-12 handoff item "wire reconcile_tu into bank_exemplar" is a **stale carryover; it
was already done by A3d.** Traced the call chain rather than trusting the note: `bank_exemplar`'s
`recovered` stage (l.53) = `fb.recover(base, OV, cf, FUNC)` = `jtbl_family_bank.recover()`, which runs
`cast_call_sites` **then `reconcile_tu`** (l.94/96) — the reconcile_tu wiring entered there in **A3d
(`commit:0601`, "retire the fleet-majority oracle … on BOTH banking paths")**. So `reconcile_tu` reaches
`bank_exemplar` transitively via `recovered`, needing no bank_exemplar-specific rung. **Already
PROVEN**: A9b banked `func_8017A4AC` "at the recovered stage (reconcile_tu resolves its D_80126B58 struct
+ D_801DA75C fn-ptr conflicts)". Also confirmed **no live tool references the RETIRED `reconcile_decls`**
(only docstring mentions + the `make audit-cdecl` differential harness, which legitimately measures cdecl
against the old regexes). **NO code change warranted** — adding a redundant explicit reconcile_tu rung
would duplicate `recovered` and diverge from `jtbl_family_bank`'s pattern for zero benefit. One byte-neutral
hardening: documented the recovery-ladder composition inline in `bank_exemplar` (scoped/recovered/reconciled)
so a future session doesn't re-run this exact "is it wired?" investigation — the precise waste the audit
exists to eliminate. **NEXT: A9f — overlay_src_split force_decl latch.**
- **2026-07-14 (session 13, A9d — retire the dead Phase-17 canonical-sig chain; Max):** R33 applied to a
two-tool dead chain. **DELETED `tools/census_conflict_callees.py` + `tools/derive_canonical_sigs.py`.**
`census` was audit-CONFIRMED MARKED-FOR-DELETION (`commit:0593`; decision-log 836 "in its entirety gets
+7
View File
@@ -47,6 +47,13 @@ body = open(CRACK).read()
scoped, moved = scope_data_fix(body, orig, m.start(), FUNC)
base = scoped if moved else body
# Fallback ladder (§19 — gate the RAW draft first, each rung more aggressive, bank on the first
# byte-match). What each recovery rung actually runs:
# scoped — §8d block-scope demotion of carried D_ externs (only when scope_data_fix moved any).
# recovered — fb.recover = cast_call_sites (callee-sig casts) THEN reconcile_tu (the DATA-symbol
# per-TU oracle, wired A3d/commit:0601): conform each D_ decl to what THIS TU can SEE and
# cast at use. This is how reconcile_tu reaches bank_exemplar — no separate rung needed.
# reconciled — canon_sig_reconcile (the def-side loose-typing sig wall; A9a made it fn-ptr-aware).
stages = [("raw", lambda: body)]
if moved:
stages.append(("scoped", lambda: scoped))