{"version":"2.1.307","anchor":"self-hosted-runner-gains-diff-finds-nested-repository-supp","canonical_anchor":"claude-code-ignore-persisted-trust-makes-workspace-trust-rec","heading":"Self-hosted runner gains nested-repository diffs, a way to ignore saved trust, and child updates","tier":"use","area":"Self-Hosted Runner","scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307\/e\/self-hosted-runner-gains-diff-finds-nested-repository-supp","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307","markdown":"### Self-hosted runner gains nested-repository diffs, a way to ignore saved trust, and child updates\n\nSelf-hosted runners get a `--diff-finds-nested-repository` mode, `--runner-declares`, `CLAUDE_CODE_IGNORE_PERSISTED_TRUST` and options to update the binary they launch\n\n**What**\n\nA 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.\n\nNested-repository diffs:\n\n- `--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.\n\n- 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.\n\n- Refusals are written to the error output as `[changes pane] repository not shown:` lines, at most eight per session process.\n\n- When a session is interrupted for an update, the runner removes its copies of the Changes pane's git settings.\n\n- 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.\n\n- 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.\n\nWorkspace trust:\n\n- `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`.\n\nUpdates and other runner changes:\n\n- 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`.\n\n- A session interrupted with the reason 'update' is reported as completed; the runner disconnects the worker first and sets `failedOnUpdateBuild`.\n\n- 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.\n\n- The proxy settings passed to sessions were reworked around `SELF_HOSTED_RUNNER_AGENT_PROXY_URL`.\n\n**Why**\n\nThese 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.\n\n- Area: Self-Hosted Runner\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 4\/5\n- Scope: both\n- Heads-up: no"}