Unclear It is not clear whether this behaviour is switched on unless it is enabled remotely.
What
A worktree is a separate working copy of a git repository that Claude Code can create so work happens apart from your main checkout. A partial clone is a repository downloaded without every file's contents, so git fetches them later when needed. A sparse checkout puts only some of a repository's files on disk. This release changes how Claude Code prepares worktrees in these situations.
When a resumed worktree is moved to a new starting point (its "base"):
- Git first checks that the objects it needs are present, and can fetch them if they are missing.
- It then checks again that the worktree has no uncommitted changes and is still on its branch.
- If any check fails, the worktree keeps its old base and a log line says the fast-resume reset was skipped. Before, a hard reset ran straight after the check for uncommitted changes, with no fetch.
- Sparse checkouts now fail if git left out files it could not read, and the new worktree is removed.
- Git status commands now run in your own language settings (locale).
Another set of changes sits behind a server-controlled switch named tengu_eager_balloon. Nothing has been read about whether that switch is on. When it is on:
- Worktree checkouts run with
GIT_NO_LAZY_FETCH=1, so git does not quietly download missing objects on its own. They also run with a restrictedGIT_ALLOW_PROTOCOL, which limits the network protocols git may use. - For partial clones, Claude Code first lists the missing objects, then fetches them from the repository's promisor remotes using
--filter=blob:noneand--stdin, within a time limit. A promisor remote is the server a partial clone promises to fetch missing data from. - Partial clones and submodules each get their own error messages.
- Sparse-checkout patterns are taken into account.
- A sandbox check was added. A sandbox is a restricted environment for running commands.
Why
In repositories that are partly downloaded or partly checked out, a worktree could start from a base whose files were not all present. With these checks, Claude Code either gets what it needs or leaves the worktree as it was and says so. If you work in a partial clone, worktree setup may now pause to fetch objects, or fail with a clearer message.
It is not clear whether this behaviour is switched on unless it is enabled remotely.