The self-hosted runner has code to reuse a pre-fetched repo copy, but every clone still fetches fully.
A prefetch state reader, a pinned upstream ref and a freshness check are compiled in and never called.
What's wrong with this entry?
The runner gained machinery to reuse an already-fetched copy of a repository instead of cloning it: a reader for a prefetch state file, a pinned upstream ref refs/remotes/prefetch/staging, and a function to judge whether the prefetch is fresh enough to trust. None of it runs. Every clone still does a full fetch.
- The reader is called on the clone path but its body returns immediately, so the prefetched tip is never populated.
- The eligibility function, the only thing that would weigh freshness, repo identity, worktree mode and worker epoch, has no caller anywhere in the build.
- The git prepare function accepts the new prefetched-tip argument and never reads it; its fetch is wrapped in a build-time-true condition, so the skip-the-fetch branch is compiled out. A sibling telemetry helper returns an empty object.
- Were it switched on, it would require the environment variable
CLAUDE_RUNNER_TRUST_CANONICAL_PREWARMset with--drain-grace-sec 0, single-worker mode, and the hardcoded repositoryanthropics/anthropic, making it an Anthropic-internal path rather than a general one.
canonical is not a trusted one-shot prewarm (CLAUDE_RUNNER_TRUST_CANONICAL_PREWARM unset or drain-grace > 0), refs/remotes/prefetch/staging
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.234
Self-hosted runners report when warm-up finished
Both mention self hosted runner
-
v2.1.236
Self-hosted runner releases a session only after its work finishes
Both mention self hosted runner
-
v2.1.236
Runner waits for sessions to be released before shutting down
Both mention self hosted runner