Skip to content

Freeze consolidation: durable gunbc work (#5402/#5395/#5407/#5400/#5396) on one branch - #5413

Merged
briansrls merged 26 commits into
mainfrom
consolidation/gunbc-freeze-2026-06-20
Jun 20, 2026
Merged

briansrls merged 26 commits into
mainfrom
consolidation/gunbc-freeze-2026-06-20

Conversation

@briansrls

@briansrls briansrls commented Jun 20, 2026 •

Copy link
Copy Markdown
Contributor

Freeze consolidation — durable gunbc work on one branch

Single branch consolidating the durable, conflict-free gunbc lanes from the 2026-06-20 all-freeze digest, per operator request ("integrate all this into a single branch, finish the low-hanging fruit"). Each constituent merged conflict-free.

Constituents (each closed in favor of this branch)

PR Lane Change
#5402 dsl→v2 gate (Strategy A) Widen dsl_compile_clean to dual-root (the keystone gate-widen)
#5395 v2 self-host (seed) Dissolve .length() nickname → canonical .count()
#5407 anemia eval anemia CONFIRM eval corpus (single authority) — purely additive
#5400 emitter (v1-seed) derive Debug/PartialEq/serde on phantom type-tag markers
#5396 emit Measure-alias count peel (E0560)

Plus one carried fix (pre-existing main defect)

Base + local verification (ground-truth, not CI rollup)

Built off origin/main @ f08c263c1d (CI success, PASS source_root_ingest_gate_passes — the digest's "main RED" was stale; #5406 closed that gap). Local receipt on the merged tree:

  • cargo fmt --all --check → clean
  • cargo clippy --all-targets -- -D warnings → exit 0
  • cargo test -p v1-compiler-tests -- interp_recorded_fixture wet_hermetic resolve_expr_types_retraversal → 28 passed, 0 failed
  • cargo check -p v1-compiler → clean

Notes

  • The --target rust compile-clean gate is SCAFFOLD (the Compilation failures count is the known, tolerated M1 rust-emit residual); intermittent sccache: failed to spawn is a documented infra flake.

Excluded

  • dsl to v2 std de-fork consolidation #5409 "de-fork" — branch contains only a WIP: tmp_census.py commit; the actual dsl/std/reducible.dag delete + consumer migration is not committed (and dsl→v2 import feasibility is unresolved). Left open for its owner.

🤖 Generated with Claude Code

briansrls and others added 25 commits June 20, 2026 16:56
`.length()` is a §3 nickname for the cardinality of a sequence; the canonical
op is `count` (the only one in the compiler method table — 04_method.dag — and
the only one that gets descent/termination inference via classify_size_expr).
`.length()` falls through the compiler's unknown-method path and emits a call to
a nonexistent `v1_rt::length`, which breaks the v1 seed (E0425). Dissolve it to
`.count()`, which emits the valid host `.len() as i64` for List receivers.

Scope: the two files in the v1 seed closure (the only seed .rs that emit
v1_rt::length): extdeps/version/semver.dag (8) + std/realization_schedule.dag
(13) = 21 sites, ALL List receivers (semantics-preserving count-nickname; no
String receivers in scope). The remaining corpus .length() sites (pep440, yaml,
cache_interface, compute_fabric, workflow_yaml) are outside the seed closure and
land with the separate unknown-method fail-closed hardening work-item (which
also needs the count-on-String host realization).

Verified by execution (authoritative, not proxy — source change, count is an
existing builtin so one regen takes effect): control vs treatment on the same
main base — E0425 36 -> 17 (exactly -19, the v1_rt::length cluster), every other
error class identical, zero regressions. v1_rt::length count in the seed: 0.

emitter-completeness slice, NOT seed-green; seed-green lands in #5325.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rkers

Enum variants used as type-level kinds (the Quantity/Scale tags Memory/One/
Power/Gibi/... in Measure<Memory, One, Nat>) are emitted as bare unit structs
(`pub struct Memory;`) with no derives. Any carrier that mentions them then
fails its own derive closed: Measure<Q,S,M> derives Debug/Clone/PartialEq +
serde, which requires Q,S: those traits, so the seed gets E0277 (`Memory`
doesn't implement `Debug`) and E0369 (`==` cannot be applied to a Measure).

Give the markers the matching derive set (Debug, Clone, Copy, PartialEq, Eq,
serde::Serialize, serde::Deserialize) via a single-authority helper
`rust_phantom_zst_marker_def`, used by both the per-enum and per-module marker
emitters.

Verified by execution (2-stage proxy on the integration seed): E0277 3 -> 0 and
E0369 2 -> 0 (-5), no new error classes. Helper confirmed emitted into the
regenerated v1_compiler_emit_rust.rs.

emitter-completeness slice, NOT seed-green; seed-green lands in #5325.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The auto-commit captured a local regen of src/v1/stage0/. Per the
regen-lockstep repair hygiene, the committed seed must stay main's until
the green co-land (PR 5325); this slice ships the emitter .dag change only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 labelled field sites (10 positive anemia violations, 7 §5-negatives) as the
ground-truth set for the anemia-lens CONFIRM judge. Consumed cross-repo (ctrl
coherence gate) from this fixed submodule path — not vendored.

Mechanical split only (decided_by: deterministic vs haiku_confirm); no severity
tiering — one violation class, everything fires blocks. haiku CONFIRM rows are a
hard blocking dependency run in observe mode as a rollout phase.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Primary-precedence pool index (opt-in; strict default). Transport + witness
four teeth; dependency_pool_index_compile_test Rust receipts. Gate-only on
current main — no cli_run.rs, reducible, or stale self_host files.

Co-authored-by: Cursor <cursoragent@cursor.com>
…eader dup.

§6 scaffold: name extdeps.shell de-fork (S2) as dissolution lane for the
transitional primary-precedence policy. Reframe dsl-shell receipt as §5
fail-closed guard, not dual-authority celebration. Drop duplicated phrase
in transport header comment.

Co-authored-by: Cursor <cursoragent@cursor.com>
…g doc pointer

Addresses cursor/composer-2.5 REQUEST_CHANGES on #5407:
- every `located` now resolves to a real current in-tree site (SqlMigrationStep,
  ServedStaticRoute, CloudAuthScheme.SigV4, OciDescriptor@container.oci, GitRemote,
  GitHubErrorShape, CargoDepSource.RegistryDep, Cpu/DramModuleCatalogRow, tokenize
  param, source_authority_contract source).
- new `grounded_now` column: the audited positive sites have SINCE been grounded by
  the extdeps cleanup program, so the live field carries the grounded type, not the
  audit-time `declared_type`. README now states the harness reconstructs judge input
  from the row fields (declared_type/signal/coincides_with) and does NOT re-bind
  `located` live; the merged grounding is the ground-truth evidence for the REAL label.
- README design-doc pointer no longer dangles (cites PR #5302, not a path absent on main).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ource_root

Execution proof (merry-owl-830): the within_root.contains_key guard before
index.contains_key/continue never fires when the path is already in the
primary root; insert_module_path remains the real within-root detector.
Restore a206519 index_source_root pool_fill_only branch; remove the Rust
test that asserted the dead path.

Co-authored-by: Cursor <cursoragent@cursor.com>
… struct (cursor 31502)

Construction peel kept naming/boxing/phantom on the AUTHORED alias (tn,
e.g. Gibibyte) while feeding the expanded resolved_type — so for a struct
alias the phantom field was skipped (E0063) and display could become
Measure::Gibibyte. Fix: pass the peeled concrete struct name (from
expanded_rt) as emit_typed_record_lit's type_name so the literal name,
Box<M> boxing, and PhantomData population all agree on Measure; and guard
the effective_parent fallback with variant_belongs_to_enum so a struct is
never prefixed as Enum::Variant. .dag-only; seed stays main's.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…sources

The discriminating witness ran the real emit pipeline via the interpreter,
but `compile_sources` hits 'not yet implemented: method chars' in the
interpreter, so it cannot execute (and would RED the CI floor if enrolled).
Removing it; execution-verification of the construction peel rides the
integration-branch full build. Keeps the PR .dag-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rust_monolith_gate failed on cargo fmt --check after
dependency_pool_index_compile_test mod registration.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pre-existing defect from #5406, not introduced by this consolidation.
`main`'s rust_monolith gate is skipped on main pushes (should_run_gates
fires only when the diff touches a .rs), so #5406's lint went uncaught;
the prior emit PRs predate #5406. #5413 is the first post-#5406 PR to
touch a .rs, so it is the first to run `cargo clippy --all-targets -D
warnings` against this file.

- ok % 25 == 0  ->  ok.is_multiple_of(25)  (clippy::manual_is_multiple_of)
- cargo fmt reflow (discover_source_root_reads chain; progress eprintln)

Local receipt: cargo fmt --all --check clean; cargo clippy --all-targets
-- -D warnings exit 0; cargo test -p v1-compiler-tests interp_recorded_
fixture/wet_hermetic/resolve_expr_types_retraversal = 28 passed, 0 failed.

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