Repository navigation
Conversation
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Protected capsule receive materialized complete Xet catalogs, rejected checkpoint-backed Git workspaces, and could satisfy a scoped candidate's omitted Git blob from the private source repository. The latter was reproduced by a candidate that declared an allowed-path file but omitted its source-only blob body: verification incorrectly succeeded.
Validate scoped candidates using only filtered and incoming objects before installing the private source packs. Scoped and unrestricted capsule receive now share one graph/visibility verifier. Newly reachable objects must belong to the captured visible-ref union or the candidate's verified pack indexes; retained physical objects do not grant access. The admission union uses raw OIDs and avoids per-object scans across every ref. Existing changed-path policy and source-commit synthesis remain in their owners.
Receive also captures paged source and filtered catalog views separately. After Git proof it selects outgoing file bindings plus candidate shard/xorb identities under each authority, then applies the candidate delta. File-only deltas can reuse historical filtered artifacts. Source-first file selection, immutable identity conflicts, physical payload verification and copy-before-ref promotion remain intact. Prepare reads only ref authority.
The shared origin-backed installer now accepts candidate capsules together with captured packs, under the same pack intake limit and external-delta ordering. Candidate-free callers delegate to this implementation and retain cold-clone/cache behavior. Installing candidate packs never grants complete visible-closure authorization.
Stacked on #580 (
codex/xorb-chunk-count-limit), which fixes the independently reproduced 8,192-chunk writer/reader mismatch found by this qualification. No format, dependency or configuration changes here.Validation:
layered checkpoint sources require object-store-backed installation.Evidence map:
verify_receiveand commit re-verification callverify_capsule_candidateincrates/crab-auth-server/src/receive/capsule.rs.verify_capsule_candidate_refschecks actual bounded Git reachability against captured visibility and incoming index membership. The native workspace first installs and validates only filtered/incoming packs.select_pointer_catalogcalls the capturedPointerCatalogLookup::dependencies; existing source delta and content-proof functions retain their policy.origin/mainatcc2e4e25f46eeaee3cfd30025d257397c17a6049lacks this capsule receive module. The stacked parent uses full catalog views and the resident-only installer; this PR depends on the preceding protocol series. These regressions concern that unreleased capsule path.Is this the best fix? It removes full catalog reconstruction from this foreground consumer, isolates candidate proof before broader source access, reuses one graph verifier and one origin-backed installer, and retains separate captured authorities. Approximately 159 net production lines cover key selection, candidate intake and the missing authority proof; the larger diff is qualification coverage.
Remaining gates: deployed protected-receive/S3 qualification, publication/GC races, abandoned-operation cleanup across the full receive lifecycle, 10 GiB multi-edit integration, v1 sibling isolation audit and hosted-S3 latency. Existing receive APIs do not expose caller cancellation; installer cancellation tests do not establish cancellation of every workflow phase. The separate cluster immutable-write-denial qualification failure remains open. No merge or production rollout is included.
The two large-file audit reports and unrelated advisor-plan edits are excluded.