From 5553efea5ed175841836fa995cd794593aa484ee Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Wed, 29 Oct 2025 14:28:43 -0400 Subject: [PATCH] only generate user message summary if no diffs --- packages/opencode/src/session/summary.ts | 30 ++++++++++++++---------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 744465dc..115fbe45 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -98,23 +98,29 @@ export namespace SessionSummary { m.parts.some((p) => p.type === "step-finish" && p.reason !== "tool-calls"), ) ) { - const result = await generateText({ - model: small.language, - maxOutputTokens: 100, - messages: [ - { - role: "user", - content: ` + let summary = messages + .findLast((m) => m.info.role === "assistant") + ?.parts.findLast((p) => p.type === "text")?.text + if (!summary || diffs.length > 0) { + const result = await generateText({ + model: small.language, + maxOutputTokens: 100, + messages: [ + { + role: "user", + content: ` Summarize the following conversation into 2 sentences MAX explaining what the assistant did and why. Do not explain the user's input. Do not speak in the third person about the assistant. ${JSON.stringify(MessageV2.toModelMessage(messages))} `, - }, - ], - }) - userMsg.summary.body = result.text - log.info("body", { body: result.text }) + }, + ], + }) + summary = result.text + } + userMsg.summary.body = summary + log.info("body", { body: summary }) await Session.updateMessage(userMsg) } }