From 9b4e3e7c5350ffa4d77ac7084896d5c121b1f89d Mon Sep 17 00:00:00 2001 From: Taylor Mullen Date: Tue, 10 Feb 2026 09:36:34 -0800 Subject: [PATCH] repro: add even more logging to HookRunner and TestRig --- integration-tests/hooks-system.test.ts | 5 ++++- packages/core/src/hooks/hookRunner.ts | 10 ++++++++++ packages/test-utils/src/test-rig.ts | 6 +++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/integration-tests/hooks-system.test.ts b/integration-tests/hooks-system.test.ts index 649120aa1e..ae8788de51 100644 --- a/integration-tests/hooks-system.test.ts +++ b/integration-tests/hooks-system.test.ts @@ -100,7 +100,10 @@ describe('Hooks System Integration', () => { const scriptPath = rig.createScript( 'stderr_block_hook.cjs', - "process.stderr.write('File writing blocked by security policy'); process.exit(2);", + ` +process.stderr.write('File writing blocked by security policy'); +process.exit(2); +`, ); const normalizedCmd = normalizePath(`node "${scriptPath}"`); diff --git a/packages/core/src/hooks/hookRunner.ts b/packages/core/src/hooks/hookRunner.ts index 9f9c090418..0809879c72 100644 --- a/packages/core/src/hooks/hookRunner.ts +++ b/packages/core/src/hooks/hookRunner.ts @@ -339,6 +339,12 @@ export class HookRunner { stderr += data.toString(); }); + child.on('exit', (code, signal) => { + if (process.env['CI'] === 'true' || process.env['VERBOSE'] === 'true') { + console.log(`[HookRunner] Hook exit. code: ${code}, signal: ${signal}`); + } + }); + // Handle process exit child.on('close', (exitCode) => { clearTimeout(timeoutHandle); @@ -406,6 +412,10 @@ export class HookRunner { clearTimeout(timeoutHandle); const duration = Date.now() - startTime; + if (process.env['CI'] === 'true' || process.env['VERBOSE'] === 'true') { + console.log(`[HookRunner] Hook process error: ${error.message}`); + } + resolve({ hookConfig, eventName, diff --git a/packages/test-utils/src/test-rig.ts b/packages/test-utils/src/test-rig.ts index 91fd62722e..3e92a177b1 100644 --- a/packages/test-utils/src/test-rig.ts +++ b/packages/test-utils/src/test-rig.ts @@ -65,7 +65,11 @@ export function sanitizeTestName(name: string) { * On Windows, this converts backslashes to forward slashes. */ export function normalizePath(p: string): string { - return p.replace(/\\/g, '/'); + const result = p.replace(/\\/g, '/'); + if (process.env['CI'] === 'true' || process.env['VERBOSE'] === 'true') { + console.log(`[normalizePath] "${p}" -> "${result}"`); + } + return result; } // Helper to create detailed error messages