From b2eeb97d270d34f53e7a2c443cb247f41651607a Mon Sep 17 00:00:00 2001 From: weishu Date: Wed, 24 Dec 2025 17:56:23 +0800 Subject: [PATCH] fix: handle abort signal before and during codex spawn Add checks to gracefully handle abort signals: - Check if abort is already signaled before attempting spawn - Check if abort caused the spawn error instead of rejecting --- cli/src/codex/codexLocal.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cli/src/codex/codexLocal.ts b/cli/src/codex/codexLocal.ts index 33fe8aa7..23ab1728 100644 --- a/cli/src/codex/codexLocal.ts +++ b/cli/src/codex/codexLocal.ts @@ -52,6 +52,11 @@ export async function codexLocal(opts: { logger.debug(`[CodexLocal] Spawning codex with args: ${JSON.stringify(args)}`); + if (opts.abort.aborted) { + logger.debug('[CodexLocal] Abort already signaled before spawn; skipping launch'); + return; + } + process.stdin.pause(); try { await new Promise((resolve, reject) => { @@ -95,6 +100,10 @@ export async function codexLocal(opts: { child.on('error', (error) => { cleanupAbortHandler(); + if (opts.abort.aborted) { + resolve(); + return; + } const message = error instanceof Error ? error.message : String(error); reject(new Error(`Failed to spawn codex: ${message}. Is Codex CLI installed and on PATH?`, { cause: error })); });