Repository navigation
integration: module-identity Phase 0(b)/1 + qualified_name de-fork + emitter Ord unlock (single merge point) - #6866
Conversation
FormalNonterminal and FormalTerminal ({ identity: Symbol }) now pass
rust_btree_set_element_ord_eligible and receive Ord derives, unblocking
04_infer and program_partition self-emit cargo probes.
Co-authored-by: Cursor <cursoragent@cursor.com>
…ived, fail-closed)
Homes the path⇄module binding on v2.compiler.source_authority as a
DERIVED-at-parse fact per docs/plans/module-identity-storage-binding-design.md §2.
- ModuleStorageProvenance = ParsedFromSource { artifact, span_index }
| ProducedByBehavior { producer } — zero-file produced modules are now
representable honestly instead of being excluded.
- ModuleStorageBinding / ModuleStorageIndex, reusing QualifiedName, Artifact,
SourceRootRef and SpanIndex (no new nickname, §3).
- Both projections: file -> module and module -> storage.
- Scope is the LIVE 1:1 binding; many-to-many is a named deferral (§6).
§5 fail-closed repair in v2.compiler.program_assembly: the Rejected arm of
qualified_name_from_module_node kept the root and left the index UNCHANGED,
so a module whose name could not be derived went silently invisible to every
downstream lookup — an absorbing fallback in drop form, its frequency zeroed
by construction. It now refuses with the located diagnostic.
Witnesses (green by execution, REDs verified discriminating by perturbation):
derivation from parse; path projection; duplicate-module refuses; underivable
name refuses; produced module has no storage.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…t/long witness lanes
Three fixes from review + CI.
1. Located refusal (cursor/composer-2.5). The name-derivation Rejected arm
discarded the derivation's diagnostics and substituted a port-level
source_authority_diagnostic — satisfying "typed" while destroying "located"
(§5 requires both), contradicting this PR's own notes, and diverging from the
sibling arm in program_assembly which forwards d. It now forwards d unchanged,
so one failure yields one diagnostic regardless of entry point.
2. Grammar prepare hoisted above the fold, mirroring
program_assembly_prepare_once_note. The derivation called parse_module per
read, re-validating the grammar K times over a K-module ingest; it now
prepares once and uses parse_module_prepared. Empty ingest is guarded so it
never pays the prepare for zero reads. Same cost-shape defect the assembly
fold already documents (§6 always-fix).
3. Witness lanes split per the operator 5-second rule (CI EvalBudgetExceeded:
4 witnesses at ~5002ms). Measured by differencing against the non-parsing
witness, parse-derived eval is ~13s — inherently over the fast-lane budget
even after fix 2. Per gunbc.ci_layer_roots long_lane_exclusion_note ("fast
receipts stay discovered, execution proofs live in long/"), the parse-derived
proofs move to src/v2/test/claim/long/, and the fast lane keeps NEW witnesses
that exercise the §5 construction wall over hand-built rows at zero parse
cost: duplicate-module refusal, its accept control, and the produced/zero-file
arm. Duplicate detection keys on module identity independently of provenance,
which is why the wall is provable without a parse.
All eight witnesses green by execution across both lanes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
warm-wolf-786 — Ord unlock receipts (blocking bar item 1)Rebased onto Curated probes (
|
…to std_dup bucket Re-probed all seven Gate-A candidates with CSSL_STD_SEED_LINK=1 on integration/sharp-bee-290. No cargo-green flips (baseline stays 6). #6868 Ord fix cleared btree_set_ord for 04_infer/program_partition; both now refuse on Witness std_dup alongside 01_tokenize. Four modules still refuse UNRESOLVED_CompilerError. Bank execution receipts in docs/probes/gate_a_reprobe_2026-07-19.tsv and tail_reprobe_2026-07-19.tsv. Co-authored-by: Cursor <cursoragent@cursor.com>
…robe TSVs Invocation metadata for std_dup fix lane: all 19 probes were raw-closure (CSSL_STD_SEED_LINK=1, shim_lib_rel empty — no lane shims passed). Co-authored-by: Cursor <cursoragent@cursor.com>
…never widens), provenance de-fork, stale note, KeySource import Review 39722 (claude, RC) three findings + review 39727 (cursor, RC) two findings, all verified: 1. §5 absorbing fallback in the witness-admission scanner: rewritten as per-form structural extraction that is fail-closed BOTH ways — every occurrence of a recognized row head (bin_wet, probe_red, self_host_wet_entry, SelfHostWetReceiptBinding) either parses to a key, is a verified definition/non-literal pass-through site, or PANICS with source label + byte offset; the catch-all entry/function loop (the widen arm that could silently excuse orphans) is DELETED. A consumer in an unrecognized form now surfaces as a loud orphan, never an absorbed excuse. Call sites carry source labels (the 39727 arity finding was the auto-WIP intermediate state; complete here). 2. §3 parallel authority (borderline per reviewer): the dissolve-on marker now names the tracked lane (module-binding supply-carrier pattern; host consumes emitted manifest rows) and the interim scan's fail-closed semantics. 3. §2 byte-identical provenance pair: source_ir_node_artifact_provenance_add_from_model + _add wrapper DELETED (pre-existing on main, not introduced by the wave — verified via git show origin/main); consumers repointed (edit_locus_resolver_test import + 2 calls, internal :627 site). Zero references remain. 4. Stale fork note in module_storage_binding_derivation_test updated: the qualified_name fork it described was dissolved in this wave (renamed apart); note now records the resolution. 5. Operator-requested: dag/std/realization.dag KeySource unlisted-import x3 (pre-existing main defect) fixed — KeySource added to the std.effects import list; source_authority closure compile-clean 3 -> 0 diagnostics. Receipts: cargo build release clean; admission unit tests 2/2 (witness_admission_deferred_rows_have_consumers, witness_admission_orphan_synthetic_row_refuses); module_storage_binding witnesses PASS; edit_locus_resolver witnesses PASS on the repointed name. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Both change-requests addressed at 21e3468 (review 39722, review 39727):
— sent from sharp-bee-290 |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nout, critical path (operator 2-week target) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…_ord, KeySource import fix cleared the whole unresolved bucket; ~19 modules now on the one std_dup fix Verified by execution at f071536: all 6 formerly-UNRESOLVED closures (00_compile, materialization_carriers, program_assembly, source_authority, 02_parse, 03_ingest) compile 0 diagnostics; re-probe TSVs (#6872) show 04_infer/program_partition emit clean with std_dup as sole refusal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… on main Rebased onto main post-#6866. Remaining delta: KeySource cargo-stage TSV, embedded-marker grep receipt, v1_deletion_plan corrections (13 std_dup vs 6 unresolved, ROOT-CAUSED emitter-gap, stern-lark-430 dispatched). Gate-A/tail frontier rows already landed via integration merge. Co-authored-by: Cursor <cursoragent@cursor.com>
Rebased session/neat-swift-795-flip-prep onto origin/main: drop superseded module-identity/integration history already landed via #6866; retain flip infrastructure (frontier 6→12 SelfEmitted, wet enrollment, behavioral transports/shims), Measure emitter generic-env threading (EmitGraphInfo fn_generic_param_names/fn_type_env, fold lambda param_nodes, container child recursion gated to generic-fn context), stage0 regen, and nested List<List<Measure>> emit witness. PR #6881 remains draft until sign-off receipts complete. Co-authored-by: Cursor <cursoragent@cursor.com>
…n-note disposition (single merge point) (#6885) * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Module identity Phase 0(b): the admission invariant — every witness row * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Module identity Phase 0(b): the admission invariant — every witness row * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * emit: generalize BTreeSet Ord eligibility for Symbol-wrapped carriers FormalNonterminal and FormalTerminal ({ identity: Symbol }) now pass rust_btree_set_element_ord_eligible and receive Ord derives, unblocking 04_infer and program_partition self-emit cargo probes. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Module identity Phase 0(b): the admission invariant — every witness row * Module identity Phase 1: the path⇄module binding authority (parse-derived, fail-closed) Homes the path⇄module binding on v2.compiler.source_authority as a DERIVED-at-parse fact per docs/plans/module-identity-storage-binding-design.md §2. - ModuleStorageProvenance = ParsedFromSource { artifact, span_index } | ProducedByBehavior { producer } — zero-file produced modules are now representable honestly instead of being excluded. - ModuleStorageBinding / ModuleStorageIndex, reusing QualifiedName, Artifact, SourceRootRef and SpanIndex (no new nickname, §3). - Both projections: file -> module and module -> storage. - Scope is the LIVE 1:1 binding; many-to-many is a named deferral (§6). §5 fail-closed repair in v2.compiler.program_assembly: the Rejected arm of qualified_name_from_module_node kept the root and left the index UNCHANGED, so a module whose name could not be derived went silently invisible to every downstream lookup — an absorbing fallback in drop form, its frequency zeroed by construction. It now refuses with the located diagnostic. Witnesses (green by execution, REDs verified discriminating by perturbation): derivation from parse; path projection; duplicate-module refuses; underivable name refuses; produced module has no storage. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: Consolidate the qualified_name_from_segment_list §3 fork (LIVE runtime h * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Module identity Phase 0(b): the admission invariant — every witness row * review: forward located diagnostics; hoist grammar prepare; split fast/long witness lanes Three fixes from review + CI. 1. Located refusal (cursor/composer-2.5). The name-derivation Rejected arm discarded the derivation's diagnostics and substituted a port-level source_authority_diagnostic — satisfying "typed" while destroying "located" (§5 requires both), contradicting this PR's own notes, and diverging from the sibling arm in program_assembly which forwards d. It now forwards d unchanged, so one failure yields one diagnostic regardless of entry point. 2. Grammar prepare hoisted above the fold, mirroring program_assembly_prepare_once_note. The derivation called parse_module per read, re-validating the grammar K times over a K-module ingest; it now prepares once and uses parse_module_prepared. Empty ingest is guarded so it never pays the prepare for zero reads. Same cost-shape defect the assembly fold already documents (§6 always-fix). 3. Witness lanes split per the operator 5-second rule (CI EvalBudgetExceeded: 4 witnesses at ~5002ms). Measured by differencing against the non-parsing witness, parse-derived eval is ~13s — inherently over the fast-lane budget even after fix 2. Per gunbc.ci_layer_roots long_lane_exclusion_note ("fast receipts stay discovered, execution proofs live in long/"), the parse-derived proofs move to src/v2/test/claim/long/, and the fast lane keeps NEW witnesses that exercise the §5 construction wall over hand-built rows at zero parse cost: duplicate-module refusal, its accept control, and the produced/zero-file arm. Duplicate detection keys on module identity independently of provenance, which is why the wall is provable without a parse. All eight witnesses green by execution across both lanes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * Gate-A re-probe post-#6859+#6868: repoint 04_infer/program_partition to std_dup bucket Re-probed all seven Gate-A candidates with CSSL_STD_SEED_LINK=1 on integration/sharp-bee-290. No cargo-green flips (baseline stays 6). #6868 Ord fix cleared btree_set_ord for 04_infer/program_partition; both now refuse on Witness std_dup alongside 01_tokenize. Four modules still refuse UNRESOLVED_CompilerError. Bank execution receipts in docs/probes/gate_a_reprobe_2026-07-19.tsv and tail_reprobe_2026-07-19.tsv. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): add cssl_std_seed_link and shim_lib_rel columns to re-probe TSVs Invocation metadata for std_dup fix lane: all 19 probes were raw-closure (CSSL_STD_SEED_LINK=1, shim_lib_rel empty — no lane shims passed). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Weak Self Host -> Strong Self Host (Wave 1 -> 4, on 1 exit) * WIP: Weak Self Host -> Strong Self Host (Wave 1 -> 4, on 1 exit) * integration: address review 39722/39727 — admission scanner refuses (never widens), provenance de-fork, stale note, KeySource import Review 39722 (claude, RC) three findings + review 39727 (cursor, RC) two findings, all verified: 1. §5 absorbing fallback in the witness-admission scanner: rewritten as per-form structural extraction that is fail-closed BOTH ways — every occurrence of a recognized row head (bin_wet, probe_red, self_host_wet_entry, SelfHostWetReceiptBinding) either parses to a key, is a verified definition/non-literal pass-through site, or PANICS with source label + byte offset; the catch-all entry/function loop (the widen arm that could silently excuse orphans) is DELETED. A consumer in an unrecognized form now surfaces as a loud orphan, never an absorbed excuse. Call sites carry source labels (the 39727 arity finding was the auto-WIP intermediate state; complete here). 2. §3 parallel authority (borderline per reviewer): the dissolve-on marker now names the tracked lane (module-binding supply-carrier pattern; host consumes emitted manifest rows) and the interim scan's fail-closed semantics. 3. §2 byte-identical provenance pair: source_ir_node_artifact_provenance_add_from_model + _add wrapper DELETED (pre-existing on main, not introduced by the wave — verified via git show origin/main); consumers repointed (edit_locus_resolver_test import + 2 calls, internal :627 site). Zero references remain. 4. Stale fork note in module_storage_binding_derivation_test updated: the qualified_name fork it described was dissolved in this wave (renamed apart); note now records the resolution. 5. Operator-requested: dag/std/realization.dag KeySource unlisted-import x3 (pre-existing main defect) fixed — KeySource added to the std.effects import list; source_authority closure compile-clean 3 -> 0 diagnostics. Receipts: cargo build release clean; admission unit tests 2/2 (witness_admission_deferred_rows_have_consumers, witness_admission_orphan_synthetic_row_refuses); module_storage_binding witnesses PASS; edit_locus_resolver witnesses PASS on the repointed name. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * integration: rustfmt the admission scanner Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan: v1-deletion dependency graph as .dag — milestones, serial-vs-fanout, critical path (operator 2-week target) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan: record 2026-07-19 census discharges — Ord fix cleared btree_set_ord, KeySource import fix cleared the whole unresolved bucket; ~19 modules now on the one std_dup fix Verified by execution at f071536: all 6 formerly-UNRESOLVED closures (00_compile, materialization_carriers, program_assembly, source_authority, 02_parse, 03_ingest) compile 0 diagnostics; re-probe TSVs (#6872) show 04_infer/program_partition emit clean with std_dup as sole refusal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(cssl): assembly std_dup unlock — Witness sanitize + v2_std emit-retain Single assembly fix for the 13-module std_dup gate (calm-boar-697 census): - sanitize_witness_import_conflict matches `pub enum Witness<C>` (generic), stripping v1_rt::Witness prelude imports that collided with emitted enum - v2_std_* emit-retain instead of minimal bridge shims (broken dependents like v2_std_logic → v2_std_algebra re-exports) No emitter changes. Probes move past HARNESS_ARTIFACT_std_dup / E0255 on all Gate-A modules + tail representatives; next blockers surface as namespace gaps. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): post-std_dup re-probe on proud-deer ed68594 (13 modules) CSSL_STD_SEED_LINK=1, shim_lib_rel empty, rebuilt cssl_assemble. std_dup E0255 cleared on 12/13; new namespace layer surfaces (FreeMonoid, ResolvedTree, InferredTree/InferredFacts). emit_produced: Optional std_dup residue. Harness invocation contract in probe script header. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): baseline caveat + probe_notes on post-std_dup TSV (#6884) ed68594 predates #6883 emit-retain; mark ResolvedTree/InferredTree rows EXPECTED-CLEARED. emit_produced Optional routed to proud-deer. FreeMonoid rows flagged as live next-layer census post-#6883. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(#6880): cargo-stage unresolved re-probe + plan census correction on main Rebased onto main post-#6866. Remaining delta: KeySource cargo-stage TSV, embedded-marker grep receipt, v1_deletion_plan corrections (13 std_dup vs 6 unresolved, ROOT-CAUSED emitter-gap, stern-lark-430 dispatched). Gate-A/tail frontier rows already landed via integration merge. Co-authored-by: Cursor <cursoragent@cursor.com> * witness_admission: bounded dissolution note on the two single-arm predicates (review 39758 disposition) Phase 0(b) author closed out; disposition owned by sharp-bee-290 per the capture. Pattern matches target_value_expr_int_literal_predicate_dissolution_note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan(#6880): resolve integration merge — std_dup LANDED #6876, flip-wave unblocked Fold integration/sharp-bee-290 at 81dc2d9; update v1_deletion_plan lane_state to current truth (13+6 census retained, probe_flip_fanout unblocked pending emitter fixes). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
#6880) * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Module identity Phase 0(b): the admission invariant — every witness row * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Module identity Phase 0(b): the admission invariant — every witness row * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * emit: generalize BTreeSet Ord eligibility for Symbol-wrapped carriers FormalNonterminal and FormalTerminal ({ identity: Symbol }) now pass rust_btree_set_element_ord_eligible and receive Ord derives, unblocking 04_infer and program_partition self-emit cargo probes. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Module identity Phase 0(b): the admission invariant — every witness row * Module identity Phase 1: the path⇄module binding authority (parse-derived, fail-closed) Homes the path⇄module binding on v2.compiler.source_authority as a DERIVED-at-parse fact per docs/plans/module-identity-storage-binding-design.md §2. - ModuleStorageProvenance = ParsedFromSource { artifact, span_index } | ProducedByBehavior { producer } — zero-file produced modules are now representable honestly instead of being excluded. - ModuleStorageBinding / ModuleStorageIndex, reusing QualifiedName, Artifact, SourceRootRef and SpanIndex (no new nickname, §3). - Both projections: file -> module and module -> storage. - Scope is the LIVE 1:1 binding; many-to-many is a named deferral (§6). §5 fail-closed repair in v2.compiler.program_assembly: the Rejected arm of qualified_name_from_module_node kept the root and left the index UNCHANGED, so a module whose name could not be derived went silently invisible to every downstream lookup — an absorbing fallback in drop form, its frequency zeroed by construction. It now refuses with the located diagnostic. Witnesses (green by execution, REDs verified discriminating by perturbation): derivation from parse; path projection; duplicate-module refuses; underivable name refuses; produced module has no storage. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: Consolidate the qualified_name_from_segment_list §3 fork (LIVE runtime h * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Module identity Phase 1: the path⇄module binding authority — parse-deriv * WIP: Module identity Phase 0(b): the admission invariant — every witness row * review: forward located diagnostics; hoist grammar prepare; split fast/long witness lanes Three fixes from review + CI. 1. Located refusal (cursor/composer-2.5). The name-derivation Rejected arm discarded the derivation's diagnostics and substituted a port-level source_authority_diagnostic — satisfying "typed" while destroying "located" (§5 requires both), contradicting this PR's own notes, and diverging from the sibling arm in program_assembly which forwards d. It now forwards d unchanged, so one failure yields one diagnostic regardless of entry point. 2. Grammar prepare hoisted above the fold, mirroring program_assembly_prepare_once_note. The derivation called parse_module per read, re-validating the grammar K times over a K-module ingest; it now prepares once and uses parse_module_prepared. Empty ingest is guarded so it never pays the prepare for zero reads. Same cost-shape defect the assembly fold already documents (§6 always-fix). 3. Witness lanes split per the operator 5-second rule (CI EvalBudgetExceeded: 4 witnesses at ~5002ms). Measured by differencing against the non-parsing witness, parse-derived eval is ~13s — inherently over the fast-lane budget even after fix 2. Per gunbc.ci_layer_roots long_lane_exclusion_note ("fast receipts stay discovered, execution proofs live in long/"), the parse-derived proofs move to src/v2/test/claim/long/, and the fast lane keeps NEW witnesses that exercise the §5 construction wall over hand-built rows at zero parse cost: duplicate-module refusal, its accept control, and the produced/zero-file arm. Duplicate detection keys on module identity independently of provenance, which is why the wall is provable without a parse. All eight witnesses green by execution across both lanes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * WIP: Emitter Ord-eligibility unlock: rust_btree_set_element_ord_eligible cons * Gate-A re-probe post-#6859+#6868: repoint 04_infer/program_partition to std_dup bucket Re-probed all seven Gate-A candidates with CSSL_STD_SEED_LINK=1 on integration/sharp-bee-290. No cargo-green flips (baseline stays 6). #6868 Ord fix cleared btree_set_ord for 04_infer/program_partition; both now refuse on Witness std_dup alongside 01_tokenize. Four modules still refuse UNRESOLVED_CompilerError. Bank execution receipts in docs/probes/gate_a_reprobe_2026-07-19.tsv and tail_reprobe_2026-07-19.tsv. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): add cssl_std_seed_link and shim_lib_rel columns to re-probe TSVs Invocation metadata for std_dup fix lane: all 19 probes were raw-closure (CSSL_STD_SEED_LINK=1, shim_lib_rel empty — no lane shims passed). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Weak Self Host -> Strong Self Host (Wave 1 -> 4, on 1 exit) * WIP: Weak Self Host -> Strong Self Host (Wave 1 -> 4, on 1 exit) * integration: address review 39722/39727 — admission scanner refuses (never widens), provenance de-fork, stale note, KeySource import Review 39722 (claude, RC) three findings + review 39727 (cursor, RC) two findings, all verified: 1. §5 absorbing fallback in the witness-admission scanner: rewritten as per-form structural extraction that is fail-closed BOTH ways — every occurrence of a recognized row head (bin_wet, probe_red, self_host_wet_entry, SelfHostWetReceiptBinding) either parses to a key, is a verified definition/non-literal pass-through site, or PANICS with source label + byte offset; the catch-all entry/function loop (the widen arm that could silently excuse orphans) is DELETED. A consumer in an unrecognized form now surfaces as a loud orphan, never an absorbed excuse. Call sites carry source labels (the 39727 arity finding was the auto-WIP intermediate state; complete here). 2. §3 parallel authority (borderline per reviewer): the dissolve-on marker now names the tracked lane (module-binding supply-carrier pattern; host consumes emitted manifest rows) and the interim scan's fail-closed semantics. 3. §2 byte-identical provenance pair: source_ir_node_artifact_provenance_add_from_model + _add wrapper DELETED (pre-existing on main, not introduced by the wave — verified via git show origin/main); consumers repointed (edit_locus_resolver_test import + 2 calls, internal :627 site). Zero references remain. 4. Stale fork note in module_storage_binding_derivation_test updated: the qualified_name fork it described was dissolved in this wave (renamed apart); note now records the resolution. 5. Operator-requested: dag/std/realization.dag KeySource unlisted-import x3 (pre-existing main defect) fixed — KeySource added to the std.effects import list; source_authority closure compile-clean 3 -> 0 diagnostics. Receipts: cargo build release clean; admission unit tests 2/2 (witness_admission_deferred_rows_have_consumers, witness_admission_orphan_synthetic_row_refuses); module_storage_binding witnesses PASS; edit_locus_resolver witnesses PASS on the repointed name. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * integration: rustfmt the admission scanner Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan: v1-deletion dependency graph as .dag — milestones, serial-vs-fanout, critical path (operator 2-week target) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan: record 2026-07-19 census discharges — Ord fix cleared btree_set_ord, KeySource import fix cleared the whole unresolved bucket; ~19 modules now on the one std_dup fix Verified by execution at f071536: all 6 formerly-UNRESOLVED closures (00_compile, materialization_carriers, program_assembly, source_authority, 02_parse, 03_ingest) compile 0 diagnostics; re-probe TSVs (#6872) show 04_infer/program_partition emit clean with std_dup as sole refusal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(cssl): assembly std_dup unlock — Witness sanitize + v2_std emit-retain Single assembly fix for the 13-module std_dup gate (calm-boar-697 census): - sanitize_witness_import_conflict matches `pub enum Witness<C>` (generic), stripping v1_rt::Witness prelude imports that collided with emitted enum - v2_std_* emit-retain instead of minimal bridge shims (broken dependents like v2_std_logic → v2_std_algebra re-exports) No emitter changes. Probes move past HARNESS_ARTIFACT_std_dup / E0255 on all Gate-A modules + tail representatives; next blockers surface as namespace gaps. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): post-std_dup re-probe on proud-deer ed68594 (13 modules) CSSL_STD_SEED_LINK=1, shim_lib_rel empty, rebuilt cssl_assemble. std_dup E0255 cleared on 12/13; new namespace layer surfaces (FreeMonoid, ResolvedTree, InferredTree/InferredFacts). emit_produced: Optional std_dup residue. Harness invocation contract in probe script header. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(probes): baseline caveat + probe_notes on post-std_dup TSV (#6884) ed68594 predates #6883 emit-retain; mark ResolvedTree/InferredTree rows EXPECTED-CLEARED. emit_produced Optional routed to proud-deer. FreeMonoid rows flagged as live next-layer census post-#6883. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(#6880): cargo-stage unresolved re-probe + plan census correction on main Rebased onto main post-#6866. Remaining delta: KeySource cargo-stage TSV, embedded-marker grep receipt, v1_deletion_plan corrections (13 std_dup vs 6 unresolved, ROOT-CAUSED emitter-gap, stern-lark-430 dispatched). Gate-A/tail frontier rows already landed via integration merge. Co-authored-by: Cursor <cursoragent@cursor.com> * witness_admission: bounded dissolution note on the two single-arm predicates (review 39758 disposition) Phase 0(b) author closed out; disposition owned by sharp-bee-290 per the capture. Pattern matches target_value_expr_int_literal_predicate_dissolution_note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * plan(#6880): resolve integration merge — std_dup LANDED #6876, flip-wave unblocked Fold integration/sharp-bee-290 at 81dc2d9; update v1_deletion_plan lane_state to current truth (13+6 census retained, probe_flip_fanout unblocked pending emitter fixes). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… buckets (#6881) * Gate-A flip prep + Measure nested-generic emitter fix (rebased on main) Rebased session/neat-swift-795-flip-prep onto origin/main: drop superseded module-identity/integration history already landed via #6866; retain flip infrastructure (frontier 6→12 SelfEmitted, wet enrollment, behavioral transports/shims), Measure emitter generic-env threading (EmitGraphInfo fn_generic_param_names/fn_type_env, fold lambda param_nodes, container child recursion gated to generic-fn context), stage0 regen, and nested List<List<Measure>> emit witness. PR #6881 remains draft until sign-off receipts complete. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix PR #6881 CI: exclude wet behavioral receipts and repair census gates. Hermetic discovery was running the three new self-host behavioral witnesses (shell.Mktemp.Dir has no mock); add them to witness_exclusion_substrings like the other wet receipts. Discharge Band-A OtherGate rows when the frontier module is already SelfEmitted. Rename nested-fold witness so its stem covers the new v1 emit test module for the migration-debt ratchet. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Revert unrelated effect-namespace-grants.md collateral from Gate-A PR. Restore origin/main section 6 (FLAG A interim): workspace Read grant, ownership-implies-read note, and PR-1/PR-2 LANDED paragraphs. The hunk was accidental doc drift with no tie to the flip or emitter work. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Add Measure sign-off POST-fix 6-module probe receipt TSV. Documents hash-verified gunbc rebuild probe results for the flip-wave baseline: emit 0-diag on all six, cargo at named next layers (std_dup on 5/6; materialization_carriers E0433 deferred per operator routing). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Fix PR #6881 CI: regen verify gate + stage0 infer sync. Remove duplicate empty_type_env fallout from stage0 infer emit drift, and normalize rustfmt-only diffs in regen_stage0 verify so workspace cargo fmt and fresh self-compile compare cleanly. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger after regen verify + cargo fmt fix (44b23d6). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * frontier: sync stage0 crate layout after honest SelfEmitted baseline revert (12→6). Regenerated stage0_crate_layout_generated artifacts to drop the six prematurely-flipped modules from hand-maintained pub mod / filename rosters now that frontier.dag marks them SeedRetained again. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(frontier): restore sweep-order monotonicity after honest revert. Re-sort compiler_frontier_sweep_order after SeedRetained revert changed tractability ranks (materialization_carriers/program_assembly → NameResolutionGap band; 00_compile → EmitSurfaceGap). Fixes compiler_frontier_census_composite_test CI failure on #6881. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * fix(frontier): align reverted behavioral transport docs with honest refresh. Six reverted-module transport docs now cite SeedRetained / honest_frontier_refresh_probe_note instead of stale "flip landed" prose. Remove three flip-wave seed stubs (parse/ingest/materialization_carriers) that were never wired into the frontier-derived crate layout. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…erialization_carriers, program_assembly, source_authority, 02_parse, 03_ingest) refuse with UNRESOLVED_CompilerError in curated probes — census + receipts in #6872 TSVs (calm-boar-697). Read the actual probe error output per module (#6986) * Gate-A flip prep + Measure nested-generic emitter fix (rebased on main) Rebased session/neat-swift-795-flip-prep onto origin/main: drop superseded module-identity/integration history already landed via #6866; retain flip infrastructure (frontier 6→12 SelfEmitted, wet enrollment, behavioral transports/shims), Measure emitter generic-env threading (EmitGraphInfo fn_generic_param_names/fn_type_env, fold lambda param_nodes, container child recursion gated to generic-fn context), stage0 regen, and nested List<List<Measure>> emit witness. PR #6881 remains draft until sign-off receipts complete. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix PR #6881 CI: exclude wet behavioral receipts and repair census gates. Hermetic discovery was running the three new self-host behavioral witnesses (shell.Mktemp.Dir has no mock); add them to witness_exclusion_substrings like the other wet receipts. Discharge Band-A OtherGate rows when the frontier module is already SelfEmitted. Rename nested-fold witness so its stem covers the new v1 emit test module for the migration-debt ratchet. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Revert unrelated effect-namespace-grants.md collateral from Gate-A PR. Restore origin/main section 6 (FLAG A interim): workspace Read grant, ownership-implies-read note, and PR-1/PR-2 LANDED paragraphs. The hunk was accidental doc drift with no tie to the flip or emitter work. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Add Measure sign-off POST-fix 6-module probe receipt TSV. Documents hash-verified gunbc rebuild probe results for the flip-wave baseline: emit 0-diag on all six, cargo at named next layers (std_dup on 5/6; materialization_carriers E0433 deferred per operator routing). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Fix PR #6881 CI: regen verify gate + stage0 infer sync. Remove duplicate empty_type_env fallout from stage0 infer emit drift, and normalize rustfmt-only diffs in regen_stage0 verify so workspace cargo fmt and fresh self-compile compare cleanly. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger after regen verify + cargo fmt fix (44b23d6). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * frontier: sync stage0 crate layout after honest SelfEmitted baseline revert (12→6). Regenerated stage0_crate_layout_generated artifacts to drop the six prematurely-flipped modules from hand-maintained pub mod / filename rosters now that frontier.dag marks them SeedRetained again. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(frontier): restore sweep-order monotonicity after honest revert. Re-sort compiler_frontier_sweep_order after SeedRetained revert changed tractability ranks (materialization_carriers/program_assembly → NameResolutionGap band; 00_compile → EmitSurfaceGap). Fixes compiler_frontier_census_composite_test CI failure on #6881. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * fix(frontier): align reverted behavioral transport docs with honest refresh. Six reverted-module transport docs now cite SeedRetained / honest_frontier_refresh_probe_note instead of stale "flip landed" prose. Remove three flip-wave seed stubs (parse/ingest/materialization_carriers) that were never wired into the frontier-derived crate layout. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Gate-1 emit regression (post-#6848): the Rust emit target renders namesp * WIP: Gate-1 emit regression (post-#6848): the Rust emit target renders namesp * emit_imports: field-struct import synth asks "provides", not "physically defines" An anonymous record literal takes its type from the FIELD it initializes, so the constructed type name appears nowhere in the source and can never sit in an authored import list. emit_imports derives use-lines only from import lists, so the emitted Rust refused: E0422 cannot find struct ... in this scope. module_data_field_struct_import_names gated candidates on has_physical_type_def_in_module_filename — field type PHYSICALLY DEFINED in the module being imported from. That is narrower than the question being asked. compile_stage_memo imports CacheInterfaceCatalogFacts from extdeps.cache.types but its io/placement field types are defined in the SIBLING modules extdeps.cache.catalog_io / catalog_placement and merely re-exported, so they were rejected and no use-line was synthesized. Now uses name_in_transitive_export_surface, the existing authority for "does this module provide this name" (get_exported_names counts specific-import names as exports, which is exactly re-export) — reused, not re-minted. Routing needed no change: graph_type_import_module_filename already groups emitted use-lines by the type's DEFINING module. export_sets is threaded as a parameter rather than rebuilt inside the filter, which would have been a per-field quadratic cost-shape defect. Verified by execution, both halves: regen_divergence_count=0 (two-stage bootstrap; stage 2 with the new emitter LIVE over the whole import-BEARING seed, which is the run that counts) materialization_carriers first error advanced CacheInterfaceCatalogIoSemantics -> CacheEvidence Known residue, documented in-code not hidden: a generic field type (evidence: List<CacheEvidence>) still misses, because build_field_type_map stores only the type node's HEAD name, so CacheEvidence is absent from field_type_map entirely and no string-level test can recover it. Distinct axis, separate increment. Honest frontier refresh (receipt must match measurement, independent of any flip): 01_tokenize / 04_infer / program_partition were recorded as import_closure but all three now MEASURE as the dotted namespace-qualified render class; rows corrected. Flip wave produced ZERO flips — 4 of 5 probed modules refuse on the dotted class, which is emitted into std.collection itself and so sits in every deep closure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * emit_imports increment-2: recurse field-type node tree for import surface names. build_field_type_map now walks resolved generic/container argument nodes so List<CacheEvidence> contributes CacheEvidence to field_import_surface_names, not just the List head in field_type_map. emit_imports field-struct synth consumes the expanded surface list (rides on #6981 sibling-axis machinery). Oracle: materialization_carriers first cargo error advances past CacheEvidence E0422 (verified via cssl probe + emitted use of std_cache_interface::CacheEvidence). Co-authored-by: Cursor <cursoragent@cursor.com> * docs(emit_imports): refresh provider note after increment-2 generic axis. Replace stale KNOWN RESIDUE paragraph claiming CacheEvidence still misses — increment-2 now walks the resolved field-type node tree into field_import_surface_names. Update frontier_probe_types receipt to record materialization_carriers advancing past CacheEvidence E0422. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: cargo fmt for increment-2 stage0 + test module ordering. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: unresolved_compiler_error diagnosis + fix: 6 modules (00_compile, materi * Regen stage0 infer_emit_info seed after main merge (#6983). Post-merge regen_stage0 --verify reported regen_divergence_count=1 (v1_compiler_infer_emit_info.rs stale vs live emitter). Re-emitted seed; verify now regen_divergence_count=0. Co-authored-by: Cursor <cursoragent@cursor.com> * Regen std_measure seed after main merge (#6991 measure.dag). Post-merge regen_stage0 --verify reported regen_divergence_count=1 (std_measure.rs; main's measure.dag delta, not #7002 cli_run). Re-emitted; verify now regen_divergence_count=0. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Integration branch capturing the module-identity + self-host wave (operator-directed: avoid per-PR main merges; one merge point). Children's PRs are closed with their content captured here as merge commits; all continuing lane work bases on and targets this branch.
Captured (each individually CI-green at capture)
ModuleStorageProvenancecoproduct,ModuleStorageBinding/index, projections, program_assembly silent-drop §5 repair. Manager-reviewed, no blockers.witness_admissionmodel + workflow + floor wiring.qualified_name_from_segment_list§3 fork dissolution (std/extdeps consolidation + reference_deps lens).Symbol-field carrier shape for BTreeSet Ord derives;regen_stage0 --verifydivergence 0.Verified on the combined tree
KeySourceunlisted-import diagnostics indag/std/realization.dagreproduce identically on origin/main — pre-existing, not introduced here).Blocking before merge to main
warm-wolf-786: Ord probe receipts + name-whitelist dissolutionDISCHARGED — emit: dissolve Ord whitelist via type_decl_items lookup (Ord unlock) #6868 captured at 7354103 (probes past-Ord on both modules, whitelist → declaration-shape lookup, regen verify=0, emitter sign-off + 2 approvals). Finding: the Ord unlock surfaces the std_dup class on BOTH modules — now a 3-module blocker (with 01_tokenize).wise-bee-768 supply carrier gating this PRRESCOPED (operator-directed flip 2026-07-19): the (b) supply carrier ((b) Module identity: the module-binding supply carrier — modeled op + host handler repointing build_module_path_index #6867) continues as stacked work on this branch — captured here if it lands pre-merge, auto-retargeted to main post-merge. Not a merge blocker.dag/std/realization.dagKeySource unlisted-import × 3 — tracked separately.🤖 Generated with Claude Code