Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.307 ·

Self-hosted runner gains nested-repository diffs, a way to ignore saved trust, and child updates

Self-hosted runners get a --diff-finds-nested-repository mode, --runner-declares, CLAUDE_CODE_IGNORE_PERSISTED_TRUST and options to update the binary they launch

Group of 5 Use it now Improvements
JSON All of v2.1.307
Use it nowTier: how much it should matter to you
5Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
Self-Hosted RunnerArea: what it touches
ImprovementsKind: in v2.1.307,
What probably matters to youSection of the release

What

A self-hosted runner is a program an organisation runs on its own machines to start Claude Code sessions for remote work (also called BYOC, bring your own compute). Several new runner options and settings appear in this release, none of which were present before.

Nested-repository diffs:

  • --diff-finds-nested-repository lets the Changes pane, which shows file differences, look inside a git repository nested in another folder. The runner config field diffFindsNestedRepository defaults to off and is rejected when capacity is more than 1.
  • When it is on and capacity is 1, the runner passes CLAUDE_CODE_DIFF_COPY_ROOT (an environment variable, a setting handed to a program at start) to the session. The check is only active when that folder is given as an absolute path, and it needs git 2.32 or newer. It inspects the nested repository's .git folder and git settings, guarding against harmful .git contents.
  • Refusals are written to the error output as [changes pane] repository not shown: lines, at most eight per session process.
  • When a session is interrupted for an update, the runner removes its copies of the Changes pane's git settings.
  • A new hidden option --runner-declares <names> lets the runner tell Claude Code what it handles. The value is a comma-separated list: diff-finds-nested-repository turns on the nested-repository mode in the session, and no-repository-checked-out sets a second flag. It is also accepted as --runner-declares=. In a BYOC remote environment (CLAUDE_CODE_REMOTE with CLAUDE_CODE_ENVIRONMENT_KIND=byoc) declaring diff-finds-nested-repository prints a warning.
  • The runner log explains that --diff-finds-nested-repository is on and that any session-start script must put nothing before "$@", meaning it must pass every argument through. Older Claude Code builds reject the new option as unknown.

Workspace trust:

  • CLAUDE_CODE_IGNORE_PERSISTED_TRUST is a new environment variable. When set, no saved record of you trusting a workspace counts in that process. The runner sets it to "1" unless trustWorkspace is set, for example when started with --trust-workspace false.

Updates and other runner changes:

  • The session handler takes updatedChildBin, restartedHere, childUpdateBin and onChildUpdateReady, so a restarted session can launch an updated Claude Code binary, with empty start arguments. The binary can also be swapped through CLAUDE_RUNNER_CLAUDE_BIN and CLAUDE_RUNNER_UPDATE_BIN.
  • A session interrupted with the reason 'update' is reported as completed; the runner disconnects the worker first and sets failedOnUpdateBuild.
  • The runner's bundle of trusted certificates for git is now filtered and reports certificatesLeftOut, and a new setup failure kind SETUP_FAILURE_KIND_CHECKOUT_HOOK_TIMEOUT is added.
  • The proxy settings passed to sessions were reworked around SELF_HOSTED_RUNNER_AGENT_PROXY_URL.

Why

These matter to people who operate self-hosted runners rather than ordinary command-line users. Runner setups that wrap the Claude Code launch command must pass every argument through, or the nested-repository diff option is turned off. Runners started without workspace trust now make sessions ignore earlier trust decisions.

How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agreeSelf-hosted runner: Changed checkout hooks to be stopped after 30 minutes by default, failing the session's setup; if yours needs longer…

See this entry in the whole of v2.1.307 →

Feedback