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';
export async function opencodeLocal(opts: {
path: string;
@@ -15,23 +14,17 @@ export async function opencodeLocal(opts: {
logger.debug(`[OpencodeLocal] Spawning opencode with args: ${JSON.stringify(args)}`);
process.stdin.pause();
try {
await spawnWithAbort({
command: 'opencode',
args,
cwd: opts.path,
env: opts.env,
signal: opts.abort,
shell: process.platform === 'win32',
logLabel: 'OpencodeLocal',
spawnName: 'opencode',
installHint: 'OpenCode CLI',
includeCause: true,
logExit: true
});
} finally {
process.stdin.resume();
restoreTerminalState();
}
await spawnWithTerminalGuard({
command: 'opencode',
args,
cwd: opts.path,
env: opts.env,
signal: opts.abort,
shell: process.platform === 'win32',
logLabel: 'OpencodeLocal',
spawnName: 'opencode',
installHint: 'OpenCode CLI',
includeCause: true,
logExit: true
});
}