From 71076d5c6837d2bb7df21efd7c5cc130f0fd94db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20D=C3=ADaz?= Date: Wed, 17 Sep 2025 20:27:37 -0700 Subject: [PATCH] fix: add synthetic user prompt after session compaction (#2659) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julián Díaz --- packages/opencode/src/session/prompt.ts | 29 +++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 062a9969..9270d5b5 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -346,12 +346,37 @@ export namespace SessionPrompt { model: input.model, }) ) { - const msg = await SessionCompaction.run({ + const summaryMsg = await SessionCompaction.run({ sessionID: input.sessionID, providerID: input.providerID, modelID: input.model.id, }) - msgs = [msg] + const resumeMsgID = Identifier.ascending("message") + const resumeMsg = { + info: await Session.updateMessage({ + id: resumeMsgID, + role: "user", + sessionID: input.sessionID, + time: { + created: Date.now(), + }, + }), + parts: [ + await Session.updatePart({ + type: "text", + sessionID: input.sessionID, + messageID: resumeMsgID, + id: Identifier.ascending("part"), + text: "Use the above summary generated from your last session to resume from where you left off.", + time: { + start: Date.now(), + end: Date.now(), + }, + synthetic: true, + }), + ], + } + msgs = [summaryMsg, resumeMsg] } return msgs }