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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user