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.
The Git-current protocol canary stops before its LFS corruption check because it assumes the pointer blob is loose. Packed objects are valid;
git repack -adreproduces the same missing-file failure locally.Export this small disposable fixture's source history and unpack into an empty object database for injection. Keep the original database aside and restore it in
finally; verify its complete file hashes, pointer, refs and working bytes afterward. Always pack the caller fixture first so the earlier failure remains covered. The checksum-mismatch rejection and successful restored dry run remain mandatory. A healthy packed duplicate cannot mask the injected loose corruption.Stacked on #575; draft, no merge requested. Qualification setup and documentation only; no runtime, dependency, lockfile, baseline/inventory or expected-failure changes. Requested audit benchmark reports remain excluded.
Validation:
Evidence map: mirror_pre_push_batch_checks -> mirror_lfs_discovery_check -> existing run_binary/run_git and fixture-permission helper -> Git pack/unpack -> real Crab LFS discovery. The production corruption check is unchanged. Current origin/main contains the same direct loose-path read in this fixture. Main source was compared; a main binary was not separately replayed. The observed failure and red/green receipts belong to the capsule stack.
Dependency contracts: Git unpack-objects skips objects already present; Git object-directory control lets the isolated unpack avoid the original packed database. Locked gix-odb source searches packs before loose storage, so adding a loose corrupt duplicate to the original database would not prove the intended check.
Is this the best fix? The fixture establishes and verifies the required physical fault while preserving the original source layout and bytes, instead of imposing loose storage on valid user repositories or weakening the corruption expectation.