fix(core): disable detached mode in Bun to prevent immediate SIGHUP of child processes

This commit is contained in:
euxaristia 2026-04-08 20:24:51 -04:00
parent d1a062bcc4
commit ebfeb9e4e4

View file

@ -529,12 +529,18 @@ export class ShellExecutionService {
cwd: finalCwd, cwd: finalCwd,
} = prepared; } = 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, { const child = cpSpawn(finalExecutable, finalArgs, {
cwd: finalCwd, cwd: finalCwd,
stdio: ['ignore', 'pipe', 'pipe'], stdio: ['ignore', 'pipe', 'pipe'],
windowsVerbatimArguments: isWindows ? false : undefined, windowsVerbatimArguments: isWindows ? false : undefined,
shell: false, shell: false,
detached: !isWindows, detached: !isWindows && !isBun,
env: finalEnv, env: finalEnv,
}); });