summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorNoam Bressler <[email protected]>2025-12-22 05:13:11 +0200
committerGitHub <[email protected]>2025-12-21 21:13:11 -0600
commitd4b7f75ce3ceeacfa5d332cde17acc0fd9cc1218 (patch)
treee1c72bf62c9a7a886298f83fc6c229c16c33b960 /packages
parent4f73d580316fea99019ced89e4d83196e7e3f7d7 (diff)
downloadopencode-d4b7f75ce3ceeacfa5d332cde17acc0fd9cc1218.tar.gz
opencode-d4b7f75ce3ceeacfa5d332cde17acc0fd9cc1218.zip
fix: Perform snapshot in cases finish-step is not reached (#5912)
Co-authored-by: noamzbr <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/session/processor.ts14
1 files changed, 14 insertions, 0 deletions
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") {