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 6ae31dbed..190180d9b 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -982,59 +982,62 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las {props.message.error?.data.message} - - - {Locale.titlecase(props.message.mode)} - - {(() => { - const retry = createMemo(() => { - const s = status() - if (s.type !== "retry") return - return s - }) - const message = createMemo(() => { - const r = retry() - if (!r) return - if (r.message.includes("exceeded your current quota") && r.message.includes("gemini")) - return "gemini 3 way too hot right now" - if (r.message.length > 50) return r.message.slice(0, 50) + "..." - return r.message - }) - const [seconds, setSeconds] = createSignal(0) - onMount(() => { - const timer = setInterval(() => { - const next = retry()?.next - if (next) setSeconds(Math.round((next - Date.now()) / 1000)) - }, 1000) - - onCleanup(() => { - clearInterval(timer) + + + + {Locale.titlecase(props.message.mode)} + + {(() => { + const retry = createMemo(() => { + const s = status() + if (s.type !== "retry") return + return s }) - }) - return ( - - - {message()} [retrying {seconds() > 0 ? `in ${seconds()}s ` : ""} - attempt #{retry()!.attempt}] - - - ) - })()} - - - item.type === "step-finish" && item.reason !== "tool-calls") - } - > - - - {Locale.titlecase(props.message.mode)}{" "} - {props.message.modelID} - - - + const message = createMemo(() => { + const r = retry() + if (!r) return + if (r.message.includes("exceeded your current quota") && r.message.includes("gemini")) + return "gemini 3 way too hot right now" + if (r.message.length > 50) return r.message.slice(0, 50) + "..." + return r.message + }) + const [seconds, setSeconds] = createSignal(0) + onMount(() => { + const timer = setInterval(() => { + const next = retry()?.next + if (next) setSeconds(Math.round((next - Date.now()) / 1000)) + }, 1000) + + onCleanup(() => { + clearInterval(timer) + }) + }) + return ( + + + {message()} [retrying {seconds() > 0 ? `in ${seconds()}s ` : ""} + attempt #{retry()!.attempt}] + + + ) + })()} + + + item.type === "step-finish" && item.reason !== "tool-calls")) || + props.last + } + > + + + {Locale.titlecase(props.message.mode)}{" "} + {props.message.modelID} + + + + ) }