refactor: extract local agent spawn helper and unify process tree cleanup (#410)

This commit is contained in:
Junmo Kim
2026-04-07 09:50:40 +08:00
committed by GitHub
parent e7ba48c761
commit 2f61852a9e
9 changed files with 166 additions and 95 deletions
+14 -21
View File
@@ -1,6 +1,5 @@
import { logger } from '@/ui/logger';
import { restoreTerminalState } from '@/ui/terminalState';
import { spawnWithAbort } from '@/utils/spawnWithAbort';
import { spawnWithTerminalGuard } from '@/utils/spawnWithTerminalGuard';
import { buildMcpServerConfigArgs, buildDeveloperInstructionsArg } from './utils/codexMcpConfig';
import { codexSystemPrompt } from './utils/systemPrompt';
@@ -68,23 +67,17 @@ export async function codexLocal(opts: {
return;
}
process.stdin.pause();
try {
await spawnWithAbort({
command: 'codex',
args,
cwd: opts.path,
env: process.env,
signal: opts.abort,
logLabel: 'CodexLocal',
spawnName: 'codex',
installHint: 'Codex CLI',
includeCause: true,
logExit: true,
shell: process.platform === 'win32'
});
} finally {
process.stdin.resume();
restoreTerminalState();
}
await spawnWithTerminalGuard({
command: 'codex',
args,
cwd: opts.path,
env: process.env,
signal: opts.abort,
logLabel: 'CodexLocal',
spawnName: 'codex',
installHint: 'Codex CLI',
includeCause: true,
logExit: true,
shell: process.platform === 'win32'
});
}