Skip to content

Wire compile-time v2 node-level affected-set into live CI floor scheduler; retire the v1 Rust file-level force_run_all frontier hack - #6061

Merged
briansrls merged 3 commits into
mainfrom
session/merry-crane-716
Jul 1, 2026
Merged

briansrls merged 3 commits into
mainfrom
session/merry-crane-716

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

Wire the live CI floor discovery path to v2.workflow.affected_set_floor_runner as the single skip-authority. Per-witness run/skip calls floor_kernel_would_skip (.dag) with three axes: node-frontier touch, function_edited, and entry_file_touched. Retire the v1 force_run_all hack — non-data .dag fn edits scope to that entry's roster; .rs changes still fail-closed to full corpus. Precompute gating reads floor_kernel_precompute_would_skip (.dag).

Deleted NodeFrontierSeeds, collect_frontier_seeds_from_diff_line_ranges, entry_touches_frontier_seeds, and the force_run_all branch. Absorbed #6019 function_edited axis + affected_set_disposition_both_axes_test.dag (dag-only, no Rust).

Follow-on (not this slice): node-level closure pruning (Step 5, docs/plans/affected-set-precompute-pruning.md) is blocked on provenance ingest at floor runtime (host_source_root_ingest_manifest Empty); tracked separately by operator.

Remaining Rust (floor_diff_edits_from_line_ranges, rerun_frontier_nodes_for_entry, entry_touches_rerun_frontier) is SCAFFOLD with Dissolve-on census — I/O + frontier-input bridge only, not a second skip policy.

Fail-closed (proven by execution)

When diff/edit-locus or git observation is unavailable, skip is disabled and the full roster runs (never silent skip):

Scenario Mechanism Result
.rs diff floor_diff_edits_from_line_ranges → non-.dag err 0 skipped (full corpus)
git diff unavailable FloorGitDiffOutcome::ObservationFailClosed 0 skipped (full corpus)
empty diff .dag empty diff — run full corpus 0 skipped

Skip authority discriminating pair (claim_executor)

Plan: src/v2/workflow/floor_skip_proof_plan.dag (floor_skip_proof_batches), explicit 2-witness roster on node_precise_discriminator_test.dag.

CE="target/debug/claim_executor"
PLAN="--source-root src/v2 --source-root dsl \
  --plan-entry src/v2/workflow/floor_skip_proof_plan.dag \
  --plan-function floor_skip_proof_batches"

# A — orphan data-item: prunes (2 skipped)
GUNBC_CI_DIFF_UNIFIED=$'+++ b/src/v2/test/fixture/floor_skip/node_precise_discriminator_test.dag\n@@ -33,0 +33,1 @@\n' \
  $CE $PLAN
# → discovery corpus: 2 witness(es) (2 skipped)

# B — referenced data-item C: runs (0 skipped)
GUNBC_CI_DIFF_UNIFIED=$'+++ b/src/v2/test/fixture/floor_skip/node_precise_discriminator_test.dag\n@@ -27,0 +27,1 @@\n' \
  $CE $PLAN
# → discovery corpus: 2 witness(es) (0 skipped)

# C — .rs change: fail-closed full corpus (0 skipped)
GUNBC_CI_DIFF_UNIFIED=$'+++ b/src/v1/stage0/src/cli_run.rs\n@@ -1,0 +1,1 @@\n' \
  $CE $PLAN
# → node-frontier population fail-closed (non-.dag file changed) — running full corpus

# D — git unavailable: fail-closed full corpus (0 skipped)
GUNBC_CI_DIFF_BASE=__gunbc_invalid_diff_base__ GUNBC_CI_DIFF_HEAD=HEAD GUNBC_CI_DIFF_MERGE_BASE=0 \
  $CE $PLAN
# → git diff unavailable — fail-closed, running full corpus

Test plan

  • cargo test -p v1-compiler-tests floor_skip — 10 passed
  • cargo test -p v1-compiler --lib node_frontier_plumbing_controls — 7 passed
  • cargo test -p v1-compiler --lib floor_skip_frontier — 3 passed
  • affected_set_disposition_both_axes_witness_holds + floor_runner_node_frontier_policy_holds enrolled
  • claim_executor discriminating pairs above — all exit 0

