mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 15:43:06 -04:00
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:
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user