Cloud sync sizes up your repo first and always tells you why it declined; bundle upload is server-gated.
What's wrong with this entry?
Before asking whether to sync your checkout to a cloud session, Claude Code now measures the repository and picks between starting from a remote ref, uploading a bundle, or deferring. Every refusal now comes with a stated reason. Bundle upload itself is gated by a server flag with no built-in default, so it is off unless the server enables it; CCR_ENABLE_BUNDLE=true forces it on locally and CCR_FORCE_BUNDLE skips remote detection.
- The probe measures pack size via
pack-objects --revs --stdout --thin, the byte count of changed tracked files, and a survey of untracked files. - Written refusal reasons include: repository has no commits yet, a merge or cherry-pick is in progress, the workspace is untrusted, the index has unmerged entries, the remote is a self-hosted pool, the host is not GitHub, the repository is too large, and the platform is unsupported.
- A new telemetry event records the outcome, the forecast, the host, how far the checkout has diverged, and byte counts.
tengu_dir_sync_offer_probe
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.246
Cloud sessions can start from a plain folder, not just a git checkout
Both mention enable bundle
-
v2.1.247
Cloud teleport refuses to seed from a folder with an unreadable
.gitBoth mention enable bundle
-
v2.1.247
Cloud session uploads stage a private, sanitized copy of your git metadata
Both mention enable bundle force