diff options
| author | Shoubhit Dash <[email protected]> | 2026-02-20 18:31:13 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-20 07:01:13 -0600 |
| commit | 7e1051af0784693d7fc37ae31d6f513d47e0d24b (patch) | |
| tree | a14ac1d1fdfa7ac72fa0fb9058ef1daaac83e674 /packages/ui/src/components/message-part.tsx | |
| parent | 93615bef28fe0e17f673ba0f90c171309f7d5f91 (diff) | |
| download | opencode-7e1051af0784693d7fc37ae31d6f513d47e0d24b.tar.gz opencode-7e1051af0784693d7fc37ae31d6f513d47e0d24b.zip | |
fix(ui): show full turn duration in assistant meta (#14378)
Diffstat (limited to 'packages/ui/src/components/message-part.tsx')
| -rw-r--r-- | packages/ui/src/components/message-part.tsx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 4b223bf35..92da5b625 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -104,6 +104,7 @@ export interface MessagePartProps { hideDetails?: boolean defaultOpen?: boolean showAssistantCopyPartID?: string | null + turnDurationMs?: number } export type PartComponent = Component<MessagePartProps> @@ -275,6 +276,7 @@ function renderable(part: PartType) { export function AssistantParts(props: { messages: AssistantMessage[] showAssistantCopyPartID?: string | null + turnDurationMs?: number working?: boolean }) { const data = useData() @@ -365,6 +367,7 @@ export function AssistantParts(props: { part={entry().part} message={entry().message} showAssistantCopyPartID={props.showAssistantCopyPartID} + turnDurationMs={props.turnDurationMs} /> )} </Show> @@ -849,6 +852,7 @@ export function Part(props: MessagePartProps) { hideDetails={props.hideDetails} defaultOpen={props.defaultOpen} showAssistantCopyPartID={props.showAssistantCopyPartID} + turnDurationMs={props.turnDurationMs} /> </Show> ) @@ -1060,8 +1064,12 @@ PART_MAPPING["text"] = function TextPartDisplay(props) { if (props.message.role !== "assistant") return "" const message = props.message as AssistantMessage const completed = message.time.completed - if (typeof completed !== "number") return "" - const ms = completed - message.time.created + const ms = + typeof props.turnDurationMs === "number" + ? props.turnDurationMs + : typeof completed === "number" + ? completed - message.time.created + : -1 if (!(ms >= 0)) return "" const total = Math.round(ms / 1000) if (total < 60) return `${total}s` |
