From 0a7cb20e662e115438f56831d09ea96efff171cf Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Mon, 8 Jun 2026 12:47:39 -0500 Subject: [PATCH] fix(opencode): await run event loop (#31389) --- packages/opencode/src/cli/cmd/run.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index e9e6091ff1c..18d033dadb3 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -762,10 +762,15 @@ export const RunCommand = effectCmd({ if (!args.interactive) { const events = await client.event.subscribe() - loop(client, events).catch((e) => { + const completed = loop(client, events).catch((e) => { console.error(e) - process.exit(1) + process.exitCode = 1 }) + async function finish() { + if (args.attach) return + const error = await completed + if (error) process.exitCode = 1 + } if (args.command) { const result = await client.session.command({ @@ -779,7 +784,9 @@ export const RunCommand = effectCmd({ if (result.error) { if (!emit("error", { error: result.error })) UI.error(formatRunError(result.error)) process.exitCode = 1 + return } + await finish() return } @@ -794,7 +801,9 @@ export const RunCommand = effectCmd({ if (result.error) { if (!emit("error", { error: result.error })) UI.error(formatRunError(result.error)) process.exitCode = 1 + return } + await finish() return }