Skip to content

Commit bcea8ed

Browse files
committed
tui: fix message completion timing and duration display in session view
1 parent f93bb1d commit bcea8ed

File tree

1 file changed

+7
-10
lines changed
  • packages/opencode/src/cli/cmd/tui/routes/session

1 file changed

+7
-10
lines changed

packages/opencode/src/cli/cmd/tui/routes/session/index.tsx

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,12 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las
999999
const sync = useSync()
10001000
const messages = createMemo(() => sync.data.message[props.message.sessionID] ?? [])
10011001

1002+
const final = createMemo(() => {
1003+
return props.message.finish && !["tool-calls", "unknown"].includes(props.message.finish)
1004+
})
1005+
10021006
const duration = createMemo(() => {
1007+
if (!final()) return 0
10031008
if (!props.message.time.completed) return 0
10041009
const user = messages().find((x) => x.role === "user" && x.id === props.message.parentID)
10051010
if (!user) return 0
@@ -1038,21 +1043,13 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las
10381043
</box>
10391044
</Show>
10401045
<Switch>
1041-
<Match
1042-
when={
1043-
(props.message.time.completed &&
1044-
props.parts.some(
1045-
(item) => item.type === "step-finish" && !["tool-calls", "unknown"].includes(item.reason),
1046-
)) ||
1047-
props.last
1048-
}
1049-
>
1046+
<Match when={props.last || final()}>
10501047
<box paddingLeft={3}>
10511048
<text marginTop={1}>
10521049
<span style={{ fg: local.agent.color(props.message.mode) }}></span>{" "}
10531050
<span style={{ fg: theme.text }}>{Locale.titlecase(props.message.mode)}</span>{" "}
10541051
<span style={{ fg: theme.textMuted }}>{props.message.modelID}</span>
1055-
<Show when={props.message.time.completed}>
1052+
<Show when={duration()}>
10561053
<span style={{ fg: theme.textMuted }}>{Locale.duration(duration())}</span>
10571054
</Show>
10581055
</text>

0 commit comments

Comments
 (0)