Skip to content

Affected-set de-fork — prep: close function_edited axis in .dag disposition kernel + floor witness (witness (a)/migrate/delete deferred) - #6065

Closed
gunbai-bot[bot] wants to merge 10 commits into
mainfrom
session/cool-fox-169
Closed

gunbai-bot[bot] wants to merge 10 commits into
mainfrom
session/cool-fox-169

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

Closes the function_edited skip axis in the .dag affected-set disposition kernel (src/v2/workflow/affected_set_floor_runner.dag), so both skip axes are modeled (touches_frontier || function_edited), updates the call sites, and adds a floor-discoverable claim witness (src/v2/test/claim/affected_set_disposition_both_axes_test.dag) plus honestly-scoped Rust scaffold tests.

This is PREP for the affected-set CI de-fork (signed design #5994 / docs/plans/affected-set-precompute-pruning.md). Production floor dispatch stays on the existing Rust path — no Impl-2 deletion in this PR.

Scope

  • In scope: .dag both-axes disposition modeling; floor claim witness; bounded Rust scaffold tests (marked // NOT witness (a) PROVE gate).
  • Deferred to follow-up (work-item adhoc-f4c79001-5c1): witness (a) full-predicate equivalence — real origin/main...HEAD diff, .dag affected_set_closure ⊇ Rust NodeFrontierSeeds, both skip axes, green-by-execution + a RED perturbation control — then migrate → verify → DELETE Impl-2 (the cli_run.rs live path). Witness (a) is the scaffold's named dissolution trigger.

Test plan

  • .dag claim witness affected_set_disposition_both_axes_test.dag — floor-discoverable, green.
  • Rust mod floor_disposition_kernel_alignment (src/v1/stage0/src/cli_run.rs) — disposition kernel on synthetic + fixture inputs; explicitly not witness (a).

Provenance / attestation

Prior author cool-fox-169 archived mid-PROVE; this PR is adopted and rescoped by stern-moth-225 to the reviewer-approved prep increment. Verified: the 9 commits are cool-fox-169's own (no surprise fork/cherry-pick), no secrets or binaries staged, and no premature Impl-2 deletion (the cli_run.rs change is purely additive test code — the audit-first "no delete before witness (a)" invariant holds).

Do not merge as if the de-fork is complete — witness (a) + Impl-2 deletion are the deferred follow-up.

— shepherded by stern-moth-225

briansrls and others added 10 commits June 30, 2026 19:21
…ate.

Documents that impl-vs-impl equivalence on a real diff remains open per #5994.

Co-authored-by: Cursor <cursoragent@cursor.com>
bootstrap::stage0_cargo_check and v1_compiler_lib_tests_compile_green
now use the same CARGO_BUILD_JOBS=1 / no-sccache retry ladder as ci.yml
when stderr shows temp-dir or sccache spawn errors under parallel nextest.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rename tests/modules to stop claiming full-predicate equivalence; the
Rust harness is disposition-kernel alignment on shared Rust inputs only.
Witness (a) impl-vs-impl remains follow-on per #5994.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Release build verified green locally; CI failed with sccache compile
exit status 2 under fleet pressure, not a code regression.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls marked this pull request as ready for review July 1, 2026 02:52
@gunbai-bot gunbai-bot Bot changed the title Implement affected-set CI de-fork (signed design #5994 / docs/plans/affected-set-precompute-pruning.md), AUDIT-FIRST: prove witness (a) full-predicate equivalence (.dag affected-set closure superset of Rust NodeFrontierSeeds on a REAL diff, BOTH skip axes node-frontier AND edited_test_fns, green-by- Affected-set de-fork — prep: close function_edited axis in .dag disposition kernel + floor witness (witness (a)/migrate/delete deferred) Jul 1, 2026
@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed: title + body rewritten to match the rescoped prep increment (disposition-kernel both-axes close + floor witness + honestly-scoped scaffold), with witness (a) + migrate + Impl-2 deletion explicitly deferred to a tracked follow-up work-item. No code change needed for this finding.

Context for reviewers: the original author (cool-fox-169) archived mid-PROVE, so this session adopted and rescoped the PR. Verified there is no premature Impl-2 deletion — the cli_run.rs change is purely additive test code, so the audit-first "no delete before witness (a) is green" invariant holds. The failing check is deploy_dashboard_srv1 (dashboard deploy infra, unrelated to these .dag/test changes) — rerun triggered; ci/rust_tests are the real gates.

— sent from stern-moth-225

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Thanks — both nits acknowledged, and both are right to leave for the follow-up rather than churn this additive prep PR:

  • The three-arg boolean predicate (touches_frontier, function_edited, ...) is exactly the implied-product smell. But the disposition kernel gets reworked wholesale in the migrate/DELETE follow-up (work-item adhoc-f4c79001) when the .dag affected_set path becomes the single live authority and Impl-2 is deleted — that is the natural point to model the axes as a record and fold the reason-string branch into the coproduct constructor. Doing it here would only get rewritten there.
  • Tracking both as follow-up cleanup so they aren't lost.

No blocking change on changed lines; scope stays honest PREP.

— sent from stern-moth-225

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #6072, which fully contains this prep (same disposition-kernel both-axes + floor witness + scaffold) PLUS the partial witness (a) foundation, on a live branch.

Reason: this branch (session/cool-fox-169, base 1693478) is behind main and its ci gate is RED due to a STALE BASE — it predates #6070 ('FIX MAIN-RED: CI floor plan width = budget-responsive floor width; int_min fallback-witness regression from #6059'), which fixes the exact witness failing here (witness_floor_spawn_width_zero_budget_falls_back). The failure is not a regression in this PR's content. Since the original author (cool-fox-169) is archived, maintaining a dead branch alongside the live #6072 (which supersedes it) is redundant. #6072 will merge fresh main to pick up #6070 and carry the prep forward with its own review. — sent from stern-moth-225

@gunbai-bot gunbai-bot Bot closed this Jul 1, 2026
briansrls pushed a commit that referenced this pull request Jul 1, 2026
Picks up #6070 spawn-width fallback fix and other main advances so
#6072 CI is no longer stale-base RED. Consolidates prep + partial
witness (a) after #6065 close.
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>
gunbai-bot Bot pushed a commit that referenced this pull request Jul 5, 2026
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.
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