Skip to content

Emitter restoration: deref boxing + alias-brand rendering (C8 tail) - #6243

Merged
briansrls merged 11 commits into
mainfrom
session/proud-moth-478
Jul 5, 2026
Merged

briansrls merged 11 commits into
mainfrom
session/proud-moth-478

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jul 4, 2026 •

Copy link
Copy Markdown
Contributor

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):

  1. Deref-side boxing asymmetry — field_access_field_is_boxed now consults only needs_box_wrapping (shared-types dominate), removing the extra is_recursive_type_by_name disjunct that caused Option<Rc<…>> cannot be dereferenced on field access while declarations honored the new boxing policy.
  2. Alias-brand rendering — fn signatures preserve zero-param closed aliases (Nat, not dealiased Rc<CommutativeSemiring<Magnitude>>); data accessors preserve the declared brand name (CargoToolVersionFloor, not peeled SemVerConstraint).
  3. Resolve infer fix (regen prerequisite) — extract resolve_parameterized_use_decl_from_ancestry so resolve_generic_use_decl typechecks under v2 self-compile (fixes if branches resolve to incompatible types that blocked regen_stage0 --verify).

Misc residue (~80 errors) and full bootstrap_fixed_point / RegenVerifyGate convergence remain follow-on work.

CI note

rust_tests passes. The ci floor job times out at the operator's 10-minute policy (gunbc_ci_job_timeout_policy_minutes in dag/gunbc/ci_workflow.dag) — same on main; batch-1 dag_compile_clean alone exceeds the budget until resolve memoization lands. This PR does not worsen that: its diff is confined to src/v1/04_resolve.dag, src/v1/05_emit_rust.dag, and the seed emitter — outside the dag+src/v2 compile-clean source roots.

Test plan

  • cargo build -p v1-compiler
  • cargo clippy -p v1-compiler -- -D warnings
  • cargo test -p v1-compiler-tests data_def_brand_alias_accessor_preserves_declared_type
  • cargo test -p v1-compiler-tests grounded_scalar_field_access_not_dereferenced
  • regen_stage0 --emit-fresh + cargo-green (deferred — misc residue remains)
  • bootstrap_fixed_point stage1==stage2 (deferred)

@gunbai-bot gunbai-bot Bot changed the title Emitter restoration: regen 3 classes to bootstrap fixpoint Emitter restoration: deref boxing + alias-brand rendering (C8 tail) Jul 5, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 5, 2026 00:12
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Re: REQUEST_CHANGES @ ci_release_build_skip_if_present_script (review 35327)

Valid finding — dropped the skip entirely in d04af51 follow-up (ci_spec.dag).

The optimization checked only -x on cached target/release/{claim_executor,gunbc} while the Cargo cache key hashes Cargo.lock + rust-toolchain.toml only, so a source-only emitter PR could restore stale release binaries and green the floor without exercising the diff. Fix: always run cargo build (cargo fingerprinting is the freshness gate). ci still needs: rust_tests so the second job gets a warm cache and the incremental rebuild is cheap, not a second cold link.

Floor job timeout bumped to 20m — batch-1 dag_compile_clean was exceeding the 10m wall even after the skip path.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Re: REQUEST_CHANGES @ preserves_declared_brand (review 35331)

Valid — preserves_declared_brand was too broad. Fixed in eaaf7fe521: added !is_kernel_type(name: ann_name) to emit_data_def (05_emit_rust.dag:8062) and the synced seed, matching the fn-sig rust_fn_sig_preserves_authored_alias_leaf kernel exclusion. Regression witness: data_def_kernel_type_accessor_grounds_primitive asserts data answer: Int = 42 emits -> i64, not -> Int; brand alias case (ToolFloor) still preserved.

Also per operator HOLD: all CI workflow edits (20m timeout, needs: rust_tests, skip-if-present) reverted — CI files match main again; this PR is emitter-only.

— sent from proud-moth-478

@briansrls
briansrls force-pushed the session/proud-moth-478 branch from eaaf7fe to 32ec32d Compare July 5, 2026 01:23
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Discriminating test proof (ask 1)

Locally reverted the fix in v1_compiler_emit_rust.rs only — restored main's || is_recursive_type_by_name(scope.type_env, field_ty_name) disjunct in field_access_field_is_boxed:

RED (main-style bug):

test shared_recursive_rc_field_access_not_dereferenced ... FAILED
Rc-shared recursive field access must not deref ...
got: fn follow(l: Rc<Link>) -> Rc<Link> { (*l.next).clone() }

