summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-21 18:18:20 -0600
committerAdam <[email protected]>2026-01-21 18:18:57 -0600
commit877b0412c91b92f66f7bb3ee229304e583bc3d91 (patch)
tree038c34a76e41c836d42229a00085a5ecbe053e5d
parenta0d71bf8ef6df0d58ccb9aa458e028ce8204c26a (diff)
downloadopencode-877b0412c91b92f66f7bb3ee229304e583bc3d91.tar.gz
opencode-877b0412c91b92f66f7bb3ee229304e583bc3d91.zip
fix(app): use message diffs, not session diffs
-rw-r--r--packages/ui/src/components/session-turn.tsx13
1 files changed, 8 insertions, 5 deletions
diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx
index 7bca641ae..06e421882 100644
--- a/packages/ui/src/components/session-turn.tsx
+++ b/packages/ui/src/components/session-turn.tsx
@@ -7,6 +7,7 @@ import {
TextPart,
ToolPart,
} from "@opencode-ai/sdk/v2/client"
+import { type FileDiff } from "@opencode-ai/sdk/v2"
import { useData } from "../context"
import { useDiffComponent } from "../context/diff"
import { type UiI18nKey, type UiI18nParams, useI18n } from "../context/i18n"
@@ -146,6 +147,7 @@ export function SessionTurn(
const emptyAssistant: AssistantMessage[] = []
const emptyPermissions: PermissionRequest[] = []
const emptyPermissionParts: { part: ToolPart; message: AssistantMessage }[] = []
+ const emptyDiffs: FileDiff[] = []
const idle = { type: "idle" as const }
const allMessages = createMemo(() => data.store.message[props.sessionID] ?? emptyMessages)
@@ -350,7 +352,8 @@ export function SessionTurn(
const response = createMemo(() => lastTextPart()?.text)
const responsePartId = createMemo(() => lastTextPart()?.id)
- const hasDiffs = createMemo(() => (data.store.session_diff?.[props.sessionID]?.length ?? 0) > 0)
+ const messageDiffs = createMemo(() => message()?.summary?.diffs ?? emptyDiffs)
+ const hasDiffs = createMemo(() => messageDiffs().length > 0)
const hideResponsePart = createMemo(() => !working() && !!responsePartId())
const [rootRef, setRootRef] = createSignal<HTMLDivElement | undefined>()
@@ -606,7 +609,7 @@ export function SessionTurn(
setStore("diffsOpen", value)
}}
>
- <For each={(data.store.session_diff?.[props.sessionID] ?? []).slice(0, store.diffLimit)}>
+ <For each={messageDiffs().slice(0, store.diffLimit)}>
{(diff) => (
<Accordion.Item value={diff.file}>
<StickyAccordionHeader>
@@ -652,13 +655,13 @@ export function SessionTurn(
)}
</For>
</Accordion>
- <Show when={(data.store.session_diff?.[props.sessionID]?.length ?? 0) > store.diffLimit}>
+ <Show when={messageDiffs().length > store.diffLimit}>
<Button
data-slot="session-turn-accordion-more"
variant="ghost"
size="small"
onClick={() => {
- const total = data.store.session_diff?.[props.sessionID]?.length ?? 0
+ const total = messageDiffs().length
setStore("diffLimit", (limit) => {
const next = limit + diffBatch
if (next > total) return total
@@ -667,7 +670,7 @@ export function SessionTurn(
}}
>
{i18n.t("ui.sessionTurn.diff.showMore", {
- count: (data.store.session_diff?.[props.sessionID]?.length ?? 0) - store.diffLimit,
+ count: messageDiffs().length - store.diffLimit,
})}
</Button>
</Show>