{"version":"2.1.307","anchor":"runner-checkout-hook-call-is-now-wrapped-in-a-constant-false","canonical_anchor":"runner-checkout-hook-call-is-now-wrapped-in-a-constant-false","heading":"Self-hosted runner checkout hooks now have a time limit","tier":"notice","area":"Self-Hosted Runner","scope":"org","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307\/e\/runner-checkout-hook-call-is-now-wrapped-in-a-constant-false","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307","markdown":"### Self-hosted runner checkout hooks now have a time limit\n\nOn a self-hosted runner, the checkout hook now runs with a time limit, using a built-in default when none is set\n\n**Unclear.** It is unclear whether you can set the checkout hook timeout yourself through a flag, setting or environment variable.\n\n**What**\n\nA self-hosted runner is a machine you run yourself to host Claude Code sessions. When such a runner checks out code, it can run a checkout hook, which is a script of yours that runs at that step. The hook now runs with a time limit. If no timeout is configured, a built-in default applies. Before, the hook had no time limit.\n\nThe code also contains a way to skip the checkout hook entirely, but in this build that path can never run. The hook always runs.\n\n**Why**\n\nA checkout hook that hangs can no longer hold up a session forever. The skip path looks like the start of a way to skip the hook in some cases, such as when a checkout is already prepared, but it does nothing yet.\n\n- Area: Self-Hosted Runner\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: org\n- Heads-up: yes"}