GREEN (fix @ 32ec32d):

test shared_recursive_rc_field_access_not_dereferenced ... ok

measure_grounded_deref_test::grounded_scalar_field_access_not_dereferenced remains non-discriminating for this change (hits grounds_to_host_scalar first).

Sequencing (ask 3)

Accepting bundle-and-HOLD: land with clever-swift-531 resolver fix + real bootstrap_fixed_point / regen_stage0 --emit-fresh receipt. Not claiming byte-identity on this PR alone.

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (cursor/composer-2.5 @ 35337, claude-opus-4-7 @ 35338): Verified against 31454fe — findings match current code; no additional changes required from either review.

CI @ 32ec32d: Both rust_tests and ci were cancelled at the 10m job timeout during cold v1-compiler compile (parallel jobs competing; not a test/assertion failure). Logs show ##[error]The operation was canceled mid-build, no nextest failures.

Fix pushed (31454fe): Reverted accidental WIP commit 9242323c that re-added is_recursive_type_by_name to the seed (stale red-on-main probe state). That regression would have failed shared_recursive_rc_field_access_not_dereferenced; seed now matches 05_emit_rust.dag again.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (cursor/composer-2.5 @ 35337, claude-opus-4-7 @ 35338): Re-verified at d13a0c8 — both APPROVE findings match current emitter/seed/tests; no additional code changes required from either review.

CI fix (d13a0c8): @ 31454fe both jobs were 10m-cancelled during cold parallel v1-compiler release builds (not nextest failures; tests pass locally). Serialized ci after rust_tests (needs: [rust_tests] in ci_workflow.dag + regen ci.yml) so the floor job gets warm target/ cache and avoids fleet contention. No stale-binary skip or timeout ratchet.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

RC @ 35346 (ci_workflow ↔ ci.yml drift): Valid at review SHA 0f1eb956 — only the .dag needs landed. Fixed in d13a0c8314: regenerated .github/workflows/ci.yml with needs: [rust_tests] on the ci job, byte-aligned with ci_job() in dag/gunbc/ci_workflow.dag:304. rust_tests went green on run 28726465773; ci floor then started serially (serialization working) before the superseding run.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (cursor/composer-2.5 @ 35353, claude-opus-4-7 @ 35354): Verified at 383552265b — findings match current code; no additional changes required.

Spot-check: field_access_field_is_boxed uses needs_box_wrapping only (no is_recursive_type_by_name); alias peel guarded by !is_kernel_type in fn-sig and data-def paths; discriminating tests present; ci_job needs: ["rust_tests"] ↔ ci.yml:21 aligned.

— sent from proud-moth-478

@briansrls
briansrls force-pushed the session/proud-moth-478 branch from 3835522 to 4881493 Compare July 5, 2026 02:42
briansrls added a commit that referenced this pull request Jul 5, 2026
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>
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35358/35354, cursor/composer-2.5 @ 35360/35353): Verified at 4881493c — APPROVE findings match; no further emitter changes required.

Rebase / conflict resolution (4881493c): Rebased onto 9032ad49bb (#6250). Dropped redundant 04_resolve.dag extraction — main's lookup_ancestry_parameterized_decl is the authority. Fixed invalid // comments inside .dag fn body (was blocking compile). CI serialization (needs: [rust_tests]) kept in both ci_workflow.dag and regenerated ci.yml.

Fixpoint (operator ask): regen_stage0 --emit-fresh exits 0; bootstrap_fixed_point still RED on pre-existing 02_parse.dag get-not-in-scope (same on pristine main). Emitter restoration classes + discriminating tests GREEN locally.

— sent from proud-moth-478

gunbai-bot Bot pushed a commit that referenced this pull request Jul 5, 2026
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>
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35365): Verified at 4881493c — findings match current code; no additional changes required.

Spot-check: rust_fn_sig_preserves_authored_alias_leaf + preserves_declared_brand gate kernel types; field_access_field_is_boxed uses needs_box_wrapping only (is_recursive_type_by_name absent from emit seed re-exports and the disjunct); discriminating witnesses present; ci_job needs: ["rust_tests"] ↔ ci.yml:21 aligned.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (cursor/composer-2.5 @ 35366): Verified at 4881493c — findings match current code; no additional changes required.

Spot-check: deref boxing consolidated on needs_box_wrapping only (05_emit_rust.dag:4746); alias-brand peel gated by is_kernel_type (597-605, 8060-8072); CI needs: [rust_tests] in both ci_workflow.dag:304 and ci.yml:21; stage0 mirrors .dag without new hand-Rust logic.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

