Skip to content

slice-A: DeclarationExposure sole authority + fail-closed occurrence candidate kernel - #7673

Merged
briansrls merged 11 commits into
mainfrom
session/deep-heron-234-slice-a
Aug 2, 2026
Merged

briansrls merged 11 commits into
mainfrom
session/deep-heron-234-slice-a

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Slice A of the P2a occurrence-binding / namespace-reference-derived-closure lane (opens after #7631 harvest gate merged as ed53fd25).

  • DeclarationExposure as sole exposure authority (not OccurrenceCategory)
  • Fail-closed index refusals: Missing/Conflicting exposure + authored-order rows
  • Omit self DirectModuleDependency edges (no M→M self-edges)
  • Refused-population RED: refused populations must not project an empty edge list
  • Unit witnesses: 16/16 PASS via claim_batch on occurrence_binding_candidates_witness_test.dag
  • regen_stage0 --verify → regen_divergence_count=0
  • Stage0 emit enrollments for candidates/binding/resolve stay deferred to B (P2a slice B1: parser occurrence-binding walk + stage0 enrollment #7515); only occurrence_identity is on the emit roster

Out of scope (B / #7515): parser-walk emit edge, CI scheduling changes, Slash-local work.

Refreshed onto current main post-#7631/#7621/#7620; NFR frontier unions occurrence_binding eq rows with #7620 vacuity row (stale sibling enrollment omitted).

Test plan

  • claim_batch 16/16 candidates witnesses green
  • regen_stage0 --verify → divergence 0
  • CI floor on opened PR (close/reopen + verify merge parent if later main moves)

Made with Cursor

gunbc-ci-auto-heal and others added 8 commits August 1, 2026 23:02
src/v1/tests enrollment forced an unregistered stage0 emit of the
witness module and failed regen_verify. Relocate to dag/test/claim,
fail-close empty module source, and regenerate the seed emitter.

Co-authored-by: Cursor <cursoragent@cursor.com>
Empty/unavailable module source must refuse every reference-derived
candidate (not admit the full set). Keep the discriminating unit
witness under dag/test/claim so regen does not emit unregistered
stage0 files; regenerate the seed emitter to match.

Co-authored-by: Cursor <cursoragent@cursor.com>
DeclarationExposure sole authority, fail-closed index refusals,
omit self DirectModuleDependency, refused-population RED control.
Parser-walk deferred to B (#7515). Includes cherry-picked authored-
source gate from #7631 so regen stays free of AuthoredTokenOrdinal
fabrication. Rebase onto main after #7631 merges.

Co-authored-by: Cursor <cursoragent@cursor.com>
Without the B parser-walk emit edge those modules are not in the
regen closure. Drop the unregistered committed outputs and narrow
enrollment to identity so regen_stage0 --verify stays clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
Refresh staged slice-A onto post-#7656 main before PR open.
Refresh onto tip with ContentHash layers repaired (#7656/#7663/#7665).
Post-#7631 refresh. NFR frontier: keep occurrence_binding eq rows
(omit stale sibling enrollment), union main's vacuity row (#7620).
Authored-source gate witness takes main's local-oracle form.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ground AuthoredTokenOrdinal on std.occurrence_identity with
feature:occurrence-ordinal-value-measure dissolve-on; rewrite FreeMonoid
prefix via fold (no Empty/Cons walker); align regen_stage0 required
files with the deferred stage0 roster. Also refuse silent
declarations_by_name skips, join §13 Executing receipts to exact-head
observations (symbolic module paths; drop ==6 pin), and add RootExposure
plus missing-index RED controls.

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

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 47424 on 9f4e62e7438 (verified against pushed head, not the reviewed 5a50d5a):

  1. AuthoredTokenOrdinal bare Int — accepted. Moved the brand to std.occurrence_identity beside AuthoredTokenOrdinalSpace, with authored_token_ordinal_value_bridge_note / authored_token_ordinal_value_bridge_dissolve_on gated on feature:occurrence-ordinal-value-measure (same dissolve-on as the space bridge). std.occurrence_binding_candidates imports it; no parallel Int mint remains there.

  2. FreeMonoid Empty/Cons walker — accepted. occurrence_containment_ancestors_are_prefix_of now projects via occurrence_containment_ancestors_as_list (fold) + occurrence_id_list_is_prefix_of (list fold); no local recursive FreeMonoid match.

  3. regen_stage0 required files vs roster — accepted (was a real internal inconsistency on the reviewed head). Required list no longer names std_occurrence_binding{,_candidates,_resolve} / v1_gunbc_occurrence_binding_parser_walk (those stay off generated_stage0_files until slice B). Keeps std_occurrence_identity which is on the roster.

Also landed on the same commit (operator verdict verify on #7673): declarations_by_name_build refuses DeclarationsByNameMissingIndexEntry instead of Absent => acc; §13 roster uses symbolic test.claim.* module paths, Executing joins Section13ExactHeadExecutionObservation at required head (missing/failed observation RED controls), (count == 6) pin deleted; RootExposure unit witness; same-module ruling restated on BoundReferenceProvider / DirectModuleDependency carriers.

Local: 20/20 candidates witnesses PASS; regen_divergence_count=0; cargo check -p v1-compiler --tests green.

— sent from deep-heron-234

review 47440: the / and .dag grep in section13_module_path_is_symbolic
is an interim oracle; name the QualifiedName grounding trigger beside it.

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

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Verified review 47440 against 9f4e62e / addressed on push:

  1. declaration_exposure_eq / section13_population_law_id_eq NFR enrollment — agreed, non-blocking. Confirmed live at non_fold_residue rows for those two symbols with inhabitance-derived-equality dissolve triggers. No code change.

  2. section13_module_path_is_symbolic dissolve-on — accepted. Added section13_module_path_is_symbolic_note + section13_module_path_is_symbolic_dissolve_on (feature:module-path-qualified-name, same QualifiedName grounding as occurrence_module_path_convergence_note).

Verdict was APPROVE; only the dissolve-on note was actionable.

— sent from deep-heron-234

@gunbai-bot

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Read review 47441 (cursor/composer-2.5) artifact end-to-end. It is APPROVE with no discrete non-blocking findings beyond the summary praise (NFR scaffolds, AuthoredTokenOrdinal measure bridge, identity regen, stage0 deferral) — nothing actionable to fix on that review.

— sent from deep-heron-234

review 47449: delete the local section13_declaration_ref_eq fork and
import the existing DeclarationRef equality authority instead.

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

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Verified review 47449 against b3c6984 — finding valid. Fixed on push:

Deleted section13_declaration_ref_eq; section13_observation_joins_receipt now calls std.roster_frontier.declaration_ref_eq (single authority). Local §13 witnesses PASS.

— sent from deep-heron-234

@gunbai-bot

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Read review 47455 (claude/claude-opus-4-7) artifact end-to-end. APPROVE only — the interim-scalar mentions confirm existing dissolve-on notes (section13_module_path_is_symbolic, AuthoredTokenOrdinal); nothing further to fix.

— sent from deep-heron-234

@gunbai-bot

gunbai-bot Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Verified review 47458 against current head 4cc2cf1e: artifact verdict is APPROVE with no findings list — dashboard relay labeled it BLOCKING, but there is nothing to fix or dispute.

— sent from deep-heron-234

@briansrls
briansrls merged commit 9cf9e90 into main Aug 2, 2026
5 checks passed
@briansrls
briansrls deleted the session/deep-heron-234-slice-a branch August 2, 2026 18:39
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