You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
File SyncArea: what it touches
ImprovementsKind: in v2.1.282,
ImprovementsSection of the release
What
When Claude Code copies a repository somewhere else, for a cloud session upload or for its own private copy of the git directory, it now checks where git's attribute and ignore settings come from and stops if it cannot carry them along. Git attributes are per-file rules that can tell git to change a file before storing it, for example to encrypt it.
Cloud session upload (the git bundle sent when moving work to a cloud session) is refused, with a detailed explanation and steps to fix it, when core.attributesFile, attr.tree or core.ignoreCase is set outside the repository, when GIT_ATTR_SOURCE is set in the environment, when a GIT_CONFIG-style environment config carries an include or those keys, or when HOME or a config path is relative.
Reading the repository's info/attributes file now records the file's details and the directory state, and uploads that failed because files changed while they were being read are now recorded as such.
The private git directory copy under ~/.claude/seed-admin now fails with reason "placement" when GIT_ATTR_SOURCE is set, when GIT_CONFIG_COUNT or GIT_CONFIG_PARAMETERS inject config keys touching attributes or ignorecase, or when GIT_CONFIG_GLOBAL, GIT_CONFIG_SYSTEM, XDG_CONFIG_HOME, HOME or similar are relative paths.
That copy also reads core.excludesFile and core.attributesFile and keeps only values that come from user or system config files. Values from the repository, a worktree or the command line are ignored, and a log line says so.
The directory-sync git check now also runs git config -z --includes --show-scope --show-origin --type=path --get-all for core.excludesfile and core.attributesfile, so it learns both each value and which file set it.
Why
Without these checks, a file that git would normally encrypt or otherwise change before storing could be uploaded exactly as it sits on disk. If you use a global attributes file, an encryption filter or unusual git environment variables, expect these features to stop and explain what to fix rather than produce a copy that behaves differently.
How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhich commands lead to this upload, and whether anything further up limits who reaches it, is not known.