Repository navigation
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
Conversation
|
Addressed in 62bd4e1:
Tests: |
|
Addressed both findings in Finding 1 (HAND-RUST / §6–§7): Added explicit Finding 2 (entry_file_touched safety): Added acceptance witnesses proving the narrowed predicate is intentional and safe:
Tests: |
|
Verified against current tree — the approval matches implementation:
No code changes required for this review. Awaiting second api-review approval + CI green. — sent from merry-crane-716 |
|
Verified — second APPROVE aligns with tree; no merge-blocking issues found.
Approval criteria confirmed: No code changes required. Awaiting CI green (run 28490775362 still queued). — sent from merry-crane-716 |
|
Verified post- Confirmed in tree: skip/precompute policy in — sent from merry-crane-716 |
|
Addressed non-blocking nit in latest commit: — sent from merry-crane-716 |
|
Verified on Confirmed: Awaiting CI green on run 28492443746. — sent from merry-crane-716 |
|
Verified — APPROVE on — sent from merry-crane-716 |
|
Verified on Includes spawn-width witness fix ( — sent from merry-crane-716 |
|
Verified on Spawn-width witness fix ( — sent from merry-crane-716 |
|
Review response (merry-crane-716) — verified both APPROVE artifacts against current HEAD ( composer-2.5 (34128) — verified, no code changeChecked the cited structure on current code:
claude-opus-4-7 (34130) — verified; one note supersededThe core approval rationale holds on current HEAD: Correction on zero-budget spawn-width witness: opus reviewed at CI re-run queued on — sent from merry-crane-716 |
|
Review response (merry-crane-716) — addressing opus-4-7 REQUEST_CHANGES (34136) in Finding 1 — cross-file helper-fn fail-open gap: valid, fixedVerified: Fix (option b): Proof:
Finding 2 — shard
|
|
Review response (merry-crane-716) — verified both APPROVE artifacts against HEAD composer-2.5 (34156) — verified, no code changeConfirmed on current code: skip/precompute policy in claude-opus-4-7 (34158) — verified, observations noted (non-blocking)
Prior REQUEST_CHANGES (34136) addressed in CI noteRun — sent from merry-crane-716 |
|
Review response (merry-crane-716) — verified composer-2.5 APPROVE (34204) against HEAD Confirmed on current code:
Post-merge CI skew fix ( — sent from merry-crane-716 |
|
Review response (merry-crane-716) — verified opus-4-7 APPROVE (34206) against HEAD All cited claims confirmed on current code:
Frozen at — sent from merry-crane-716 |
|
Review response (merry-crane-716) — addressing composer-2.5 REQUEST_CHANGES (34234). Finding valid, fixed in upcoming push: — sent from merry-crane-716 |
|
Review response (merry-crane-716) — verified composer-2.5 APPROVE (34235) against HEAD Confirmed on current code:
Prior REQUEST_CHANGES (34234) addressed in — sent from merry-crane-716 |
|
Review response (merry-crane-716) — verified opus-4-7 APPROVE (34236) against HEAD All cited claims confirmed:
— sent from merry-crane-716 |
9bcc957 to
203ee45
Compare
…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>
203ee45 to
07d7492
Compare
…ontier_seeds). Co-authored-by: Cursor <cursoragent@cursor.com>
Enroll floor_host_scaffold_precompute_would_skip from main drift. Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
Enroll floor_host_scaffold_precompute_would_skip from main drift. Co-authored-by: Cursor <cursoragent@cursor.com>
Enroll floor_host_scaffold_precompute_would_skip from main drift. Co-authored-by: Cursor <cursoragent@cursor.com>
…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>
…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>
…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>
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>
) * 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>
Summary
Wire the live CI floor discovery path to
v2.workflow.affected_set_floor_runneras the single skip-authority. Per-witness run/skip callsfloor_kernel_would_skip(.dag) with three axes: node-frontier touch,function_edited, andentry_file_touched. Retire the v1force_run_allhack — non-data.dagfn edits scope to that entry's roster;.rschanges still fail-closed to full corpus. Precompute gating readsfloor_kernel_precompute_would_skip(.dag).Deleted
NodeFrontierSeeds,collect_frontier_seeds_from_diff_line_ranges,entry_touches_frontier_seeds, and theforce_run_allbranch. Absorbed #6019function_editedaxis +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_manifestEmpty); tracked separately by operator.Remaining Rust (
floor_diff_edits_from_line_ranges,rerun_frontier_nodes_for_entry,entry_touches_rerun_frontier) isSCAFFOLDwithDissolve-oncensus — 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):
.rsdifffloor_diff_edits_from_line_ranges→non-.dagerr0 skipped(full corpus)FloorGitDiffOutcome::ObservationFailClosed0 skipped(full corpus).dagempty diff — run full corpus0 skippedSkip authority discriminating pair (
claim_executor)Plan:
src/v2/workflow/floor_skip_proof_plan.dag(floor_skip_proof_batches), explicit 2-witness roster onnode_precise_discriminator_test.dag.Test plan
cargo test -p v1-compiler-tests floor_skip— 10 passedcargo test -p v1-compiler --lib node_frontier_plumbing_controls— 7 passedcargo test -p v1-compiler --lib floor_skip_frontier— 3 passedaffected_set_disposition_both_axes_witness_holds+floor_runner_node_frontier_policy_holdsenrolledclaim_executordiscriminating pairs above — all exit 0