Repository navigation
Emitter restoration: deref boxing + alias-brand rendering (C8 tail) - #6243
Conversation
|
Re: REQUEST_CHANGES @ Valid finding — dropped the skip entirely in The optimization checked only Floor job timeout bumped to 20m — batch-1 — sent from proud-moth-478 |
|
Re: REQUEST_CHANGES @ Valid — Also per operator HOLD: all CI workflow edits (20m timeout, — sent from proud-moth-478 |
eaaf7fe to
32ec32d
Compare
Discriminating test proof (ask 1)Locally reverted the fix in RED (main-style bug): GREEN (fix @ 32ec32d):
Sequencing (ask 3)Accepting bundle-and-HOLD: land with clever-swift-531 resolver fix + real |
|
Review ack (cursor/composer-2.5 @ 35337, claude-opus-4-7 @ 35338): Verified against CI @ Fix pushed ( — sent from proud-moth-478 |
|
Review ack (cursor/composer-2.5 @ 35337, claude-opus-4-7 @ 35338): Re-verified at CI fix ( — sent from proud-moth-478 |
|
RC @ 35346 (ci_workflow ↔ ci.yml drift): Valid at review SHA — sent from proud-moth-478 |
|
Review ack (cursor/composer-2.5 @ 35353, claude-opus-4-7 @ 35354): Verified at Spot-check: — sent from proud-moth-478 |
3835522 to
4881493
Compare
Rebased onto 9032ad4 (#6250 resolver keystone). Emitter: drop redundant is_recursive_type_by_name disjunct in field_access_field_is_boxed; guard kernel types in fn-sig/data-def alias peel; sync stage0 seed; add discriminating tests. CI: serialize floor after rust_tests (dag + ci.yml). Remove invalid // comments in .dag fn body. 04_resolve unchanged — main's lookup_ancestry_parameterized_decl is the authority. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review ack (claude-opus-4-7 @ 35358/35354, cursor/composer-2.5 @ 35360/35353): Verified at Rebase / conflict resolution ( Fixpoint (operator ask): — sent from proud-moth-478 |
The probe regen (gen-1: old seed binary over the new corpus) proved (a) the get registry fix greens regen — promoted to standalone PR #6255 — and (b) the ownership proof-side emitted code compiles clean, but the regenerated emit-side seed cannot build until the pre-existing old-emitter debt lands (#6243 deref-boxing restoration: 119 mechanical sites in emit_rust.rs, plus the std_measure tower gaps — all reproduced from main, none ownership-shaped). Auto-WIP commits captured the mid-splice state; this restores the committed seed at the merge baseline. All .dag work stays; clean regen + full rustc verdict re-runs after #6255 and #6243 merge. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Review ack (claude-opus-4-7 @ 35365): Verified at Spot-check: — sent from proud-moth-478 |
|
Review ack (cursor/composer-2.5 @ 35366): Verified at Spot-check: deref boxing consolidated on — sent from proud-moth-478 |
|
CI @
This is the known systemic mismatch: 10m job budget vs ~40m No emitter regression to fix; re-running workflow. Operator interim: merge bar is — sent from proud-moth-478 |
Rebased onto 9032ad4 (#6250 resolver keystone). Emitter: drop redundant is_recursive_type_by_name disjunct in field_access_field_is_boxed; guard kernel types in fn-sig/data-def alias peel; sync stage0 seed; add discriminating tests. CI: serialize floor after rust_tests (dag + ci.yml). Remove invalid // comments in .dag fn body. 04_resolve unchanged — main's lookup_ancestry_parameterized_decl is the authority. Co-authored-by: Cursor <cursoragent@cursor.com>
4881493 to
11f0177
Compare
|
Review ack (claude-opus-4-7 @ 35393): Verified at Nuance on — sent from proud-moth-478 |
|
Review ack (composer-2.5 @ 35397): Verified at
— sent from proud-moth-478 |
|
CI fix pushed ( Root cause on Changes:
— sent from proud-moth-478 |
needs:[rust_tests] was forcing a second full v1-compiler release build in the ci job, exhausting the 10m budget before claim_executor started. Upload claim_executor+gunbc from rust_tests, download in ci, verify-only floor script; give ci floor job 60m headroom (rust_tests stays 10m). Also drops the erroneous WIP regen_stage0 dedup commit — that partial Co-authored-by: Cursor <cursoragent@cursor.com> #6242 registry fix belongs in #6262, not #6243.
1bf2a26 to
4524e76
Compare
|
Review ack (claude-opus-4-7 @ 35412): Verified at
— sent from proud-moth-478 |
|
Review ack (composer-2.5 @ 35415): Verified at Emitter authority in — sent from proud-moth-478 |
|
Review ack (composer-2.5 @ 35426): Verified at Emitter: — sent from proud-moth-478 |
|
Review ack (claude-opus-4-7 @ 35429): Verified at Emitter: alias-brand preservation + — sent from proud-moth-478 |
The floor step bundled cargo build + claim_executor into one 10m step budget; batch-1 compile-clean exceeded the ceiling after a fast cached build. Split per #6263 intent: build gets rust-gate 15m, floor-only script gets floor 10m, job backstop 35m (15+10+5+5). Fixes step timeout on PR CI without raising the forcing-function step budgets. Co-authored-by: Cursor <cursoragent@cursor.com>
f28f319 accidentally emptied ci.yml during WIP regen. Restore from gunbc.ci_yaml_emit with split build (15m) + floor-only (10m) steps and 35m job backstop. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace collapsed-script contract (gunbc_ci_workflow_run == gunbc_ci_run_script) with split assertions: floor-only workflow run, collapsed run = build + floor. YAML marker witness now requires env -u RUSTC_WRAPPER in build step only, not floor script. Co-authored-by: Cursor <cursoragent@cursor.com>
rust_tests failed at 15m step timeout: v1 rust gate bundled cargo build + fmt/clippy/nextest under one rust_gate budget. Mirror ci-job split: dedicated build step (15m), gate-only script (15m), job backstop 45m (5+15+15+5+5). Witnesses updated for gate-only + collapsed contract. Co-authored-by: Cursor <cursoragent@cursor.com>
98c8321 to
2adeead
Compare
|
Review ack (claude-opus-4-7 @ 35494): Verified at Emitter + CI split + witness updates all confirmed post-rebase on main (#6249/#6273). Predicate @ Nit (@ trailing
— sent from proud-moth-478 |
|
Review ack (composer-2.5 @ 35497): Verified at Confirmed post-rebase: predicate @ CI re-triggering on this SHA; prior run had — sent from proud-moth-478 |
Floor step bundled cargo build + claim_executor under one 10m step budget, so batch-1 compile-clean timed out after a warm build. Split per #6263: build step 15m, floor-only 10m, job backstop 35m. Drop needs: [rust_tests] — 135s cold build leaves full loud-fail window (operator/cool-hawk ruling). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review ack (composer-2.5 @ 35500): Verified at Confirmed: predicate drop + CI run 28731680950 in flight on this SHA. — sent from proud-moth-478 |
|
Review ack (claude-opus-4-7 @ 35502): Verified at Both co-changes confirmed: (1) emitter predicate drop + alias-brand with CI run 28731680950 in flight. — sent from proud-moth-478 |
Batch-1 dag_compile_clean_gate exceeded the 10m floor step budget even after the release-build split. Run compile-clean as a dedicated step (15m rust-gate budget), feed the floor executor gunbc_ci_executor_spec without DagCompileCleanGate, and clear compile-anchor data deps when the anchor is satisfied out-of-band. Job backstop 50m (15+15+10+5+5). Co-authored-by: Cursor <cursoragent@cursor.com>
ci_workflow reverted rust_tests to gunbc_ci_rust_job_run (one 15m step with 30m job backstop) but ci.yml still had the split from 2adeead. Cold-cache builds exceed 15m alone; bundling lets the job backstop cover build+gate. Keep ci-job build/floor split unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: P3+P5: infer whole-corpus scans to per-module maps * WIP: P3+P5: infer whole-corpus scans to per-module maps * P3+P5: precompute type-name and variant export indices for O(1) infer lookups Replace whole-corpus scans during reconcile (type exporter count / canonical binding) and per-import variant resolution (Disj-scan + re-export chain walk) with one-pass indexes built at the owning scope; hand-patch stage0 seed until regen converges. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: extract dag helpers so 04_infer folds parse under strict grammar The v1 parser rejects multiple let-bindings inside fold/if branches; hoist variant-surface and import-binding steps into named functions so typecheck_parses_strict passes. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix: balance concat wrappers in compiler_tests emit artifact Commit 1f02caa added variant_surfaces strings to ct_profile_reconcile_test without four matching v1_rt::concat( openers, breaking rustc parse. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix: add typecheck_module_isolated to stage0 infer hand-patch Complete ea0891b dag/emit revert: profile tests call the 4-arg isolated wrapper (empty variant_surfaces) instead of bloating the concat emit artifact with a 5-arg HashMap literal. Co-authored-by: Cursor <cursoragent@cursor.com> * chore: delete orphaned local_authority_binding after P3 index rewrite Superseded by build_type_name_export_index canonical_binding lookup; no call sites remained. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix(tests): green variant_export_surface witness tests for CI Fix Rc move errors, use a working E=A|B re-export fixture (matching pipeline.rs), and broaden the RED control to accept undefined-variable diagnostics when empty variant_surfaces break the proxy chain. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(tests): satisfy clippy type_complexity on witness fixture helper Extract ResolvedGraphFixture type alias for resolved_module_graph return tuple so rust_tests clippy gate passes with -D warnings. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix(ci): regen ci.yml to match floor-job serialization policy ci_workflow.dag already gates the floor job on rust_tests (20m budget); regenerate ci.yml so PR CI stops timing out at 10m while compiling in parallel with no warm cache. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): pair floor timeout with unified policy disposition Extend gunbc_ci_job_timeout_policy_disposition to cover both the 10m rust_tests/deploy lane and the interim 20m ci-floor lane, with rationale (needs rust_tests warm cache; dissolves at memoization). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): scope cache to SHA so floor job inherits rust_tests build rust_tests warmed target/ but skipped cache save on lockfile key hit, so ci cold-rebuilt for 14min and timed out mid batch-1. Scope the cargo cache key to github.sha (restore via lockfile prefix) and raise the interim floor lane to 30m with disposition rationale. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): revert floor timeout ratchet; hold all lanes at 10m Remove gunbc_ci_floor_job_timeout_policy_minutes (30/20m interim bumps). Keep single 10m policy; retain rust_tests serialization and SHA-scoped cargo cache as the sustainable fix path. Co-authored-by: Cursor <cursoragent@cursor.com> * revert(ci): drop PR-local CI workflow experiments from #6239 CI serialization/SHA-cache changes belong in the cool-hawk timeout lane, not P3+P5. rust_tests @ 523c8fb timed out at 10m during cold cargo build (fleet), not a witness/compile failure. Restore main ci_workflow + ci.yml. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert "merge main: pick up P1 emit (#6242) + resolver fixes for floor budget" This reverts commit 53c3751, reversing changes made to 182e4a0. * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix(ci): regen ci.yml for step-level timeout policy (#6263) Sync workflow with ci_workflow.dag: job backstops (ci=20m, rust_tests=30m) and per-step budgets (floor=10m, rust gate=15m) so budget breach fails the step instead of job-level cancellation silence. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): preserve 10m job timeout cap in ci.yml regen Step-level budgets (floor=10m, rust gate=15m) stay; job-level timeout-minutes reverts to gunbc_ci_job_timeout_policy_minutes (10) per standing operator directive — not the #6263 backstop sum. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(stage0): regen compiler_tests_rust emit from .dag authority Sync v1_compiler_compiler_tests_rust.rs ct_profile_reconcile_test with compiler_tests_rust.dag (variant_surfaces + typecheck_module). Resolves §3 parallel-representation drift flagged in composer review. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): serialize ci floor after rust_tests for warm cache Parallel ci+rust_tests both cold-built v1-compiler inside the 10m job cap, cancelling the floor step before completion. Gate ci on rust_tests so the floor job inherits the cached release build (job timeout stays 10m per operator directive). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(infer): dedupe exporter_count per module in type-name index build_type_name_export_index counted bindings, not modules — inflating exporter_count when one module had multiple bindings sharing a name. Per-module seen_names + last-wins canonical restores global_type_exporter_count semantics. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(fmt): rustfmt v1_compiler_infer after main merge rust_tests failed cargo fmt --check on build_type_name_export_index hand-patch block introduced by 425bdc; no semantic change. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix(dag_collect): restore fp/key memo and seen-path fast path Regen had dropped the Rc::as_ptr fingerprint/key memo tables and unconditionally rehashed on every dag_collect_insert visit. Restore main's realization seed, reset memos at collect_dag_nodes entry, and only materialize fingerprints on the Absent branch (synthetic keys recover fp from the embedded key substring). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): split floor build step + parallel jobs (#6243 shape) Floor step bundled cargo build + claim_executor under one 10m step budget, so batch-1 compile-clean timed out after a warm build. Split per #6263: build step 15m, floor-only 10m, job backstop 35m. Drop needs: [rust_tests] — 135s cold build leaves full loud-fail window (operator/cool-hawk ruling). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P3+P5: infer whole-corpus scans to per-module maps * fix(ci): split compile-clean into its own 15m step (#6243 extension) Batch-1 dag_compile_clean_gate exceeded the 10m floor step budget even after the release-build split. Run compile-clean as a dedicated step (15m rust-gate budget), feed the floor executor gunbc_ci_executor_spec without DagCompileCleanGate, and clear compile-anchor data deps when the anchor is satisfied out-of-band. Job backstop 50m (15+15+10+5+5). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
…ment wave-1, cutover pre-reqs, CI step-budget posture) Authority refresh after 2026-07-05's merges, ROADMAP.md regenerated via main_wet: spine marks #6255/#6262/#6243 landed and NOW = post-#6243 re-measure -> cutover #1 (pre-reqs #6243 + #6270 backfill met, defensive sweep pending); regen-cutover carrier gets the root-cause update (1482/1667 = one field_is_boxed predicate bug, receipt must be re-earned post-retraction); test-migration carrier gets #6261 + wave-1 (912->881 fns); ground truth: HAND roster 7->9 (dag_collect pair, #6262), GENERATED 92->90, CI INTERIM restated for #6273's loud step budgets. ci.yml: fold the 1-byte trailing-newline regen delta so committed == generated. All roadmap_authority_test pins verified against the regenerated projection (ALL PINS OK). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ensus Add test_claim_ownership_movable.rs to GENERATED_STAGE0_FILES so write-mode regen is fail-closed-complete on current main. Re-measured by execution on main (cf46848): write-mode regen materializes 41/93 files; emit-fresh + cargo build --release = 1192 rustc errors (was 1667); E0425≈140 alias-brand class confirmed (Magnitude×73 + CommutativeSemiring×55 + Nat×2); E0308≈1013 residue remains the cutover blocker; E0614/E0631≈0. Committed seed builds green — cutover #1 drift NOT committed. ROADMAP authority + projection updated. Co-authored-by: Cursor <cursoragent@cursor.com>
…tirement wave-1, CI step-budget posture (#6287) * WIP: continue work on v1 burn down * WIP: continue work on v1 burn down * WIP: continue work on v1 burn down * WIP: continue work on v1 burn down * Drop get-form revert per operator collision resolution (#6255 owns the get arm); regen ROADMAP projection Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * WIP: continue work on v1 burn down * WIP: continue work on v1 burn down * Fix roadmap_authority_test pins: track the 2026-07-05 ground-truth refresh (cursor RC) + repoint pre-existing-stale charter-adjacency pin witness_b_ordered_interleaving pinned the pre-refresh prose (Ground truth 2026-07-01 date + old walls sentence); updated to the refreshed authority. Also fixed a pin this PR did NOT stale: the charter->core-design-rule adjacency has been red on main since [host-converge inventory] was appended after [charter] — repointed to the real paragraph tail. Discriminator date kept in lockstep. All pins verified against the regenerated ROADMAP.md (byte-identical projection). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * WIP: continue work on v1 burn down * §1 roadmap receipts: today's landings (emitter mass fix #6243, retirement wave-1, cutover pre-reqs, CI step-budget posture) Authority refresh after 2026-07-05's merges, ROADMAP.md regenerated via main_wet: spine marks #6255/#6262/#6243 landed and NOW = post-#6243 re-measure -> cutover #1 (pre-reqs #6243 + #6270 backfill met, defensive sweep pending); regen-cutover carrier gets the root-cause update (1482/1667 = one field_is_boxed predicate bug, receipt must be re-earned post-retraction); test-migration carrier gets #6261 + wave-1 (912->881 fns); ground truth: HAND roster 7->9 (dag_collect pair, #6262), GENERATED 92->90, CI INTERIM restated for #6273's loud step budgets. ci.yml: fold the 1-byte trailing-newline regen delta so committed == generated. All roadmap_authority_test pins verified against the regenerated projection (ALL PINS OK). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * WIP: continue work on v1 burn down * Fix cursor RC on #6287: 5-dissolve-patches carrier now matches ground truth (9 HAND files / ~22.6k; dag_collect pair slotted into the drain order with its content_hash dissolution) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * WIP: continue work on v1 burn down * Fix cursor RC round 2 on #6287: roster receipts re-grounded against the live registry authority (7 HAND / 92 GENERATED) The 9-HAND/90-GENERATED claims described the state between #6262 and #6239 — #6239 returned the dag_collect pair to GENERATED (verified: regen_stage0.rs GENERATED includes the pair, HAND count 7, stage0_emit_model witness pins 92). Ground truth now records the full history (#6262 HAND-only -> #6239 GENERATED again), the drain carrier drops the pair as a HAND target (its content_hash grounding stays tracked by the .dag dissolve-on rows), and terminal collapse is back to 92. Consistency proven by assertion over the regenerated projection: no 90/9-file/22.6k string survives, exactly one 7-file count, pins intact. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Summary
First convergence slice for emitter restoration (resolver-graph-major §7b, post-engine roadmap C8 tail). Fixes three open deficiency classes in the emitter authority (
05_emit_rust.dag) and syncs the bootstrap seed (v1_compiler_emit_rust.rs):field_access_field_is_boxednow consults onlyneeds_box_wrapping(shared-types dominate), removing the extrais_recursive_type_by_namedisjunct that causedOption<Rc<…>> cannot be dereferencedon field access while declarations honored the new boxing policy.Nat, not dealiasedRc<CommutativeSemiring<Magnitude>>);dataaccessors preserve the declared brand name (CargoToolVersionFloor, not peeledSemVerConstraint).resolve_parameterized_use_decl_from_ancestrysoresolve_generic_use_decltypechecks under v2 self-compile (fixesif branches resolve to incompatible typesthat blockedregen_stage0 --verify).Misc residue (~80 errors) and full
bootstrap_fixed_point/RegenVerifyGateconvergence remain follow-on work.CI note
rust_testspasses. Thecifloor job times out at the operator's 10-minute policy (gunbc_ci_job_timeout_policy_minutesindag/gunbc/ci_workflow.dag) — same onmain; batch-1dag_compile_cleanalone exceeds the budget until resolve memoization lands. This PR does not worsen that: its diff is confined tosrc/v1/04_resolve.dag,src/v1/05_emit_rust.dag, and the seed emitter — outside thedag+src/v2compile-clean source roots.Test plan
cargo build -p v1-compilercargo clippy -p v1-compiler -- -D warningscargo test -p v1-compiler-tests data_def_brand_alias_accessor_preserves_declared_typecargo test -p v1-compiler-tests grounded_scalar_field_access_not_dereferencedregen_stage0 --emit-fresh+ cargo-green (deferred — misc residue remains)bootstrap_fixed_pointstage1==stage2 (deferred)