From e3e459fc50a81657930cc73d6bc63adf08ad9d62 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 14 Sep 2025 16:28:06 -0500 Subject: [PATCH] fix: reasoning metadata persistence (#2602) --- packages/opencode/src/session/message-v2.ts | 9 +++++++++ packages/opencode/src/session/prompt.ts | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index d0f7f317..c031dbe7 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -549,6 +549,15 @@ export namespace MessageV2 { }, ] } + if (part.type === "reasoning") { + return [ + { + type: "reasoning", + text: part.text, + providerMetadata: part.metadata, + }, + ] + } return [] }), diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index ef3deeb3..f6f0ffb9 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -853,6 +853,7 @@ export namespace SessionPrompt { if (value.id in reasoningMap) { const part = reasoningMap[value.id] part.text += value.text + if (value.providerMetadata) part.metadata = value.providerMetadata if (part.text) await Session.updatePart(part) } break @@ -861,7 +862,7 @@ export namespace SessionPrompt { if (value.id in reasoningMap) { const part = reasoningMap[value.id] part.text = part.text.trimEnd() - part.metadata = value.providerMetadata + part.time = { ...part.time, end: Date.now(),