fix(tui): calculate v2 assistant duration from user prompt

This commit is contained in:
Dax Raad 2026-05-03 15:11:05 -04:00
commit d46b22c281

View file

@ -44,6 +44,10 @@ function View(props: { api: TuiPluginApi; sessionID: string }) {
const messages = createMemo(() => sync.data.messages[props.sessionID] ?? []) const messages = createMemo(() => sync.data.messages[props.sessionID] ?? [])
const renderedMessages = createMemo(() => messages().toReversed()) const renderedMessages = createMemo(() => messages().toReversed())
const lastAssistant = createMemo(() => renderedMessages().findLast((message) => message.type === "assistant")) const lastAssistant = createMemo(() => renderedMessages().findLast((message) => message.type === "assistant"))
const lastUserCreated = (index: number) =>
renderedMessages()
.slice(0, index)
.findLast((message) => message.type === "user")?.time.created
createEffect(() => { createEffect(() => {
void sync.session.message.sync(props.sessionID) void sync.session.message.sync(props.sessionID)
@ -83,6 +87,7 @@ function View(props: { api: TuiPluginApi; sessionID: string }) {
last={lastAssistant()?.id === message.id} last={lastAssistant()?.id === message.id}
syntax={syntax()} syntax={syntax()}
subtleSyntax={subtleSyntax()} subtleSyntax={subtleSyntax()}
start={lastUserCreated(index())}
/> />
</Match> </Match>
<Match when={message.type === "synthetic"}> <Match when={message.type === "synthetic"}>
@ -294,12 +299,13 @@ function AssistantMessage(props: {
last: boolean last: boolean
syntax: SyntaxStyle syntax: SyntaxStyle
subtleSyntax: SyntaxStyle subtleSyntax: SyntaxStyle
start?: number
}) { }) {
const { theme } = useTheme() const { theme } = useTheme()
const local = useLocal() const local = useLocal()
const duration = createMemo(() => { const duration = createMemo(() => {
if (!props.message.time.completed) return 0 if (!props.message.time.completed) return 0
return props.message.time.completed - props.message.time.created return props.message.time.completed - (props.start ?? props.message.time.created)
}) })
const model = createMemo(() => { const model = createMemo(() => {
const variant = props.message.model.variant ? `/${props.message.model.variant}` : "" const variant = props.message.model.variant ? `/${props.message.model.variant}` : ""