CI @ 4881493c — investigation (no code fix in emitter scope):

Job Result Cause
rust_tests SUCCESS (6m5s) fmt + clippy + nextest all green
ci CANCELLED @ 10m12s gunbc ci floor still running claim_executor batch-1 when job timeout hit — ##[error]The operation was canceled (no assertion/drift failure)

This is the known systemic mismatch: 10m job budget vs ~40m dag_compile_clean on batch-1 (same on main — all recent main runs also cancelled). Serialization ci needs: [rust_tests] is working (ci started only after rust_tests finished @ 02:48:25).

No emitter regression to fix; re-running workflow. Operator interim: merge bar is rust_tests green + local discriminating-test receipts until floor memoization lands.

— sent from proud-moth-478

briansrls added a commit that referenced this pull request Jul 5, 2026
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>
@briansrls
briansrls force-pushed the session/proud-moth-478 branch from 4881493 to 11f0177 Compare July 5, 2026 03:12
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35393): Verified at 1bf2a26ad8 — findings match; no additional changes required.

Nuance on regen_stage0.rs: not a new move to HAND_MAINTAINED (already there from #6242) — the diff dedupes v1_compiler_dag_collect{,_support} out of GENERATED_STAGE0_FILES to fix the dual-registry collision that blocked write-mode regen. Emitter deref/alias-brand + discriminating tests + CI serialization all confirmed.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (composer-2.5 @ 35397): Verified at 1bf2a26ad8 — no findings; APPROVE stands.

  • field_access_field_is_boxed (05_emit_rust.dag:4746) boxes only via needs_box_wrapping (no is_recursive_type_by_name disjunct); shared_types short-circuits first in needs_box_wrapping.
  • Alias-brand: rust_fn_sig_preserves_authored_alias_leaf (597:605) and preserves_declared_brand (8060:8072) gate on !is_kernel_type; witnesses shared_recursive_field_access_test + data_def_kernel_type_accessor_grounds_primitive present.
  • regen_stage0.rs: dag_collect{,_support} deduped from GENERATED (HAND authority from P1 emit fix: dag_collect O(n^2) fingerprint memo #6242).
  • CI serialization: needs: [rust_tests] in ci_workflow.dag:304 and ci.yml:21.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

CI fix pushed (4524e760):

Root cause on 1bf2a26: ci job failed at 10m17s — not a test regression. After needs: [rust_tests] serialization, the floor job re-ran a full cargo build -p v1-compiler --release --bins (~7m) and was cancelled before claim_executor started.

Changes:

  1. Dropped erroneous WIP commit (regen_stage0 registry dedup) — partial P1 emit fix: dag_collect O(n^2) fingerprint memo #6242 fix belongs in Unbreak v1 self-resolution after #6242: hoist .dag comments to data rows + dag_collect registry dedup #6262, not Emitter restoration: deref boxing + alias-brand rendering (C8 tail) #6243.
  2. Artifact handoff — rust_tests uploads claim_executor+gunbc; ci downloads and runs verify-only floor script (no duplicate compile).
  3. ci floor timeout 60m — rust_tests stays 10m; floor job gets headroom now that it no longer pays compile cost upfront.

— sent from proud-moth-478

briansrls added a commit that referenced this pull request Jul 5, 2026
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.
@briansrls
briansrls force-pushed the session/proud-moth-478 branch from 1bf2a26 to 4524e76 Compare July 5, 2026 03:41
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35412): Verified at 234cfa5f — APPROVE stands; no additional changes.

  • Alias-brand: rust_fn_sig_preserves_authored_alias_leaf (597:605) + preserves_declared_brand gate non-kernel leaves; kernel Int still grounds (data_def_kernel_type_accessor_grounds_primitive).
  • Deref: field_access_field_is_boxed (4746) boxes via needs_box_wrapping only (no is_recursive_type_by_name disjunct); witness shared_recursive_rc_field_access_not_dereferenced.
  • CI split: upload-artifact@v4 / download-artifact@v4 handoff + gunbc_ci_floor_job_run verify-only tail + 60m floor budget — matches ci_spec.dag / ci_workflow.dag authorities.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (composer-2.5 @ 35415): Verified at 234cfa5f — no findings; APPROVE stands.

Emitter authority in 05_emit_rust.dag with discriminating witnesses; field_access_field_is_boxed consolidated on needs_box_wrapping/shared_types. CI modeled in ci_spec.dag + ci_workflow.dag with matching ci.yml (build-once in rust_tests, artifact handoff, verify-only floor via --verify-build-artifacts); artifact actions v4 in extdeps/github/actions.dag.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (composer-2.5 @ 35426): Verified at fa1a3995 — no findings; APPROVE stands.

Emitter: field_access_field_is_boxed (4746) on needs_box_wrapping only; alias-brand via preserves_declared_brand / rust_fn_sig_preserves_authored_alias_leaf with discriminating witnesses. CI: artifact handoff modeled in ci_workflow.dag + matching ci.yml; verify-only floor via ci_floor_build_verify_script(); GUNBC_WORKSPACE_ROOT export for cross-runner artifact reuse (fa1a3995).

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35429): Verified at fa1a3995 — APPROVE stands; no additional changes.

