From d4b7f75ce3ceeacfa5d332cde17acc0fd9cc1218 Mon Sep 17 00:00:00 2001 From: Noam Bressler Date: Mon, 22 Dec 2025 05:13:11 +0200 Subject: [PATCH] fix: Perform snapshot in cases finish-step is not reached (#5912) Co-authored-by: noamzbr --- packages/opencode/src/session/processor.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 1d4d24303..78871630c 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -365,6 +365,20 @@ export namespace SessionProcessor { error: input.assistantMessage.error, }) } + if (snapshot) { + const patch = await Snapshot.patch(snapshot) + if (patch.files.length) { + await Session.updatePart({ + id: Identifier.ascending("part"), + messageID: input.assistantMessage.id, + sessionID: input.sessionID, + type: "patch", + hash: patch.hash, + files: patch.files, + }) + } + snapshot = undefined + } const p = await MessageV2.parts(input.assistantMessage.id) for (const part of p) { if (part.type === "tool" && part.state.status !== "completed" && part.state.status !== "error") {