Compare commits

...

1 Commits

Author SHA1 Message Date
Dax Raad dfae84eeee fix: drop session diff patches from tui cache 2026-04-12 14:34:07 -04:00
2 changed files with 15 additions and 3 deletions
@@ -31,6 +31,16 @@ import { batch, createEffect, on } from "solid-js"
import { Log } from "@/util/log" import { Log } from "@/util/log"
import { ConsoleState, emptyConsoleState, type ConsoleState as ConsoleStateType } from "@/config/console-state" import { ConsoleState, emptyConsoleState, type ConsoleState as ConsoleStateType } from "@/config/console-state"
type SessionDiffSummary = Pick<Snapshot.FileDiff, "file" | "additions" | "deletions">
function summarizeDiff(diff?: Snapshot.FileDiff[]): SessionDiffSummary[] {
return (diff ?? []).map((item) => ({
file: item.file,
additions: item.additions,
deletions: item.deletions,
}))
}
export const { use: useSync, provider: SyncProvider } = createSimpleContext({ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
name: "Sync", name: "Sync",
init: () => { init: () => {
@@ -55,7 +65,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
[sessionID: string]: SessionStatus [sessionID: string]: SessionStatus
} }
session_diff: { session_diff: {
[sessionID: string]: Snapshot.FileDiff[] [sessionID: string]: SessionDiffSummary[]
} }
todo: { todo: {
[sessionID: string]: Todo[] [sessionID: string]: Todo[]
@@ -193,7 +203,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
break break
case "session.diff": case "session.diff":
setStore("session_diff", event.properties.sessionID, event.properties.diff) setStore("session_diff", event.properties.sessionID, summarizeDiff(event.properties.diff))
break break
case "session.deleted": { case "session.deleted": {
@@ -503,7 +513,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
for (const message of messages.data!) { for (const message of messages.data!) {
draft.part[message.info.id] = message.parts draft.part[message.info.id] = message.parts
} }
draft.session_diff[sessionID] = diff.data ?? [] draft.session_diff[sessionID] = summarizeDiff(diff.data)
}), }),
) )
fullSyncedSessions.add(sessionID) fullSyncedSessions.add(sessionID)
@@ -270,6 +270,7 @@ describe("SyncProvider", () => {
expect(sync.data.message.ses_1[0]?.id).toBe("msg_1") expect(sync.data.message.ses_1[0]?.id).toBe("msg_1")
expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_a" }) expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_a" })
expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_a.ts") expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_a.ts")
expect(sync.data.session_diff.ses_1[0]).not.toHaveProperty("patch")
log.length = 0 log.length = 0
project.workspace.set("ws_b") project.workspace.set("ws_b")
@@ -285,6 +286,7 @@ describe("SyncProvider", () => {
expect(sync.data.message.ses_1[0]?.id).toBe("msg_1") expect(sync.data.message.ses_1[0]?.id).toBe("msg_1")
expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_b" }) expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_b" })
expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_b.ts") expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_b.ts")
expect(sync.data.session_diff.ses_1[0]).not.toHaveProperty("patch")
} finally { } finally {
app.renderer.destroy() app.renderer.destroy()
} }