From afd16daba819789121b46c9dff3c971e2591b645 Mon Sep 17 00:00:00 2001 From: Lucas Pointurier Date: Sun, 25 Jan 2026 20:10:27 +0100 Subject: [PATCH] fix: merge session list to prevent race condition on creation --- packages/opencode/src/cli/cmd/tui/context/sync.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index 392cfb7f121..5d1b8d66314 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx @@ -333,7 +333,10 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ const start = Date.now() - 30 * 24 * 60 * 60 * 1000 const sessionListPromise = sdk.client.session .list({ start: start }) - .then((x) => setStore("session", reconcile((x.data ?? []).toSorted((a, b) => a.id.localeCompare(b.id))))) + .then((x) => { + const merged = new Map([...store.session, ...(x.data ?? [])].map((s) => [s.id, s])) + setStore("session", reconcile([...merged.values()].toSorted((a, b) => a.id.localeCompare(b.id)))) + }) // blocking - include session.list when continuing a session const blockingRequests: Promise[] = [