@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 1, 2026 02:32
@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed in 62bd4e1:

  • Extended floor_precompute_would_skip with touched_entry_file_count (third axis alongside empty frontier + zero edited test fns).
  • Added floor_kernel_precompute_would_skip / floor_host_scaffold_precompute_would_skip host entrypoints.
  • Wired cli_run.rs precompute gate through call_floor_kernel_precompute_would_skip (fail-closed to running precompute on .dag call failure).
  • Added floor_test_precompute_host_kernel_equivalent_holds covering touched_entry_file_count: 1 → do not skip.

Tests: cargo test -p v1-compiler-tests floor_skip (9 passed), cargo test -p v1-compiler --lib node_frontier_plumbing_controls (6 passed).

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed both findings in e6b9de24e8 + 006b9ae99b:

Finding 1 (HAND-RUST / §6–§7): Added explicit SCAFFOLD (DESIGN §6–§7) block with named Dissolve-on census (rg 'floor_diff_edits_from_line_ranges|rerun_frontier_nodes_for_entry' must be empty) pointing at ROADMAP 1-affected-set-defork / docs/plans/affected-set-precompute-pruning.md Steps 3–5. Remaining Rust is the I/O + frontier-input bridge; skip/precompute verdicts already read .dag.

Finding 2 (entry_file_touched safety): Added acceptance witnesses proving the narrowed predicate is intentional and safe:

  • green_entry_file_helper_fn_edit_scopes_to_same_entry_only (unit): helper-fn edit → touched_entry_files populated, empty frontier, floor_kernel_would_skip runs touched entry / skips unrelated entry.
  • entry_file_helper_fn_edit_scopes_runs_to_touched_entry_only (host execution): two-entry roster (discriminator + floor_runner_node_frontier_policy_holds) → helper-fn edit runs 1 / skips 1.

Tests: cargo test -p v1-compiler-tests floor_skip (10 passed), cargo test -p v1-compiler --lib node_frontier_plumbing_controls (7 passed).

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified against current tree — the approval matches implementation:

  • force_run_all / NodeFrontierSeeds / collect_frontier_seeds_from_diff_line_ranges / entry_touches_frontier_seeds are gone; non-.dag paths fail-closed via floor_diff_edits_from_line_ranges → Err
  • Skip verdict delegated to floor_kernel_would_skip / floor_kernel_precompute_would_skip (three axes: touches_frontier, function_edited, entry_file_touched)
  • Precompute gated on empty frontier + zero edited test fns + zero touched entry files (.dag + Rust tests)
  • SCAFFOLD (DESIGN §6–§7) block names Dissolve-on census on remaining I/O bridge only

No code changes required for this review. Awaiting second api-review approval + CI green.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified — second APPROVE aligns with tree; no merge-blocking issues found.

floor_skip_proof_plan.dag is intentionally unwired from ci_floor_plan.dag: it exists only as an explicit-roster vehicle for claim_executor skip-authority receipts (documented in PR body with command + output). Inert for live floor behavior.

Approval criteria confirmed: force_run_all retired, skip/precompute verdicts delegated to .dag, fail-closed paths run full corpus, SCAFFOLD + Dissolve-on on remaining I/O bridge only.

No code changes required. Awaiting CI green (run 28490775362 still queued).

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified post-d5aa66b70c (fmt fix) — APPROVE still holds; no merge-blocking findings.

Confirmed in tree: skip/precompute policy in .dag, force_run_all retired, entry_file_touched axis + fail-closed fallbacks, SCAFFOLD dissolve-on on remaining I/O bridge. rust_tests green on latest SHA; awaiting main ci floor job.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed non-blocking nit in latest commit: floor_kernel_precompute_would_skip now branches on frontier_node_count > 0 directly instead of synthesizing FrontierFailClosed for a nonempty frontier. Behavior unchanged (false in both cases); removes the variant overload.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified on 7c16d34f18 — APPROVE aligns with tree; no material findings, no code changes required.

Confirmed: force_run_all retired, skip/precompute verdicts via .dag kernel, residual Rust marked SCAFFOLD with dissolve-on census, disposition axes covered by fixture + host tests. Precompute kernel nit (FrontierFailClosed overload) addressed in this SHA.

Awaiting CI green on run 28492443746.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified — APPROVE on 7c16d34f18; no findings, no code changes required. rust_tests green; main ci floor job still pending (run 28492443746).

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified on 5bcf9d2a70 — APPROVE holds; no blocking findings, no code changes required.

Includes spawn-width witness fix (witness_floor_spawn_width_zero_budget_falls_back aligned with int_min(floor, execution_corpus)). CI run 28494221491 pending.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Verified on 5bcf9d2a70 — APPROVE confirmed; no blocking concerns, no further code changes.

