From 63af2d1095186dd5da2d8e57a229f3b8aa8fb9f6 Mon Sep 17 00:00:00 2001 From: Brummel Date: Tue, 9 Jun 2026 18:16:57 +0200 Subject: [PATCH] =?UTF-8?q?audit:=20cycle=200025=20(#49)=20=E2=80=94=20dri?= =?UTF-8?q?ft-clean;=20root=20renders=20like=20any=20composite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Architect drift review (d6f59d7..12b1bce): NO code drift, no contract weakened, no ledger edit needed. - C9 (read-only render): the change touches only label/entry assembly (render_blueprint, leaf_label, render_graph signature); no eval, no run-path code. 150 tests green (same count), clippy clean, build green. - C12 ("mis-wiring visible before a run"): realized at the root, not overstated — a top-level fan-in's wiring was invisible (bare [SimBroker]); it now surfaces which producer feeds which slot ([SimBroker(#E,#price)]). The C8 label-render refinement (INDEX.md:250, "label() surfaces a mis-wiring") is extended to the root, not contradicted. - C23 (names dissolve post-inline): render_compilat byte-untouched (still emits source:{kind} from SourceSpec.kind); the [price] pre-inline / [source:F64] post-inline split now renders C23's boundary-dissolution visibly, with compiled_view_golden as the negative control. - C3 (sources bind at ingestion only): root entries filtered to source.is_some() bound roles — the one semantic root-vs-interior distinction, correctly retained. - #49 acceptance: the Option<&Composite> drop unifies both render_graph callers onto one stub path; no dead arm, no second/root-only stub function, no scope creep beyond graph.rs (production) + main.rs (test-only goldens/assertions). No ledger prose names the root source:{kind} marker as canonical; the C9 cycle-0017 realization (where: definitions render) is not stale. No new invariant introduced — the cycle realizes existing contracts more fully, so no realization note is manufactured. Regression: none configured in the profile (no-op) — the architect review is the gate. Resolution: carry-on (drift-clean). NOT a milestone close. Tracker reconciliation done this cycle (no code, orchestrator-applied): - #36 closed — 0024 resolved it (params declared once on the recipe; the 8 lockstep tests deleted), but Gitea's `closes #43 #36` only auto-closed #43. - #25 closed — 0024 removed the dyn Node::schema() re-call + bootstrap-derivation duplication this issue named (signatures gathered once into FlatGraph). - #24 retitled to derive_signature()/signature() — the panic-vs-typed-error divergence persists under 0024's renamed symbols; still open, low-priority.