{"version":"2.1.315","anchor":"rate-limit-checkpoint-stale-ref-pruning-runs-inside-the-sand","canonical_anchor":"rate-limit-checkpoint-stale-ref-pruning-runs-inside-the-sand","heading":"Usage-limit checkpoints clean up old git references in one sandboxed step","tier":"internal","area":"Checkpoints","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315\/e\/rate-limit-checkpoint-stale-ref-pruning-runs-inside-the-sand","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315","markdown":"### Usage-limit checkpoints clean up old git references in one sandboxed step\n\nOld usage-limit checkpoints are now removed from git in one batch, inside the sandbox when it is on, and a failure is retried next time\n\n**What**\n\nFor its usage-limit feature, Claude Code saves checkpoints in git as references, which are named pointers to saved states. It also removes old ones. Several things changed:\n\n- Old checkpoint references are now removed together in one batch rather than one at a time.\n\n- When sandboxing is on (a sandbox limits what commands can read and change), that removal runs inside the sandbox.\n\n- If removal fails, the log says `stopped deleting old checkpoint refs; the next checkpoint retries`, and the next checkpoint tries again.\n\n- The path used for resuming is added to the repository's local exclude list, which tells git to ignore it without changing shared files.\n\n- Text that the server supplies for the usage-limit release and resume prompts is now checked before use, and Claude Code reports when it rejects or changes that text.\n\n**Why**\n\nThe checkpoint feature now respects the sandbox when it changes your git repository, and keeps its own files out of what git tracks. Messages sent from the server for this feature are checked rather than used as they arrive.\n\n- Area: Checkpoints\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}