Conversation
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.
Summary
Avoid reconstructing proven blob leaves during shared upload-pack graph selection. The original planner fails the new minimized regression with a 2 MiB blob under a 64 KiB aggregate inflation budget. The retained Kubernetes depth-100 failure motivated this work, but its cold differential rerun is still pending.
Ownership and scope
The change belongs in
crab-read::plan_with_operation, shared by classic capsule fetch, upload-pack wire handling, and HTTP Git reads. ExistingOperationContext::pinned_object_metadataprovides snapshot-bound kind proof; it does not charge logical objects, so deferred visits are charged explicitly. Response generation remains responsible for packed-entry validation.The regression publishes through the real capsule push path to an in-memory object store, plans a shallow response, installs its pack with native Git, verifies byte-identical blob content, and confirms explicit blob roots still hit the unchanged inflation limit. README documents the boundary.
Validation
cargo fmt --all --checkandgit diff --checkpass.cargo clippy --locked -p crab-read --all-targets -- -D warningspasses.Container CI repair
The HTTP server image build failed before Rust compilation because Debian no longer publishes the pinned
libpcre2-8-0=10.42-1+deb12u1in the configured Bookworm repositories. With explicit user approval, both the server and Compose-example Dockerfiles now pin10.42-1+deb12u2; image digests and security gates remain unchanged.On the exact pinned Debian base, AMD64 (server package set) and ARM64 (Compose-example package set) both reproduced the obsolete-pin failure and installed the new exact version successfully. This is package-installation proof, not a full image/Compose qualification pass; current-head CI must supply that proof.
Still open
Draft pending current-candidate cold Kubernetes depth-100 verification, final exact-byte/integrity proof, and CI. This is not a claim that all shallow-clone amplification is eliminated. It does not waive push/fetch latency gates, establish matched-v1 performance, complete Xet/provider/recovery qualification, or retire v1. PR #208 is already merged; this is a follow-up against
crab-v2.