Repository navigation
feat(v3): add bootstrap authority carrier - #1554
Conversation
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
9d69b87d· Trigger:schedule - Thinking:
282s wall
BLOCKING (3)
Root Cause
src/v3/std/bootstrap_authority.dagbootstrap authority categories were added as a flat coproduct without a dissolution receipt → add the required classification/ledger or dissolve the categories into structural path-root facts.src/v3/std/bootstrap_authority.dagbootstrap membership is modeled as untyped path strings plus a separate category fact → encode the root/category in the path type or variant payload so mismatches are unrepresentable.src/v3/std/bootstrap_authority.dagset membership was represented with a list because it is convenient to literalize → use the std Set/Map shape or document a bounded scaffold with a dissolution trigger.
Non-blocking — Strengths
src/v3/compiler/tests/integration/pb1_bootstrap_full_snapshot_test.rsThe added snapshot test is useful drift coverage for the current generated bootstrap rows.
| // This carrier intentionally records membership only. It does not define the | ||
| // bootstrap process, load ordering, diagnostics policy, or row-82 TestClaim. | ||
|
|
||
| type BootstrapAuthorityKind |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| | CompilerAuthority | ||
| | ExtdepsFixtureAuthority | ||
|
|
||
| type BootstrapAuthority { |
There was a problem hiding this comment.
BLOCKING: BootstrapAuthority makes kind and path independent fields even though the test treats kind-to-prefix as an invariant, so illegal category/path combinations remain representable instead of being type-enforced.
| path: String | ||
| } | ||
|
|
||
| type BootstrapAuthoritySet { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Blocking on #1554: the carrier shape is the right one, but the new authority is not actually present in the generated full bootstrap snapshot yet. Verified on fails with: Static check matches that failure: Please regenerate/check in the bootstrap snapshots after adding the new std authority, then rerun the focused snapshot test. Also replace the placeholder PR title/body with the actual row-82 carrier scope and validation before ready. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
1d7dc44e· Trigger:schedule - Thinking:
179s wall
BLOCKING (1)
Root Cause
src/v3/std/bootstrap_authority.dagBootstrap source roots are modeled as labels over unrefined strings → define root-specific FilePath refinements for each authority variant and use those in the authority carrier.
| // from today; each variant owns its path payload so category and path cannot | ||
| // drift as independent record fields. If a future bootstrap root appears, this | ||
| // coproduct must grow in the same PR as the authority row and ratchet. | ||
| type BootstrapAuthority |
There was a problem hiding this comment.
BLOCKING: BootstrapAuthority variants still carry raw String paths, so root/prefix mismatches remain constructible instead of being enforced by FilePath/root-specific refinements, violating P2/API-level enforcement and M9 grounding.
|
Review metadata
Findings None that rise to rubric violations. The new coproduct is explicitly classified 🟢 terminal with rationale ( Verdict APPROVE — The change is coherent: a substrate Exploratory (optional)
|
|
Review metadata
Verdict: APPROVE The diff adds a typed bootstrap authority carrier with an explicit scope, root-kind classification, key/payload consistency ratchet, and a documented dissolution trigger for the temporary duplicated path payload. I don’t see a concrete violation of the pinned invariants, modeling discipline, coding guide, or testing guide in the changed lines. I did not run builds or tests, per instruction. |
…vice-block-anchor
|
Review metadata
Findings:
Verdict: REQUEST_CHANGES. The PR is otherwise narrowly scoped and the key/value duplication is documented with a dissolution trigger, but the new authority model still admits the exact drift it says it prevents. I did not run builds or tests, per instruction. |
…chet Substrate carrier landed (PR #1554). Rust integration ratchet vehicle per Evaluator standby contract (no new TestPredicate variants until E6 lands). Closes Debt-Paydown ledger row 82 on dispatch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…l blocked (#1569) * docs(r3): retire rows 77, 91 + Phase-1 partial-close row 85 Bundle 1 + 4b dispatch closure receipts: - row 77 (duplicate record-literal fields) → Retired by PR #1551 - row 91 (SubValueRelation BoundedLattice claim) → Retired by PR #1543 Bundle 3 Phase 1 progress: - row 85 (method-template consumer migration) → Partial; PR #1549 audit landed; Phase 2 in flight (#1560, #1561) Per-PR Debt-Paydown receipt against rows 77, 85, 91. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): correct row-85 framing — #1568 is oracle-only, Gap 4/5 still blocked Per Director correction (#828 reply 4365998510): #1568 is a Rust projection / test-oracle helper only, not the Phase-2 consumer-surface closure. Gap 4 (build-step consumer surface) + Gap 5 remain blocked on substrate build-pipeline support for ephemeral generated-source-root .dag imports (tied to #1558 dissolution-first reframe), or on a Gap 5 design that avoids that surface. Records the routing of all 5 gaps from the #1549 Phase 1 audit: - Gap 1, Gap 2: active in Substrate - Gap 3: reference-only via BootstrapAuthority carrier #1554 (landed) - Gap 4, Gap 5: blocked, calm-tern Phase 2 leaf migration parked Per-PR Debt-Paydown receipt against ledger row 85. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
src/v3/std/bootstrap_authority.dagas the generalized bootstrap-authority membership carrier for row 82 prerequisites.BootstrapAuthoritySet = Map<String, BootstrapAuthority>so paths are duplicate-free map keys, with each value carrying only the root classification (StdAuthority,V3StdAuthority,V3SpecAuthority,CompilerAuthority, orExtdepsFixtureAuthority) and no duplicate path payload.bootstrap_authorityis present and matches the generated full bootstrap source-file membership.Verification will consume the
bootstrap_authoritymap fordiagnostics_empty_after_bootstraprow 82; this PR intentionally does not implement that VerificationTestClaim.Validation
CARGO_TARGET_DIR=/tmp/gunbc-pr1554-target cargo test -p v3-compiler --test integration pb1_bootstrap_full_snapshot_test::bootstrap_authority_rows_match_full_bootstrap_source_files -- --exact --nocaptureCARGO_TARGET_DIR=/tmp/gunbc-pr1554-target cargo test -p v3-compiler --test integration pb1_bootstrap_full_snapshot_test::generated_full_bootstrap_snapshots_have_no_diagnostics -- --exact --nocaptureCARGO_TARGET_DIR=/tmp/gunbc-pr1554-target cargo test -p v3-compiler refresh_handwritten_parse_snapshot_manifest -- --ignoredcargo fmt --checkgit diff --checkcargo run -p v3-compiler --features bootstrap-regen-fresh --bin regen_bootstrap -- --verify