diff --git a/packages/core/src/hooks/hookRunner.test.ts b/packages/core/src/hooks/hookRunner.test.ts index 0fad35311b..8bb0c68598 100644 --- a/packages/core/src/hooks/hookRunner.test.ts +++ b/packages/core/src/hooks/hookRunner.test.ts @@ -64,6 +64,7 @@ describe('HookRunner', () => { stdin: { write: vi.fn(), end: vi.fn(), + on: vi.fn(), } as unknown as Writable, stdout: { on: mockStdoutOn, diff --git a/packages/core/src/hooks/hookRunner.ts b/packages/core/src/hooks/hookRunner.ts index f394b7fd7e..b64438c432 100644 --- a/packages/core/src/hooks/hookRunner.ts +++ b/packages/core/src/hooks/hookRunner.ts @@ -232,6 +232,12 @@ export class HookRunner { // Send input to stdin if (child.stdin) { + child.stdin.on('error', (err: NodeJS.ErrnoException) => { + // Ignore EPIPE errors which happen when the child process closes stdin early + if (err.code !== 'EPIPE') { + debugLogger.warn(`Hook stdin error: ${err}`); + } + }); child.stdin.write(JSON.stringify(input)); child.stdin.end(); } diff --git a/packages/core/src/hooks/hookSystem.test.ts b/packages/core/src/hooks/hookSystem.test.ts index 044db7e468..43f9e77936 100644 --- a/packages/core/src/hooks/hookSystem.test.ts +++ b/packages/core/src/hooks/hookSystem.test.ts @@ -96,6 +96,7 @@ describe('HookSystem Integration', () => { stdin: { write: vi.fn(), end: vi.fn(), + on: vi.fn(), } as unknown as Writable, stdout: { on: mockStdoutOn,