fix: clear stale busy state after session recovery

Reconcile session status after materializing recovered messages
Return composer from stop to send when the server reports idle
This commit is contained in:
Bohdan Triapitsyn
2026-07-01 23:44:36 +03:00
parent 4087ee6082
commit c9c178c000
+5
View File
@@ -248,6 +248,7 @@ async function materializeSessionFromServer(
store: StoreApi<DirectoryStore>,
options?: SessionMaterializationRequest & { isStale?: () => boolean },
) {
const statusBeforeMaterialization = store.getState().session_status?.[sessionID]
syncDebug.recovery.materializing({
reason: options?.reason ?? "ensure-session-messages",
directory,
@@ -286,6 +287,10 @@ async function materializeSessionFromServer(
)
return { message: materialized.message, part: materialized.part }
})
if (statusBeforeMaterialization && statusBeforeMaterialization.type !== "idle" && !options?.isStale?.()) {
await resyncDirectorySessionStatuses(directory, store, [sessionID], "authoritative")
}
}
// Module-level refs for notification viewed check.