{"version":"2.1.238","anchor":"cloud-sessions-check-the-repo-before-offering-to-sync-and-sa","canonical_anchor":"cloud-sessions-check-the-repo-before-offering-to-sync-and-sa","heading":"Cloud sessions check the repo before offering to sync, and say why when they cannot","tier":"use","area":"Cloud Sessions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238\/e\/cloud-sessions-check-the-repo-before-offering-to-sync-and-sa","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238","markdown":"### Cloud sessions check the repo before offering to sync, and say why when they cannot\n\nCloud sync sizes up your repo first and always tells you why it declined; bundle upload is server-gated.\n\n**What**\n\nBefore 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.\n\n**Details**\n\n- The probe measures pack size via `pack-objects --revs --stdout --thin`, the byte count of changed tracked files, and a survey of untracked files.\n- 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.\n- A new telemetry event records the outcome, the forecast, the host, how far the checkout has diverged, and byte counts.\n\n**Evidence**\n\n`tengu_dir_sync_offer_probe`\n\n- Area: Cloud Sessions\n- Names: `CCR_ENABLE_BUNDLE`, `CCR_FORCE_BUNDLE`, `--revs`, `--thin`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 4\/5"}