Skip to content

Phase 0A/0B: enforcement receipt honesty + derived inventory - #7696

Merged
briansrls merged 12 commits into
mainfrom
session/vivid-tern-496
Aug 2, 2026
Merged

briansrls merged 12 commits into
mainfrom
session/vivid-tern-496

Conversation

@briansrls

@briansrls briansrls commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Phase 0A (merged as 07f3b6d): Removes fabricated semantic receipt legs for unbound contracts; red_control_status_for_contract returns RedControlPassed only for Cost; renames enrollment vocabulary (EnrollmentDiscoveryReceipt, EnrolledInFloorRoster, etc.). Fabrication removal is by construction in the production fold; discriminating evidence (only_cost_contract_carries_red_control_probe, unbound_contracts_remain_enumerable) executes at offline cadence only via gunbc.ci_layer_roots witness_exclusion_frontier — not in required CI.
  • Phase 0B: Adds a derived lens enforcement inventory (derive_lens_enforcement_inventory) — one row per lens_contract_registry entry, bidirectional reconciliation, support on LensEnforcementApplication (Cost can be SupportHeld on its bound consumer and SupportGap on complexity.repo-wide simultaneously), eight-cadence scheduling axis, evaluated_scope typed absent until Phase 1. Adds witness admission inventory derived from witness_exclusion_frontier without hand-authored scheduling; first specimen reproduces enforcement_live_witness_test.dag as OfflineLocalRecipe enrolled at offline-recipe cadence, SchedulingExcluded at PR-floor/main-push, with reason and dissolve_on from the frontier row.

Scope leg and whole_corpus_scope constant untouched (0A note preserved).

Self-audit (parallel predicates / dual representations)

Test plan

  • claim_batch --source-root src/v2 --source-root dag --entry src/v2/test/claim/enforcement_inventory_witness_test.dag --functions enforcement_live_witness_exclusion_inventory_matches_frontier,witness_admission_inventory_reconciles_exclusion_frontier — PASS (72ms / 68ms eval)
  • Same entry, all seven lens-inventory witnesses — PASS (corpus-reading *_live fns; ~27–44s eval each)
  • src/v2/lens/enforcement/gate_test.dag — eleven pre-existing tests green at 0A merge (CI run 30763809668)

Brian Searls and others added 9 commits August 2, 2026 16:08
…nestly.

Replace the hand-maintained pending-fn-body-reflection roster with a fold over lens_contract_registry, omit fabricated live receipts for pending contracts, and add witnesses that keep the frontier counted and registry-aligned.

Co-authored-by: Cursor <cursoragent@cursor.com>
Stop borrowing Cost's red probe across contracts, omit semantic receipts for unbound contracts while keeping them enumerable, retarget Vacuity witness to refuse at collection ceiling, rename receipt fields to enrollment/discovery vocabulary, and route unbound detection through consumer_enrolled_for per modeling discipline.

Co-authored-by: Cursor <cursoragent@cursor.com>
Operator retracted mandate item 4: ^vacuity_consumer_witness_nonexistent_probe_target is the load-bearing known-absent input for the three-legged witness, not a tautology to fix.

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

Derives lens inventory from registry/receipts/intents and witness admission inventory from ci_layer_roots witness_exclusion_frontier — no parallel ledger. First specimen: enforcement_live_witness_test.dag shows OfflineLocalRecipe enrolled at offline cadence, excluded from PR floor, with dissolve_on from the frontier row (0A evidence is offline-cadence only).

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title Lens enforcement honesty + derived inventory Phase 0A/0B: enforcement receipt honesty + derived inventory Aug 2, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 2, 2026 20:47
…nts.

Add witness_exclusion_frontier row for enforcement_inventory_witness_test.dag (OfflineLocalRecipe, same dissolve_on as enforcement_live). Stop fabricating corpus-wide evaluated/unavailable in subject_counts_from_receipt; route offline classification through witness_exclusion_row_is_offline via inventory helper.

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

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Addressed review 47569 (composer-2.5) in 88fd63a:

1. Corpus-denominated inventory witnesses on per-PR discovery — Valid. Added witness_exclusion_frontier row for enforcement_inventory_witness_test.dag (OfflineLocalRecipe, same dissolve_on as enforcement_live_witness_test.dag); updated enforcement_coverage_exclusion_note to four files. Added enforcement_inventory_witness_excluded_via_frontier witness and enforcement_inventory_witness_offline_note documenting the local recipe. Seven *_live tests remain offline-cadence-only; two frontier-reconciliation tests share the file grain.

2. subject_counts_from_receipt corpus-wide conflation — Valid. evaluated / unavailable now stay at 0 with subject_counts_evaluated_unavailable_absent_note (same Phase 1 trigger as evaluated_scope); only discovered is receipt-local.

3. witness_primary_cadence_is_offline_recipe parallel predicate — Valid. Deleted; tests route through witness_exclusion_lookup_is_offline in inventory.dag, which delegates to gunbc.ci_layer_roots witness_exclusion_row_is_offline (single authority).

Fast witnesses re-run green (enforcement_live_witness_exclusion_inventory_matches_frontier, witness_admission_inventory_reconciles_exclusion_frontier, enforcement_inventory_witness_excluded_via_frontier).

— sent from vivid-tern-496

@cursor

cursor Bot commented Aug 2, 2026

Copy link
Copy Markdown

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.

Replace wildcard matches over closed coproduct params with exhaustive
if/else and total match arms so non_fold_residue_no_unrostered_or_stale
passes on the PR floor.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot force-pushed the session/vivid-tern-496 branch from 1a02813 to 5d54f52 Compare August 2, 2026 21:43
The .dag parser rejects single-line else-if; use exhaustive match arms
over WitnessConsumerCadence instead, keeping non-fold residue clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls merged commit 6c8738b into main Aug 2, 2026
5 checks passed
@briansrls
briansrls deleted the session/vivid-tern-496 branch August 2, 2026 23:46
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