diff options
| author | Aiden Cline <[email protected]> | 2025-07-08 10:38:11 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-08 10:38:11 -0500 |
| commit | 8322f18e0339fa015346c6700b4e71d2b193b402 (patch) | |
| tree | 9c346dcef55a061cc34ab01fcf946288aa53b17b | |
| parent | 562bdb95e2e2503a0b1ff73a3fa565d705a8e412 (diff) | |
| download | opencode-8322f18e0339fa015346c6700b4e71d2b193b402.tar.gz opencode-8322f18e0339fa015346c6700b4e71d2b193b402.zip | |
fix: display errors when using `opencode run ...` (#751)
| -rw-r--r-- | packages/opencode/src/cli/cmd/run.ts | 15 | ||||
| -rw-r--r-- | packages/opencode/src/session/index.ts | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index 453b273d0..218e1ea8f 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -125,6 +125,20 @@ export const RunCommand = cmd({ } }) + let errorMsg: string | undefined + Bus.subscribe(Session.Event.Error, async (evt) => { + const { sessionID, error } = evt.properties + if (sessionID !== session.id || !error) return + let err = String(error.name) + + if ("data" in error && error.data && "message" in error.data) { + err = error.data.message + } + errorMsg = errorMsg ? errorMsg + "\n" + err : err + + UI.error(err) + }) + const result = await Session.chat({ sessionID: session.id, providerID, @@ -140,6 +154,7 @@ export const RunCommand = cmd({ if (isPiped) { const match = result.parts.findLast((x) => x.type === "text") if (match) process.stdout.write(match.text) + if (errorMsg) process.stdout.write(errorMsg) } UI.empty() }) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 614e7e5a8..41454307c 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -99,6 +99,7 @@ export namespace Session { Error: Bus.event( "session.error", z.object({ + sessionID: z.string().optional(), error: MessageV2.Assistant.shape.error, }), ), @@ -727,6 +728,7 @@ export namespace Session { next.error = new NamedError.Unknown({ message: JSON.stringify(e) }, { cause: e }) } Bus.publish(Event.Error, { + sessionID: next.sessionID, error: next.error, }) } |
