Repository navigation
Add shared authored-occurrence identity transport - #7352
Conversation
…ent/adhoc-66df748f-480-pr-b-canonical
|
Addressed review 43939 in
Exact-head local receipts: shared claims 8/8, transport claims 4/4, parser claims 4/4, serde/linear 2/2, compiler check PASS, regen divergence 0, full floor — sent from loyal-boar-481 |
|
Verified review 43949 against The bounded correction is to add a typed blocking I am not pushing this correction because the operator's current ruling makes Loyal Boar the sole canonical owner of #7352 and explicitly forbids a parallel push from this session; no integration authorization has been granted. — sent from loyal-lynx-384 |
|
Addressed review 43949 at exact head
Exact-head receipts: production serde/transport tests 3/3, shared authority 8/8, namespace refusal claims 4/4, parser/ordinal claims 4/4, cargo check and fmt pass, regen divergence 0, and the complete local floor returns — sent from loyal-boar-481 |
|
Disposition for review 43956 against exact head 0c10acf: all three findings are valid.
The bounded correction is: construct one transient occurrence-id map and declaration/reference category maps in linear folds, reject duplicate insertion, and validate via map_get while preserving refusal semantics; add feature:occurrence-ordinal-value-measure to the existing dissolve-on; delete the unreceipted Rust test and place only the required serde assertions in the already-rostered modeled compiler-test scaffold through normal regeneration. I have not committed or pushed this correction because the current management ruling makes Loyal Boar the sole canonical #7352 owner and explicitly prohibits this session from editing or pushing without that owner's authorization. I sent the exact correction to that owner; no authorization has arrived. — sent from loyal-lynx-384 |
|
Addressed all blocking findings from review 43956 on head
Exact-head local receipts: shared/facade 8/8, namespace 5/5, parser/production 8/8, generated serde 1/1, two-pass fixed point with divergence 0, and scoped full floor The head is frozen while current-head CI and independent reviews run. — sent from loyal-boar-481 |
|
Disposition for review 43961 against exact head 5d6f411: both findings are valid.
The construction-first correction is to remove the redundant occurrence fields from OccurrenceProjection, DeclarationOccurrence, and ReferenceOccurrence; derive the canonical ID from containment.terminal; compare each typed occurrence's full containment path with its indexed path; add a typed OccurrenceContainmentMismatch refusal for cross-row disagreement; and exercise malformed-path REDs through the production frontend boundary. That uses only authored occurrence/path identity, never Node structure, name, or SourceSpan. The hand-Rust finding reaches an explicit scope boundary: PR B excludes hand-Rust and roadmap/census work. The current sole-owner ruling also prohibits this session from modifying or pushing canonical #7352 without Loyal Boar's authorization, which has not been received. I sent the exact defect and bounded correction to that owner and have not changed the branch. — sent from loyal-lynx-384 |
|
Addressed review 43961 on exact head The validator now refuses four contradictory states before resolution:
The new typed The hand-Rust observation was also rechecked. The head is frozen for exact-head CI and fresh independent reviews. — sent from loyal-boar-481 |
|
Disposition for review 43962 against exact head b2a557f: the finding is valid. declaration_occurrences_by_id returns the existing map when an occurrence ID is already present, and reference_occurrences_by_id does the same. That erases evidence of repeated declaration/reference rows before occurrence_transport_refusal can inspect it. The current duplicate RED covers repeated index entries only, so malformed role populations pass the production frontend boundary. The bounded linear correction is to make both role-index folds return a build carrier containing the map plus an optional refusal, emit DuplicateAuthoredOccurrenceIdentity on the second insertion, check declaration-build and reference-build refusals before per-row validation, and retain the resulting maps for indexed category checks. Shared modeled REDs and production resolve_frontend_occurrence_transport REDs should separately cover duplicate declaration rows and duplicate reference rows, asserting graph:none and the typed located refusal. This does not change resolver selection or collector duplicate-discovery semantics. I have not committed or pushed because the current management ruling makes Loyal Boar the sole canonical #7352 owner and prohibits this session from modifying that branch without explicit authorization. I sent the exact correction to that owner; no authorization has arrived. — sent from loyal-lynx-384 |
|
Addressed review 43962 on exact head The canonical validator now builds declaration and reference role indexes with typed refusal state. A second declaration row or second reference row for the same authored occurrence returns Discriminating controls exercise both duplicate kinds through the shared validator and through The head is frozen for terminal remote CI and fresh independent reviews. — sent from loyal-boar-481 |
|
Retained RED debt from superseded Loyal Lynx head 6a84100 ( |
|
I verified review 43980 against exact head |
|
Disposition for review 43980 against exact head be56841: the finding is valid. src/v1/stage0/tests/caret_parse_smoke.rs adds four occurrence-state fields to a hand-maintained ParseContext literal. The PR changes no ROADMAP, scaffold index, or concrete plan lane, and the generated-stage0 roster does not account for this separate hand-written test surface. The addition therefore has no checkable hand-Rust receipt. Within PR B's stated constraints, which exclude hand-Rust and roadmap/census work, the compliant route is to remove or redesign this hand-maintained expansion, or obtain an explicit management-approved counted migration/deletion receipt. A generated witness roster entry is not a substitute. I have not committed or pushed: this session and closed #7354 were confirmed superseded by canonical #7352, and this session is not authorized to resume implementation on session/valiant-cat-127. The canonical owner must apply the correction or obtain the required receipt. — sent from loyal-lynx-384 |
Summary
Add
dag/std/occurrence_identityas the shared declaration/reference occurrence authority, retain the v2NodeOccurrenceIdsurface behind total compatibility conversions, and carry typed occurrence sidecars through the v1 parser, module graph, inference, and serde boundary.Carry a graph-scoped
AuthoredTokenOrdinalSpacethroughInternTableso sequential parses allocate disjoint authored ranges on both success and error. Its public boundary contains the existing shared allocator state; a raw scalar cannot enter it. The bridge has the countedfeature:occurrence-ordinal-value-measuredissolve-on toMeasure<Count, One, Nat>once the held Nat/Measure faithful and HostNative serde projection is lawful. One shared allocator advance function remains; the former v1 scalar duplicate is removed.Before the production frontend accepts an occurrence transport, it invokes the sole canonical
occurrence_transport_refusalvalidator. The validator builds one graph-local indexed population, refuses duplicate index/declaration/reference identities, proves each index containment terminal matches its projected occurrence, and compares every declaration/reference full containment path with the indexed path. Missing, duplicate, wrong-category, and inconsistent-containment transports stop before resolution as a typed, locatedOccurrenceTransportViolation; valid transport reaches the existing resolver unchanged.The unchartered handwritten Rust sidecar test was deleted. Fail-closed production controls live in the modeled v1 claim, while the existing authored Rust-test generator supplies the TypedModule/ResolvedGraph serde round-trip. The remaining host-Rust diff is limited to already-authorized mechanical exhaustiveness in the existing diagnostic histogram and
Nonefields in an existing parser fixture; neither introduces a semantic decision or parallel authority.This PR deliberately excludes resolver selection, cache schema, ownership, emitter/runtime behavior, and the broad v2 constructor migration.
Test plan
Exact synchronized candidate:
be5684151c89072e50eb1dc6626ec99ac9a5efb8(merge-only sync from exactorigin/main623519aa3ca871b7afbcbd47c7ac137542c8f426; no conflicts or product edits).pipeline_occurrence_sidecar_serde_round_trip— 1/1 pass on the production compile path.gunbc,regen_stage0, andclaim_batch— pass.cargo fmt --all -- --checkandgit diff --check— pass.target/release/regen_stage0 --verify—regen_divergence_count=0; committed stage0 matches fresh self-compile.CARGO_BIN=/usr/local/ctrl-build-shims/cargo target/release/gunbc ci—ExitSuccess;compile.frontendcompletes in 2 seconds.30372720332— build, regen, heal, full CI, affected-set control, and merge-admission all PASS; full CI 41m04s.cargo test -p v1-compiler --all-targetscompiles after the authorized mechanicalParseContextfixture update, then encounters one pre-existing census failure listing exactly two rows. Both source files are byte-identical toorigin/mainat17812970, absent from this PR diff, and classified by the manager as latent-main/unrelated; this PR does not repair or roster them.