Repository navigation
Conversation
`promote` no longer re-reads a manifest staged by the same `PartWriteTxn`, so the "body-absent precommit is rejected" contract now applies only to manifests not staged there. Also document that `staged_manifest_proofs` entries must never be erased, because `precommitAdd` uses them as the A3 barrier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Extract `blobDependenciesOf` so `stageManifest` and the non-staged path of `promote` use the same filter. Cleanup of staged manifests now logs at debug level when the exact-incarnation remove returns `Gone` or `Mismatch`, or throws, instead of silently swallowing it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a test that promotes its own staged manifest with Inline and Blob entries: it fails with `no dependency proof` while one blob is missing, then commits without a manifest read. Add a test that `abandon` keeps the live precommit body and removes another staged manifest without `HEAD`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The record only says what a confirmed put-if-absent returned in `stageManifest`. It does not prove that the body still exists at `promote` time, so "proof" overstated it. Rename the member to `staged_manifests` and say "record" in the docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The blob dependencies of a `StagedManifest` keep the order the caller passed the entries, which can differ from the path-sorted encoded body. `promote` does not detect a staged body removed outside the protocol; the read path and `fsck` report it later. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
1'000 parts were inserted:
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Reduced CAS object storage requests by reusing the proof recorded when a manifest is staged. Promotion no longer reads the manifest back, and cleanup deletes abandoned staged manifests using the recorded incarnation without a preliminary HEAD request.
Documentation entry for user-facing changes
...
CI/CD Options
Exclude tests:
Regression jobs to run: