From ebfeb9e4e4a4f52cfafd74fc42d424cda8d10a02 Mon Sep 17 00:00:00 2001 From: euxaristia <25621994+euxaristia@users.noreply.github.com> Date: Wed, 8 Apr 2026 20:24:51 -0400 Subject: [PATCH] fix(core): disable detached mode in Bun to prevent immediate SIGHUP of child processes --- packages/core/src/services/shellExecutionService.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/core/src/services/shellExecutionService.ts b/packages/core/src/services/shellExecutionService.ts index 46b894426f..363a2cca92 100644 --- a/packages/core/src/services/shellExecutionService.ts +++ b/packages/core/src/services/shellExecutionService.ts @@ -529,12 +529,18 @@ export class ShellExecutionService { cwd: finalCwd, } = prepared; + // Bun's child_process does not properly call setsid() for detached + // processes, leaving children in the parent's session without a + // controlling terminal. They receive SIGHUP immediately. Disable + // detached mode in Bun; killProcessGroup already falls back to + // direct-pid kill when the group kill fails. + const isBun = 'bun' in process.versions; const child = cpSpawn(finalExecutable, finalArgs, { cwd: finalCwd, stdio: ['ignore', 'pipe', 'pipe'], windowsVerbatimArguments: isWindows ? false : undefined, shell: false, - detached: !isWindows, + detached: !isWindows && !isBun, env: finalEnv, });