{"version":"2.1.281","anchor":"runner-checkout-hook-stderr-is-streamed-line-by-line-to-a-ca","canonical_anchor":"runner-checkout-hook-stderr-is-streamed-line-by-line-to-a-ca","heading":"Runner checkout hook stderr is streamed line by line to a callback","tier":null,"area":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281\/e\/runner-checkout-hook-stderr-is-streamed-line-by-line-to-a-ca","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281","markdown":"### Runner checkout hook stderr is streamed line by line to a callback\n\nThe self-hosted runner's checkout hook can now pass its error output out line by line as it runs\n\n**Unclear.** The finding does not say where the streamed lines are shown.\n\n**What**\n\nA self-hosted runner is a machine you run yourself that does Claude Code work. Its checkout hook is a script that runs when code is checked out. The hook's error output is its stderr stream. Each line of that output, cleaned up, can now be handed to an optional `onStderrLine` function as it arrives. The last part of the output is handed over at the end. The last 4096 bytes are still kept for the error message.\n\n**Why**\n\nOutput from the checkout hook can now be followed while the hook runs, not only after it fails. A problem inside `onStderrLine` is caught and does not stop the hook."}