From b892d91baea94dea1605be37d72f515f10608ea3 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 21 Mar 2026 20:22:09 -0400 Subject: [PATCH] feat(tui): improve message error handling and display states --- .../src/cli/cmd/tui/routes/session/index.tsx | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) 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 5dffac37ca..d9e0c4e8d4 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -1336,6 +1336,7 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las const messages = createMemo(() => sync.data.message[props.message.sessionID] ?? []) const final = createMemo(() => { + if (props.message.error) return true return props.message.finish && !["tool-calls", "unknown"].includes(props.message.finish) }) @@ -1347,6 +1348,8 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las return props.message.time.completed - user.time.created }) + const interrupted = createMemo(() => props.message.error?.name === "MessageAbortedError") + const keybind = useKeybind() return ( @@ -1374,7 +1377,7 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las - + - - - - - ▣{" "} - {" "} - {Locale.titlecase(props.message.mode)} - · {props.message.modelID} - - · {Locale.duration(duration())} - - - · interrupted - - + + + + + {Locale.titlecase(props.message.mode)} + · {props.message.modelID} + + + + + {Locale.titlecase(props.message.mode)} + · {props.message.modelID} + + · {Locale.duration(duration())} + + + · interrupted + + +