Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/app/src/context/global-sync/event-reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,8 @@ export function applyDirectoryEvent(input: {
}
case "session.diff": {
const props = event.properties as { sessionID: string; diff: FileDiff[] }
input.setStore("session_diff", props.sessionID, reconcile(props.diff, { key: "file" }))
const diff = Array.isArray(props.diff) ? props.diff : []
input.setStore("session_diff", props.sessionID, reconcile(diff, { key: "file" }))
break
}
case "todo.updated": {
Expand Down
11 changes: 9 additions & 2 deletions packages/app/src/pages/session.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,11 @@ export default function Page() {
}

const info = createMemo(() => (params.id ? sync.session.get(params.id) : undefined))
const diffs = createMemo(() => (params.id ? (sync.data.session_diff[params.id] ?? []) : []))
const diffs = createMemo(() => {
if (!params.id) return []
const d = sync.data.session_diff[params.id]
return Array.isArray(d) ? d : []
})
const sessionCount = createMemo(() => Math.max(info()?.summary?.files ?? 0, diffs().length))
const hasSessionReview = createMemo(() => sessionCount() > 0)
const canReview = createMemo(() => !!params.id)
Expand Down Expand Up @@ -636,7 +640,10 @@ export default function Page() {
return open
}, desktopReviewOpen())

const turnDiffs = createMemo(() => lastUserMessage()?.summary?.diffs ?? [])
const turnDiffs = createMemo(() => {
const d = lastUserMessage()?.summary?.diffs
return Array.isArray(d) ? d : []
})
const changesOptions = createMemo<ChangeMode[]>(() => {
const list: ChangeMode[] = []
if (sync.project?.vcs === "git") list.push("git")
Expand Down
5 changes: 3 additions & 2 deletions packages/ui/src/components/session-review.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,8 @@ export const SessionReview = (props: SessionReviewProps) => {
const opened = () => store.opened

const open = () => props.open ?? store.open
const files = createMemo(() => props.diffs.map((diff) => diff.file))
const safe = () => (Array.isArray(props.diffs) ? props.diffs : [])
const files = createMemo(() => safe().map((diff) => diff.file))
const diffStyle = () => props.diffStyle ?? (props.split ? "split" : "unified")
const hasDiffs = () => files().length > 0

Expand Down Expand Up @@ -281,7 +282,7 @@ export const SessionReview = (props: SessionReviewProps) => {
<Show when={hasDiffs()} fallback={props.empty}>
<div class="pb-6">
<Accordion multiple value={open()} onChange={handleChange}>
<For each={props.diffs}>
<For each={safe()}>
{(diff) => {
let wrapper: HTMLDivElement | undefined
const file = diff.file
Expand Down
Loading