From 5dde596aa133b661a9400dbc6a5dfc9552e4b51b Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 16 Nov 2025 20:11:48 -0500 Subject: [PATCH] core: fix tool part state management to properly handle completion status and metadata --- packages/opencode/src/session/prompt.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 0982d7c47..f98c1f75f 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -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({