{"version":"2.1.242","anchor":"cloud-file-sync-now-refuses-unsafe-project-roots-and-explain","canonical_anchor":"cloud-file-sync-now-refuses-unsafe-project-roots-and-explain","heading":"Cloud file sync now refuses unsafe project roots and explains every skip","tier":"notice","area":"Directory Sync","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/cloud-file-sync-now-refuses-unsafe-project-roots-and-explain","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Cloud file sync now refuses unsafe project roots and explains every skip\n\nCloud file sync refuses to run from your home or root directory and explains every skip.\n\n**What**\n\nSync will not run at all when the checkout root is your home directory or above it, the filesystem root, or a directory that holds Claude Code's own configuration folder, and it declines hidden or system directories under home. When it does run, the messages now name the files and say why each one was skipped.\n\n**Details**\n\n- Three outright refusal reasons for dangerous roots, plus two more for hidden and system directories under home (recorded as `folder_hidden_under_home` and `folder_system_under_home`).\n- New per-file explanations: nested git repositories are never entered, files inside dependency and build folders are skipped, uploads that are too slow are kept local and retried, and slow uploads that eventually landed are reported.\n- Deletions can now be held back or withheld as a group rather than silently applied.\n- The over-budget message now states the cap on new files per message.\n- These refusals are unconditional once sync is considered; the notifier text grew from about 9 lines to 17.\n\n**Evidence**\n\n`File sync is off here: this checkout's git root holds, or sits inside, Claude Code's own configuration folder`\n\n- Area: Directory Sync\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 2\/5"}