Repository navigation
Conversation
Keep the provider token beside the bytes it identifies. Preserve both ETag and version from the PUT or verified GET so origin proofs need no later HEAD. Update all consumers of this unreleased Rust outcome shape; stored receipt formats remain unchanged.
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.
Immutable create/adopt outcomes discarded the ETag/version returned with the bytes or successful PUT. A later origin receipt would have to query the object again and could attach verification to a replacement version. Retain the exact operation identity in the existing outcome.
Draft, stacked on #589. This is the storage prerequisite for repairing capsule cross-repository reuse; it does not publish the missing capsule chunk index or fix the failing end-to-end assertion yet. No merge requested.
Behavior
Validation
crab --lib, no default features,nfs,simd-accel,gix-pathmatch): passed; warnings are in unchanged surfaces.crab, same feature set): passed.Review evidence
Store::create_or_read_immutable[_with_attributes]andImmutableCreateOutcome, owned bycrab-storagepublish_xorb_candidate, sharedupload_capsule_content, optimizerupload_destination->object_store::ObjectStore::put_optsand bounded GETobject_store0.14.1UpdateVersionrequires retaining both ETag and version;From<PutResult>preserves them. Bounded GET already captures both from the response carrying the bytes.origin/mainiscc2e4e25f46; this outcome API is absent there and at v1.2.4. This changes an unreleased Rust contract in the capsule stack, not stored receipt encodings. Released receipt fields remain unchanged.Is this the best fix? Preserve identity where verified bytes and provider response are still together. The following capsule proof work can carry that identity without introducing a second read or trusting a later HEAD. Production LOC grows only to return metadata already available at this boundary; most added code is focused test coverage.
Remaining initiative gates
The cache-free publisher/classifier regression still returns
[None]after a successful source push (0.80 seconds). Fresh-bucket RustFS also fails the unchanged remote-authority assertion after 27 commands / 17 checks. Next: carry both whole-body and payload digest identities with verified origin identity; publish shared capsule-bound candidates for direct/protected publication; revalidate source catalog and origin; invalidate matching local misses after visibility. Captured-reader GC retention, final integrated 10 GiB multi-edit/push qualification, fuller blame, source-policy mismatch, and representative S3 scaling/latency remain open. Parent #588 CI also has a Blob response-loss shutdown failure withlocal_disk_reserved_bytes: 160688and an image qualification blocked after repeated AWS CLI registry pulls; their diagnoses remain separate from this change. The excluded audit reports and user-owned advisor plan are omitted.