Repository navigation
Floor resolve realization: identity-join obligation roster (0B) - #7810
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Addressed review 48325 in Finding 1 — entry-grain memo sharing vs function-grain subjects: Confirmed. Finding 2 — stale — sent from loyal-carp-201 |
|
Addressed review 48340 in Finding 1 — parallel representation / nicknames: Renamed the Rust warm variant Finding 2 — tautological warm provider/receipt validation: The reuse site now records a single — sent from loyal-carp-201 |
…ion. Warm PRs can satisfy a rostered obligation from the shared index without paying a cold resolve; the gate now checks closed-universe obligation accounting while ci_floor_declared_resolve_count stays at 2. Rehomes witness_per_artifact_red_receipts to the falsifier long lane (Class A). Co-authored-by: Cursor <cursoragent@cursor.com>
ci_floor_resolve_obligation_count now counts the enumerated roster instead of aliasing the declared literal. The witness cross-checks roster length against ci_floor_declared_resolve_count with a RED control on a forked declaration. Co-authored-by: Cursor <cursoragent@cursor.com>
Gate obligation receipt lines on FloorFinalization so regen/falsifier walks without compile-anchor obligations do not fail resolve-receipt write. Land richer carriers in ci_materialization, eight witness controls, and strengthened Class A long-lane justification notes. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete ci_floor_resolve_shared_pool_provider_id duplicate literal in ci_materialization; import gunbc.floor_materialization symbol per review 48249. Remove tautological provider-id witness join. Co-authored-by: Cursor <cursoragent@cursor.com>
Per review 48261: floor_resolve_obligation_seed_constants_match_dag_authority reads compile_anchor_obligation_subject, native_bundle_obligation_subject, and floor_index_build_share_provider_id from the authority .dag files and asserts the HAND-Rust executor literals still match. Co-authored-by: Cursor <cursoragent@cursor.com>
Cite walk_plan_run_stage_claim_executor_seed_deferral and the authority receipt test in ci_floor_resolve_obligation_authority_note (review 48261). Co-authored-by: Cursor <cursoragent@cursor.com>
Move the finalization transport note below the import block — a data row between imports broke module parsing in heal/regen. Align the mismatch fixture with transported-obligation semantics. Co-authored-by: Cursor <cursoragent@cursor.com>
Route all/any through v2.std.algebra (for_all/any) so heal/regen typecheck green; replace the tautological declared-count RED witness with an anchor-only obligation fork; restore walk_memo drift gate in claim_executor. Co-authored-by: Cursor <cursoragent@cursor.com>
…8340. Rename SharedResolveSatisfied to SatisfiedFromSharedPool, use PascalCase disposition tags matching ResolveRealization variants, and record a single provider_id at reuse sites instead of tautologically duplicating receipt. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the blanket entry exemption in count_unattributed_physical_resolves with a per-entry cap: rostered obligation entries may carry at most one physical cold resolve; a second cold on the same entry refuses finalization. Co-authored-by: Cursor <cursoragent@cursor.com>
When StopBeforeDependents skips batches, name never-ran obligation subjects and report the count law unevaluable instead of diagnosing roster debt change from a partial measurement. Co-authored-by: Cursor <cursoragent@cursor.com>
Any missing transported obligation subject refuses with count law unevaluable; walk_truncated only selects the explanation string. Co-authored-by: Cursor <cursoragent@cursor.com>
Per review 48392 cosmetic finding in run_discovery_batch_node. Co-authored-by: Cursor <cursoragent@cursor.com>
4742d02 to
8b1ff18
Compare
claim_result_for_outcome carries ResolveRealizationObservation through Fail, NotBool, RuntimeError, and TimedOut so semantic witness failure cannot fabricate a missing-realization refusal at finalization. Native- bundle post-resolve failures retain cold observation and resolve_nanos. Per operator ruling on #7810 (loyal-ram-550). Co-authored-by: Cursor <cursoragent@cursor.com>
78739a8 to
470d168
Compare
warm_without_provider_receipt and cold_without_resolve_receipt carry off-variant wildcard arms for discriminating witness REDs; enroll both in gunbc.non_fold_residue with dissolve-on trigger (fixes CI nfr witness). Co-authored-by: Cursor <cursoragent@cursor.com>
142720a to
8d179e6
Compare
…anosecond. Restore floor_resolve_obligation_seed_constants_match_dag_authority with test-only obligation subject literals (production still parses transported obligations). ResolveColdReceipt.resolve_nanos is now std.measure.Nanosecond. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed Finding 1 — obligation-subject drift gate: Restored Finding 2 — unit modeling: — sent from loyal-carp-201 |
Main's zero_eval_collision_records ClaimResult initializer predates the 0B field; fill resolve_realization: None so claim_executor tests compile. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 48609: Finding 1 — warm memo observation never attached: Confirmed. Finding 2 — — sent from loyal-carp-201 |
`run_memo_shared_claims` gated `first` on fresh_resolve, so warm walk-memo hits never attached SatisfiedFromSharedPool to any ClaimResult. `run_shared_entry_claims` now records ColdResolvePerformed on the first claim in the group. RED: memo_warm_attaches_shared_pool_observation. Addresses review 48609. Co-authored-by: Cursor <cursoragent@cursor.com>
Finalization now refuses unrostered observed obligation subjects by name (entry::function) independent of the roster-minus-derived check; delete the count-equality arm that could hide a surplus when counts matched. RED: floor_finalization_refuses_unrostered_observed_obligation_subject_by_name, floor_finalization_names_unrostered_subject_when_roster_subject_also_missing. Also fix falsifier_cold_control_steps_follow_floor_in_job_order: call falsifier_floor_job_steps() (job_id was undefined at runtime). Co-authored-by: Cursor <cursoragent@cursor.com>
fb97223 to
6477c93
Compare
|
Addressing review 48690 (cursor/composer-2.5 REQUEST_CHANGES) — verified against Finding 1: missing
|
Thread obligation_subjects from run_walk through run_stage into spawn, memo, and main-thread batch units so co-resident cheap/emit gates on floor_effect_gate_witness.dag no longer fabricate obligation observations. Co-authored-by: Cursor <cursoragent@cursor.com>
…roup. Per loyal-ram-550 option (a): resolve_realization attaches to the first claim in each resolve group regardless of roster membership; roster enforcement stays in unrostered_observed_obligation_subjects at finalization. Removes the roster-gated attachment path that made the derived-minus-roster check inert on the live path. Co-authored-by: Cursor <cursoragent@cursor.com>
Fold the hand-enumerated CompileAnchor/NativeBundle arms into ci_floor_resolve_obligation_identities() so roster growth does not require editing the duplicate check. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressing review 48718 (cursor/composer-2.5 REQUEST_CHANGES) — implemented per loyal-ram-550 option (c) in the push landing now. Finding — first-in-group attribution breaks cheap-gate schedule — fixedAgree. Restored roster-gated attachment ( Closed the real gap (option c, step 2): Deleted
Floor should go green without upstream scheduling dependency. — sent from loyal-carp-201 |
…scovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com>
…scovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com>
…scovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com>
…scovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com>
…scovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com>
…lves from its declared import closure only (#7835) * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Fix CI fmt and derive Class B stripped overlay at runtime. Apply cargo fmt to v1_interpreter.rs (the sole build failure at 4ba3186). Replace the 4,263-line checked-in rust_test_fixtures copy with gunbc.class_b_import_closure_overlay: read the live file, strip the declared rust import block, and materialize under an ephemeral overlay for rows 3-4. Keep the small authored perturbation fixtures; enroll stripped rows via class_b_import_closure_transport with discovery exclusion for wet effects. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix witness admission: move Class B stripped rows to self_host. Discovery was refusing rows 3-4 as UnclassifiedPathDeferral because they sat under dag/test/claim/ with an OfflineLocalRecipe exclusion but no executing consumer. Relocate to src/v2/test/claim/self_host/ (outside witness_discovery_scan_dirs), matching crate_layout transport-run posture, and register frozen_path_deferral rows for the migration wall. Co-authored-by: Cursor <cursoragent@cursor.com> * Put Class B rows 3-4 on the transport gate, not discovered test fns. loyal-ram-550 option (a): rows 3-4 are ordinary funcs on class_b_import_closure_transport and run_class_b_import_closure_gate calls them directly. Removes the stripped self_host witness file, OfflineLocalRecipe exclusion row, and frozen_path_deferral entries that asserted a non-cadence consumer. Rows 1-2 stay discovery-enrolled and are replayed through run_gunbc_claims inside the same gate. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Shrink Class B witness pool and enroll long-lane rows for budget. Rows 1-2 use the declared-import footprint instead of witness_layer_roots, restoring discovery enrollment with a stronger minimal baseline; substrate long-lane rows exclude them from the 5s discovery batch while the ingest gate still replays via run_gunbc_claims. Adds non_fold_residue roster rows for declared_import_closure_binding verdict projections. Co-authored-by: Cursor <cursoragent@cursor.com> * Add explicit witness admission for Class B long-lane rows. Row 2 cold on the minimal pool measures ~64s locally; CI run 30986525413 measured 48868.8ms. Discovery exclusion requires exact admission rows naming FalsifierSubstrateLongLane, paired with falsifier_substrate_long_lane_rows for falsifier batch scheduling. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Fix Class B gate compile and formalize cold-control double-home. Add extdeps.git.inspect import so rows 3-4 compile; admission rows now state pattern (c): per-PR gate is merge-blocking consumer, falsifier long lane is selection-miss backstop (same shape as compile-clean/regen). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Fix rustfmt drift in Class B gate skip closure code. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop Class B long-lane rows from explicit_witness_admission. FalsifierSubstrateLongLane belongs in falsifier_substrate_long_lane_rows until the admission-carrier migration lands; the projection wall only covers known-red probes today. Carry reason/dissolve_on on SubstrateLongLaneRow. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Add unit tests for Class B gate skip failure-arm labels. The two diff/closure failure paths already return grep-countable run labels (distinct from structural run_class_b_gate); lock that contract with RED controls so observability cannot regress silently. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Fix CI after #7810 merge: exclude Class B long-lane witnesses from discovery. - Add FalsifierSubstrateLongLane exclusion for rust_test_fixtures_import_closure_witness_test.dag so rows 1-2 stop running in per-PR discovery (5s budget kill). - Drop stale non_fold_residue row for binding_refuses (exhaustive match, no wildcard arm). Co-authored-by: Cursor <cursoragent@cursor.com> * Align Class B discovery exclusion row with substrate long-lane precedent. Reuse excl_substrate_long_lane_reason/dissolve on the path-policy row; measured cost remains on the SubstrateLongLaneRow function-grain entries. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: merge main and regen stage0 after generated-artifact drift Merge latest main (source annotation lane) and run regen_stage0 so all generated stage0 artifacts are a fixed point — including v1_compiler_infer_method.rs builtin registry rows that were silently stale after the prior merge (Class B builtins registered in 04_method.dag but missing from the generated resolver). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Deduplicate Class B skip pool roots; enroll HAND-RUST deferral. Project class_b_declared_import_pool_roots live from the overlay .dag authority (identity-join tested) instead of a forked Rust const; reuse witness_layer_roots() for the wide pool. Add the selection_control-style dissolve-on block and extend the Step 5 roster in affected-set-precompute-pruning.md (review 49228). Co-authored-by: Cursor <cursoragent@cursor.com> * Remove unused substrate_long_lane_admission helper. Leftover from an earlier Class B enrollment attempt; long-lane rows now live only on falsifier_substrate_long_lane_rows in ci_layer_roots (review 49245, non-blocking). Co-authored-by: Cursor <cursoragent@cursor.com> * Regen stage0 after rebase onto main. Restore Class B builtin registry rows and align std_core partition with post-rebase main. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Fix NFR roster: drop stale Class B rows that are not live residue sites. binding_refuses is an exhaustive match and row4_pool_coincidence_or_refuse is a boolean composition with no wildcard arm — both were stale roster entries that made non_fold_residue_no_unrostered_or_stale fail in CI. Co-authored-by: Cursor <cursoragent@cursor.com> * Refuse NotRunnable vacuous pass in Class B binding verdict predicates. binding_refuses mapped BindingNotRunnable to true, letting rows 3–4 green without running stripped-overlay controls when overlay setup failed. Align with cli_run NotRunnable contract and compile_diagnostic_census precedent; add discriminating controls on both predicates. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Closure control for the Class B repair: prove rust_test_fixtures resolve * Enroll binding_refused_at_intended_seam on the NFR frontier. Follows the P1 result-algebra rename in declared_import_closure_binding; keeps non_fold_residue_no_unrostered_or_stale green after the predicate tightening landed in a024930. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix strip receipt test to use multiline import block fixture. The stripper closes on a line exactly equal to "}"; the prior single-line import fixture never completed removal. Co-authored-by: Cursor <cursoragent@cursor.com> * Move Class B unit witnesses out of production .dag modules. Witness naming hygiene requires test fn in *_test.dag files; regen pre-plan walk refused the eight co-located controls in overlay/binding. Co-authored-by: Cursor <cursoragent@cursor.com> * Move Class B unit witnesses to discovery-admitted test files. rust_test_fixtures_import_closure_witness_test.dag is path-excluded (FalsifierSubstrateLongLane); the eight predicate/strip controls belong in per-PR discovery, not inherited deferral. Co-authored-by: Cursor <cursoragent@cursor.com> * Close P1(b): compile graph:None is NotRunnable, not seam refusal. Parse/frontend failure produced BindingObserved{symbol_resolves:false, blocking_hard_diagnostic_count:0}, vacuously passing row 3. graph:None now returns NotRunnable; transport maps that to ObservationProductionRefused phase=compile. Discriminating Rust + .dag controls enrolled. Co-authored-by: Cursor <cursoragent@cursor.com> * Refuse binding observation when compile has any hard diagnostic. The symbol-filtered blocking_hard_diagnostic_count never saw unrelated hard errors, so graph+hard-diag could vacuously pass row 3. Any hard diagnostic on the declared-import-closure compile now returns NotRunnable; producer-level control added on a graph-present resolved result. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Replaces the floor finalization resolve-count pin with an identity-join obligation model in eight files:
gunbc.ci_materialization—ResolveObligation/ResolveRealizationcarriers,FloorFinalization.expected_resolve_obligations,resolve_realization_finalization_holdslawci_floor_plan.dag— transportsci_floor_expected_resolve_obligations()unchanged (no HAND-Rust subject literals)claim_executor.rs— records cold/warm realization at reuse sites; finalization refuses unattributed physical resolves, duplicate cold per rostered entry, unrostered observed subjects (identity join, both directions), and missing obligations (unevaluable on truncated walks); preserves resolve observations on every post-acquisition outcome (semantic witness failure no longer fabricates a missing-realization refusal)floor_resolve_realization_witness_test.dag(8 admit/refuse controls) +ci_floor_plan_witness_test.dagtransport checks + mirrored Rust unit testsClass A generated-artifact long-lane relocation was removed from this branch (superseded by #7823).
Production receipt (truncated walk, run 30975530303)
Before this PR, a truncated walk that skipped the native-bundle batch reported a fabricated debt-change diagnosis (
floor resolve count 1 differs from declared 2: duplicate-computation debt changed). On the same failure shape after the fix:The count law is unevaluable (not a roster debt change), the cause is named (walk stopped before dependent batches), and the missing obligation subject is located.
Inherited main red (
falsifier_workflow_witness_test.dag)6477c93437fixes the call site:falsifier_cold_control_steps_follow_floor_in_job_ordernow callsfalsifier_floor_job_steps()(the existing zero-arg wrapper that suppliesjob_id: "falsifier") instead offalsifier_job_steps()with no arguments. One defect, two failing witnesses (red_floor_workflow_fixture_cold_controls_still_executedelegates to the same function).Root cause (not closed by this call-site fix): on main,
falsifier_job_steps()— a call supplying no arguments tofn falsifier_job_steps(job_id: String)— compiled clean and failed only at runtime asundefined variable: job_id. That is the ordinary compiler floor failing in the DESIGN §4b sense: application arity should bind in exact bijection. #7834 walls the surplus direction (CallPositionalSurplus, too many arguments); this is the deficit direction and nothing catches it yet. Raised with sharp-seal-527 for whether it belongs in #7834 or a follow-up — the language-layer hole must stay ranked even though the symptom is repaired here.Identity-join completeness (
6477c93437)Finalization now refuses unrostered observed obligation subjects by name (
entry::function) independently of the roster-minus-derived check. The count-equality arm (obligations.len() != declared_resolve_count()) is removed — entailed by the two identity joins and could hide a surplus when a missing roster subject balanced the count. RED:floor_finalization_names_unrostered_subject_when_roster_subject_also_missing.Test plan
cargo test -p v1-compiler --bin claim_executor floor_finalizationcargo test -p v1-compiler --bin claim_executor claim_result_for_outcome_preservescargo test -p v1-compiler --bin claim_executor floor_finalization_refuses_unrosteredcargo test -p v1-compiler --bin claim_executor memo_warm_attaches_shared_poolcargo test -p v1-compiler --lib nfr_roster_receiptWorker attestation