Unclear The finding does not say what happens after the existing hooksPath is detected, e.g. whether setup then skips, merges, or errors instead of overwriting.
What
- When
--configure-gitinstalls its own git hooks shim, it now checks whether the repo already has an operator-configuredhooksPathand reports it back asoperatorHooksPathinstead of silently overwriting it. - Runner session setup gained a
--configure-git-driven path that writes session-scoped git hooks and signing artifacts under ahookssubdirectory, pinningcore.hooksPath, the gpg/ssh programs, andGIT_ALLOW_PROTOCOLspecifically for git invoked from lifecycle hooks, separate from the git used for the main checkout. - The helper that decides the
core.hooksPathoverride for these session-scoped artifacts was simplified from a symlink-resolution routine to just returning the configured hooksPath or a/dev/nulldefault.
Why
This keeps an operator's own git hooks configuration intact while giving the runner's lifecycle hooks their own isolated, session-scoped git config.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
The finding does not say what happens after the existing hooksPath is detected, e.g. whether setup then skips, merges, or errors instead of…
Anthropic's release notes agree
Self-hosted runner: Fixed lifecycle-hook commits failing to sign under --configure-git