From 08603091386141d9dc7c920103dac68aabac9a1c Mon Sep 17 00:00:00 2001 From: Daniel Grossmann-Kavanagh Date: Fri, 16 Jan 2026 10:09:42 -0800 Subject: [PATCH] fix: Mark HasProvider as synced if it has ever synced this session --- src/HasProvider.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/HasProvider.ts b/src/HasProvider.ts index 3cef93e..6ce9449 100644 --- a/src/HasProvider.ts +++ b/src/HasProvider.ts @@ -58,6 +58,9 @@ export class HasProvider extends HasLogging { path?: string; ydoc: Y.Doc; clientToken: ClientToken; + // Track if provider has ever synced. We use our own flag because + // _provider.synced can be reset to false on reconnection. + _providerSynced: boolean = false; private _offConnectionError: () => void; private _offState: () => void; listeners: Map; @@ -216,7 +219,7 @@ export class HasProvider extends HasLogging { } public get synced(): boolean { - return this._provider.synced; + return this._providerSynced; } disconnect() { @@ -249,11 +252,12 @@ export class HasProvider extends HasLogging { } onceProviderSynced(): Promise { - if (this._provider.synced) { + if (this._providerSynced) { return Promise.resolve(); } return new Promise((resolve) => { this._provider.once("synced", () => { + this._providerSynced = true; resolve(); }); });