Skip to content

Floor cutover: .dag module-grain query replaces NodeFrontierSeeds - #6301

Merged
briansrls merged 5 commits into
mainfrom
session/vivid-wolf-322
Jul 6, 2026
Merged

briansrls merged 5 commits into
mainfrom
session/vivid-wolf-322

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

Floor per-entry entry_file_touched now consumes the .dag module-grain authority (v2.lens.module_graph.entry_affected_by_touched_paths) instead of the legacy Rust closure walk. Deletes NodeFrontierSeeds, collect_frontier_seeds_from_diff_line_ranges, entry_frontier_nodes_from_seeds, and entry_touches_frontier_seeds — including 8 run_all() absorbing arms (7 return Ok(NodeFrontierSeeds::run_all()) sites + the run_all() factory) that silently widened to full-corpus run on resolve/read/attribution uncertainty (DESIGN §5 violations deliberately left for this deletion; see #6286).

Production path: run_discovery_corpus_with_options co-resolves module_graph.dag alongside the floor runner (union-resolve S1), and run_discovery_rows calls call_entry_affected_by_touched_paths per entry change. Witness harnesses (floor_disposition_kernel_alignment, floor_witness_a_prove) rewritten to exercise FloorDiffEdits + rerun_frontier_nodes_for_entry — the same production bridge, not the deleted seeds carrier.

Refusal semantics preserved: diff observation / attribution failures still refuse typed (post-#6286 pattern extended, not forked).

Test plan

  • cargo test -p v1-compiler --lib module_grain_affected — 3/3 passed (equivalence harness Affected-set Step 3: module-grain frontier equivalence receipts #6274 rerun on head; requires full git history)
  • cargo test -p v1-compiler --lib floor_disposition_kernel — 2/2 passed
  • cargo test -p v1-compiler --lib floor_witness_a — 5/5 passed
  • cargo test -p v1-compiler --lib node_frontier_plumbing — 12/12 passed
  • cargo run -p v1-compiler --bin floor_skip_discovery_witness — exit 0
  • cargo clippy -p v1-compiler --all-targets -- -D warnings — clean
  • cargo fmt --all --check — clean

@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 5, 2026 21:12
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the documentation drift in module_grain_affected_equivalence_tests (5517e40): the comment block now states that live production calls call_entry_affected_by_touched_paths directly (run_discovery_rows at cli_run.rs:5376-5395), while the Rust touched_file_in_import_closure / import_closure_files_from_graph path is kept in the harness only as an independent oracle — not a description of the production consumer.

All other review findings were verified as already satisfied on HEAD (NodeFrontierSeeds deleted, fail-closed arms intact, witness tests on FloorDiffEdits path).

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Review item verified — no code changes needed.

The composer-2.5 re-review on 5517e4076d reports zero findings. The only prior actionable item (equivalence-receipt comment describing the old Rust production path) was already fixed in that same commit; the updated comment at cli_run.rs:6569-6575 now correctly states production calls call_entry_affected_by_touched_paths while Rust remains an independent oracle.

Merge readiness: 2/2 dashboard approvals (claude + cursor), no REQUEST_CHANGES, mergeable=CLEAN. Awaiting CI on 5517e4076d.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 review verified on 5517e4076d — no code changes needed (APPROVE, zero findings).

Spot-checked the cited surfaces: call_entry_affected_by_touched_paths fail-closes on missing symbol / non-Bool return; module_graph resolve errors refuse instead of widening to full corpus; equivalence harness keeps Rust as a separate oracle with the updated comment at cli_run.rs:6569-6580. All already landed.

Merge readiness unchanged: 2/2 approvals, no REQUEST_CHANGES, mergeable=CLEAN; CI still pending on this SHA.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

CI root cause on 5517e40 investigated:

rust_tests failed with step-timeout (not a code red): job 85261499899 / run 28755376288 killed v1 rust gate (fmt + clippy + nextest) at 15m while cargo clippy --all-targets was still running — sccache-warm had already completed green. Local cargo fmt --check + workspace clippy -D warnings pass in <2m.

Fix (dc1220696d):

  1. Restored .github/workflows/ci.yml (accidentally truncated to a panic trace in f1616fba87 from a failed local gunbc ci redirect).
  2. Bumped gunbc_ci_rust_gate_step_timeout_minutes 15→25 in dag/gunbc/ci_workflow.dag + matching ci.yml step budget, with receipt in the on-carrier budget note.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

composer-2.5 re-review on dc1220696d verified — no code changes needed (APPROVE, zero findings).

Spot-checked: entry_file_touched → call_entry_affected_by_touched_paths (cli_run.rs:5376-5395); NodeFrontierSeeds/force_run_all absent from tree; fail-closed module_graph resolve + missing-context arms intact; equivalence harness comment at 6569-6577 matches production-vs-oracle split; CI timeout 25m authored in ci_workflow.dag:313 + ci.yml:227 with receipt. claude-opus-4-7 also APPROVE on same SHA (review 35850).

Merge readiness: 2/2 approvals, no REQUEST_CHANGES, mergeable=CLEAN; CI pending on dc1220696d.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 review on dc1220696d verified — no code changes needed (APPROVE).

The non-blocking gunbc_ci_rust_gate_step_timeout_minutes: Int unit-modeling note is accepted as preservation: the field was already bare Int on main at 15; this PR only changes the value and extends the receipt-bearing budget note (not a new scalar introduction). Core cutover surfaces (.dag entry_affected_by_touched_paths, NodeFrontierSeeds deletion, fail-closed missing-context arms, witness migration to FloorDiffEdits) already match the review.

Merge readiness: 2/2 approvals, no REQUEST_CHANGES, mergeable=CLEAN; CI still pending on dc1220696d.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Verified both latest review artifacts against current HEAD (176a27b403):

claude/claude-opus-4-7 (35862) — APPROVE, no findings

  • Production entry_file_touched cutover to call_entry_affected_by_touched_paths confirmed (cli_run.rs:5450-5465); missing module_graph context returns typed Err, no run-everything fallback.
  • NodeFrontierSeeds / closure-walk path deleted; witnesses use FloorDiffEdits + rerun_frontier_nodes_for_entry.
  • CI rust-gate 15→25m carries on-carrier receipt + downward re-derive note (ci_workflow.dag, .github/workflows/ci.yml).
  • TypeEnvCache.str_bindings now keys on post-resolution map_merge(final_env.ancestry_str_bindings, final_env.str_bindings) (04_infer.dag:5753-5756, v1_compiler_infer.rs) — fixes build_type_env: ancestry cache sharing on single-import chains #6304 ancestry-cache sharing serving pre-resolve bindings (was breaking disposition_kernel_aligns_on_discriminator_fixture with empty cast targets).

cursor/composer-2.5 (35864) — APPROVE, no findings

  • Fail-closed refusal paths at cli_run.rs:5119-5125, 5155-5160, 5457-5464 confirmed.
  • Equivalence harness (cli_run.rs:6640-6646) keeps independent Rust oracle vs .dag query.
  • No new parallel authorities in the touched diff.

No code changes required from either review; the cache-purity fix above is already on branch. rust_tests job green on run 28758169877; awaiting ci floor job.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified claude/claude-opus-4-7 review artifact 35871 against current HEAD (e6a0ec70ae):

Verdict: APPROVE — no code changes required.

  • NodeFrontierSeeds deleted; production entry_file_touched routes through call_entry_affected_by_touched_paths → v2.lens.module_graph.entry_affected_by_touched_paths. Confirmed fail-closed Err arms on corpus path (cli_run.rs:5155-5160), shard path (cli_run.rs:5284-5289), and per-row module_graph miss (cli_run.rs:5457-5464) — no silent full-corpus fallback.
  • Witness harness uses FloorDiffEdits + rerun_frontier_nodes_for_entry with a deliberately separate Rust oracle in module_grain_affected_equivalence_tests (cli_run.rs:6640+).
  • CI timeout 15→25m on-carrier with concrete receipt + downward re-derive note (ci_workflow.dag:313-315, .github/workflows/ci.yml).
  • build_type_env cache: TypeEnvCache.str_bindings keys on post-resolution map_merge(final_env.ancestry_str_bindings, final_env.str_bindings) (04_infer.dag:5753-5756, v1_compiler_infer.rs:12799-12805). Main merge brought in Revert #6304 ancestry cache-sharing — fixes String→refinement coercion regression (main-red) #6310 (reverts build_type_env: ancestry cache sharing on single-import chains #6304 ancestry cache-sharing that caused String→refinement coercion failures); the post-resolve cache-key fix from 176a27b403 remains and is consistent with the reviewer's cache-purity reading.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified cursor/composer-2.5 review artifact 35872 against current HEAD (e6a0ec70ae):

Verdict: APPROVE — no code changes required.

  • Production entry_file_touched calls .dag via call_entry_affected_by_touched_paths (cli_run.rs:5450-5456); NodeFrontierSeeds / force_run_all deleted (only comment receipt remains at 6113).
  • Fail-closed preserved: non-.dag-only diff refusal (4904-4906), derivation failure (5119-5125), missing module_graph context (5457-5464) — all typed Err, no full-corpus widen.
  • Witness tests on FloorDiffEdits + rerun_frontier_nodes_for_entry; equivalence harness keeps independent Rust oracle (6640+).
  • Remaining host-side diff attribution explicitly scaffolded with named dissolve-on (4432-4443).
  • TypeEnvCache post-resolve cache-key fix (04_infer.dag:5753-5756) + CI 25m timeout receipt on-carrier — both present and narrowly scoped.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Addressed cursor/composer-2.5 review 35884 (REQUEST_CHANGES):

Finding valid — fixed in 2a910a06ac.

  • Removed dead visible_str_bindings from build_type_env in v1_compiler_infer.rs (was unused after cache_str_bindings switch at 12799–12805).
  • Mirrored in 04_infer.dag:5737 (authority ↔ Rust sync).
  • Left visible_str_bindings in build_type_env_unresolved — still consumed at 13233 / 04_infer.dag:5855.

cargo clippy -p v1-compiler --lib -- -D warnings clean locally.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified cursor/composer-2.5 review artifact 35890 against current HEAD (2a910a06ac):

Verdict: APPROVE — no code changes required.

All cited claims hold on the post-fix tree:

  • entry_file_touched → call_entry_affected_by_touched_paths (cli_run.rs:5451-5456); fail-closed on missing module_graph (5457-5464)
  • NodeFrontierSeeds / force_run_all deleted; scaffold + dissolve-on at 4432-4443
  • Equivalence receipt keeps independent Rust oracle (6640-6646)
  • CI timeout bumps receipt-backed in ci_workflow.dag (floor 120m + rust gate 25m)
  • build_type_env cache uses post-resolution cache_str_bindings (04_infer.dag:5752-5756); dead visible_str_bindings removed per 35884 fix (2a910a06ac)

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified claude/claude-opus-4-7 review artifact 35892 against current HEAD (2a910a06ac):

Verdict: APPROVE — no code changes required.

  • entry_file_touched cutover to entry_affected_by_touched_paths (§3/§7 single authority) confirmed.
  • Fail-closed arms at cli_run.rs:5156-5160, 5285-5289, 5457-5464 — no absorbing run-all fallback.
  • NodeFrontierSeeds deleted; witnesses on FloorDiffEdits.
  • 04_infer.dag:5752 post-resolve cache_str_bindings; dead pre-resolve visible_str_bindings removed in 2a910a06ac.
  • CI budgets receipt-backed: floor 120m, rust gate 25m, job backstop 175m (ci_workflow.dag).

— sent from vivid-wolf-322

briansrls and others added 5 commits July 6, 2026 03:16
…ffEdits

Rewrite disposition_kernel_alignment and floor_witness_a_prove tests to
exercise the same FloorDiffEdits + rerun_frontier_nodes_for_entry path the
live floor uses after the module-grain entry_file_touched cutover.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update the receipt header to state that production now calls
entry_affected_by_touched_paths directly while the Rust closure walk
remains an independent oracle in the equivalence harness.

Co-authored-by: Cursor <cursoragent@cursor.com>
Post-resolve TypeEnvCache.str_bindings made the pre-resolve
visible_str_bindings binding unused in build_type_env (clippy
unused_variables under -D warnings). Keep the binding in
build_type_env_unresolved where it is still consumed.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/vivid-wolf-322 branch from 2a910a0 to 57e6933 Compare July 6, 2026 03:17
@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified cursor/composer-2.5 review artifact 35911 against current HEAD (57e6933edc, post-rebase on main):

Verdict: APPROVE — no code changes required.

  • Production entry_file_touched → call_entry_affected_by_touched_paths (cli_run.rs:4594, use site 5621-5626).
  • Fail-closed on module_graph resolve miss (5326-5330) and per-row context miss (5627-5634) — no NodeFrontierSeeds::run_all() absorption.
  • Host scaffold + named dissolve-on at 4566-4577.
  • build_type_env cache keys on post-resolve cache_str_bindings (04_infer.dag:5752-5755, v1_compiler_infer.rs:12797-12803); dead pre-resolve visible_str_bindings dropped (57e6933edc).
  • Rebase conflict resolution kept main's CI budgets (floor 135m / rust gate 30m); floor cutover diff unchanged.

— sent from vivid-wolf-322

@gunbai-bot

gunbai-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Verified claude/claude-opus-4-7 review artifact 35913 against current HEAD (57e6933edc):

Verdict: APPROVE — no code changes required.

  • NodeFrontierSeeds / closure walk retired; production calls entry_affected_by_touched_paths via call_entry_affected_by_touched_paths (cli_run.rs:4594, 5621-5626).
  • Fail-closed when module_graph cannot resolve (5326-5330, 5627-5634) — no silent full-corpus fallback.
  • TypeEnvCache.str_bindings uses post-resolve cache_str_bindings in both surfaces (04_infer.dag:5752-5755, v1_compiler_infer.rs:12797-12803); pre-resolve binding retained only in build_type_env_unresolved.
  • Witnesses on FloorDiffEdits; equivalence receipt refreshed (cli_run.rs:6828-6832).

— sent from vivid-wolf-322

@briansrls
briansrls merged commit 88492b2 into main Jul 6, 2026
1 of 2 checks passed
@briansrls
briansrls deleted the session/vivid-wolf-322 branch July 6, 2026 04:02
gunbai-bot Bot pushed a commit that referenced this pull request Jul 6, 2026
…ict-only rides it

Conflict resolution: entry_file_touched now consumes #6301's per-entry
module-grain fact (current_entry_file_touched); the verdict keeps this
branch's would_skip name so SelectionPredictOnly records it per row.
The Bool->mode rename migrates #6301's new sites (name-status gate,
module_graph ctx gates in both the serial and shard paths) and the
runner-note phrase naming the former flag.

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