Incoming file bundles are unpacked and verified in a scratch directory before touching your repo.
What's wrong with this entry?
When a cloud session sends your machine a bundle of file changes, Claude Code now unpacks it into a throwaway directory first and checks it end to end before letting any of it into the repository. A bundle that does not match what it claims to contain is refused whole.
- The bundle is indexed with
index-pack --strictinto a per-run quarantine directory, then verified four ways: every tip it names must be a commit the bundle actually delivered, the stated commit range must name exactly the objects carried, and anything it depends on must be history this side already has. - A record of the delivered object ids is written before the bundle is moved into permanent storage, so a half-applied transfer is detectable later.
- Failures produce one fixed reason rather than a per-check message, and the quarantine is swept. Stale quarantine directories, leftover
.keepfiles and orphaned delivery records are cleaned up on subsequent runs. - Part of the git sync engine; there is no separate switch for the audit.
the pack was refused: malformed, not self-contained, or not exactly what its range names
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.238
Sync state machine gains a moved-root case and a per-turn pull hook
Both mention directory
-
v2.1.238
Untracked-file survey extracted and shared
Both mention directory
-
v2.1.238
Sync internals reshaped around per-file credential state
Both mention directory