From be51ce3e9b5609f00e2925105e052cb5238adfda Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Mon, 8 Jun 2026 12:29:08 -0500 Subject: [PATCH] fix(opencode): await local run event loop --- 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 e9e6091ff1c0..18d033dadb3c 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 }