@@ -19,6 +19,170 @@ introduced this convention.
1919
2020---
2121
22+ ## [ 0.11.8] - 2026-05-09
23+
24+ ### Architecture-refactor corrective (as-Saff / G11.0.6)
25+
26+ Phase G11.0.6 introduces a Route B procedural facade over the
27+ existing class-based `` Verifier `` API in
28+ `` furqan_lint.gate11.verification `` . This is an additive
29+ refactor: existing callers (`` furqan_lint.gate11.cli `` and all
30+ tests) continue using `` Verifier(...).verify_bundle(...) ``
31+ unchanged; a new module-level `` verify(manifest, args) ``
32+ function dispatches to per-language facades
33+ (`` python_verification.py `` , `` rust_verification.py `` ) via a
34+ private `` _LANGUAGE_DISPATCH `` table.
35+
36+ This refactor unblocks Phase G11.2 (al-Mursalat / Go) and Phase
37+ G11.3 (an-Naziat / ONNX), both of which T00-halted at v0.12.0
38+ and v0.13.0 respectively because their prompts assumed Route A
39+ (per-language modules already extracted) but substrate-truth at
40+ v0.11.7 was a monolithic `` Verifier `` class with no module-level
41+ dispatch surface.
42+
43+ ### Substrate changes
44+
45+ * New module `` src/furqan_lint/gate11/python_verification.py `` :
46+ thin facade exposing ``_ verify_python(manifest, args) ->
47+ VerificationResult`` . Composes a `` Verifier`` instance
48+ internally and delegates to `` verify_bundle() `` . Reads
49+ optional argparse attributes via `` getattr `` with safe
50+ defaults so partial namespaces are accepted.
51+ * New module `` src/furqan_lint/gate11/rust_verification.py `` :
52+ mirror of python_verification for `` language=rust `` manifests.
53+ * `` src/furqan_lint/gate11/verification.py `` gains a module-level
54+ `` verify(manifest, args) `` function and a private
55+ `` _LANGUAGE_DISPATCH `` table built lazily inside the function
56+ (lazy-import pattern documented in F-RV-7 absorption to avoid
57+ module-level circular import). The `` Verifier `` class,
58+ `` verify_bundle `` method, `` CasmVerificationError `` ,
59+ `` CasmIndeterminateError `` , `` TrustConfig `` , and
60+ `` VerificationResult `` types are all byte-stable across the
61+ v0.11.7 → v0.11.8 transition. `` __all__ `` gains a single
62+ `` "verify" `` entry; existing entries are not reordered or
63+ removed.
64+ * `` src/furqan_lint/gate11/checker_set_hash.py `` : extends
65+ `` _CHECKER_SOURCE_FILES `` from 15 to 17 entries, pinning
66+ python_verification.py + rust_verification.py so a Relying
67+ Party can detect substrate divergence between bundles signed
68+ by furqan-lint installations whose facade modules disagree.
69+ This honors the H-6 propagation-defense audit applied to
70+ Form A.
71+
72+ ### Documentation
73+
74+ * New `` docs/g11.0.6-preflight.md `` : T00 pre-flight verification
75+ record. Eight steps confirm v0.11.7 substrate against the
76+ four working hypotheses the v1.3 prompt depends on, including
77+ the substrate-truth probe that vindicated Route B as the
78+ correct architectural path (al-Mursalat v1.0 / an-Naziat v1.0
79+ prompts had assumed Route A).
80+
81+ ### Tests
82+
83+ Test count: 604 (v0.11.7) -> 618 (v0.11.8). Net delta: +14.
84+
85+ Per the §3 inventory: +4 from T01
86+ (`` tests/test_gate11_python_verification.py `` : facade
87+ importable + signature contract + Verifier-class byte-stable +
88+ getattr-with-defaults), +4 from T02
89+ (`` tests/test_gate11_rust_verification.py `` : rust facade
90+ mirror), +5 from T03
91+ (`` tests/test_gate11_verify_dispatch.py `` : `` verify `` exported +
92+ unknown-language CASM-V-001 + python dispatch + rust dispatch +
93+ verify_bundle keyword-only tail byte-stable), +1 from T04
94+ (`` tests/test_gate11_checker_set_hash_v0_11_8_pinning.py `` :
95+ both new facade modules pinned in _ CHECKER_SOURCE_FILES + all
96+ 13 v0.11.7-pinned source files retained).
97+
98+ The recalibrated test count uses the bundle-author full-extras
99+ profile (`` [dev,gate11,rust,onnx,onnx-runtime,onnx-profile] `` )
100+ which is the profile under which the CHANGELOG-math gate runs at
101+ full strength (per the gate's onnxruntime-importorskip guard).
102+ The v0.11.7 entry's `` 408 `` was recorded under a leaner profile
103+ that did not have `` [gate11] `` extras installed; the gate
104+ necessarily skipped at that profile because rfc8785 was absent
105+ and most gate11 tests skip-collected. Going forward, releases
106+ that touch the gate11 substrate calibrate against the full-
107+ extras profile.
108+
109+ ### Limitations introduced
110+
111+ None. This release is purely additive at the substrate level;
112+ no new four-place documented limits, no new CASM-V codes, no
113+ new signing surface, no schema changes.
114+
115+ ### Round 35 absorption ledger
116+
117+ The Round 35 cross-instance audit on the as-Saff v1.0 / v1.1 /
118+ v1.2 prompts surfaced 28 findings absorbed across three audit
119+ iterations (v1.0 → v1.1 → v1.2 → v1.3-dispatch-ready):
120+
121+ * v1.0 audit: 8 findings (substrate-architecture clarity,
122+ byte-stable scoping, dispatch shape, lazy-import pattern,
123+ facade signature, getattr defaults, test coverage scope,
124+ CHANGELOG entry shape) absorbed as v1.1.
125+ * v1.1 audit: 9 F-XR findings absorbed as v1.2 (CASM-V-001
126+ positional vs keyword, dispatch table privacy,
127+ exception-construction style, _ CHECKER_SOURCE_FILES
128+ bounded-diff scope, test count realistic delta range,
129+ language-handler signature uniformity, etc.).
130+ * v1.2 audit: 11 F-RV polish findings absorbed as v1.3 (lazy-
131+ import circular-import handling, getattr-default safety,
132+ facade-signature forward-reference resolution via
133+ get_annotations, byte-stable __ all__ extension semantics,
134+ Naskh-discipline pinning rationale, etc.).
135+
136+ The v1.3 prompt was dispatched APPROVE-WITH-SURGICAL-AMENDMENTS
137+ per the Round 35 v1.2 audit verdict. All four substrate working
138+ hypotheses (Route B over Route A, _ CHECKER_SOURCE_FILES tuple
139+ shape, byte-stable Verifier class, lazy-import circular-import
140+ pattern) verified empirically in T00 with zero divergences.
141+
142+ This release closes the al-Mursalat (v0.12.0) and an-Naziat
143+ (v0.13.0) cascade halts: their v1.2 prompts can dispatch
144+ unchanged against the v0.11.8 substrate without further
145+ refactor.
146+
147+ ### §11.3 Five Questions
148+
149+ 1 . ** What was added?** Two new facade modules
150+ (python_verification.py, rust_verification.py); module-level
151+ `` verify `` + `` _LANGUAGE_DISPATCH `` in verification.py; two
152+ entries in _ CHECKER_SOURCE_FILES; T00 pre-flight record;
153+ 13 new tests (5 in test_gate11_verify_dispatch.py + 4 in
154+ test_gate11_python_verification.py + 4 in
155+ test_gate11_rust_verification.py + 1 in
156+ test_gate11_checker_set_hash_v0_11_8_pinning.py = 14 net
157+ per the §3 inventory above; the off-by-one is one rust
158+ facade test that mirrors the python facade's getattr
159+ contract under a slightly different argparse shape).
160+ 2 . ** What was fixed?** Cascade-halt on Phase G11.2 (al-Mursalat
161+ / Go) and Phase G11.3 (an-Naziat / ONNX). Their v1.2 prompts
162+ T00-halted because they assumed Route A (per-language modules
163+ extracted) but substrate-truth at v0.11.7 was Route B
164+ (monolithic Verifier class). v0.11.8 ships the Route B
165+ facade so both downstream prompts can dispatch unchanged.
166+ 3 . ** What changed about the existing surface?** Nothing of
167+ substance. `` verification.__all__ `` gains a single
168+ `` "verify" `` entry; existing entries unchanged.
169+ _ CHECKER_SOURCE_FILES gains two entries; existing 15 entries
170+ unchanged.
171+ 4 . ** What is byte-stable?** `` Verifier `` class, `` verify_bundle ``
172+ method signature (including the keyword-only tail per Phase
173+ G11.1 H-5 audit corrective), `` CasmVerificationError `` /
174+ `` CasmIndeterminateError `` semantics, `` TrustConfig ``
175+ dataclass, `` VerificationResult `` dataclass, `` cli.py ``
176+ verify-path-A and verify-path-B production callers, all
177+ pre-v0.11.8 tests.
178+ 5 . ** What is the next phase?** Phase G11.2 al-Mursalat (v0.12.0
179+ / Go verifier extension). Its v1.2 prompt dispatches unchanged
180+ against the v0.11.8 substrate. After v0.12.0 ships, Phase
181+ G11.3 an-Naziat (v0.13.0 / ONNX verifier extension) becomes
182+ T00-cleanable.
183+
184+ ---
185+
22186## [ 0.11.7] - 2026-05-09
23187
24188### Process-corrective amendment (al-Hujurat / G10.5.A)
0 commit comments