core: fix tool part state management to properly handle completion status and metadata

This commit is contained in:
Dax Raad 2025-11-16 20:11:48 -05:00
parent eea9346e97
commit 5dde596aa1

View file

@ -398,15 +398,22 @@ export namespace SessionPrompt {
assistantMessage.finish = "tool-calls"
assistantMessage.time.completed = Date.now()
await Session.updateMessage(assistantMessage)
if (result) {
if (result && part.state.status === "running") {
await Session.updatePart({
...part,
state: {
...(part as any).state,
status: "completed",
...result,
input: part.state.input,
title: result.title,
metadata: result.metadata,
output: result.output,
attachments: result.attachments,
time: {
...part.state.time,
end: Date.now(),
},
},
} as any)
} satisfies MessageV2.ToolPart)
}
if (!result) {
await Session.updatePart({