Spawn-width witness fix (int_min(fallback, execution_corpus)) already on this SHA. Awaiting CI green (run 28494221491).

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified both APPROVE artifacts against current HEAD (5d8022216c).

composer-2.5 (34128) — verified, no code change

Checked the cited structure on current code:

  • Skip/precompute verdicts live in affected_set_floor_runner.dag (floor_kernel_would_skip, floor_kernel_precompute_would_skip, floor_witness_run_disposition with function_edited + entry_file_touched).
  • Rust bridge at cli_run.rs:3617–3631 is I/O/frontier-input only with explicit SCAFFOLD + dissolve-on census.
  • Fail-closed fallbacks at attribution/resolve/kernel failure sites still degrade to full corpus (no silent skip).
  • Witness coverage across affected_set_floor_runner_test.dag, affected_set_disposition_both_axes_test.dag, and floor_skip_discovery_host_test.rs is present; floor_skip_proof_plan.dag remains inert with no second authority.

claude-opus-4-7 (34130) — verified; one note superseded

The core approval rationale holds on current HEAD: force_run_all retired, typed error path for attribution, .dag single-authority for skip axes, SCAFFOLD markers + fail-closed paths all confirmed.

Correction on zero-budget spawn-width witness: opus reviewed at 5bcf9d2, which coupled the witness to int_min(conservative_fallback, execution_corpus_spawn_width()). That was incorrect — gunbc_ci_plan_spawn_width(0) returns gunbc_ci_floor_conservative_fallback_width (4), not the exec-corpus min. Fixed in 5d8022216c (aligned with main/#6079); witness now asserts stable fallback width. ci_floor_spawn_width_live_budget_witnesses passes locally on that commit.

CI re-run queued on 5d8022216c; awaiting green before merge-ready.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — addressing opus-4-7 REQUEST_CHANGES (34136) in 0044112305.

Finding 1 — cross-file helper-fn fail-open gap: valid, fixed

Verified: entry_file_touched was wired via diff_file_matches_entry(file, entry) only, so editing a non-data fn in imported module F left importing entry E with all three skip axes false → SkipAssumedGreen.

Fix (option b): entry_file_touched now marshals from the entry's transitive import-closure (import_closure_files_from_graph + touched_file_in_import_closure), not entry-path equality alone. Same-entry helper edits still run only the touched entry; unrelated entries still skip.

Proof:

  • New fixture floor_disc_shared_helper.dag imported by node_precise_discriminator_test.dag
  • Unit: green_import_closure_helper_fn_edit_runs_importer_entry
  • Host: import_closure_helper_fn_edit_runs_importer_entry_only
  • SCAFFOLD comment updated to name the closure bridge and Step-5 dissolve-on

Finding 2 — shard .ok() swallowing resolve failures: valid, fixed

Shard threads now eprintln! on resolve_floor_runner_context failure (same fail-closed degrade to should_skip=false, but diagnosable).

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified both APPROVE artifacts against HEAD 0044112305.

composer-2.5 (34156) — verified, no code change

Confirmed on current code: skip/precompute policy in affected_set_floor_runner.dag; Rust is I/O bridge only; force_run_all retired; SCAFFOLD + dissolve-on census at cli_run.rs:3634–3647; witnesses across .dag / unit / host integration including import-closure case (floor_disc_shared_helper.dag).

claude-opus-4-7 (34158) — verified, observations noted (non-blocking)

  • floor_kernel_precompute_would_skip count short-circuit (affected_set_floor_runner.dag:158): intentional — host owns the real frontier node list; count-only path is the honest Rust↔.dag seam until Step 5 provenance ingest lands. Not adding a comment now to avoid doc churn on dissolve-on scaffold.
  • entry_file_touched per-row recompute (cli_run.rs:4280): valid micro-opt (hoist to entry-change branch); deferred — same scaffold block deletes with the host bridge, not worth a hot-path refactor in a deletion path.

Prior REQUEST_CHANGES (34136) addressed in 0044112305 (import-closure entry_file_touched + shard eprintln!).

CI note

Run 28497327632 ci job failed on fleet infra (sccache: failed to spawn / isolated-toolchain cargo component glitch), not a witness failure; rust_tests green on same SHA. Re-running ci job.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified composer-2.5 APPROVE (34204) against HEAD c1bd384d34. No code change.

Confirmed on current code:

  • Skip/precompute single authority in affected_set_floor_runner.dag (floor_kernel_would_skip, floor_kernel_precompute_would_skip, floor_witness_run_disposition with function_edited + import-closure entry_file_touched).
  • force_run_all retired; fail-closed attribution/resolve/kernel errors degrade to full corpus (cli_run.rs ~4005–4010, ~4295–4300).
  • Host bridge SCAFFOLD at cli_run.rs:3634–3647 with ROADMAP 1-affected-set-defork dissolve-on + census receipt.
  • Witness coverage: affected_set_floor_runner_test.dag, affected_set_disposition_both_axes_test.dag, node_frontier_plumbing_controls + floor_skip_discovery_host_test.rs (including import_closure_helper_fn_edit_runs_importer_entry_only).

Post-merge CI skew fix (c1bd384d34): witness_floor_spawn_width_zero_budget_falls_back reconciled to int_min(fallback, execution_corpus_spawn_width()) matching #6073 authority site — unrelated to affected-set slice, no further pushes planned per freeze.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified opus-4-7 APPROVE (34206) against HEAD c1bd384d34. No code change.

All cited claims confirmed on current code:

  • Skip authority in .dag (floor_kernel_would_skip / floor_kernel_precompute_would_skip); force_run_all retired.
  • entry_file_touched scoped to import-closure (touched_file_in_import_closure / import_closure_files_from_graph); cross-file helper witness import_closure_helper_fn_edit_runs_importer_entry_only.
  • SCAFFOLD header cli_run.rs:3634–3648 with dissolution trigger, ROADMAP 1-affected-set-defork Step 5, census rg.
  • Fail-closed: floor_diff_edits_from_line_ranges typed Err → full corpus; control tests use expect_err.
  • Disposition witnesses: affected_set_disposition_both_axes_test.dag + extended affected_set_floor_runner_test.dag.
  • Zero-budget spawn-width: witness_floor_spawn_width_zero_budget_falls_back asserts int_min(fallback, execution_corpus_spawn_width()) matching post-Route-A: reconcile seed-green branch + emit-fresh cargo-green witness #6073 authority (c1bd384d34).

Frozen at c1bd384d34 per operator sync; CI in progress.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — addressing composer-2.5 REQUEST_CHANGES (34234).

Finding valid, fixed in upcoming push: docs/plans/real-debt-syntactic-sample-audit.md had unresolved <<<<<<< / ======= / >>>>>>> markers from incomplete merge in 474c7c2bb0. Restored the clean origin/main version (N=24 migration-debt headline, residual emit-only path note, removed dead triage backstops row) — no conflict markers remain. Unrelated to the floor-skip slice.

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified composer-2.5 APPROVE (34235) against HEAD 145a340583. No code change.

Confirmed on current code:

  • Skip/precompute verdicts in affected_set_floor_runner.dag; force_run_all retired.
  • entry_file_touched scoped via import-closure (import_closure_files_from_graph / touched_file_in_import_closure).
  • SCAFFOLD bridge cli_run.rs:3634–3647 with ROADMAP 1-affected-set-defork Steps 3–5 + census rg.
  • Fail-closed fallbacks on attribution/resolve/kernel errors preserved.
  • Witness + host coverage for both axes and cross-file helper case.

Prior REQUEST_CHANGES (34234) addressed in 145a340583 — conflict markers removed from docs/plans/real-debt-syntactic-sample-audit.md (verified no <<<<<<< remain).

— sent from merry-crane-716

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Review response (merry-crane-716) — verified opus-4-7 APPROVE (34236) against HEAD 145a340583. No code change.

All cited claims confirmed:

  • force_run_all / NodeFrontierSeeds::run_all retired; typed Err + stderr fail-closed fallbacks in floor_diff_edits_from_line_ranges path.
  • Skip authority in affected_set_floor_runner.dag (floor_kernel_would_skip + floor_kernel_precompute_would_skip with function_edited / import-closure entry_file_touched).
  • SCAFFOLD at cli_run.rs:3634 with dissolve-on + rg census receipt.
  • Witnesses: affected_set_disposition_both_axes_test.dag, import_closure_helper_fn_edit_runs_importer_entry_only host test, unit green_import_closure_helper_fn_edit_runs_importer_entry.
  • No flat-scalar unit modeling violations observed on changed .dag lines.

— sent from merry-crane-716

@briansrls
briansrls force-pushed the session/merry-crane-716 branch 2 times, most recently from 9bcc957 to 203ee45 Compare July 1, 2026 12:53
…uler.

Integrate with main #6072 witness-(a) foundation: keep floor_test_fn_declaration_edited,
floor_rust_run_implies_dag_run, NodeFrontierSeeds prove harness, and disposition-kernel
alignment while landing live skip via floor_kernel_would_skip / precompute with
entry_file_touched import-closure axis (fail-closed for cross-file helper-fn edits).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/merry-crane-716 branch from 203ee45 to 07d7492 Compare July 1, 2026 14:09
briansrls and others added 2 commits July 1, 2026 14:44
5722326 is docs-only atop db559b4 (identical dsl/src/v1 tree) but is
not reachable from any ref in a fresh clone — git archive failed in rust_tests.
Use db559b4 (on main) and resolve git toplevel for worktree checkouts.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ontier_seeds).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls merged commit 6cf63cd into main Jul 1, 2026
3 checks passed
@briansrls
briansrls deleted the session/merry-crane-716 branch July 1, 2026 15:31
gunbai-bot Bot pushed a commit that referenced this pull request Jul 1, 2026
Enroll floor_host_scaffold_precompute_would_skip from main drift.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jul 1, 2026
Remove dead entry_touches_frontier_via_dag_closure (referenced deleted
entry_claims_touch_frontier) and clone changed_paths into skip_ctx so
parallel shard path can still borrow it.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jul 1, 2026
Remove duplicate node_frontier_plumbing_controls (kept #6061 FloorDiffEdits
variant), retarget OUTSIDE_FILE to inert_carrier.dag:10, and use
skip_ctx.changed_paths for single-threaded and shard skip paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Jul 1, 2026
Enroll floor_host_scaffold_precompute_would_skip from main drift.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Jul 1, 2026
Enroll floor_host_scaffold_precompute_would_skip from main drift.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jul 1, 2026
…CI proof (#6080)

* WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp

* WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp

* WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp

* Activate merge-admission gate: in-repo producer + enforcement consumer (#5974)

Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash,
floor conclusion) and a required ci.yml merge-admission gate step that reads
merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the
produce→consume path; flip to GatingEnforced is the follow-on activation step.

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

* Revert ci.yml from commit — workflow file push blocked by GitHub App token

ci_workflow.dag authority updated; generated_artifact_drift_gate will require
regen via main_wet on merge (operator/workflows permission).

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

* WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* WIP: Build a floor-enrolled lens that BANS UNWIRED MODELS: any declared type/

* WIP: Build a floor-enrolled lens that BANS UNWIRED MODELS: any declared type/

* chore(unwired_model): roster-trim merge_admission decls wired by #5974

Remove current_gate_roster_hash and merge_admission_blocks_merge from the
unwired_model grandfather roster so quiet-hawk's clean_holds stays green
once #6078 lands first and this branch wires the producer/consumer path.
merge_admission_enforcement_policy stays (still test-only).

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

* feat(ci): flip merge_freshness_gating_status to GatingEnforced (#5974)

Complete merge-admission activation: merge_admission_blocks_merge now
consumes receipt_is_admissible at merge time. Dissolve enforcement
scaffolds to Terminal and update witnesses to assert enforced blocking
for stale-base receipts.

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

* fix(#6080): address review — roster scaffolds, shell exceptions, fail-closed git

- Add merge_admission_* Terminal disposition scaffolds to unwired_model_roster
  (peer pattern with gunbc_ci_footprint_granularity_disposition).
- Enroll merge_admission_produce + stamp/gate tools on
  medium_structure_exception_roster with dissolve-on trigger.
- Remove fail-open `2>/dev/null || true` from merge-target tree hash reads
  and gate fetch script (§5 stale-base path).

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

* revert(#6080): hold GatingEnforced flip until real CI floor proof

Restore GatingComputedDeferred, NOT-ENFORCING gate step scaffold, and
deferred witnesses. Flip to GatingEnforced is a follow-on after a real
CI run proves produce→consume (fresh admitted, stale/red blocked).

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

* fix(#6080): roster-enroll merge_admission metadata unwired decls

Add merge_admission_gating_activation_trigger and
merge_admission_receipt_schema to unwired_model_roster — self-tested
metadata strings with no production consumer (peer pattern with scaffold
disposition rows).

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

* fix(#6080): regen ci.yml — realize merge-admission producer + gate steps

Sync committed workflow with ci_spec/ci_workflow model: floor stamp tail
(FLOOR_EXIT + merge_admission_stamp) and merge-admission gate step.
Closes model↔workflow fork flagged by drift gate review.

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

* fix(#6080): full wire round-trip + set +e for red-floor stamp path

- parse_receipt_wire reads head_sha (line 4) and pr_number (line 5);
  witness asserts full round-trip before GatingEnforced flip.
- set +e before claim_executor so FLOOR_EXIT is captured on red floor
  and Failure receipt is stamped (ci.yml regen).

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(merge-admission): export CI_FLOOR_EXIT to stamp subprocess

Prefix CI_FLOOR_EXIT on the gunbc invocation line so the stamp tool
witnesses red floor exits instead of defaulting to Success (Absent env).

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

* fix(merge-admission): reject wire missing head_sha instead of fabricating zero

parse_receipt_wire now requires four lines (base, roster, conclusion,
head_sha) and returns Absent on short bodies — no minted 000…0 SHA.

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

* fix(merge-admission): stamp main-tip tree hash to match gate

KeyedReceipt requires base_tree_hash == current main's tree at CI time.
The stamp was recording merge-base tree while the gate compared origin/main
tip — causing false MergeDeniedStaleBase on normal PRs.

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

* fix(merge-admission): align stamp receipt fields and tidy shell nits

Parse PR number into stamp_floor_receipt so struct and wire agree; use
render_receipt_wire. Drop no-op concat tails; treat empty CI_FLOOR_EXIT as unset.

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

* fix(merge-admission): trim shell stdout before receipt fields

git show / pwd / jq / rev-parse stdout carries trailing newlines that
double-split the wire and break gate tree-hash comparison at enforcement.
Single authority: shell_stdout_line in merge_admission_produce.

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

* fix(merge-admission): fail-closed on partial wire and empty floor exit

Require five wire lines (incl. pr_number); unparseable pr → Absent.
Treat unset/empty CI_FLOOR_EXIT as failure, not green.

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(ci): unblock compile-clean gate and merge-admission stamp

- Stamp: use shell.Exec printenv instead of shell.Env (v2 shell overlay
  shadows dsl and lacks Env when both source roots are active).
- v2/extdeps/shell: restore shell.Env service for primary-precedence
  compile-clean perturb receipt.
- Remove stale inert_lens_hygiene witness (superseded by unwired_model).

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(merge-admission): use shell.Env.Get in stamp env_var helper

Consume the typed shell.Env transport instead of hand-built printenv
via shell.Exec — single authority for env reads (review 34244).

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

* fix(ci): repair three floor witnesses broken by merge-admission wiring

- Bump ci job step-count witness 6→7 for merge-admission gate step.
- Trim stale unwired_model_roster entries wired on main since last census.
- Align zero-budget spawn-width witness with int_min fallback semantics.

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(#6080): complete claude review — stamp witnesses + roster scaffold enrollment

- Witness STAMP_EXIT propagation and fail-closed CI_FLOOR_EXIT policy string.
- Enroll unwired_model roster scaffold decls + stamp policy on roster.
- Floor witness asserts owner/ceiling/dissolution-trigger documentation.

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

* fix(#6080): clarify gate step name — receipt required, freshness held

Step label now distinguishes structural receipt checks (always enforced)
from freshness verdict blocking (held until GatingEnforced flip).

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

* fix(ci): sync unwired_model_roster after main drift (#6066 ACL)

Enroll 12 Tailscale ACL unwired decls from main; trim 5 stale entries
for witnesses wired on main since last roster census.

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(ci): sync unwired_model_roster after #6061 affected-set rebase

Enroll floor_host_scaffold_precompute_would_skip from main drift.

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

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(ci): trim stale extdeps_shape_transport_policy roster entries

Remove two decls retired from the live unwired census when main landed

Co-authored-by: Cursor <cursoragent@cursor.com>
#6043; unwired_model_no_unrostered_or_stale was failing batch 2.

* WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, #

* fix(ci): sync unwired_model roster after main rebase (#deploy-access)

Rebase onto main renamed deploy access types and added GPU witness decls;
regenerate roster from live census and restore scaffold metadata decls.

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

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jul 3, 2026
…ess-a line

Main landed new closed-coproduct wildcard sites (srv3 install diagnostic,
nbd_proxy_serve, decl_index) without roster enrollment; refresh
NON_FOLD_RESIDUE_ROSTER so partition witnesses pass. Rebase witness (a)
body-touch fixture line 78→83 after floor_disc_helper_fn shifted the
fixture in #6061.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jul 3, 2026
…table (#6176)

* 2-emit-partition: grammar JSON for healthz body; structured shell in v1_dag_parse transport

Migrate roadmap_site_healthz_body() from hand-concat JSON to extdeps.languages.json.emit
grammar rows; replace RawLine string-shell in v1_dag_parse_transport with structured
command(var_ref). Witness updated for canonical serializer spacing.

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

* 2-emit-partition: witness quoted var_ref in v1_dag_parse transport

VarRef already serializes as "$NAME" via serialize_bash (same bytes as the
retired RawLine). Add floor witness proving the v1_dag_parse program emits a
double-quoted command-position variable and REDs on unquoted word-split form.

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

* #6174: wall JsonNumberLexeme construction behind json_number_lexeme_valid

Add json_number_lexeme(s) -> JsonNumberLexeme? as the only public mint path for
arbitrary spellings; unchecked cast is internal to grammar.dag. Export
json_number_from_lexeme_string for emit callers. Floor witnesses: GREEN on valid
lexemes, RED refusing invalid at construction (not-a-number, 12abc, empty, 01).

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

* #6174: drop fabricated "0" fallback in json_int_lexeme

Int→to_string is witness-proven valid JSON number syntax; use the
grounded Int constructor path directly instead of Absent=>"0" fabrication.

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

* fix(ci): repair rust_tests after main merge — NFR roster drift + witness-a line

Main landed new closed-coproduct wildcard sites (srv3 install diagnostic,
nbd_proxy_serve, decl_index) without roster enrollment; refresh
NON_FOLD_RESIDUE_ROSTER so partition witnesses pass. Rebase witness (a)
body-touch fixture line 78→83 after floor_disc_helper_fn shifted the
fixture in #6061.

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* ci: raise job timeout 50→90min — batch-1 still running at 48min on 50min cap

Run 28645912887 canceled batch-1 compile-clean at 47m51s into the gate
(50m19s job total incl. release build). 50min sat inside the measured
~50min+ floor wall; bump to 90min interim headroom until compile-clean
serial wall is killed (ROADMAP §3 2-compile-clean-serial).

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* fix(ci): rustfmt frontier test assert; unblock rust_tests on 7948ff

cargo fmt --check failed on multi-line assert in
import_preamble_plus_fn_body_populates_touched_entry_not_fail_closed.

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* fix(ci): frontier diff attributes deletions + import-preamble test

Track `-` hunk rows in parse_unified_diff_changed_new_lines so deletion-only
edits populate edited_test_fns/touched_entry_files (§5 fail-closed). Fall back
to new-side hunk ranges only when no +/- rows were attributed. Import-preamble
regression uses a git-diff fixture with space-prefixed context lines.

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* fix(ci): skip non-.dag paths in frontier diff — avoid full-corpus OOM

Mixed PR diffs (emit.dag + cli_run.rs + testdata fixtures) previously
fail-closed on the first non-.dag path and forced a full witness corpus
(OOM on batch-2). Skip non-.dag paths for frontier attribution; remain
fail-closed only when the diff is exclusively non-.dag.

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* fix(design): restore body-lowering open thread removed by WIP commit

Revert accidental DESIGN.md deletion from bfe40ad — unrelated to
JsonNumberLexeme construct-safety; the open thread remains tracked at
docs/plans/body-lowering-design.md.

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

* fix(design): enroll body-lowering open thread in design_document authority

#6190 hand-edited DESIGN.md only; WIP main_wet regen dropped the bullet.
Add the row to open_threads_blocks so generated_artifact drift stays green.

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

* WIP: shell/json/yaml emit-partition migration (ROADMAP §2 'emit partition cle

* fix(ci): unblock batch-2 floor witnesses (extdeps/srv3/tailscale)

- tailscale: authority witness via literal URI wire (json.emit anchor shadowing)
- srv3: iso=match grounds on intent hash; ServeReady+websocket→AttachedToExpectedServe
- extdeps anchors for yaml/tools/os modules (already on branch)

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 4, 2026
Refresh stale receipts in docs/plans/affected-set-precompute-pruning.md:
- Header: PR #6061 (2026-07-01) landed Step 4 consumer-1; update status
- Receipt table: add rows for Step 4 consumer-1 GREEN and consumer-2 IN PROGRESS
- Line 103: Fix stale claim — function_edited is LIVE (not ABSENT) with three axes
  (touches_frontier, function_edited, entry_file_touched; landed PR #6065/#6072)

Update ROADMAP.md and dag/gunbc/roadmap_authority.dag:
- PR #6105 closed 2026-07-02 as measured work-neutral
- Successor lane: resolver S2a + skip-before-resolve remaining fix

Fix unparseable fixture (src/v2/test/fixture/floor_skip/provenance_fail_closed_contract_test.dag):
- .dag grammar has NO comments (// and /* */ are unparseable)
- Convert comment block (lines 3-7) to data-string note
- Restructure: move data declaration after all imports

Refresh ci_floor_plan_witness_test.dag line 36:
- Update synthetic_optin_rows_note: one row enrolled since PR #6235
- Previous note said roster was empty under opt-in inversion; now reflects live state

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jul 5, 2026
)

* WIP: Stale-carrier sweep: affected-set plan docs + unparseable fixture

* Stale-carrier sweep: affected-set plan docs + unparseable fixture

Refresh stale receipts in docs/plans/affected-set-precompute-pruning.md:
- Header: PR #6061 (2026-07-01) landed Step 4 consumer-1; update status
- Receipt table: add rows for Step 4 consumer-1 GREEN and consumer-2 IN PROGRESS
- Line 103: Fix stale claim — function_edited is LIVE (not ABSENT) with three axes
  (touches_frontier, function_edited, entry_file_touched; landed PR #6065/#6072)

Update ROADMAP.md and dag/gunbc/roadmap_authority.dag:
- PR #6105 closed 2026-07-02 as measured work-neutral
- Successor lane: resolver S2a + skip-before-resolve remaining fix

Fix unparseable fixture (src/v2/test/fixture/floor_skip/provenance_fail_closed_contract_test.dag):
- .dag grammar has NO comments (// and /* */ are unparseable)
- Convert comment block (lines 3-7) to data-string note
- Restructure: move data declaration after all imports

Refresh ci_floor_plan_witness_test.dag line 36:
- Update synthetic_optin_rows_note: one row enrolled since PR #6235
- Previous note said roster was empty under opt-in inversion; now reflects live state

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Fix contradictions in plan doc per review feedback (DESIGN §6)

Update affected-set-precompute-pruning.md for consistency:
- Line 54-58: Update description of skip decision to reflect all three axes now live (not a gap to fill)
- Line 15: Prep step now covers all axes (PR #6065/#6072 + #6234)
- Line 18: Consumer-1 receipt clarified — all three axes live, not contradictory 'both'

Resolves REQUEST_CHANGES from cursor/composer-2.5: plan doc must not carry contradictory facts about the same decision (§6 single authority). Step 4 consumer-1 is GREEN with all three axes modeled and wired.

* Complete contradiction sweep: update all two-axis language to three-axis (DESIGN §6)

Fix remaining §6 violations where plan doc carried both 'two axes' and 'three axes' descriptions:
- Line 80: Refresh intro prose — all three axes now covered as of Step 4
- Line 95: Acceptance witness (a) — all three axes, not just 'node-frontier + function-edited'
- Line 110: Consumer 2 gate — all three conditions required (including touched_entry_files)
- Line 150: Acceptance witness (a) spec — full predicate over all three axes
- Line 19: Receipt table — consumer 2 gate conditions now include all three

All sections now consistently describe the three-axis skip decision: touches_frontier OR function_edited OR entry_file_touched. Plan doc is single authority.

* Fix axis naming: third axis is entry_file_touched, not entry_touches_frontier_seeds (DESIGN §3)

Corrected predicate names and descriptions per cursor REQUEST_CHANGES:
- Line 106: Axis (iii) source is diff_edits.touched_entry_files (not frontier-seeds)
- Line 95: Acceptance bar predicate — entry_file_touched (not frontier-seeds proxy)
- Line 150: Witness (a) spec — entry_file_touched (not frontier-seeds on non-data-fns)
- Line 112: 'Conservative gate' paragraph — all three conditions (not just two)
- Line 15: Prep receipt — note that cited witness exercises two axes; full three-axes proof is Step 3 witness (a)

Fixes DESIGN §3 single-authority violation where plan doc used wrong name for third axis.

* Fix final contradiction: witness (c) acceptance bar requires all three conditions (DESIGN §6)

Line 154 acceptance witness (c) was still defining the scoped-diff condition with only two axes (empty frontier AND empty edited_test_fns), contradicting the three-axis gate in floor_precompute_would_skip (src/v2/workflow/affected_set_floor_runner.dag:177-194) and cli_run.rs:4926-4931 which includes touched_entry_files.

Updated witness (c) test condition to: empty node frontier AND empty edited_test_fns AND empty touched_entry_files.

Single authority now: plan doc matches floor-runner implementation.

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Haiku 4.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