Skip to content

test-migration: floor witnesses for parse.rs and dag_collect_fingerprint - #6269

Merged
briansrls merged 13 commits into
mainfrom
session/stern-koi-859-test-migration
Jul 6, 2026
Merged

briansrls merged 13 commits into
mainfrom
session/stern-koi-859-test-migration

Conversation

@briansrls

@briansrls briansrls commented Jul 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Migrates two migrate-class v1 test modules to exact-stem floor witnesses, then deletes the Rust modules:

  • dag_collect_fingerprint_witness_test.rs (11 #[test] fns, 213 LOC) → dag/test/claim/dag_collect_fingerprint_witness_test.dag + host-physics bin
  • parse.rs (52 #[test] fns, 915 LOC) → dag/test/claim/parse_test.dag + host-physics bin (floor suite: 44 checks; perf suite: 7 checks)

Net debt shrink: −11 modules / −63 #[test] fns from the v2.lens.test_migration_debt roster (parse stem + dag_collect_fingerprint_witness stem). Not carried: parse_multiline_pipe_chain was #[ignore]d (40s hang, never run in CI).

Host-seam precedent (instrumental, dies with src/v1)

This follows the established witness-transport pattern already in-tree — thin .dag floor witnesses in dag/test/claim/*_test.dag that call tools.*_witness_transport.dag shells, which build/run a pinned src/v1/stage0 bin via tools.host_prelude (bootstrap_witness, diagnostics_witness, infer_semantics_witness, effects_rest_transport_witness, …). v2 eval cannot execute the v1 parser/tokenizer/dag_collect surfaces these tests exercise, so host physics is the honest seam until those APIs are witness-layer importable.

No new hand-Rust pattern is minted — only two new rows on the existing transport roster (dag/tools/dag_collect_fingerprint_witness_transport.dag, dag/tools/parse_witness_transport.dag) plus their bins. Both are registered in realization_vocab_exception_roster like every other *_witness_transport.dag.

Cargo.toml [[bin]] +13 lines — reconciliation

The +13 in src/v1/stage0/Cargo.toml is two new [[bin]] registrations (dag_collect_fingerprint_witness, parse_witness). The .rs sources did not previously exist as stage0 bins — they lived as #[test] modules under src/v1/tests/src/. Migration path: relocate test oracle logic into src/v1/stage0/src/bin/*_witness.rs (same code, main() + suite dispatch), register the bin, wire transport + floor .dag witness, delete v1 module. This is relocation, not extending a pre-existing bin.

parse_witness build uses --features text_lookup_work_counter (via ensure_parse_witness_built) because the perf-suite lookup/scale tests read v1_rt::take_text_lookup_chars_walked() — the counter is a no-op without that feature (same feature v1-compiler-tests already enables).

Fixes in this branch

  • dag_collect_fingerprint_witness: call dag_collect_fp_memo_reset() between cases (memo keyed by Rc pointer reuse made Conj order-insensitivity fail when the full suite ran in one process; individual #[test] fns passed because cargo test ordering differed).
  • cargo fmt on witness bins; cargo clippy -p v1-compiler --bins -D warnings clean.

Test plan

  • cargo fmt --all --check
  • cargo clippy -p v1-compiler --bins -- -D warnings
  • cargo build -p v1-compiler --release --features text_lookup_work_counter --bin dag_collect_fingerprint_witness --bin parse_witness
  • ./target/release/dag_collect_fingerprint_witness (11/11)
  • ./target/release/parse_witness --suite floor (44/44)
  • ./target/release/parse_witness --suite perf (7/7)
  • claim_batch --entry dag/test/claim/dag_collect_fingerprint_witness_test.dag --functions dag_collect_fingerprint_witness_keystone_holds → PASS
  • claim_batch --entry dag/test/claim/parse_test.dag --functions parse_witness_floor_holds,parse_witness_perf_holds → PASS

@gunbai-bot gunbai-bot Bot changed the title test-migration tail: migrate-class modules (parse.rs 52 fns, dag_collect_fingerprint 11 fns, …) test-migration: floor witnesses for parse.rs and dag_collect_fingerprint Jul 5, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 5, 2026 06:26
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the import-census finding on 2bfa9f1:

  • origin/main: 35 files under dag/ + src/v2/ with import extdeps.languages.bash.program
  • PR head: 37 — the only delta vs main is exactly the two new witness transports:
    • dag/tools/parse_witness_transport.dag
    • dag/tools/dag_collect_fingerprint_witness_transport.dag
  • Frozen baseline in realization_vocabulary_containment.dag remains 33; main was already at 35 before this PR (+2 here → 37). Both new transports are on realization_vocab_exception_roster (same as every other *_witness_transport.dag).

No additional change needed for this item — agree it does not block merge.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the APPROVE findings on 0ea4935 (post-main merge):

  • Exact-stem witnesses: parse_test.dag covers deleted parse.rs (stem parse); dag_collect_fingerprint_witness_test.dag covers deleted dag_collect_fingerprint_witness_test.rs (stem dag_collect_fingerprint_witness). Both v1 modules and lib.rs mod lines are gone.
  • Host-physics bins: parse_witness + dag_collect_fingerprint_witness in src/v1/stage0/src/bin/, registered in Cargo.toml, with dissolution notes in witness headers/provenance strings.
  • Transport scaffold: both dag/tools/*_witness_transport.dag carry Scaffold { dissolves_to: RealizationDispatch } and are on realization_vocab_exception_roster.
  • Suite split: parse_witness_floor_holds / parse_witness_perf_holds (44 + 7 checks); parse_multiline_pipe_chain documented as dropped (#[ignore]d, never CI).
  • Memo isolation: dag_collect_fp_memo_reset() called before each witness case in the bin main loop.

No additional changes from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the claude APPROVE findings on 0ea4935:

  • Pattern match: Same inhabited lane as auth_declared_but_unwired_witness_transport, effects_rest_transport_witness_transport, etc. — v1 #[test] modules deleted, stage0 host-physics bins, .dag transport via ShellProgram/serialize_bash (not hand-shell), Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }, roster entries present, .dag keystones invoke transport runners.
  • Fail-closed: witness main() maps panics → ExitCode::from(1) with case name (parse_witness/dag_collect_fingerprint_witness), stricter than bare #[test] panics.
  • Argv nit (non-blocking): confirmed parse_witness main uses the same --suite dispatch shape as bootstrap_witness (nth(1) defaulting to "--suite", then nth(2) for suite name). Transport always passes --suite floor|perf explicitly; leaving as-is unless we normalize all witness bins together.

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

CI fix pushed (1d0bbc8): the ci job was failing at the 10-minute step timeout during batch-1 dag_compile_clean_gate (not a witness assertion failure). Logs show ~2.5m claim_executor prelude + ~8m host-effects before kill.

Changes:

  1. Single-shell compile-clean gate — dag_compile_clean_gate now runs one combined ShellProgram (run_dag_compile_clean_gate_shell) instead of five sequential shell.Exec.Run invocations (one ensure_gunbc_built, one cd, all perturb receipts preserved).
  2. Floor step budget 15m — new gunbc_ci_floor_step_timeout_minutes for the gunbc ci step (deploy jobs keep the 10m policy); ci.yml regenerated (job backstop 35→40).

Watching CI re-run.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the claude APPROVE findings on 1d0bbc8:

  • Test migration: src/v1/tests/src/parse.rs and dag_collect_fingerprint_witness_test.rs removed from lib.rs; host-physics bins at src/v1/stage0/src/bin/{parse_witness,dag_collect_fingerprint_witness}.rs; floor keystones in dag/test/claim/{parse_test,dag_collect_fingerprint_witness_test}.dag invoke tools.*_witness_transport runners.
  • Scaffold + roster: both transports carry Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }; listed in realization_vocab_exception_roster.
  • CI repair: dag_compile_clean_gate routes through single run_dag_compile_clean_gate_shell / dag_compile_clean_gate_program; floor step uses gunbc_ci_floor_step_timeout_minutes = 15 (deploy jobs keep 10m policy). dag_compile_clean_gate_transport_serializes_dcc_invocation asserts all five receipt markers in the composed script.

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

cursor REQUEST_CHANGES (35579) — valid, fixed in deb7d1a:

Verified: mod parse and mod dag_collect_fingerprint_witness_test are gone from v1-compiler-tests, and the replacement .dag witnesses were not enrolled — under opt-in inversion only the three pre-existing CommitWitnessClaim rows gated CI, so the migration left a §5 specification-without-execution hole.

Fix: added CommitWitnessClaim rows on GithubActionsCiJob:

  • dag/test/claim/parse_test.dag → parse_witness_floor_holds, parse_witness_perf_holds
  • dag/test/claim/dag_collect_fingerprint_witness_test.dag → dag_collect_fingerprint_witness_keystone_holds

Both stamped CorpusWitnessKind / SpanUndeclared, matching peer enrolled witnesses. CI re-run pending on push.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the cursor APPROVE findings on deb7d1a:

  • Migration + delete-guard: v1 parse / dag_collect_fingerprint_witness_test modules removed; exact-stem floor witnesses at dag/test/claim/{parse_test,dag_collect_fingerprint_witness_test}.dag with host-physics bins + ShellProgram/serialize_bash transports (Scaffold { dissolves_to: RealizationDispatch }), rostered in realization_vocab_exception_roster.
  • CI enrollment: commit_gate_roster rows added for both witnesses on GithubActionsCiJob (addresses prior REQUEST_CHANGES); floor step at 15m via gunbc_ci_floor_step_timeout_minutes.
  • Compile-clean: single run_dag_compile_clean_gate_shell / dag_compile_clean_gate_program (cost fix, same perturb receipts).

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the claude APPROVE findings on deb7d1a:

  • Witness pattern: matches diagnostics_witness lane — stage0 bins, scaffolded transports (Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }), realization_vocab_exception_roster + commit_gate_roster CommitWitnessClaim enrollment for both migrated witnesses.
  • Compile-clean refactor: *_body_stmts helpers compose dag_compile_clean_gate_program; single run_dag_compile_clean_gate_shell; dag_compile_clean_gate_transport_serializes_dcc_invocation preserves five-marker receipts.
  • CI timeouts: gunbc_ci_floor_step_timeout_minutes = 15 threaded through ci_floor_step and gunbc_ci_job_backstop_timeout_minutes (40m job backstop in ci.yml).
  • build_bin_if_absent_stmt_with_features: empty-string default path unchanged; ensure_parse_witness_built opts into text_lookup_work_counter only.

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

cursor REQUEST_CHANGES (35593) — valid, fixed:

Verified: gunbc_ci_job_timeout_policy_disposition still said "floor 10 minutes" while gunbc_ci_floor_step_timeout_minutes = 30 is the floor-step authority — a §3 policy/implementation fork.

Fix (pending push): updated the Terminal reason to document the split: deploy/aux keep gunbc_ci_job_timeout_policy_minutes (10), floor step owns gunbc_ci_floor_step_timeout_minutes (30 interim) with measured batch-1 compile-clean receipts + enrolled corpus witness headroom, 55m job backstop, and dissolve-on when compile-clean scoping shrinks batch-1.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the cursor APPROVE findings on 2dbe304:

  • Migration pattern: exact-stem floor witnesses + scaffold transports (disposition + realization_vocab_exception_roster), v1 modules deleted, commit_gate_roster enrollment for parse/fingerprint.
  • Supporting mechanics: ensure_parse_witness_built wires text_lookup_work_counter; dag_collect_fp_memo_reset() per case; single-shell dag_compile_clean_gate_program.
  • Timeout authority: gunbc_ci_floor_step_timeout_minutes = 30, 55m job backstop, Terminal disposition reconciled with interim receipt + dissolve-on (35593 fix).

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified the claude APPROVE findings on 2dbe304:

  • Scope: two v1 test migrations → floor witnesses + host-physics bins, scaffold transports, roster enrollment, floor-step budget authority (gunbc_ci_floor_step_timeout_minutes = 30 interim) with dissolve-on in reconciled Terminal.reason.
  • Compile-clean: single dag_compile_clean_gate_program; five *_body_stmts builders retained; dag_compile_clean_gate_transport_serializes_dcc_invocation asserts all markers — no scope narrowing.
  • Scaffold discipline: both transports carry Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }.

No change from this review item.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified both dashboard APPROVE artifacts against current HEAD (01f8ddf):

claude-opus-4-7 / review 35626 — confirmed on changed lines:

  • parse_witness_transport / dag_collect_fingerprint_witness_transport carry Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash } and are rostered in realization_vocabulary_containment.dag:46-47.
  • ci_release_build_line now builds only --bin claim_executor --bin gunbc; witness bins lazy-build via ensure_parse_witness_built / ensure_dag_collect_fingerprint_witness_built in host_prelude.dag.
  • Floor step timeout authority (gunbc_ci_floor_step_timeout_minutes = 30) and disposition prose in ci_workflow.dag match the stated interim + dissolve-on.
  • dag_compile_clean_gate_program fusion + dag_compile_clean_gate_transport_serializes_dcc_invocation witness present; per-receipt runners retained.
  • ownership_movable_test.dag relocated to src/v2/test/claim/ with module v2.test.claim.ownership_movable (removes v1 import from dag entry compile-clean closure).
  • Receiver-method refactors in plan.dag / html/react emit witnesses confirmed.

cursor/composer-2.5 / review 35627 — confirmed: migration pattern, roster enrollment, CI budget carve-out, and Rust relocation (not net growth) all match the diff.

No code changes required from either review. rust_tests is green on run 28738525813 (~5m); ci floor step still in flight.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35632 (APPROVE, no findings) against HEAD 33d6453:

  • Parse + dag_collect_fingerprint migration: .dag claims, Scaffold transports, host-physics bins, provenance strings, and commit_workflow.dag roster enrollment all match the established witness pattern.
  • CI plumbing: fused dag_compile_clean_gate_program, narrowed ci_release_build_line to --bin claim_executor --bin gunbc, and gunbc_ci_floor_step_timeout_minutes = 45 with documented interim disposition + dissolve-on in ci_workflow.dag.
  • No substrate/unit-modeling violations on changed lines.

No code changes required from this review. rust_tests green on run 28739385558; ci floor step still in flight on the 45m budget.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35633 (APPROVE) against HEAD 33d6453:

  • Host-physics scaffold pattern confirmed: stage0/src/bin/{parse_witness,dag_collect_fingerprint_witness}.rs, transports with Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }, and CommitWitnessClaim rows in commit_gate_roster.
  • Floor timeout authority: gunbc_ci_floor_step_timeout_minutes = 45 with receipt + dissolve-on documented in gunbc_ci_job_timeout_policy_disposition.
  • Narrowed CI build (--bin claim_executor --bin gunbc) pairs with lazy witness builds via ensure_parse_witness_built → ensure_bin_built_and_verified_with_features(..., text_lookup_work_counter).
  • No unit-modeling / hand-shell / predicate-dissolution violations on changed lines.

No code changes required. rust_tests green; ci floor step still running (run 28739385558).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35644 (APPROVE) against HEAD 2ee2027:

  • Host-physics migration pattern, scaffold transports, stage0 bins, v1 module deletion, and delete-guard stem parity all confirmed on changed lines.
  • Compile-clean split confirmed: batch-1 run_clean_tree_compile() only (dag_compile_clean_gate.dag:6-13); perturb/cross-tree/dag-shell receipts enrolled via dag_compile_clean_perturb_receipts_test.dag + commit_workflow.dag without dropping coverage.
  • CI budget (gunbc_ci_floor_step_timeout_minutes = 75, disposition prose with dissolve-on) is documented interim policy, not silent pass.
  • ownership_movable_test.dag relocation to src/v2/test/claim/ is acknowledged scope creep; it unblocks compile-clean (dag entry root no longer imports v1.compiler.ownership outside witness pools) and is non-blocking per review.

No code changes required. rust_tests green; ci in flight (run 28740645072).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35645 (APPROVE) against HEAD 2ee2027:

  • Witness pattern confirmed: grammar-modeled ShellProgram + serialize_bash, Scaffold { dissolves_to: RealizationDispatch, ... } on transports, opt-in CommitWitnessClaim roster rows.
  • Compile-clean split confirmed: batch-1 run_clean_tree_compile() only; dag_compile_clean_perturb_receipts_test.dag enrolled for perturb/cross-tree/dag-shell receipts in batch-2+.
  • Floor budget: gunbc_ci_floor_step_timeout_minutes = 75 with interim justification and dissolve-on in gunbc_ci_job_timeout_policy_disposition.
  • No unit-modeling or hand-shell violations on changed lines.

No code changes required. rust_tests green; ci in flight (run 28740645072).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35675 (APPROVE) against HEAD 6a34b05730:

  • run_clean_tree_compile emit narrowing — confirmed: dag/tools/dag_compile_clean_transport.dag:50-51 calls witness_layer_roots_compile_clean_check() (in-process resolve/typecheck via compile_to_resolved, no --target dag emit). clean_tree_compile_program() and clean_tree_transport_serializes_dcc_invocation() remain for transport-serialization self-tests only. Interim trade + dissolve-on are named in gunbc_ci_job_timeout_policy_disposition (ci_workflow.dag:297-298).
  • Perturb/cross-tree/dag-shell receipts — confirmed re-homed to enrolled corpus witness dag/test/claim/dag_compile_clean_perturb_receipts_test.dag (commit_workflow.dag:138-139), batch-2+ after batch-1 compile anchor.
  • CI budget 75m floor / 100m job backstop — confirmed reconciled in the same disposition row; not a silent fork.
  • v1 seed additions — parse_witness / dag_collect_fingerprint_witness bins + witness_layer_roots_compile_clean_check builtin follow the existing floor-witness pattern; rustc import fixed in 6a34b05730.

No additional commit warranted — findings are accurate and already reflected in tree.

Merge readiness (this comment): mergeable=CLEAN; CI on 6a34b05730 still in flight (28743069090); awaiting green before merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35677 (APPROVE, no findings) against HEAD 6a34b05730:

  • Floor witness wiring — dag/test/claim/parse_test.dag and dag_collect_fingerprint_witness_test.dag enrolled in commit_workflow.dag (parse_witness_floor_holds / parse_witness_perf_holds, dag_collect_fingerprint_witness_keystone_holds).
  • Transport scaffold discipline — parse_witness_transport.dag and dag_collect_fingerprint_witness_transport.dag carry Scaffold { dissolves_to: RealizationDispatch, … } disposition rows matching the existing witness-transport pattern.
  • Delete-guard stem coverage — removed v1 modules parse.rs / dag_collect_fingerprint_witness_test.rs map to floor stems parse / dag_collect_fingerprint_witness via test_migration_covered_stems() (exact-stem union used by test_migration_delete_guard_holds).
  • Compile-clean interim split — batch-1 resolve-only via witness_layer_roots_compile_clean_check() (cli_run.rs:691, called from dag_compile_clean_transport.dag:50-51); perturb receipts in enrolled dag_compile_clean_perturb_receipts_test.dag; 75m floor budget + dissolve-on in ci_workflow.dag:289-298.
  • Hand-Rust additions — parse_witness / dag_collect_fingerprint_witness bins in Cargo.toml with provenance strings in witness .dag data rows; v1 test debt relocated out of src/v1/tests/src/.

No additional commit warranted — reviewer found no defects; claims match current tree.

Merge readiness: mergeable=CLEAN; CI on 6a34b05730 still open (rust_tests failed 15m step timeout on cold sccache in run 28743069090; ci floor step still in progress).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35694 (APPROVE) against HEAD c84b0c15cc:

  • Witness transports — parse_witness_transport.dag and dag_collect_fingerprint_witness_transport.dag carry Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash … }; shell execution goes through serialize_bash(p: …) of modeled ShellProgram, not literal string emission.
  • Corpus enrollment — both witnesses enrolled via commit_gate_roster CommitWitnessClaim rows in commit_workflow.dag (opt-in CI path per floor spec).
  • Floor-step budget — gunbc_ci_floor_step_timeout_minutes = 75 is a named data authority; interim trade + compile-clean scoping/memoization dissolve-on documented in gunbc_ci_job_timeout_policy_disposition (Terminal disposition, ci_workflow.dag:297-298). Rust gate 25m interim (receipt 28743069090) also named there.
  • Method-call migrations — .length() / .starts_with(...) at touched sites match existing dot-method convention; no unit-modeling or hand-Rust-discipline violations observed in changed lines.

No additional commit warranted — approval stands; findings match current tree.

Merge readiness: mergeable=CLEAN; CI on c84b0c15cc still pending (run 28743895535).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Addressed cursor/composer-2.5 / review 35696 (REQUEST_CHANGES) in 881c44c006 + ddfa1f4c2d:

1. Batch-1 --target dag emit restored (DESIGN Building & checks)

  • run_clean_tree_compile() now calls witness_layer_roots_compile_clean_emit_check() — in-process compile_sources(RenderTarget::Dag) over witness-layer entry closure with primary-precedence pool indexing (same sources as shell transport). No disk write; green-by-execution emit leg.
  • clean_tree_compile_gate_disposition (Scaffold, dissolve bind → clean_tree_compile_program) marks interim in-process emit vs shell transport.

2. Specification-without-execution (§5)

  • Enrolled corpus witness dag_compile_clean_clean_tree_emit_execution_holds on dag_compile_clean_witness_test.dag — same builtin the batch-1 gate executes (not serialization-only).
  • Fused dag_compile_clean_gate_program() serialization tests remain transport-shape witnesses for perturb bundle history; gate path is emit builtin.

3. Hand-Rust receipt

  • cli_run.rs unit tests: emit_success_implies_resolve_success_on_live_witness_roots, primary_precedence_pool_fills_only_absent_modules.

CI budget: floor step 90m / job backstop 125m (ci_workflow.dag + ci.yml) for in-process emit headroom (shell subprocess exceeded 75m on run 28740645072).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35702 (APPROVE, no findings) against HEAD ddfa1f4c2d:

  • Batch-1 compile-clean — run_clean_tree_compile() calls witness_layer_roots_compile_clean_emit_check() (in-process --target dag emit; fail-closed on source-load failure, hard diagnostics, empty files). clean_tree_compile_gate_disposition Scaffold on-carrier.
  • Perturb receipts — enrolled dag_compile_clean_perturb_receipts_test.dag in batch-2 corpus (commit_workflow.dag:138-139); not fused into batch-1 failure arm.
  • Emit execution witness — dag_compile_clean_clean_tree_emit_execution_holds enrolled (commit_workflow.dag:147) on same builtin as batch-1 gate.
  • Test-migration pattern — parse/fingerprint witnesses + scaffold transports + delete-guard stem pairing (parse / dag_collect_fingerprint_witness) + CI budget policy in gunbc_ci_job_timeout_policy_disposition.

No additional commit warranted — approval matches current tree.

Merge readiness: mergeable=CLEAN; CI on ddfa1f4c2d still pending (run 28744365667).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35703 (APPROVE) against HEAD ddfa1f4c2d:

  • Test-migration — parse.rs / dag_collect_fingerprint_witness_test.rs relocated to host-physics witness bins with .dag transport wrappers; enrolled on commit_gate_roster (parse_test.dag, dag_collect_fingerprint_witness_test.dag).
  • Compile-clean split — batch-1 in-process witness_layer_roots_compile_clean_emit_check() (--target dag); perturb/cross-tree/dag-shell receipts in enrolled dag_compile_clean_perturb_receipts_test.dag (batch-2 corpus), matching gunbc_ci_job_timeout_policy_disposition.
  • CI budget — rust gate 25m (receipt 28743069090), floor 90m, ci job backstop 125m; dissolve-on named in disposition.
  • Scaffold discipline — witness transports carry Scaffold { dissolves_to: RealizationDispatch }; both listed on realization_vocab_exception_roster; Cargo.toml [[bin]] entries localized with scaffold headers.

No additional commit warranted — approval matches current tree.

Merge readiness: mergeable=CLEAN; CI on ddfa1f4c2d still pending (run 28744365667).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35716 (APPROVE) against HEAD 46a98f5815:

  • Test migration — src/v1/tests/src/parse.rs and dag_collect_fingerprint_witness_test.rs removed; host-physics bins at src/v1/stage0/src/bin/{parse_witness,dag_collect_fingerprint_witness}.rs (Cargo.toml [[bin]] entries with scaffold headers). Floor keystones in dag/test/claim/{parse_test,dag_collect_fingerprint_witness_test}.dag invoke tools.*_witness_transport runners.
  • Transport scaffold — both transports carry Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash … }; listed on realization_vocab_exception_roster.
  • Opt-in CI enrollment — commit_gate_roster CommitWitnessClaim rows for parse (floor+perf), fingerprint keystone, compile-clean perturb receipts (dag_compile_clean_perturb_receipts_test.dag), and emit execution witness (dag_compile_clean_clean_tree_emit_execution_holds) — consistent with ci_spec opt-in witness inversion.
  • Batch-1 / batch-2 split — batch-1 gate calls witness_layer_roots_compile_clean_emit_check() (in-process --target dag emit); perturb/cross-tree/dag-shell receipts enrolled for batch-2 corpus only.
  • CI budget on-carrier — gunbc_ci_floor_step_timeout_minutes = 90, rust gate 35m, job backstop 135m; dissolve-on (affected-set scoping + compile-clean memoization) named in gunbc_ci_job_timeout_policy_disposition.
  • Incidental — plan.dag text.length() / p.title.length() method-call cleanups only; no new .dag unit-modeling violations in changed witness/transport surface.

No additional commit warranted — approval matches current tree.

Merge readiness: mergeable=CLEAN (no conflicts); rust_tests green on run 28745309966; ci floor job still in progress; ≥2 distinct APPROVE artifacts on record (e.g. 35694, 35702, 35703, 35716); no open REQUEST_CHANGES (35696 addressed in ddfa1f4c2d). Awaiting ci job green before full merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35717 (APPROVE, no findings) against HEAD 46a98f5815:

  • Floor witness migration — parse.rs / dag_collect_fingerprint_witness_test.rs removed from v1-compiler-tests; enrolled claim tests at dag/test/claim/{parse_test,dag_collect_fingerprint_witness_test}.dag; host-physics bins parse_witness / dag_collect_fingerprint_witness in src/v1/stage0/.
  • Scaffold transports — parse_witness_transport.dag and dag_collect_fingerprint_witness_transport.dag carry Scaffold { dissolves_to: RealizationDispatch, … } disposition rows; both on realization_vocab_exception_roster.
  • Delete-guard stem coverage — exact-stem union via test_migration_covered_stems() (parse_test.dag → parse, dag_collect_fingerprint_witness_test.dag → dag_collect_fingerprint_witness); no mod parse / mod dag_collect_fingerprint_witness_test in lib.rs.
  • Compile-clean split (not absorbing fallback) — batch-1 gate (dag_compile_clean_gate.dag) calls in-process witness_layer_roots_compile_clean_emit_check() only; perturb/cross-tree/dag-shell receipts enrolled in dag_compile_clean_perturb_receipts_test.dag for batch-2 corpus (commit_workflow.dag:146-152). Interim budgets + named dissolve-on in gunbc_ci_job_timeout_policy_disposition (gunbc_ci_floor_step_timeout_minutes = 90).

No additional commit warranted — reviewer found no defects; claims match current tree.

Merge readiness: mergeable=CLEAN; rust_tests green on run 28745309966; ci floor job still in progress; ≥2 distinct APPROVE artifacts (35716, 35717, plus prior 35694/35702/35703); no open REQUEST_CHANGES. Awaiting ci job green before full merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35733 (APPROVE) against HEAD b8095efdfa (post-main merge 42f9f273):

  • Test migration — parse.rs / dag_collect_fingerprint_witness_test.rs removed from v1-compiler-tests; host-physics bins parse_witness / dag_collect_fingerprint_witness in src/v1/stage0/; enrolled claim tests at dag/test/claim/{parse_test,dag_collect_fingerprint_witness_test}.dag.
  • Delete guard — exact-stem coverage via test_migration_covered_stems() (parse, dag_collect_fingerprint_witness); no mod parse / mod dag_collect_fingerprint_witness_test in lib.rs.
  • Transport scaffold — both transports carry Scaffold { dissolves_to: RealizationDispatch, … }; on realization_vocab_exception_roster.
  • Compile-clean split — batch-1 gate calls in-process witness_layer_roots_compile_clean_emit_check(); perturb receipts enrolled in dag_compile_clean_perturb_receipts_test.dag for batch-2 corpus (commit_workflow.dag:146-152).
  • CI budgets — gunbc_ci_floor_step_timeout_minutes = 90, rust gate 35m, job backstop 135m; named dissolve-on in gunbc_ci_job_timeout_policy_disposition.
  • Main merge — ownership_movable_test.dag at src/v2/test/claim/ picked up Linearity carrier staging (c) + honest ownership_movable witness marker #6289 staged-offpath marker; no conflict markers; src/v1/ownership_movable_test.dag remains absent.

No additional commit warranted — approval matches current tree.

Merge readiness: mergeable=CLEAN; CI on b8095efdfa in progress (run 28746396506); ≥2 distinct APPROVE artifacts (35716, 35717, 35733, plus prior 35694/35702/35703); no open REQUEST_CHANGES. Awaiting CI green before full merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35735 (APPROVE) against HEAD b8095efdfa:

  • Test-migration pattern — matches established lane (diagnostics_witness, interp_recorded_fixture_witness, …): v1 #[test] modules deleted; [[bin]] witness executables in src/v1/stage0/; host_prelude build helpers; tools/*_witness_transport.dag with Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash }; enrolled on commit_gate_roster (parse_test.dag, dag_collect_fingerprint_witness_test.dag).
  • Compile-clean split — batch-1 gate calls in-process witness_layer_roots_compile_clean_emit_check(); shell-fused clean_tree_compile_program retained behind clean_tree_compile_gate_disposition Scaffold; perturb/cross-tree/dag-shell receipts run via enrolled corpus witness dag_compile_clean_perturb_receipts_test.dag (batch-2 roster).
  • CI budgets on-carrier — floor 90m (gunbc_ci_floor_step_timeout_minutes), rust 35m, ci job backstop 135m (ci.yml); Terminal disposition documents receipt runs (28743069090, 28744365667) and dissolve-on (compile-clean scoping/memoization).
  • Discipline — no new .dag primitive introductions or unit-modeling triggers in changed witness/transport surface; hand-shell confined to scaffolded witness transports already in tree pattern.

No additional commit warranted — reviewer explicitly states nothing requires action before merge; claims match current tree.

Merge readiness: mergeable=CLEAN; CI on b8095efdfa in progress (run 28746396506); ≥2 distinct APPROVE artifacts (35716, 35717, 35733, 35735, plus prior); no open REQUEST_CHANGES. Awaiting CI green before full merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified claude-opus-4-7 / review 35745 (APPROVE) against HEAD d4636debb2:

  • Witness pattern — parse/fingerprint migrations match established lane (dag_compile_clean_transport, sibling *_witness_transport.dag): ShellProgram transports with Scaffold { dissolves_to: RealizationDispatch }; enrolled as CommitWitnessClaims on commit_gate_roster (parse_test.dag, dag_collect_fingerprint_witness_test.dag) so floor execution is opt-in, not silent skip (§5).
  • CI budgets on-carrier — gunbc_ci_rust_gate_step_timeout_minutes = 45 (receipted runs 28743069090/28744365667/28746396596 in disposition), gunbc_ci_floor_step_timeout_minutes = 90; dissolve-on (affected-set scoping + compile-clean memoization) named in gunbc_ci_job_timeout_policy_disposition.
  • Incidental — plan.dag text.length() / p.title.length() method-call cleanup only.
  • Release build narrowing — ci job builds --bin claim_executor --bin gunbc only (ci.yml), consistent with floor entry points; witness bins built on-demand via host_prelude.

No additional commit warranted — approval matches current tree.

Merge readiness: mergeable=CLEAN; CI on d4636debb2 in progress (run 28747519346); ≥2 distinct APPROVE artifacts (35716, 35717, 35733, 35735, 35745, plus prior); no open REQUEST_CHANGES. Awaiting CI green before full merge bar is met.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Verified cursor/composer-2.5 / review 35746 (APPROVE, no findings) against HEAD d4636debb2:

  • Test-migration pattern — floor *_test.dag witnesses with provenance; host-physics bins in src/v1/stage0/; Scaffold { dissolves_to: RealizationDispatch } on shell transports; both on realization_vocab_exception_roster.
  • Delete-guard — exact-stem coverage (parse_test.dag → parse, dag_collect_fingerprint_witness_test.dag → dag_collect_fingerprint_witness); v1 #[test] modules removed from lib.rs.
  • Compile-clean split — batch-1 in-process witness_layer_roots_compile_clean_emit_check(); perturb shell receipts in enrolled dag_compile_clean_perturb_receipts_test.dag (batch-2 corpus); budgets + dissolve-on documented on-carrier in dag/gunbc/ci_workflow.dag (rust gate 45m, floor 90m).
  • No fail-open — enrolled witnesses on commit_gate_roster; no hand-shell/modeling violations in changed lines.

No additional commit warranted — reviewer found no defects; claims match current tree.

Merge readiness: mergeable=CLEAN; CI on d4636debb2 in progress (run 28747519346); ≥2 distinct APPROVE artifacts (35745, 35746, plus prior); no open REQUEST_CHANGES. Awaiting CI green before full merge bar is met.

— sent from stern-koi-859

HostNative seed projection now maps CommutativeSemiring (Nat's alias
rhs) to i64 in type-arg positions; FaithfulFreeMonoid field access
treats that surface as boxed Nat so measure_grounded_deref_test stays
green. Unblocks rust_tests after the cargo_build/interpreter fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 APPROVE (#35866) — verified on HEAD 1588cf3c7b:

  • CommitWitnessClaim enrollment for dag/test/claim/parse_test.dag and dag_collect_fingerprint_witness_test.dag in commit_workflow.dag:129-139.
  • Transport modules (parse_witness_transport.dag, dag_collect_fingerprint_witness_transport.dag) carry Scaffold { dissolves_to: RealizationDispatch }.
  • Batch-1 compile-clean: witness_layer_roots_compile_clean_check() in-process (dag_compile_clean_transport.dag:51); emit/perturb in enrolled batch-2 witnesses; budget receipts at ci_workflow.dag:314-338.
  • Witness bins (parse_witness, dag_collect_fingerprint_witness) replace deleted src/v1/tests modules.
  • Bundled fixes: str_identity_cast empty-kernel String identity (v1_interpreter.rs:2957), cargo_build.dag to_string(count), Nat authority CommutativeSemiring → i64 host projection + faithful deref (v1_compiler_emit_rust.rs:464-475, :12520-12527).

No blocking findings to address.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Re: claude-opus-4-7 APPROVE (#35867) — verified on HEAD 1588cf3c7b:

  • gunbc_ci_floor_step_timeout_minutes: Duration = 135 (ci_workflow.dag:314) refines std.types.Duration (Int where range(min: 0)) with explicit 🟡 feature:value-Measure dissolution trigger at :316; sibling flat-Int timeouts (gunbc_ci_release_build_step_timeout_minutes, gunbc_ci_aux_step_timeout_minutes, gunbc_ci_prelude_allowance_minutes) are preexisting, not introduced here.
  • witness_layer_roots_compile_clean_emit_check() in dag_compile_clean_witness_test.dag:14 resolves as witness builtin (04_method.dag:116, v1_interpreter.rs:6059 → cli_run.rs:791); no import required.
  • Perturb-receipt symbols (run_perturb_*, run_cross_tree_import_green_receipt, run_dag_shell_primary_precedence_receipt) import from tools.dag_compile_clean_transport (dag_compile_clean_perturb_receipts_test.dag:3-8).
  • Transport modules carry Scaffold { dissolves_to: RealizationDispatch } and are rostered in realization_vocab_exception_roster (e.g. parse_witness_transport.dag, dag_compile_clean_transport.dag).
  • Witness enrollments in commit_gate_roster use SpanUndeclared matching siblings (commit_workflow.dag:129-142).

No blocking findings to address.

— sent from stern-koi-859

Brian Searls and others added 2 commits July 5, 2026 23:56
ci_workflow.dag already raised gunbc_ci_rust_gate_step_timeout_minutes after clippy exceeded the 15m step kill on run 28758588865; regenerate committed ci.yml so rust_tests job backstop matches (90m).

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: claude-opus-4-7 APPROVE (#35874) — verified on HEAD f5943406bd:

  • Witness transports (parse_witness_transport.dag, dag_collect_fingerprint_witness_transport.dag) use ShellProgram/serialize_bash grammar with Scaffold { dissolves_to: RealizationDispatch }; rostered in realization_vocab_exception_roster.
  • Opt-in enrollment via commit_gate_roster (commit_workflow.dag:127-161): parse_test.dag, dag_collect_fingerprint_witness_test.dag, plus compile-clean batch-2 witnesses.
  • gunbc_ci_floor_step_timeout_minutes: Duration = 135 with 🟡 feature:value-Measure dissolution trigger (ci_workflow.dag:314-316); carrier refines std.types.Duration (types.dag:148).
  • cargo_build.dag:16,20 uses to_string(count) (fixes broken "{count}" literal).
  • Witness bins (parse_witness, dag_collect_fingerprint_witness) follow sibling pattern; deleted src/v1/tests modules coherent with migration.

No blocking findings to address. rust_tests green on run 28759353121; ci floor still pending.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 APPROVE (#35875) — verified on HEAD f5943406bd:

  • Exact-stem floor witnesses: dag/test/claim/parse_test.dag, dag_collect_fingerprint_witness_test.dag with scaffold transports (Scaffold { dissolves_to: RealizationDispatch }) and opt-in CommitWitnessClaim enrollment in commit_workflow.dag:127-161.
  • Compile-clean split: batch-1 witness_layer_roots_compile_clean_check() in-process (dag_compile_clean_transport.dag); emit (dag_compile_clean_witness_test.dag:14) and perturb receipts (dag_compile_clean_perturb_receipts_test.dag) in enrolled batch-2 witnesses; floor step budget Duration = 135 with tracked 🟡 dissolution trigger (ci_workflow.dag:314-316).
  • trace_mark scaffold removed from transport shells; Nat emit fix scoped to CommutativeSemiring authority projection (v1_compiler_emit_rust.rs).
  • ci.yml synced to 30m rust-gate / 90m job backstop (f5943406bd) after clippy step-timeout receipt on run 28758588865.

No blocking findings to address. rust_tests green on run 28759353121; ci floor still pending.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: claude-opus-4-7 APPROVE (#35881) — verified on HEAD ee0ab097e4:

  • Witness bins (parse_witness, dag_collect_fingerprint_witness) replace deleted src/v1/tests modules; enrolled opt-in via CommitWitnessClaim in commit_workflow.dag:127-161.
  • Transports use ShellProgram grammar + serialize_bash (parse_witness_transport.dag, dag_collect_fingerprint_witness_transport.dag) with Scaffold { dissolves_to: RealizationDispatch }.
  • Provenance data strings name dissolution triggers (parse_test.dag:6, dag_collect_fingerprint_witness_test.dag:6).
  • gunbc_ci_floor_step_timeout_minutes: Duration = 135 with tracked 🟡 feature:value-Measure dissolution trigger (ci_workflow.dag:314-316); carrier refines std.types.Duration.
  • CI release build narrowed to --bin claim_executor --bin gunbc (ci_spec.dag:117) so witness bins don't inflate warm/compile time.
  • Post-f594340 fix: ee0ab097e4 removes ci.yml EOF newline drift that failed generated_artifact_drift_gate_passes on run 28759353121.

No blocking findings to address. rust_tests green on run 28760693815; ci floor pending.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 APPROVE (#35882) — verified on HEAD ee0ab097e4:

  • parse.rs / dag_collect_fingerprint_witness_test.rs migrated to enrolled floor witnesses (parse_test.dag, dag_collect_fingerprint_witness_test.dag) with scaffold transports and provenance dissolution strings.
  • Compile-clean split: batch-1 witness_layer_roots_compile_clean_check() in-process (dag_compile_clean_transport.dag:51); emit (dag_compile_clean_witness_test.dag) and perturb receipts (dag_compile_clean_perturb_receipts_test.dag) in opt-in batch-2 enrollment — avoids prior emit-on-batch-1 timeout absorption (receipt run 28748751115).
  • Scaffold markers, CommitWitnessClaim enrollment, and test-migration census shrink align with sibling witness pattern.
  • ee0ab097e4 fixes generated_artifact_drift_gate_passes (ci.yml EOF newline) from run 28759353121.

No blocking findings to address. rust_tests green on run 28760693815; ci floor pending.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 APPROVE (#35895) — verified on HEAD cd8772258b:

  • Floor witnesses: dag/test/claim/parse_test.dag, dag_collect_fingerprint_witness_test.dag with scaffold transports, provenance dissolution strings, and opt-in CommitWitnessClaim enrollment (commit_workflow.dag:127-161).
  • Compile-clean split: batch-1 witness_layer_roots_compile_clean_check() in-process; emit (dag_compile_clean_witness_test.dag) and perturb receipts (dag_compile_clean_perturb_receipts_test.dag) in enrolled batch-2 witnesses — documented timeout receipts, not absorbing fallback.
  • Transports rostered in realization_vocab_exception_roster; witness bins follow test-migration path with src/v1/tests module removal.
  • Post-review CI fixes on branch: generated_artifact_drift_gate ci.yml EOF newline (ee0ab097e4), rust-gate step budget sync (f5943406bd), source-root manifest V2Tree import (cli_run.rs) + closure manifest dir under $ROOT/target (compiler_closure_ingest_transport.dag, cd8772258b).

No blocking findings to address. CI re-running on cd8772258b (run 28763019346).

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: claude-opus-4-7 APPROVE (#35897) — verified on HEAD cd8772258b:

  • Witness transports (parse_witness_transport.dag, dag_collect_fingerprint_witness_transport.dag) use extdeps.languages.bash.program + serialize_bash with Scaffold { dissolves_to: RealizationDispatch, bind: serialize_bash } — parallel to existing host-physics witness pattern.
  • Opt-in CommitWitnessClaim enrollment in commit_gate_roster (commit_workflow.dag:127-161).
  • host_prelude build_bin_if_absent_stmt_with_features / ensure_bin_built_and_verified_with_features extends existing helper (used by ensure_parse_witness_built).
  • CI budgets on-carrier with receipts: gunbc_ci_floor_step_timeout_minutes: Duration = 135 with 🟡 dissolution trigger (ci_workflow.dag:314-316); rust gate 30m (:318, synced in ci.yml at f5943406bd). Pre-existing flat-Int sibling timeouts not newly introduced.

No blocking findings to address. rust_tests green on run 28763019346; ci floor pending.

— sent from stern-koi-859

Reverts premature deletion of the compile-pipeline Gantt marks (registry,
interpreter arm, nine compile.dag sites + hand-synced Rust twin) per
realization_measurement_loop Phase 0 dissolution trigger — addresses
composer REQUEST_CHANGES #35898.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 REQUEST_CHANGES (#35898) — finding valid; fixed in a72b66383c.

Restored the full trace_mark deletion set named on v1_rt::trace_mark's dissolution trigger:

  • 04_method.dag registry row + v1_compiler_infer_method.rs twin
  • v1_rt::trace_mark + interpreter arm (v1_interpreter.rs)
  • nine compile-pipeline marks in compile.dag + hand-synced v1_compiler_compile.rs

realization_measurement_keystone_test.dag remains unenrolled; premature mark removal is reverted until Phase 0 lands an enrolled PerformanceReceipt witness green with marks deleted and stage walls still attributable.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: claude-opus-4-7 APPROVE (#35900) — verified on HEAD a6e2dbfb05:

  • Test migration: parse.rs / dag_collect_fingerprint → enrolled witnesses (parse_test.dag, dag_collect_fingerprint_witness_test.dag) via scaffold transports + commit_gate_roster enrollment; witness bins follow existing *_witness_transport pattern.
  • Compile-clean split: batch-1 witness_layer_roots_compile_clean_check; emit (witness_layer_roots_compile_clean_emit_check, 04_method.dag) + perturb receipts (dag_compile_clean_perturb_receipts_test.dag) in batch-2 enrollment — documented on gunbc_ci_job_timeout_policy_disposition.
  • gunbc_ci_floor_step_timeout_minutes: Duration = 135 with 🟡 dissolution trigger; rust gate 30m with receipt (ci_workflow.dag, synced ci.yml).
  • Transports rostered in realization_vocab_exception_roster.
  • Post-#35898: trace_mark scaffold restored (a72b66383c) pending Phase 0 PerformanceReceipt dissolution.

No blocking findings to address. rust_tests green on run 28763730020; ci floor pending.

— sent from stern-koi-859

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Re: composer-2.5 APPROVE (#35901) — verified on HEAD a6e2dbfb05:

  • Floor witnesses with provenance; scaffold transports (parse_witness_transport.dag:27-34, dag_collect_fingerprint_witness_transport.dag:23-30) bind serialize_bash; CI enrollment in commit_workflow.dag:124-235.
  • Census shrink: src/v1/tests modules removed; hosts in parse_witness.rs / dag_collect_fingerprint_witness.rs.
  • Compile-clean split: batch-1 witness_layer_roots_compile_clean_check() (dag_compile_clean_transport.dag:51); batch-2 emit via enrolled dag_compile_clean_clean_tree_emit_execution_holds + perturb receipts — documented in ci_workflow.dag, not silent coverage narrowing.
  • CI timeout receipts preserved; trace_mark scaffold restored post-#35898 (a72b66383c).

No blocking findings to address. rust_tests green on run 28763730020; ci floor pending.

— sent from stern-koi-859

@briansrls
briansrls merged commit 99bd01c into main Jul 6, 2026
1 of 2 checks passed
@briansrls
briansrls deleted the session/stern-koi-859-test-migration branch July 6, 2026 03:15
briansrls added a commit that referenced this pull request Jul 6, 2026
The auto-committer flushed the in-progress merge with conflict markers (0b74fe4);
this resolves both:

- floor_diff_edits_from_line_ranges: keep #6269's v1_attribution_index + added_paths
  handling; keep the structural-∅ fix (no saw_non_dag/saw_dag refusal -- a non-.dag-only
  diff is a nominal empty frontier). The two are orthogonal and compose.
- emit_source_root_ingest_manifest: take #6269's emit_source_root_ref_import (derives
  the referenced SourceRootRef constructors from records) over the earlier hardcoded
  both-constructors line -- same source_root_ingest V2Tree fix, more precise form.

Kept both red-control tests; retargeted the structural-∅ test off a src/v1/ path
(which #6269 now eagerly resolves via the real workspace tree, unavailable from the
unit-test cwd) onto a path-agnostic non-.dag path. Both green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls pushed a commit that referenced this pull request Jul 6, 2026
Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 6, 2026
… guard + move licenses (atomic) (#6307)

* WIP: gunb compilation test

* Clone-fallback guard: shared-Rc updates refuse by default (fail|count|allow)

Operator ruling 2026-07-05: the silent clone arm in the rc_* update family
is a degradation that must stop the pipeline, not widen. Every shared-Rc
update (rc_map_insert/merge, rc_list_push/concat, rc_set_insert/union) and
take_owned_counted's clone arm now routes through rc_shared_update_guard:

- GUNBC_CLONE_FALLBACK=fail (default): typed, located panic naming the
  generated caller (#[track_caller]) — the work-queue key for licensing.
- =count: per-site ledger, first-hit line + ranked exit report (Drop on the
  thread_local), so degradation frequency is observable per §5.
- =allow: interim escape hatch.

tier-1 compile enumerates 205 degraded sites; top: rc_map_merge at
infer_env.rs:413 (14,360 clones), dag_collect.rs:234/239 (5,049 each) —
the profiled O(n^2) cold-compile root cause.

Template (runtime_rust.dag) and seed (v1_rt.rs) edited in sync, same
pattern as #6249.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* Fail-closed hardening: ban escape hatches, close guard bypasses, encode the factory model in DESIGN.md §5

Operator rulings 2026-07-05:
- GUNBC_CLONE_FALLBACK=allow removed. Modes are fail (default, refuses) and
  count (stopped-line audit: full ledger, still not a green run). No mode
  silences a refusal.
- DESIGN.md §5: no-escape-hatches corollary + the factory model as a merge
  REQUIREMENT — a diff landing a non-fail-closed failure arm (silent widen,
  fabricated default, uncounted degradation, escape hatch) is a hard reject
  in review.
- 6 inline pre-#6249 `Rc::try_unwrap(..).unwrap_or_else(clone)` fold sites
  in the generated seed (compile/infer_cycle/resolve x2/ownership/emit_rust)
  hand-synced to take_owned_counted — the guard's known bypasses closed;
  regen supersedes the hand-sync.
- take_owned_counted count arm ledgered into the same exit report as rc_*
  (one stopped-line audit surface).
- Interpreter: Bool True|False vs Value::Bool cross-representation `==`
  straddle now refuses (CrossRepresentationEquality), mirroring the numeric
  arm; DESIGN §5 named it the remaining decidable straddle. Its by-execution
  receipt joins the cross_representation receipts behind the stopped line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* WIP: gunb compilation test

* WIP: gunb compilation test

* Persistent maps: Map realization = im_rc HAMT (one authority with interpreter Value::Map)

Root fix for the clone-fallback class on maps (operator go-ahead 2026-07-05).
The compiled runtime realized Map as Rc<std HashMap> — O(n) copy on any
shared update — while the interpreter already realized Value::Map as
im_rc::HashMap (a §3 model↔realization fork). One swap of which HashMap the
generated code imports (extdeps/languages/rust/types.dag import row +
runtime_rust.dag header + seed hand-sync; type spellings and call sites
unchanged): Rc::make_mut's clone arm is now O(1) structural sharing and each
insert copies an O(log n) node path — shared update becomes the designed
path, so rc_map_insert/rc_map_merge leave the clone-fallback guard (lists
and sets keep it until they migrate too).

By-execution receipts (frozen-unit cold-compile benchmark):
- tier-1: 2.26s -> 0.66s; ledger 205 degraded sites -> 18 (all map sites gone)
- tier-10: 239s -> 41.7s (5.7x); 1.74M map clone-fallbacks -> 0
- remaining ledger is exactly rc_list_push/rc_list_concat/rc_set_insert —
  the named follow-up (List/Set -> persistent carriers need emitter type
  template work, not just the import row)

im-rc serde feature enabled for the artifact-serialization derives; hand
seams (cli_run, interpreter, bins, test mods) repointed per direction —
host-internal std maps stay std. fmt + clippy -D warnings green across all
targets. Run-to-run artifact nondeterminism predates this change (open
v2.std.determinism thread), verified by pre-change A/B.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Persistent carriers: lists+sets -> im_rc Vector/OrdSet; delete clone-fallback guard + per-site move licenses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix import order in v2 manual ownership_movable mirror (imports precede items)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Fix sweep-corrupted emit golden; inhabitant import_path rows prelude-provided (generation-agnostic)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Merge origin/main into session/sharp-wolf-473

Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Review fixes: interpreter Value::Set -> im_rc::OrdSet; emit_non_empty_wrappers BTreeSet alias; stale guard comment

Addresses PR #6307 review findings (cursor/composer-2.5 + claude-opus-4-7):
- v1_interpreter.rs: Value::Set was std BTreeSet (forked from runtime im_rc::OrdSet)
  and deep-cloned on every set_insert/set_union. Migrated to im_rc::OrdSet, closing
  the live model<->realization fork and the O(n) clone (now O(1) structural + O(log n)
  COW). Makes runtime_rust.dag's 'one realization with Value::Map/List/Set' true.
- 05_emit_rust.dag emit_non_empty_wrappers: std::collections::BTreeSet -> bare BTreeSet
  alias (matches the seed + prelude OrdSet alias; forward-compatible; kills the
  bidirectional regen hazard).
- v1_rt.rs: fixed the stale rc_map_insert sibling comment that still claimed lists/sets
  'remain O(n)-copy carriers and keep the guard'.

Seed-emitter import drift (emit_prelude/emit_main_mod_uses/rt_header/extdeps JSON still
emit std) is the coherent-whole emitter-fix-needs-2-gens cutover: pre-existing on main
(maps PR), tracked against RegenVerifyGate #5873, coordinated with regen lane
(loyal-dove-903). Not fixable as isolated import swaps (emitted runtime bodies need
focus/push_back/VecCompat + the trait emission itself).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 6, 2026
…nert-gate hole #1) (#6311)

* WIP: Fork of realization

* WIP: Fork of realization

* WIP: Fork of realization

* WIP: Fork of realization

* Floor affected-set: non-.dag-only diff is structural-∅, not ignorance (unblock pure-.rs PRs)

floor_diff_edits_from_line_ranges refused (Err) when a diff changed only
non-.dag files (saw_non_dag && !saw_dag) — reddening the discovery-corpus
batch for every pure-.rs PR (seed hand-syncs, Rust-only changes). That
conflated a structural-∅ .dag frontier with an ignorance state.

Per the operator's arity ruling: a successful git-diff observation whose
.dag subset is empty is NOMINAL (present, empty) — the SAME outcome as an
empty diff (every row takes the not-affected skip). The only ignorance
state is a FAILED observation (UnifiedDiffFail, floor_diff_observe.dag),
refused upstream in floor_git_diff_range. This mirrors the function's own
departed-.dag-path arm, which already distinguishes structural-∅ (continue)
from ignorance (refuse).

Fix: drop the saw_non_dag/saw_dag refusal; a non-.dag-only diff falls
through to the empty frontier. Observation layer (Ok/Fail + exit code) and
the shell docs-only shortcut are unchanged (already correct / downstream-
safe). Red control: non_dag_only_diff_is_structural_empty_frontier_not_refusal
(was Err, now Ok empty).

Also fixes the compile error at 32fac2e (auto-commit captured this edit
mid-flight: declarations removed, refusal block not yet dropped).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: Fork of realization

* Revert roster registration of test_claim_ownership_movable.rs (blocked by broken regen); keep source_root_ingest V2Tree fix

The #6289 witness ownership_movable_test.dag emits test_claim_ownership_movable.rs,
which references v1.compiler.ownership symbols (merge_branch_licenses, MoveLicenseAccum,
LiveState, move_site_key, ...) that are NOT in the committed v1_compiler_ownership.rs
seed. Registering it as a GENERATED file therefore breaks the seed crate's compile
(E0432/E0425/E0061) -- 'just register it' cannot land in isolation.

Measured blast radius: the fresh self-compile drifts from the committed seed across
33 files (the known-broken regen, emitter bugs #6298), so pulling in the fresh
v1_compiler_ownership.rs cascades into the whole regen. Not a scoped fix; parked for
the regen project (or exclude the off-auto-path witness from the emit closure).

KEPT: the source_root_ingest_gate_passes main-red fix -- emit_source_root_ingest_manifest
now imports v2.std.cross_tree.import_model { DagTree, V2Tree }. The manifest emitter
hardcodes its import block and missed this when source_root became a grounded
SourceRootRef (#5473/#5486), so every witness importing the manifest failed with
'undefined variable V2Tree'. Verified locally: all 3 real_ingest witnesses + the 2
runnable closure witnesses now return true (were compile errors).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Red-control test for source_root_ingest manifest cross_tree import

manifest_imports_grounded_source_root_constructors: asserts the emitted manifest
imports v2.std.cross_tree.import_model whenever it emits a grounded source_root
value -- deleting the import line reddens this test (paired with the CI witness
program_assembly_real_ingest_module_roots_parse_holds as the execution oracle).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Resolve merge with main #6269 in floor_diff_edits + manifest emitter

The auto-committer flushed the in-progress merge with conflict markers (0b74fe4);
this resolves both:

- floor_diff_edits_from_line_ranges: keep #6269's v1_attribution_index + added_paths
  handling; keep the structural-∅ fix (no saw_non_dag/saw_dag refusal -- a non-.dag-only
  diff is a nominal empty frontier). The two are orthogonal and compose.
- emit_source_root_ingest_manifest: take #6269's emit_source_root_ref_import (derives
  the referenced SourceRootRef constructors from records) over the earlier hardcoded
  both-constructors line -- same source_root_ingest V2Tree fix, more precise form.

Kept both red-control tests; retargeted the structural-∅ test off a src/v1/ path
(which #6269 now eagerly resolves via the real workspace tree, unavailable from the
unit-test cwd) onto a path-agnostic non-.dag path. Both green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: regen

* WIP: regen

* Revert inert selective-import filter (ancestry bypasses type_env_for_import)

The type_env_for_import specific_names filter was auto-committed to this PR
but is a no-op: lookup_binding_by_name reads ancestry_str_bindings, which
build_type_env fills from union_parent_type_env_caches (04_infer.dag:5507)
and the single-import path (:133) -- both merge each import's full
parent.type_env_cache, bypassing type_env_for_import (which only feeds the
unused 'parents' field). Measured: dag_collect still resolves un-imported
ErrorNode with the filter built in. Reverting so #6311 does not carry a
fail-closed illusion; the real fix belongs in the ancestry-cache seam.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansrls@gunb.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 6, 2026
…ontainer-dimension seeds (92->30 verify staleness) (#6322)

* WIP: gunb compilation test

* Clone-fallback guard: shared-Rc updates refuse by default (fail|count|allow)

Operator ruling 2026-07-05: the silent clone arm in the rc_* update family
is a degradation that must stop the pipeline, not widen. Every shared-Rc
update (rc_map_insert/merge, rc_list_push/concat, rc_set_insert/union) and
take_owned_counted's clone arm now routes through rc_shared_update_guard:

- GUNBC_CLONE_FALLBACK=fail (default): typed, located panic naming the
  generated caller (#[track_caller]) — the work-queue key for licensing.
- =count: per-site ledger, first-hit line + ranked exit report (Drop on the
  thread_local), so degradation frequency is observable per §5.
- =allow: interim escape hatch.

tier-1 compile enumerates 205 degraded sites; top: rc_map_merge at
infer_env.rs:413 (14,360 clones), dag_collect.rs:234/239 (5,049 each) —
the profiled O(n^2) cold-compile root cause.

Template (runtime_rust.dag) and seed (v1_rt.rs) edited in sync, same
pattern as #6249.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* Fail-closed hardening: ban escape hatches, close guard bypasses, encode the factory model in DESIGN.md §5

Operator rulings 2026-07-05:
- GUNBC_CLONE_FALLBACK=allow removed. Modes are fail (default, refuses) and
  count (stopped-line audit: full ledger, still not a green run). No mode
  silences a refusal.
- DESIGN.md §5: no-escape-hatches corollary + the factory model as a merge
  REQUIREMENT — a diff landing a non-fail-closed failure arm (silent widen,
  fabricated default, uncounted degradation, escape hatch) is a hard reject
  in review.
- 6 inline pre-#6249 `Rc::try_unwrap(..).unwrap_or_else(clone)` fold sites
  in the generated seed (compile/infer_cycle/resolve x2/ownership/emit_rust)
  hand-synced to take_owned_counted — the guard's known bypasses closed;
  regen supersedes the hand-sync.
- take_owned_counted count arm ledgered into the same exit report as rc_*
  (one stopped-line audit surface).
- Interpreter: Bool True|False vs Value::Bool cross-representation `==`
  straddle now refuses (CrossRepresentationEquality), mirroring the numeric
  arm; DESIGN §5 named it the remaining decidable straddle. Its by-execution
  receipt joins the cross_representation receipts behind the stopped line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* WIP: gunb compilation test

* WIP: gunb compilation test

* Persistent maps: Map realization = im_rc HAMT (one authority with interpreter Value::Map)

Root fix for the clone-fallback class on maps (operator go-ahead 2026-07-05).
The compiled runtime realized Map as Rc<std HashMap> — O(n) copy on any
shared update — while the interpreter already realized Value::Map as
im_rc::HashMap (a §3 model↔realization fork). One swap of which HashMap the
generated code imports (extdeps/languages/rust/types.dag import row +
runtime_rust.dag header + seed hand-sync; type spellings and call sites
unchanged): Rc::make_mut's clone arm is now O(1) structural sharing and each
insert copies an O(log n) node path — shared update becomes the designed
path, so rc_map_insert/rc_map_merge leave the clone-fallback guard (lists
and sets keep it until they migrate too).

By-execution receipts (frozen-unit cold-compile benchmark):
- tier-1: 2.26s -> 0.66s; ledger 205 degraded sites -> 18 (all map sites gone)
- tier-10: 239s -> 41.7s (5.7x); 1.74M map clone-fallbacks -> 0
- remaining ledger is exactly rc_list_push/rc_list_concat/rc_set_insert —
  the named follow-up (List/Set -> persistent carriers need emitter type
  template work, not just the import row)

im-rc serde feature enabled for the artifact-serialization derives; hand
seams (cli_run, interpreter, bins, test mods) repointed per direction —
host-internal std maps stay std. fmt + clippy -D warnings green across all
targets. Run-to-run artifact nondeterminism predates this change (open
v2.std.determinism thread), verified by pre-change A/B.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Persistent carriers: lists+sets -> im_rc Vector/OrdSet; delete clone-fallback guard + per-site move licenses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix import order in v2 manual ownership_movable mirror (imports precede items)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Fix sweep-corrupted emit golden; inhabitant import_path rows prelude-provided (generation-agnostic)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Merge origin/main into session/sharp-wolf-473

Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Review fixes: interpreter Value::Set -> im_rc::OrdSet; emit_non_empty_wrappers BTreeSet alias; stale guard comment

Addresses PR #6307 review findings (cursor/composer-2.5 + claude-opus-4-7):
- v1_interpreter.rs: Value::Set was std BTreeSet (forked from runtime im_rc::OrdSet)
  and deep-cloned on every set_insert/set_union. Migrated to im_rc::OrdSet, closing
  the live model<->realization fork and the O(n) clone (now O(1) structural + O(log n)
  COW). Makes runtime_rust.dag's 'one realization with Value::Map/List/Set' true.
- 05_emit_rust.dag emit_non_empty_wrappers: std::collections::BTreeSet -> bare BTreeSet
  alias (matches the seed + prelude OrdSet alias; forward-compatible; kills the
  bidirectional regen hazard).
- v1_rt.rs: fixed the stale rc_map_insert sibling comment that still claimed lists/sets
  'remain O(n)-copy carriers and keep the guard'.

Seed-emitter import drift (emit_prelude/emit_main_mod_uses/rt_header/extdeps JSON still
emit std) is the coherent-whole emitter-fix-needs-2-gens cutover: pre-existing on main
(maps PR), tracked against RegenVerifyGate #5873, coordinated with regen lane
(loyal-dove-903). Not fixable as isolated import swaps (emitted runtime bodies need
focus/push_back/VecCompat + the trait emission itself).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 7, 2026
…: one-level visibility by construction (floor resolve 286.7s -> 2.4s) (#6331)

* WIP: gunb compilation test

* Clone-fallback guard: shared-Rc updates refuse by default (fail|count|allow)

Operator ruling 2026-07-05: the silent clone arm in the rc_* update family
is a degradation that must stop the pipeline, not widen. Every shared-Rc
update (rc_map_insert/merge, rc_list_push/concat, rc_set_insert/union) and
take_owned_counted's clone arm now routes through rc_shared_update_guard:

- GUNBC_CLONE_FALLBACK=fail (default): typed, located panic naming the
  generated caller (#[track_caller]) — the work-queue key for licensing.
- =count: per-site ledger, first-hit line + ranked exit report (Drop on the
  thread_local), so degradation frequency is observable per §5.
- =allow: interim escape hatch.

tier-1 compile enumerates 205 degraded sites; top: rc_map_merge at
infer_env.rs:413 (14,360 clones), dag_collect.rs:234/239 (5,049 each) —
the profiled O(n^2) cold-compile root cause.

Template (runtime_rust.dag) and seed (v1_rt.rs) edited in sync, same
pattern as #6249.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* Fail-closed hardening: ban escape hatches, close guard bypasses, encode the factory model in DESIGN.md §5

Operator rulings 2026-07-05:
- GUNBC_CLONE_FALLBACK=allow removed. Modes are fail (default, refuses) and
  count (stopped-line audit: full ledger, still not a green run). No mode
  silences a refusal.
- DESIGN.md §5: no-escape-hatches corollary + the factory model as a merge
  REQUIREMENT — a diff landing a non-fail-closed failure arm (silent widen,
  fabricated default, uncounted degradation, escape hatch) is a hard reject
  in review.
- 6 inline pre-#6249 `Rc::try_unwrap(..).unwrap_or_else(clone)` fold sites
  in the generated seed (compile/infer_cycle/resolve x2/ownership/emit_rust)
  hand-synced to take_owned_counted — the guard's known bypasses closed;
  regen supersedes the hand-sync.
- take_owned_counted count arm ledgered into the same exit report as rc_*
  (one stopped-line audit surface).
- Interpreter: Bool True|False vs Value::Bool cross-representation `==`
  straddle now refuses (CrossRepresentationEquality), mirroring the numeric
  arm; DESIGN §5 named it the remaining decidable straddle. Its by-execution
  receipt joins the cross_representation receipts behind the stopped line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* WIP: gunb compilation test

* WIP: gunb compilation test

* Persistent maps: Map realization = im_rc HAMT (one authority with interpreter Value::Map)

Root fix for the clone-fallback class on maps (operator go-ahead 2026-07-05).
The compiled runtime realized Map as Rc<std HashMap> — O(n) copy on any
shared update — while the interpreter already realized Value::Map as
im_rc::HashMap (a §3 model↔realization fork). One swap of which HashMap the
generated code imports (extdeps/languages/rust/types.dag import row +
runtime_rust.dag header + seed hand-sync; type spellings and call sites
unchanged): Rc::make_mut's clone arm is now O(1) structural sharing and each
insert copies an O(log n) node path — shared update becomes the designed
path, so rc_map_insert/rc_map_merge leave the clone-fallback guard (lists
and sets keep it until they migrate too).

By-execution receipts (frozen-unit cold-compile benchmark):
- tier-1: 2.26s -> 0.66s; ledger 205 degraded sites -> 18 (all map sites gone)
- tier-10: 239s -> 41.7s (5.7x); 1.74M map clone-fallbacks -> 0
- remaining ledger is exactly rc_list_push/rc_list_concat/rc_set_insert —
  the named follow-up (List/Set -> persistent carriers need emitter type
  template work, not just the import row)

im-rc serde feature enabled for the artifact-serialization derives; hand
seams (cli_run, interpreter, bins, test mods) repointed per direction —
host-internal std maps stay std. fmt + clippy -D warnings green across all
targets. Run-to-run artifact nondeterminism predates this change (open
v2.std.determinism thread), verified by pre-change A/B.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Persistent carriers: lists+sets -> im_rc Vector/OrdSet; delete clone-fallback guard + per-site move licenses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix import order in v2 manual ownership_movable mirror (imports precede items)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Fix sweep-corrupted emit golden; inhabitant import_path rows prelude-provided (generation-agnostic)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Merge origin/main into session/sharp-wolf-473

Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Review fixes: interpreter Value::Set -> im_rc::OrdSet; emit_non_empty_wrappers BTreeSet alias; stale guard comment

Addresses PR #6307 review findings (cursor/composer-2.5 + claude-opus-4-7):
- v1_interpreter.rs: Value::Set was std BTreeSet (forked from runtime im_rc::OrdSet)
  and deep-cloned on every set_insert/set_union. Migrated to im_rc::OrdSet, closing
  the live model<->realization fork and the O(n) clone (now O(1) structural + O(log n)
  COW). Makes runtime_rust.dag's 'one realization with Value::Map/List/Set' true.
- 05_emit_rust.dag emit_non_empty_wrappers: std::collections::BTreeSet -> bare BTreeSet
  alias (matches the seed + prelude OrdSet alias; forward-compatible; kills the
  bidirectional regen hazard).
- v1_rt.rs: fixed the stale rc_map_insert sibling comment that still claimed lists/sets
  'remain O(n)-copy carriers and keep the guard'.

Seed-emitter import drift (emit_prelude/emit_main_mod_uses/rt_header/extdeps JSON still
emit std) is the coherent-whole emitter-fix-needs-2-gens cutover: pre-existing on main
(maps PR), tracked against RegenVerifyGate #5873, coordinated with regen lane
(loyal-dove-903). Not fixable as isolated import swaps (emitted runtime bodies need
focus/push_back/VecCompat + the trait emission itself).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Revert speculative import addition in network_identity_subsumption (refusal is a pre-existing alias-expansion deficit, A/B-verified on the pre-diff binary)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* Back-port #6329's operator-signed DESIGN.md edits into design_document.dag; corpus import hygiene; artifact regens

The compile-clean and artifact-drift gates, unmasked by #6331's floor speedup,
found accumulated debt: 43 unlisted-import diagnostics (12 files, mechanical
import-list additions), the network_identity param typed to the alias it
actually receives (DhcpClientHostNameOption12), and DESIGN.md drifted from its
generating authority because #6329 hand-edited the artifact without
back-porting (receipt: main_wet now regenerates DESIGN.md byte-identical to
the committed operator-signed version). falsifier.yml/.gitignore regens are
main_wet output. The complexity_r1 citation-string repoints are reverted out
of this PR: touching those files enrolls a fixture whose lens hits a
pre-existing fold_list lambda-param typing deficit (no field 'label' on 'T');
moved to follow-up with that deficit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* complexity_r1 lens: type the children fold on the demand path (builtin fold idiom); keep truthful post-deletion citations

The diff-scoped discovery frontier (enrolled via the v2.std.diagnostic import
fix) demand-resolves this lens; fold_list<T,A> over n.children left T
un-instantiated on that path (no field 'label' on 'T') while batch reconcile
typed it fine — a batch/demand inference divergence. The children fold now
uses the builtin fold idiom fact_density.dag already uses (resolves on both
paths, receipt: complexity_r1_green_merge_envs_base_holds witness green by
execution); the registry fold_list over a concrete FreeMonoid in the same
module types fine and stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Revert "WIP: emit -> realization"

This reverts commit 3ad16c9.

* WIP: emit -> realization

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 7, 2026
* WIP: gunb compilation test

* Clone-fallback guard: shared-Rc updates refuse by default (fail|count|allow)

Operator ruling 2026-07-05: the silent clone arm in the rc_* update family
is a degradation that must stop the pipeline, not widen. Every shared-Rc
update (rc_map_insert/merge, rc_list_push/concat, rc_set_insert/union) and
take_owned_counted's clone arm now routes through rc_shared_update_guard:

- GUNBC_CLONE_FALLBACK=fail (default): typed, located panic naming the
  generated caller (#[track_caller]) — the work-queue key for licensing.
- =count: per-site ledger, first-hit line + ranked exit report (Drop on the
  thread_local), so degradation frequency is observable per §5.
- =allow: interim escape hatch.

tier-1 compile enumerates 205 degraded sites; top: rc_map_merge at
infer_env.rs:413 (14,360 clones), dag_collect.rs:234/239 (5,049 each) —
the profiled O(n^2) cold-compile root cause.

Template (runtime_rust.dag) and seed (v1_rt.rs) edited in sync, same
pattern as #6249.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* Fail-closed hardening: ban escape hatches, close guard bypasses, encode the factory model in DESIGN.md §5

Operator rulings 2026-07-05:
- GUNBC_CLONE_FALLBACK=allow removed. Modes are fail (default, refuses) and
  count (stopped-line audit: full ledger, still not a green run). No mode
  silences a refusal.
- DESIGN.md §5: no-escape-hatches corollary + the factory model as a merge
  REQUIREMENT — a diff landing a non-fail-closed failure arm (silent widen,
  fabricated default, uncounted degradation, escape hatch) is a hard reject
  in review.
- 6 inline pre-#6249 `Rc::try_unwrap(..).unwrap_or_else(clone)` fold sites
  in the generated seed (compile/infer_cycle/resolve x2/ownership/emit_rust)
  hand-synced to take_owned_counted — the guard's known bypasses closed;
  regen supersedes the hand-sync.
- take_owned_counted count arm ledgered into the same exit report as rc_*
  (one stopped-line audit surface).
- Interpreter: Bool True|False vs Value::Bool cross-representation `==`
  straddle now refuses (CrossRepresentationEquality), mirroring the numeric
  arm; DESIGN §5 named it the remaining decidable straddle. Its by-execution
  receipt joins the cross_representation receipts behind the stopped line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* WIP: gunb compilation test

* WIP: gunb compilation test

* Persistent maps: Map realization = im_rc HAMT (one authority with interpreter Value::Map)

Root fix for the clone-fallback class on maps (operator go-ahead 2026-07-05).
The compiled runtime realized Map as Rc<std HashMap> — O(n) copy on any
shared update — while the interpreter already realized Value::Map as
im_rc::HashMap (a §3 model↔realization fork). One swap of which HashMap the
generated code imports (extdeps/languages/rust/types.dag import row +
runtime_rust.dag header + seed hand-sync; type spellings and call sites
unchanged): Rc::make_mut's clone arm is now O(1) structural sharing and each
insert copies an O(log n) node path — shared update becomes the designed
path, so rc_map_insert/rc_map_merge leave the clone-fallback guard (lists
and sets keep it until they migrate too).

By-execution receipts (frozen-unit cold-compile benchmark):
- tier-1: 2.26s -> 0.66s; ledger 205 degraded sites -> 18 (all map sites gone)
- tier-10: 239s -> 41.7s (5.7x); 1.74M map clone-fallbacks -> 0
- remaining ledger is exactly rc_list_push/rc_list_concat/rc_set_insert —
  the named follow-up (List/Set -> persistent carriers need emitter type
  template work, not just the import row)

im-rc serde feature enabled for the artifact-serialization derives; hand
seams (cli_run, interpreter, bins, test mods) repointed per direction —
host-internal std maps stay std. fmt + clippy -D warnings green across all
targets. Run-to-run artifact nondeterminism predates this change (open
v2.std.determinism thread), verified by pre-change A/B.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Persistent carriers: lists+sets -> im_rc Vector/OrdSet; delete clone-fallback guard + per-site move licenses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix import order in v2 manual ownership_movable mirror (imports precede items)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Fix sweep-corrupted emit golden; inhabitant import_path rows prelude-provided (generation-agnostic)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Merge origin/main into session/sharp-wolf-473

Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Review fixes: interpreter Value::Set -> im_rc::OrdSet; emit_non_empty_wrappers BTreeSet alias; stale guard comment

Addresses PR #6307 review findings (cursor/composer-2.5 + claude-opus-4-7):
- v1_interpreter.rs: Value::Set was std BTreeSet (forked from runtime im_rc::OrdSet)
  and deep-cloned on every set_insert/set_union. Migrated to im_rc::OrdSet, closing
  the live model<->realization fork and the O(n) clone (now O(1) structural + O(log n)
  COW). Makes runtime_rust.dag's 'one realization with Value::Map/List/Set' true.
- 05_emit_rust.dag emit_non_empty_wrappers: std::collections::BTreeSet -> bare BTreeSet
  alias (matches the seed + prelude OrdSet alias; forward-compatible; kills the
  bidirectional regen hazard).
- v1_rt.rs: fixed the stale rc_map_insert sibling comment that still claimed lists/sets
  'remain O(n)-copy carriers and keep the guard'.

Seed-emitter import drift (emit_prelude/emit_main_mod_uses/rt_header/extdeps JSON still
emit std) is the coherent-whole emitter-fix-needs-2-gens cutover: pre-existing on main
(maps PR), tracked against RegenVerifyGate #5873, coordinated with regen lane
(loyal-dove-903). Not fixable as isolated import swaps (emitted runtime bodies need
focus/push_back/VecCompat + the trait emission itself).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Revert speculative import addition in network_identity_subsumption (refusal is a pre-existing alias-expansion deficit, A/B-verified on the pre-diff binary)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* Back-port #6329's operator-signed DESIGN.md edits into design_document.dag; corpus import hygiene; artifact regens

The compile-clean and artifact-drift gates, unmasked by #6331's floor speedup,
found accumulated debt: 43 unlisted-import diagnostics (12 files, mechanical
import-list additions), the network_identity param typed to the alias it
actually receives (DhcpClientHostNameOption12), and DESIGN.md drifted from its
generating authority because #6329 hand-edited the artifact without
back-porting (receipt: main_wet now regenerates DESIGN.md byte-identical to
the committed operator-signed version). falsifier.yml/.gitignore regens are
main_wet output. The complexity_r1 citation-string repoints are reverted out
of this PR: touching those files enrolls a fixture whose lens hits a
pre-existing fold_list lambda-param typing deficit (no field 'label' on 'T');
moved to follow-up with that deficit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* complexity_r1 lens: type the children fold on the demand path (builtin fold idiom); keep truthful post-deletion citations

The diff-scoped discovery frontier (enrolled via the v2.std.diagnostic import
fix) demand-resolves this lens; fold_list<T,A> over n.children left T
un-instantiated on that path (no field 'label' on 'T') while batch reconcile
typed it fine — a batch/demand inference divergence. The children fold now
uses the builtin fold idiom fact_density.dag already uses (resolves on both
paths, receipt: complexity_r1_green_merge_envs_base_holds witness green by
execution); the registry fold_list over a concrete FreeMonoid in the same
module types fine and stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Revert "WIP: emit -> realization"

This reverts commit 3ad16c9.

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* intern_str build-green: list-get resolves Optional via free_monoid_collection get template

Root cause of the list-get-by-index inference deficit: free_monoid_collection_templates
(the List method table in dag/std/algebra.dag) declared first/last returning
OptionalOf<ReceiverElement> but had NO get row — so `list |> get(index)` never resolved
structurally and its result type defaulted to the receiver (FreeMonoid), leaving the match
Bind arm un-Some-wrapped. Map-get works because PartialFunction declares get: fn(K) -> V?.

- dag/std/algebra.dag: add get: [ReceiverSelf, Int] -> OptionalOf<ReceiverElement> row,
  mirroring the existing first/last rows (completes the model, mints nothing). [already committed]
- src/v1/stage0/src/std_algebra.rs: splice the get template into the seed so the running
  binary's inference resolves list-get as Optional.
- src/v1/00_core.dag: intern_str now matches explicit Present/Absent (was catch-all
  `other => other` which binds the whole Option); emits Some(s)/None, builds green.

Fresh-crate cargo check: 26 -> 2 errors; the 2 remaining are the single std_integer Nat
where-refinement alias-resolution root (Nat<Magnitude>). intern_str builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 7, 2026
… gate) + sorted_map_keys builtin (#6357)

* WIP: gunb compilation test

* Clone-fallback guard: shared-Rc updates refuse by default (fail|count|allow)

Operator ruling 2026-07-05: the silent clone arm in the rc_* update family
is a degradation that must stop the pipeline, not widen. Every shared-Rc
update (rc_map_insert/merge, rc_list_push/concat, rc_set_insert/union) and
take_owned_counted's clone arm now routes through rc_shared_update_guard:

- GUNBC_CLONE_FALLBACK=fail (default): typed, located panic naming the
  generated caller (#[track_caller]) — the work-queue key for licensing.
- =count: per-site ledger, first-hit line + ranked exit report (Drop on the
  thread_local), so degradation frequency is observable per §5.
- =allow: interim escape hatch.

tier-1 compile enumerates 205 degraded sites; top: rc_map_merge at
infer_env.rs:413 (14,360 clones), dag_collect.rs:234/239 (5,049 each) —
the profiled O(n^2) cold-compile root cause.

Template (runtime_rust.dag) and seed (v1_rt.rs) edited in sync, same
pattern as #6249.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* Fail-closed hardening: ban escape hatches, close guard bypasses, encode the factory model in DESIGN.md §5

Operator rulings 2026-07-05:
- GUNBC_CLONE_FALLBACK=allow removed. Modes are fail (default, refuses) and
  count (stopped-line audit: full ledger, still not a green run). No mode
  silences a refusal.
- DESIGN.md §5: no-escape-hatches corollary + the factory model as a merge
  REQUIREMENT — a diff landing a non-fail-closed failure arm (silent widen,
  fabricated default, uncounted degradation, escape hatch) is a hard reject
  in review.
- 6 inline pre-#6249 `Rc::try_unwrap(..).unwrap_or_else(clone)` fold sites
  in the generated seed (compile/infer_cycle/resolve x2/ownership/emit_rust)
  hand-synced to take_owned_counted — the guard's known bypasses closed;
  regen supersedes the hand-sync.
- take_owned_counted count arm ledgered into the same exit report as rc_*
  (one stopped-line audit surface).
- Interpreter: Bool True|False vs Value::Bool cross-representation `==`
  straddle now refuses (CrossRepresentationEquality), mirroring the numeric
  arm; DESIGN §5 named it the remaining decidable straddle. Its by-execution
  receipt joins the cross_representation receipts behind the stopped line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: gunb compilation test

* WIP: gunb compilation test

* WIP: gunb compilation test

* Persistent maps: Map realization = im_rc HAMT (one authority with interpreter Value::Map)

Root fix for the clone-fallback class on maps (operator go-ahead 2026-07-05).
The compiled runtime realized Map as Rc<std HashMap> — O(n) copy on any
shared update — while the interpreter already realized Value::Map as
im_rc::HashMap (a §3 model↔realization fork). One swap of which HashMap the
generated code imports (extdeps/languages/rust/types.dag import row +
runtime_rust.dag header + seed hand-sync; type spellings and call sites
unchanged): Rc::make_mut's clone arm is now O(1) structural sharing and each
insert copies an O(log n) node path — shared update becomes the designed
path, so rc_map_insert/rc_map_merge leave the clone-fallback guard (lists
and sets keep it until they migrate too).

By-execution receipts (frozen-unit cold-compile benchmark):
- tier-1: 2.26s -> 0.66s; ledger 205 degraded sites -> 18 (all map sites gone)
- tier-10: 239s -> 41.7s (5.7x); 1.74M map clone-fallbacks -> 0
- remaining ledger is exactly rc_list_push/rc_list_concat/rc_set_insert —
  the named follow-up (List/Set -> persistent carriers need emitter type
  template work, not just the import row)

im-rc serde feature enabled for the artifact-serialization derives; hand
seams (cli_run, interpreter, bins, test mods) repointed per direction —
host-internal std maps stay std. fmt + clippy -D warnings green across all
targets. Run-to-run artifact nondeterminism predates this change (open
v2.std.determinism thread), verified by pre-change A/B.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Persistent carriers: lists+sets -> im_rc Vector/OrdSet; delete clone-fallback guard + per-site move licenses

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix import order in v2 manual ownership_movable mirror (imports precede items)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Fix sweep-corrupted emit golden; inhabitant import_path rows prelude-provided (generation-agnostic)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Merge origin/main into session/sharp-wolf-473

Resolves #6269 test-migration collision: accept main's deletion of
src/v1/ownership_movable_test.dag (v2 manual mirror carries the license-removal
edit); reconcile dag_collect_fingerprint_witness.rs bin with im_rc carriers
(hashes -> Rc<im_rc::Vector>, Node children/params via .into()).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Review fixes: interpreter Value::Set -> im_rc::OrdSet; emit_non_empty_wrappers BTreeSet alias; stale guard comment

Addresses PR #6307 review findings (cursor/composer-2.5 + claude-opus-4-7):
- v1_interpreter.rs: Value::Set was std BTreeSet (forked from runtime im_rc::OrdSet)
  and deep-cloned on every set_insert/set_union. Migrated to im_rc::OrdSet, closing
  the live model<->realization fork and the O(n) clone (now O(1) structural + O(log n)
  COW). Makes runtime_rust.dag's 'one realization with Value::Map/List/Set' true.
- 05_emit_rust.dag emit_non_empty_wrappers: std::collections::BTreeSet -> bare BTreeSet
  alias (matches the seed + prelude OrdSet alias; forward-compatible; kills the
  bidirectional regen hazard).
- v1_rt.rs: fixed the stale rc_map_insert sibling comment that still claimed lists/sets
  'remain O(n)-copy carriers and keep the guard'.

Seed-emitter import drift (emit_prelude/emit_main_mod_uses/rt_header/extdeps JSON still
emit std) is the coherent-whole emitter-fix-needs-2-gens cutover: pre-existing on main
(maps PR), tracked against RegenVerifyGate #5873, coordinated with regen lane
(loyal-dove-903). Not fixable as isolated import swaps (emitted runtime bodies need
focus/push_back/VecCompat + the trait emission itself).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* Revert speculative import addition in network_identity_subsumption (refusal is a pre-existing alias-expansion deficit, A/B-verified on the pre-diff binary)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* Back-port #6329's operator-signed DESIGN.md edits into design_document.dag; corpus import hygiene; artifact regens

The compile-clean and artifact-drift gates, unmasked by #6331's floor speedup,
found accumulated debt: 43 unlisted-import diagnostics (12 files, mechanical
import-list additions), the network_identity param typed to the alias it
actually receives (DhcpClientHostNameOption12), and DESIGN.md drifted from its
generating authority because #6329 hand-edited the artifact without
back-porting (receipt: main_wet now regenerates DESIGN.md byte-identical to
the committed operator-signed version). falsifier.yml/.gitignore regens are
main_wet output. The complexity_r1 citation-string repoints are reverted out
of this PR: touching those files enrolls a fixture whose lens hits a
pre-existing fold_list lambda-param typing deficit (no field 'label' on 'T');
moved to follow-up with that deficit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* complexity_r1 lens: type the children fold on the demand path (builtin fold idiom); keep truthful post-deletion citations

The diff-scoped discovery frontier (enrolled via the v2.std.diagnostic import
fix) demand-resolves this lens; fold_list<T,A> over n.children left T
un-instantiated on that path (no field 'label' on 'T') while batch reconcile
typed it fine — a batch/demand inference divergence. The children fold now
uses the builtin fold idiom fact_density.dag already uses (resolves on both
paths, receipt: complexity_r1_green_merge_envs_base_holds witness green by
execution); the registry fold_list over a concrete FreeMonoid in the same
module types fine and stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* WIP: emit -> realization

* Revert "WIP: emit -> realization"

This reverts commit 3ad16c9.

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* intern_str build-green: list-get resolves Optional via free_monoid_collection get template

Root cause of the list-get-by-index inference deficit: free_monoid_collection_templates
(the List method table in dag/std/algebra.dag) declared first/last returning
OptionalOf<ReceiverElement> but had NO get row — so `list |> get(index)` never resolved
structurally and its result type defaulted to the receiver (FreeMonoid), leaving the match
Bind arm un-Some-wrapped. Map-get works because PartialFunction declares get: fn(K) -> V?.

- dag/std/algebra.dag: add get: [ReceiverSelf, Int] -> OptionalOf<ReceiverElement> row,
  mirroring the existing first/last rows (completes the model, mints nothing). [already committed]
- src/v1/stage0/src/std_algebra.rs: splice the get template into the seed so the running
  binary's inference resolves list-get as Optional.
- src/v1/00_core.dag: intern_str now matches explicit Present/Absent (was catch-all
  `other => other` which binds the whole Option); emits Some(s)/None, builds green.

Fresh-crate cargo check: 26 -> 2 errors; the 2 remaining are the single std_integer Nat
where-refinement alias-resolution root (Nat<Magnitude>). intern_str builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: emit -> realization

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* seed-prime: sorted_map_keys builtin (registry + bridge + runtime generator)

Functional gen-0' prime of the new sorted_map_keys builtin across the 3
remaining seed twins (v1_rt.rs fn + infer arms already present):
- v1_compiler_infer_method.rs: builtin_function_registry row (type = list of collection_element, mirrors map_keys)
- extdeps_languages_rust_emit.rs: rt bridge row (passes_by_ref+wraps_result, mirrors map_keys)
- v1_compiler_runtime_rust.rs: runtime-generator emits the fn body after map_keys

Enables the 2-gen bootstrap: regen_stage0 built from this seed can resolve/
emit sorted_map_keys, so a fresh regen produces the canonical seed. Ordering
within gen-0' is irrelevant; canonical order comes from runtime_rust.dag:177.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* WIP: realization (SymbolIndex)

* fix: .dag emits im-rc dep + qualified std::collections::BTreeSet for stage0_core/emit_core boundary files (workspace build)

* test: build_movable_set 2-arg (empty param_names) — align stale test with .dag authority

The .dag defines build_movable_set(proof, param_names) as 2-arg; main's seed
carried a stale 1-arg divergence and pipeline.rs was written against it.
accept-fresh correctly converged the seed to the 2-arg .dag form, so the
hand-maintained test crate call needed updating. param_names only extends
movability to sole-owned params; empty set = the param-blind count the
movable_but_cloned<=45 ratchet was calibrated against.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Brian Searls <briansrls@gunb.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant