From d0bcb8106a89918d44476ba37b2fe7b93053ad5e Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Sun, 12 Jul 2026 00:44:58 +0300 Subject: [PATCH] fix(sync): preserve optimistic entries for stale loads --- packages/ui/src/sync/use-sync.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/sync/use-sync.ts b/packages/ui/src/sync/use-sync.ts index a53ebd69..9abdd76b 100644 --- a/packages/ui/src/sync/use-sync.ts +++ b/packages/ui/src/sync/use-sync.ts @@ -360,16 +360,16 @@ export function useSync() { mode: "replace" | "prepend" | undefined, isStale?: () => boolean, ) => { + if (isStale?.()) { + return { messages: [], cursor: page.cursor, complete: page.complete } + } + const items = getOptimistic(sessionID) const merged = mergeOptimisticPage(page, items) for (const messageID of merged.confirmed) { clearOptimistic(sessionID, messageID) } - if (isStale?.()) { - return { messages: [], cursor: merged.cursor, complete: merged.complete } - } - const current = store.getState() const materialized = materializeSessionSnapshots( current,