diff --git a/packages/cli/src/acp-integration/acpAgent.ts b/packages/cli/src/acp-integration/acpAgent.ts index 391dec18f..3330aadc1 100644 --- a/packages/cli/src/acp-integration/acpAgent.ts +++ b/packages/cli/src/acp-integration/acpAgent.ts @@ -112,7 +112,9 @@ export async function runAcpAgent( // Without this, orphan subprocesses keep the Node.js event loop alive // and the CLI process never terminates after the IDE disconnects. runExitCleanup() - .catch(() => {}) + .catch((err) => { + debugLogger.error('[ACP] Cleanup error:', err); + }) .finally(() => { process.exit(0); }); diff --git a/packages/cli/src/gemini.tsx b/packages/cli/src/gemini.tsx index bd4db854f..5036c3a12 100644 --- a/packages/cli/src/gemini.tsx +++ b/packages/cli/src/gemini.tsx @@ -409,6 +409,7 @@ export async function main() { if (config.getExperimentalZedIntegration()) { await runAcpAgent(config, settings, argv); + // Clean up child processes and force exit, matching other non-interactive modes await runExitCleanup(); process.exit(0); }