{"version":"2.1.282","anchor":"git-sync-snapshot-names-corrupt-or-planted-objects-and-legac","canonical_anchor":"git-sync-snapshot-names-corrupt-or-planted-objects-and-legac","heading":"Cloud session git snapshot: new tampered and legacy_tree errors","tier":"notice","area":"File Sync","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.282\/e\/git-sync-snapshot-names-corrupt-or-planted-objects-and-legac","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.282","markdown":"### Cloud session git snapshot: new tampered and legacy_tree errors\n\nGit snapshots for cloud sessions now name tampered objects and legacy trees with actionable fixes instead of a generic git error\n\n**What**\n\nWhen a cloud session starts from your local repository, Claude Code takes a snapshot of your git data to upload. Unusual repositories used to fail with a generic git error such as \"HEAD could not be read back as the commit its id names\". Now:\n\n- `tampered` is a new error for a stored git object that does not match its id. It says \"something other than git wrote an object into this .git\" and tells you to remove it or re-clone, then start a new cloud session there.\n\n- `legacy_tree` is a new error for a tree (git's record of a folder) stored in a form git can read but no longer writes. It tells you to commit a change so git rewrites it. An unreadable result with this cause is now handled the same way as the `other` and `host_config` causes.\n\n- The cause mapper now passes both `tampered` and `legacy_tree` through as named causes.\n\n- Commit listings that come back unreadable or too large are now reported as `unreadable`. Before, any listing that was not ok was reported as `absent`.\n\n- `write-tree` now runs with `--ignore-cache-tree`, and the comparison between your staged files and HEAD uses a built-in helper instead of running `git diff-tree`.\n\nThe upload path involved sits behind the server-side flag `tengu_ccr_bundle_upload`, which has not been read.\n\n**Why**\n\nIf your repository has an odd or old object format, or something other than git has written into `.git`, you now get a specific reason and a concrete fix instead of a vague git error.\n\n- Area: File Sync\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5"}