diff --git a/apps/web/src/components/DiffPanel.tsx b/apps/web/src/components/DiffPanel.tsx index 6cf7b61ced6d2da91e8e7fc90968151a062f245f..bb2664564f2f1c396f5dde7686285945cc555d17 100644 --- a/apps/web/src/components/DiffPanel.tsx +++ b/apps/web/src/components/DiffPanel.tsx @@ -6,6 +6,7 @@ import { WorkerPoolContextProvider, } from "@pierre/diffs/react"; import { useQuery, useQueryClient } from "@tanstack/react-query"; +import { useParams } from "@tanstack/react-router"; import { Columns2Icon, Rows3Icon } from "lucide-react"; import { type ReactNode, useEffect, useMemo, useRef, useState } from "react"; import { checkpointDiffQueryOptions, providerQueryKeys } from "~/lib/providerReactQuery"; @@ -105,7 +106,10 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { const queryClient = useQueryClient(); const [diffRenderMode, setDiffRenderMode] = useState("stacked"); const patchViewportRef = useRef(null); - const activeThread = state.threads.find((thread) => thread.id === state.activeThreadId); + const params = useParams({ strict: false }); + const routeThreadId = typeof params.threadId === "string" ? params.threadId : null; + const activeThreadId = state.diffThreadId ?? routeThreadId; + const activeThread = state.threads.find((thread) => thread.id === activeThreadId); const activeThreadRuntimeId = activeThread?.codexThreadId ?? activeThread?.session?.threadId ?? null; const activeSessionId = activeThread?.session?.sessionId ?? null; diff --git a/apps/web/src/threadFactory.ts b/apps/web/src/threadFactory.ts index 812564c0c37cabfd90fb1637e0d074e288c5a3cc..8b84491640fa15c149eb7540e83b9a95c72cc7f2 100644 --- a/apps/web/src/threadFactory.ts +++ b/apps/web/src/threadFactory.ts @@ -33,6 +33,7 @@ export function createThread(projectId: string, options: CreateThreadOptions = { session: null, messages: [], events: [], + turnDiffSummaries: [], error: null, createdAt, branch: options.branch ?? null,