Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.247 Home All releases olderv2.1.246 v2.1.248newer
Claude Code v2.1.247

Cloud session uploads stage a private, sanitized copy of your git metadata

Not switched on
Useful3 Signal4
Cloud Sessions Notable not in their notes

Uploading a repo to a cloud session can read a scrubbed private copy of your git metadata.

The sanitized git staging directory only runs on the bundle route, via CCR_FORCE_BUNDLE, CCR_ENABLE_BUNDLE or a server gate with no local fallback.

Feature flag
tengu_ccr_bundle_seed_enabled Gate removed from the code

This release deleted the gate from the code while it was still reading on for the account this site reads, so the code path no longer asks a flag before running.

This account: on · anonymous baseline: on · compiled default in v2.1.247: not a boolean we can read

Read once, for one account on one subscription tier, against v2.1.247. It isn't a statement about your account. What a flag value here can and cannot tell you

CCR_FORCE_BUNDLECCR_ENABLE_BUNDLEtengu_ccr_bundle_seed_enabled
What

A new module builds a throwaway git directory under ~/.claude/seed-admin when a cloud session uploads your repo as a bundle, so the upload reads a scrubbed copy of HEAD, refs and the index rather than your working .git. It only runs when the bundle route is taken: set CCR_FORCE_BUNDLE or CCR_ENABLE_BUNDLE, or have the remote gate tengu_ccr_bundle_seed_enabled on. That gate has no compiled fallback at the call site, so off the env vars it is entirely the server's call.

Details
  • The staged directory gets a fresh config carrying only a whitelist of safe keys such as core.autocrlf, core.eol, core.symlinks and core.filemode, with automatic gc and maintenance disabled. The index, packed-refs and shallow files are copied and the object store is linked in (via a junction on Windows).
  • It refuses with plain reasons, including that HEAD is not a branch or an object id, that too many shared-index files are present, and placement checks that the staged directory is not inside your checkout or is not a plain directory owned by you.
  • The git environment is scrubbed of GIT_EXEC_PATH, LD_PRELOAD, DYLD_INSERT_LIBRARIES and similar before anything runs, and leftover directories from earlier crashed runs are swept.
  • The upload path gained failure text explaining that this directory is made under ~/.claude/seed-admin from the checkout's HEAD and index.
Evidence

~/.claude/seed-admin is not a plain directory of this user

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.

See this entry in the whole of v2.1.247 →