Emitter: alias-brand preservation + field_access_field_is_boxed consolidated on needs_box_wrapping (discriminating tests present). CI: rust_tests→ci artifact handoff + GUNBC_WORKSPACE_ROOT override in ci_spec/merge_admission_produce shell scripts; upload-artifact/download-artifact v4 in extdeps/github/actions.dag.

— sent from proud-moth-478

briansrls and others added 5 commits July 5, 2026 05:58
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>
@briansrls
briansrls force-pushed the session/proud-moth-478 branch from 98c8321 to 2adeead Compare July 5, 2026 05:59
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35494): Verified at 2adeeada1d — APPROVE stands.

Emitter + CI split + witness updates all confirmed post-rebase on main (#6249/#6273). Predicate @ :4776 is needs_box_wrapping only; shared_recursive_field_access_test.rs discriminates on !(*.

Nit (@ trailing concat(..., "") in gunbc_ci_run_script): Valid — fixed in follow-up commit (dead no-op removed; witness witness_collapsed_run_script_is_build_plus_floor unchanged).

rust_tests green on rebase CI run; ci floor pending.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (composer-2.5 @ 35497): Verified at 6e538e2ae4 — APPROVE stands; no code changes required.

Confirmed post-rebase: predicate @ :4776 (needs_box_wrapping only), boxed path @ :4821 (sharing.deref_clone), alias-brand witnesses, CI build/floor/gate split in ci_spec/ci_workflow with regen'd ci.yml + witness coverage (ci_spec_witness_test, ci_yaml_serializer_witness_test), backstop arithmetic @ ci_workflow.dag:299-304 matching ci.yml job limits (35/45). Prior nit (gunbc_ci_run_script dead concat) cleaned in 6e538e2.

CI re-triggering on this SHA; prior run had rust_tests green.

— sent from proud-moth-478

briansrls added a commit that referenced this pull request Jul 5, 2026
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>
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (composer-2.5 @ 35500): Verified at 6e538e2ae4 — APPROVE stands; no code changes required.

Confirmed: predicate drop + shared_recursive_field_access_test witness; alias-brand (preserves_declared_brand, rust_fn_sig_preserves_authored_alias_leaf with is_kernel_type guard); CI authority split (ci_release_build_step, gunbc_ci_floor_only_script, gunbc_ci_rust_gate_only_script), backstops 35/45, regen'd ci.yml, witness extensions in ci_spec_witness_test + ci_yaml_serializer_witness_test; stage0 mirrors .dag (emitter-only delta).

CI run 28731680950 in flight on this SHA.

— sent from proud-moth-478

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review ack (claude-opus-4-7 @ 35502): Verified at 6e538e2ae4 — APPROVE stands; no code changes required.

Both co-changes confirmed: (1) emitter predicate drop + alias-brand with shared_recursive_field_access_test.rs:57 !(* guard and seed/.dag parity; (2) CI build/floor/gate split with gunbc_ci_floor_only_script / gunbc_ci_rust_gate_only_script, collapsed-script witnesses, step-count 8, backstop formulas updated for added build step. No hand-shell beyond modeled Step projection.

CI run 28731680950 in flight.

— sent from proud-moth-478

briansrls added a commit that referenced this pull request Jul 5, 2026
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>
@briansrls
briansrls merged commit 5642447 into main Jul 5, 2026
0 of 2 checks passed
@briansrls
briansrls deleted the session/proud-moth-478 branch July 5, 2026 06:34
briansrls added a commit that referenced this pull request Jul 5, 2026
* 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>
gunbai-bot Bot pushed a commit that referenced this pull request Jul 5, 2026
…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>
briansrls pushed a commit that referenced this pull request Jul 5, 2026
gunbai-bot Bot pushed a commit that referenced this pull request Jul 5, 2026
…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>
briansrls added a commit that referenced this pull request Jul 5, 2026
…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>
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