summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-01-21 00:57:51 -0500
committerDax Raad <[email protected]>2026-01-21 01:01:20 -0500
commit65938baf00f58ef9d5e275b85cb4641d40f8ceae (patch)
tree35880482a16e93d5c836634882f567812ba1197c
parenta6399619738f67a024fdd5928c0137f8f7074c68 (diff)
downloadopencode-65938baf00f58ef9d5e275b85cb4641d40f8ceae.tar.gz
opencode-65938baf00f58ef9d5e275b85cb4641d40f8ceae.zip
core: update session summary after revert to show file changes
-rw-r--r--packages/opencode/src/session/revert.ts13
-rw-r--r--packages/opencode/src/session/summary.ts2
2 files changed, 14 insertions, 1 deletions
diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts
index 35c7b9a60..7afe44e2c 100644
--- a/packages/opencode/src/session/revert.ts
+++ b/packages/opencode/src/session/revert.ts
@@ -8,6 +8,7 @@ import { splitWhen } from "remeda"
import { Storage } from "../storage/storage"
import { Bus } from "../bus"
import { SessionPrompt } from "./prompt"
+import { SessionSummary } from "./summary"
export namespace SessionRevert {
const log = Log.create({ service: "session.revert" })
@@ -57,8 +58,20 @@ export namespace SessionRevert {
revert.snapshot = session.revert?.snapshot ?? (await Snapshot.track())
await Snapshot.revert(patches)
if (revert.snapshot) revert.diff = await Snapshot.diff(revert.snapshot)
+ const rangeMessages = all.filter((msg) => msg.info.id >= revert!.messageID)
+ const diffs = await SessionSummary.computeDiff({ messages: rangeMessages })
+ await Storage.write(["session_diff", input.sessionID], diffs)
+ Bus.publish(Session.Event.Diff, {
+ sessionID: input.sessionID,
+ diff: diffs,
+ })
return Session.update(input.sessionID, (draft) => {
draft.revert = revert
+ draft.summary = {
+ additions: diffs.reduce((sum, x) => sum + x.additions, 0),
+ deletions: diffs.reduce((sum, x) => sum + x.deletions, 0),
+ files: diffs.length,
+ }
})
}
return session
diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts
index dbca218f9..c03100c9b 100644
--- a/packages/opencode/src/session/summary.ts
+++ b/packages/opencode/src/session/summary.ts
@@ -120,7 +120,7 @@ export namespace SessionSummary {
},
)
- async function computeDiff(input: { messages: MessageV2.WithParts[] }) {
+ export async function computeDiff(input: { messages: MessageV2.WithParts[] }) {
let from: string | undefined
let to: string | undefined