diff options
| author | David Hill <[email protected]> | 2026-01-05 14:53:19 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-05 09:53:19 -0500 |
| commit | 2cb3b0484ba90cd6b8d434cebff00816f4893963 (patch) | |
| tree | a05650beddcc9703be4321fe1e0ede4615b93e85 | |
| parent | 11b0df6b868ce13c6c3690a5461827d6e551b3e5 (diff) | |
| download | opencode-2cb3b0484ba90cd6b8d434cebff00816f4893963.tar.gz opencode-2cb3b0484ba90cd6b8d434cebff00816f4893963.zip | |
fix: cleaner interrupted experience (#6785)
Co-authored-by: Dax <[email protected]>
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/app.tsx | 1 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 18 |
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 91be02bb9..e22423309 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -569,6 +569,7 @@ function App() { sdk.event.on(SessionApi.Event.Error.type, (evt) => { const error = evt.properties.error + if (error && typeof error === "object" && error.name === "MessageAbortedError") return const message = (() => { if (!error) return "An error occurred" diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 971f76e8d..1503e37d9 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -1204,7 +1204,7 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las ) }} </For> - <Show when={props.message.error}> + <Show when={props.message.error && props.message.error.name !== "MessageAbortedError"}> <box border={["left"]} paddingTop={1} @@ -1219,15 +1219,27 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las </box> </Show> <Switch> - <Match when={props.last || final()}> + <Match when={props.last || final() || props.message.error?.name === "MessageAbortedError"}> <box paddingLeft={3}> <text marginTop={1}> - <span style={{ fg: local.agent.color(props.message.agent) }}>▣ </span>{" "} + <span + style={{ + fg: + props.message.error?.name === "MessageAbortedError" + ? theme.textMuted + : local.agent.color(props.message.agent), + }} + > + ▣{" "} + </span>{" "} <span style={{ fg: theme.text }}>{Locale.titlecase(props.message.mode)}</span> <span style={{ fg: theme.textMuted }}> · {props.message.modelID}</span> <Show when={duration()}> <span style={{ fg: theme.textMuted }}> · {Locale.duration(duration())}</span> </Show> + <Show when={props.message.error?.name === "MessageAbortedError"}> + <span style={{ fg: theme.textMuted }}> · interrupted</span> + </Show> </text> </box> </Match> |
