diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index eb8ed2d9bba..fb5795fb312 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) => (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 providersPromise = sdk.client.config.providers({}, { throwOnError: true })