summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/global-sync
diff options
context:
space:
mode:
authorDax <[email protected]>2026-04-07 19:48:23 -0400
committerGitHub <[email protected]>2026-04-07 19:48:23 -0400
commitb7fab49b64275b83bcec8200d7492fc5d15ffe06 (patch)
treed9dadf65ca69eb4b8fe75654eb15666ee2b23774 /packages/app/src/context/global-sync
parent463318486f94fa20e8d864d77708a347fa8423e3 (diff)
downloadopencode-b7fab49b64275b83bcec8200d7492fc5d15ffe06.tar.gz
opencode-b7fab49b64275b83bcec8200d7492fc5d15ffe06.zip
refactor(snapshot): store unified patches in file diffs (#21244)
Co-authored-by: Adam <[email protected]>
Diffstat (limited to 'packages/app/src/context/global-sync')
-rw-r--r--packages/app/src/context/global-sync/event-reducer.ts4
-rw-r--r--packages/app/src/context/global-sync/session-cache.test.ts6
-rw-r--r--packages/app/src/context/global-sync/session-cache.ts4
-rw-r--r--packages/app/src/context/global-sync/types.ts4
4 files changed, 9 insertions, 9 deletions
diff --git a/packages/app/src/context/global-sync/event-reducer.ts b/packages/app/src/context/global-sync/event-reducer.ts
index 4af636553..01248e20e 100644
--- a/packages/app/src/context/global-sync/event-reducer.ts
+++ b/packages/app/src/context/global-sync/event-reducer.ts
@@ -1,7 +1,6 @@
import { Binary } from "@opencode-ai/util/binary"
import { produce, reconcile, type SetStoreFunction, type Store } from "solid-js/store"
import type {
- FileDiff,
Message,
Part,
PermissionRequest,
@@ -9,6 +8,7 @@ import type {
QuestionRequest,
Session,
SessionStatus,
+ SnapshotFileDiff,
Todo,
} from "@opencode-ai/sdk/v2/client"
import type { State, VcsCache } from "./types"
@@ -161,7 +161,7 @@ export function applyDirectoryEvent(input: {
break
}
case "session.diff": {
- const props = event.properties as { sessionID: string; diff: FileDiff[] }
+ const props = event.properties as { sessionID: string; diff: SnapshotFileDiff[] }
input.setStore("session_diff", props.sessionID, reconcile(props.diff, { key: "file" }))
break
}
diff --git a/packages/app/src/context/global-sync/session-cache.test.ts b/packages/app/src/context/global-sync/session-cache.test.ts
index 8e11110e3..472ac219e 100644
--- a/packages/app/src/context/global-sync/session-cache.test.ts
+++ b/packages/app/src/context/global-sync/session-cache.test.ts
@@ -1,11 +1,11 @@
import { describe, expect, test } from "bun:test"
import type {
- FileDiff,
Message,
Part,
PermissionRequest,
QuestionRequest,
SessionStatus,
+ SnapshotFileDiff,
Todo,
} from "@opencode-ai/sdk/v2/client"
import { dropSessionCaches, pickSessionCacheEvictions } from "./session-cache"
@@ -33,7 +33,7 @@ describe("app session cache", () => {
test("dropSessionCaches clears orphaned parts without message rows", () => {
const store: {
session_status: Record<string, SessionStatus | undefined>
- session_diff: Record<string, FileDiff[] | undefined>
+ session_diff: Record<string, SnapshotFileDiff[] | undefined>
todo: Record<string, Todo[] | undefined>
message: Record<string, Message[] | undefined>
part: Record<string, Part[] | undefined>
@@ -64,7 +64,7 @@ describe("app session cache", () => {
const m = msg("msg_1", "ses_1")
const store: {
session_status: Record<string, SessionStatus | undefined>
- session_diff: Record<string, FileDiff[] | undefined>
+ session_diff: Record<string, SnapshotFileDiff[] | undefined>
todo: Record<string, Todo[] | undefined>
message: Record<string, Message[] | undefined>
part: Record<string, Part[] | undefined>
diff --git a/packages/app/src/context/global-sync/session-cache.ts b/packages/app/src/context/global-sync/session-cache.ts
index 0177ebbe1..6f4d81062 100644
--- a/packages/app/src/context/global-sync/session-cache.ts
+++ b/packages/app/src/context/global-sync/session-cache.ts
@@ -1,10 +1,10 @@
import type {
- FileDiff,
Message,
Part,
PermissionRequest,
QuestionRequest,
SessionStatus,
+ SnapshotFileDiff,
Todo,
} from "@opencode-ai/sdk/v2/client"
@@ -12,7 +12,7 @@ export const SESSION_CACHE_LIMIT = 40
type SessionCache = {
session_status: Record<string, SessionStatus | undefined>
- session_diff: Record<string, FileDiff[] | undefined>
+ session_diff: Record<string, SnapshotFileDiff[] | undefined>
todo: Record<string, Todo[] | undefined>
message: Record<string, Message[] | undefined>
part: Record<string, Part[] | undefined>
diff --git a/packages/app/src/context/global-sync/types.ts b/packages/app/src/context/global-sync/types.ts
index 1d6e550f8..b0f340a90 100644
--- a/packages/app/src/context/global-sync/types.ts
+++ b/packages/app/src/context/global-sync/types.ts
@@ -2,7 +2,6 @@ import type {
Agent,
Command,
Config,
- FileDiff,
LspStatus,
McpStatus,
Message,
@@ -14,6 +13,7 @@ import type {
QuestionRequest,
Session,
SessionStatus,
+ SnapshotFileDiff,
Todo,
VcsInfo,
} from "@opencode-ai/sdk/v2/client"
@@ -48,7 +48,7 @@ export type State = {
[sessionID: string]: SessionStatus
}
session_diff: {
- [sessionID: string]: FileDiff[]
+ [sessionID: string]: SnapshotFileDiff[]
}
todo: {
[sessionID: string]: Todo[]