@parhelia/core 0.2.12771 → 0.2.12773
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/editor/Editor.js +28 -3
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.d.ts +13 -0
- package/dist/editor/ai/InlineAiDialog.js +42 -4
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +3 -0
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/hooks/useEditorWebSocket.d.ts +3 -3
- package/dist/editor/client/hooks/useEditorWebSocket.js +264 -64
- package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +6 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/sessionIdClaim.d.ts +22 -0
- package/dist/editor/client/sessionIdClaim.js +77 -0
- package/dist/editor/client/sessionIdClaim.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.js +17 -15
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/activeUserSessions.d.ts +9 -0
- package/dist/editor/menubar/activeUserSessions.js +30 -0
- package/dist/editor/menubar/activeUserSessions.js.map +1 -0
- package/dist/editor/page-viewer/PageViewerFrame.js +45 -2
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +23 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js +43 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
- package/dist/editor/settings/IndexOverview.js +1 -1
- package/dist/editor/settings/IndexOverview.js.map +1 -1
- package/dist/editor/settings/index/EmbeddingProviderInfo.js +2 -2
- package/dist/editor/settings/index/EmbeddingProviderInfo.js.map +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.d.ts +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.js +7 -3
- package/dist/editor/settings/index/QueueErrorsDisplay.js.map +1 -1
- package/dist/editor/settings/index/embeddingErrors.d.ts +7 -0
- package/dist/editor/settings/index/embeddingErrors.js +105 -0
- package/dist/editor/settings/index/embeddingErrors.js.map +1 -0
- package/dist/editor/settings/index/types.d.ts +1 -0
- package/dist/editor/settings/index/useIndexStatus.js +2 -2
- package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
- package/dist/editor/sidebar/Sessions.js +6 -3
- package/dist/editor/sidebar/Sessions.js.map +1 -1
- package/dist/editor/ui/SimpleTable.d.ts +2 -1
- package/dist/editor/ui/SimpleTable.js +2 -2
- package/dist/editor/ui/SimpleTable.js.map +1 -1
- package/dist/editor/utils.js +6 -0
- package/dist/editor/utils.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -2,16 +2,30 @@ import { useEffect, useRef } from "react";
|
|
|
2
2
|
import { checkConnectionAvailability, } from "../../services/editService";
|
|
3
3
|
import { createEditorSocketDiagnostics, getEditorSocketReadyStateLabel, } from "../socketDiagnostics";
|
|
4
4
|
import { createSseTransport, createWebSocketAdapter, ensureEditorRealtimeHandle, getEditorRealtime, setActiveTransport, setReconnectHandler, } from "../realtime/realtimeTransport";
|
|
5
|
+
// Availability recheck cadence while the concurrent-user-limit latch is set. Deliberately slow:
|
|
6
|
+
// the ConcurrentUserLimitDialog polls at 7.5s while open, so this timer only has to cover tabs
|
|
7
|
+
// where the dialog was dismissed.
|
|
8
|
+
const CONCURRENT_LIMIT_RECHECK_MS = 60_000;
|
|
9
|
+
// While on the SSE fallback, how often to probe whether a WebSocket can be opened again. At
|
|
10
|
+
// fallback time an app-pool recycle looks identical to a missing IIS WebSocket feature, so SSE
|
|
11
|
+
// mode must not be permanent — but one probe per interval keeps genuinely WS-less environments
|
|
12
|
+
// free of retry storms.
|
|
13
|
+
const WS_REPROBE_INTERVAL_MS = 5 * 60_000;
|
|
14
|
+
// A probe socket that has not reached OPEN within this window counts as failed.
|
|
15
|
+
const WS_PROBE_TIMEOUT_MS = 5_000;
|
|
16
|
+
// Used when the server rejects the connection without complete limit metadata; the dialog must
|
|
17
|
+
// still appear or the tab has no recovery path besides a reload.
|
|
18
|
+
const CONCURRENT_LIMIT_FALLBACK_MESSAGE = "The concurrent user limit for this license has been reached. Editing becomes available again once another user disconnects.";
|
|
5
19
|
/**
|
|
6
20
|
* Closes the active editor websocket so the hook's own reconnect machinery picks it back
|
|
7
21
|
* up. Used by recovery code that wants the freshly opened socket to re-issue agent
|
|
8
22
|
* subscriptions via the existing onOpen callback chain — not for routine close handling.
|
|
9
23
|
*
|
|
10
|
-
* Returns whether a
|
|
24
|
+
* Returns whether a reconnect was actually initiated. The hook's close handler does NOT null
|
|
11
25
|
* `globalThis.editorSocket`; the next `connect()` call detects `readyState === CLOSED`
|
|
12
26
|
* and overwrites the global, so we must not delete it from this helper. When the socket
|
|
13
|
-
* is already CLOSING/CLOSED there is
|
|
14
|
-
*
|
|
27
|
+
* is missing or already CLOSING/CLOSED there is no close event to drive recovery, so we route
|
|
28
|
+
* through the hook's reconnect handler, which re-enters the connect path directly.
|
|
15
29
|
*/
|
|
16
30
|
export function forceEditorSocketReconnect(reason) {
|
|
17
31
|
// In SSE fallback mode there is no globalThis.editorSocket; route through the transport handle,
|
|
@@ -22,10 +36,9 @@ export function forceEditorSocketReconnect(reason) {
|
|
|
22
36
|
return true;
|
|
23
37
|
}
|
|
24
38
|
const socket = globalThis.editorSocket;
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
socket.readyState === WebSocket.CONNECTING) {
|
|
39
|
+
if (socket &&
|
|
40
|
+
(socket.readyState === WebSocket.OPEN ||
|
|
41
|
+
socket.readyState === WebSocket.CONNECTING)) {
|
|
29
42
|
try {
|
|
30
43
|
socket.close(4000, reason);
|
|
31
44
|
return true;
|
|
@@ -34,7 +47,8 @@ export function forceEditorSocketReconnect(reason) {
|
|
|
34
47
|
return false;
|
|
35
48
|
}
|
|
36
49
|
}
|
|
37
|
-
|
|
50
|
+
realtime.reconnect(reason);
|
|
51
|
+
return true;
|
|
38
52
|
}
|
|
39
53
|
export function useEditorWebSocket(params) {
|
|
40
54
|
const { sessionId, onMessage, onOpen, onError, onConcurrentUserLimit, onSessionRevoked, connectSocket, requestQuota, sendClientInfo, setSocketDiagnostics, enableWebSocketTransport = true, enableSseFallback = true, transportSettingsReady = true, } = params;
|
|
@@ -48,6 +62,12 @@ export function useEditorWebSocket(params) {
|
|
|
48
62
|
const sseTransportRef = useRef(null);
|
|
49
63
|
const hadOpenedRef = useRef(false);
|
|
50
64
|
const fallbackTimerRef = useRef(null);
|
|
65
|
+
const limitRecheckTimerRef = useRef(null);
|
|
66
|
+
const sseReconnectTimeoutRef = useRef(null);
|
|
67
|
+
const sseReconnectAttemptsRef = useRef(0);
|
|
68
|
+
const wsReprobeTimerRef = useRef(null);
|
|
69
|
+
// Tears down an in-flight WebSocket probe (its socket and timeout); null when none is running.
|
|
70
|
+
const wsProbeCleanupRef = useRef(null);
|
|
51
71
|
// Stable refs for callbacks to avoid re-connecting on every render
|
|
52
72
|
const onMessageRef = useRef(onMessage);
|
|
53
73
|
const onOpenRef = useRef(onOpen);
|
|
@@ -154,6 +174,177 @@ export function useEditorWebSocket(params) {
|
|
|
154
174
|
connect();
|
|
155
175
|
}, delay);
|
|
156
176
|
};
|
|
177
|
+
const startConnect = () => {
|
|
178
|
+
connect().catch((error) => {
|
|
179
|
+
console.error("Error in WebSocket connection:", error);
|
|
180
|
+
onErrorRef.current?.(new Event("error"));
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
const clearLimitRecheckTimer = () => {
|
|
184
|
+
if (limitRecheckTimerRef.current) {
|
|
185
|
+
clearTimeout(limitRecheckTimerRef.current);
|
|
186
|
+
limitRecheckTimerRef.current = null;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
// While the concurrent-user-limit latch is set no close event will ever fire again, so this
|
|
190
|
+
// chained timeout (at most one check in flight) is the only automatic way back in once a
|
|
191
|
+
// seat frees up.
|
|
192
|
+
const scheduleLimitRecheck = () => {
|
|
193
|
+
if (disposed || limitRecheckTimerRef.current) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
limitRecheckTimerRef.current = setTimeout(() => {
|
|
197
|
+
limitRecheckTimerRef.current = null;
|
|
198
|
+
if (disposed || !isConcurrentUserLimitRef.current) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
checkConnectionAvailability(sessionId)
|
|
202
|
+
.then((availability) => {
|
|
203
|
+
if (disposed || !isConcurrentUserLimitRef.current) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (availability.allowed) {
|
|
207
|
+
isConcurrentUserLimitRef.current = false;
|
|
208
|
+
reconnectAttemptsRef.current = 0;
|
|
209
|
+
if (modeRef.current === "sse") {
|
|
210
|
+
connectSse();
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
startConnect();
|
|
214
|
+
}
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
scheduleLimitRecheck();
|
|
218
|
+
})
|
|
219
|
+
.catch(() => {
|
|
220
|
+
// Availability unknown (server restarting?) — keep polling.
|
|
221
|
+
if (!disposed && isConcurrentUserLimitRef.current) {
|
|
222
|
+
scheduleLimitRecheck();
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}, CONCURRENT_LIMIT_RECHECK_MS);
|
|
226
|
+
};
|
|
227
|
+
// The dialog (with its Retry button) must appear even when the availability response carries
|
|
228
|
+
// partial metadata — a latched limit without a visible dialog leaves no recovery path short
|
|
229
|
+
// of a reload.
|
|
230
|
+
const notifyConcurrentUserLimit = (availability) => {
|
|
231
|
+
isConcurrentUserLimitRef.current = true;
|
|
232
|
+
onConcurrentUserLimitRef.current?.({
|
|
233
|
+
currentUsers: availability.currentUsers ?? 0,
|
|
234
|
+
maxUsers: availability.maxUsers ?? 0,
|
|
235
|
+
message: availability.message ?? CONCURRENT_LIMIT_FALLBACK_MESSAGE,
|
|
236
|
+
});
|
|
237
|
+
scheduleLimitRecheck();
|
|
238
|
+
};
|
|
239
|
+
const clearSseReconnectTimer = () => {
|
|
240
|
+
if (sseReconnectTimeoutRef.current) {
|
|
241
|
+
clearTimeout(sseReconnectTimeoutRef.current);
|
|
242
|
+
sseReconnectTimeoutRef.current = null;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
// EventSource retries transient drops on its own, but a hard failure (connection refused,
|
|
246
|
+
// non-200 while the server restarts) closes it permanently — the stream must be re-created
|
|
247
|
+
// by us, reusing the WebSocket backoff curve.
|
|
248
|
+
const scheduleSseReconnect = () => {
|
|
249
|
+
if (disposed ||
|
|
250
|
+
sseReconnectTimeoutRef.current ||
|
|
251
|
+
modeRef.current !== "sse") {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const attempts = sseReconnectAttemptsRef.current;
|
|
255
|
+
const delay = Math.min(1000 * Math.pow(2, Math.min(attempts, 5)), 30000);
|
|
256
|
+
reconnectCountRef.current += 1;
|
|
257
|
+
markSocketEvent("reconnect-scheduled", null, {
|
|
258
|
+
reconnectCount: reconnectCountRef.current,
|
|
259
|
+
});
|
|
260
|
+
sseReconnectTimeoutRef.current = setTimeout(() => {
|
|
261
|
+
sseReconnectTimeoutRef.current = null;
|
|
262
|
+
sseReconnectAttemptsRef.current = attempts + 1;
|
|
263
|
+
connectSse();
|
|
264
|
+
}, delay);
|
|
265
|
+
};
|
|
266
|
+
const clearWsReprobeTimer = () => {
|
|
267
|
+
if (wsReprobeTimerRef.current) {
|
|
268
|
+
clearTimeout(wsReprobeTimerRef.current);
|
|
269
|
+
wsReprobeTimerRef.current = null;
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
// SSE mode is sticky by design (a missing IIS WebSocket feature never heals), but the same
|
|
273
|
+
// fallback also triggers on transient failures like an app-pool recycle — probe occasionally
|
|
274
|
+
// so those tabs find their way back to the preferred transport.
|
|
275
|
+
const startWsReprobeTimer = () => {
|
|
276
|
+
if (disposed || wsReprobeTimerRef.current || !wsEnabledRef.current) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
wsReprobeTimerRef.current = setTimeout(() => {
|
|
280
|
+
wsReprobeTimerRef.current = null;
|
|
281
|
+
if (disposed || modeRef.current !== "sse") {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (!isConcurrentUserLimitRef.current) {
|
|
285
|
+
probeWebSocket();
|
|
286
|
+
}
|
|
287
|
+
startWsReprobeTimer();
|
|
288
|
+
}, WS_REPROBE_INTERVAL_MS);
|
|
289
|
+
};
|
|
290
|
+
// Opens a single throwaway WebSocket. Reaching OPEN proves the transport works again, so the
|
|
291
|
+
// editor switches back; anything else leaves SSE untouched. The probe carries none of the
|
|
292
|
+
// hook's listeners, so it must never be adopted as the real socket.
|
|
293
|
+
const probeWebSocket = () => {
|
|
294
|
+
if (disposed ||
|
|
295
|
+
modeRef.current !== "sse" ||
|
|
296
|
+
!wsEnabledRef.current ||
|
|
297
|
+
wsProbeCleanupRef.current) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
let probe;
|
|
301
|
+
try {
|
|
302
|
+
probe = connectSocket(sessionId);
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
let settled = false;
|
|
308
|
+
const settle = (opened) => {
|
|
309
|
+
if (settled) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
settled = true;
|
|
313
|
+
wsProbeCleanupRef.current = null;
|
|
314
|
+
clearTimeout(probeTimer);
|
|
315
|
+
try {
|
|
316
|
+
probe.close();
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
/* ignore */
|
|
320
|
+
}
|
|
321
|
+
if (opened && !disposed && modeRef.current === "sse") {
|
|
322
|
+
switchBackToWebSocket();
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
const probeTimer = setTimeout(() => settle(false), WS_PROBE_TIMEOUT_MS);
|
|
326
|
+
wsProbeCleanupRef.current = () => settle(false);
|
|
327
|
+
probe.addEventListener("open", () => settle(true));
|
|
328
|
+
probe.addEventListener("close", () => settle(false));
|
|
329
|
+
probe.addEventListener("error", () => settle(false));
|
|
330
|
+
};
|
|
331
|
+
const switchBackToWebSocket = () => {
|
|
332
|
+
if (disposed) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
clearWsReprobeTimer();
|
|
336
|
+
clearSseReconnectTimer();
|
|
337
|
+
sseTransportRef.current?.close();
|
|
338
|
+
sseTransportRef.current = null;
|
|
339
|
+
setActiveTransport(null);
|
|
340
|
+
modeRef.current = null;
|
|
341
|
+
// The probe reached OPEN, so this environment provably supports WebSockets; a later
|
|
342
|
+
// close-before-open must go through the retry path, not straight back to SSE.
|
|
343
|
+
hadOpenedRef.current = true;
|
|
344
|
+
reconnectAttemptsRef.current = 0;
|
|
345
|
+
sseReconnectAttemptsRef.current = 0;
|
|
346
|
+
startConnect();
|
|
347
|
+
};
|
|
157
348
|
const attach = (socket, handler, reusedExistingSocket) => {
|
|
158
349
|
if (disposed) {
|
|
159
350
|
return;
|
|
@@ -193,12 +384,13 @@ export function useEditorWebSocket(params) {
|
|
|
193
384
|
}
|
|
194
385
|
}, 5000);
|
|
195
386
|
};
|
|
196
|
-
// Establishes (or re-establishes) the SSE fallback transport
|
|
387
|
+
// Establishes (or re-establishes) the SSE fallback transport.
|
|
197
388
|
const connectSse = () => {
|
|
198
389
|
if (disposed)
|
|
199
390
|
return;
|
|
200
391
|
modeRef.current = "sse";
|
|
201
392
|
clearFallbackTimer();
|
|
393
|
+
clearSseReconnectTimer();
|
|
202
394
|
if (reconnectTimeoutRef.current) {
|
|
203
395
|
clearTimeout(reconnectTimeoutRef.current);
|
|
204
396
|
reconnectTimeoutRef.current = null;
|
|
@@ -218,6 +410,8 @@ export function useEditorWebSocket(params) {
|
|
|
218
410
|
if (disposed)
|
|
219
411
|
return;
|
|
220
412
|
isConcurrentUserLimitRef.current = false;
|
|
413
|
+
clearLimitRecheckTimer();
|
|
414
|
+
sseReconnectAttemptsRef.current = 0;
|
|
221
415
|
markSocketEvent("open", null, {
|
|
222
416
|
lastOpenAt: new Date().toISOString(),
|
|
223
417
|
lastCloseCode: null,
|
|
@@ -239,24 +433,31 @@ export function useEditorWebSocket(params) {
|
|
|
239
433
|
lastErrorAt: new Date().toISOString(),
|
|
240
434
|
});
|
|
241
435
|
onErrorRef.current?.(event);
|
|
242
|
-
// EventSource auto-reconnects on transient drops
|
|
243
|
-
//
|
|
436
|
+
// EventSource auto-reconnects on transient drops but stays CLOSED after a hard failure
|
|
437
|
+
// (connection refused, non-200 while the server restarts). Capture the state before the
|
|
438
|
+
// availability round-trip so a late response cannot mask it.
|
|
439
|
+
const closedHard = sseTransportRef.current?.eventSource.readyState ===
|
|
440
|
+
EventSource.CLOSED;
|
|
441
|
+
// Disambiguate a concurrent-user-limit rejection (surface it) from a plain failure
|
|
442
|
+
// (let EventSource retry transient drops; re-create the stream on hard closes).
|
|
244
443
|
checkConnectionAvailability(sessionId)
|
|
245
444
|
.then((availability) => {
|
|
246
|
-
if (disposed
|
|
445
|
+
if (disposed)
|
|
247
446
|
return;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
maxUsers: availability.maxUsers,
|
|
255
|
-
message: availability.message,
|
|
256
|
-
});
|
|
447
|
+
if (!availability.allowed) {
|
|
448
|
+
notifyConcurrentUserLimit(availability);
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (closedHard) {
|
|
452
|
+
scheduleSseReconnect();
|
|
257
453
|
}
|
|
258
454
|
})
|
|
259
|
-
.catch(() => {
|
|
455
|
+
.catch(() => {
|
|
456
|
+
// Availability unknown — a permanently closed stream still must be replaced.
|
|
457
|
+
if (!disposed && closedHard) {
|
|
458
|
+
scheduleSseReconnect();
|
|
459
|
+
}
|
|
460
|
+
});
|
|
260
461
|
},
|
|
261
462
|
onSessionRevoked: () => {
|
|
262
463
|
if (disposed)
|
|
@@ -269,12 +470,17 @@ export function useEditorWebSocket(params) {
|
|
|
269
470
|
});
|
|
270
471
|
sseTransportRef.current = sse;
|
|
271
472
|
setActiveTransport(sse);
|
|
473
|
+
startWsReprobeTimer();
|
|
272
474
|
};
|
|
273
475
|
function fallbackToSse() {
|
|
274
476
|
if (disposed || modeRef.current === "sse")
|
|
275
477
|
return;
|
|
276
|
-
if (!sseEnabledRef.current)
|
|
277
|
-
|
|
478
|
+
if (!sseEnabledRef.current) {
|
|
479
|
+
// SSE fallback disabled in settings — keep retrying the WebSocket with backoff instead
|
|
480
|
+
// of leaving the tab without any transport.
|
|
481
|
+
scheduleReconnect(socketInstanceRef.current);
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
278
484
|
connectSse();
|
|
279
485
|
}
|
|
280
486
|
ensureEditorRealtimeHandle();
|
|
@@ -282,17 +488,32 @@ export function useEditorWebSocket(params) {
|
|
|
282
488
|
if (disposed)
|
|
283
489
|
return;
|
|
284
490
|
if (modeRef.current === "sse") {
|
|
491
|
+
// Re-establish the stream for recovery callers, and treat the explicit request as an
|
|
492
|
+
// opportunity to leave SSE mode if WebSockets have come back in the meantime.
|
|
285
493
|
connectSse();
|
|
494
|
+
probeWebSocket();
|
|
495
|
+
return;
|
|
286
496
|
}
|
|
287
|
-
|
|
288
|
-
|
|
497
|
+
const ws = globalThis.editorSocket;
|
|
498
|
+
if (ws &&
|
|
499
|
+
(ws.readyState === WebSocket.OPEN ||
|
|
500
|
+
ws.readyState === WebSocket.CONNECTING)) {
|
|
289
501
|
try {
|
|
290
|
-
ws
|
|
502
|
+
ws.close(4000, reason);
|
|
291
503
|
}
|
|
292
504
|
catch {
|
|
293
505
|
/* ignore */
|
|
294
506
|
}
|
|
507
|
+
return;
|
|
295
508
|
}
|
|
509
|
+
// No live socket to close (already CLOSED, or never created because a connect attempt
|
|
510
|
+
// latched) — no close event can drive recovery, so re-enter the connect path directly.
|
|
511
|
+
if (reconnectTimeoutRef.current) {
|
|
512
|
+
clearTimeout(reconnectTimeoutRef.current);
|
|
513
|
+
reconnectTimeoutRef.current = null;
|
|
514
|
+
}
|
|
515
|
+
reconnectAttemptsRef.current = 0;
|
|
516
|
+
startConnect();
|
|
296
517
|
});
|
|
297
518
|
const connect = async () => {
|
|
298
519
|
if (disposed || modeRef.current === "sse")
|
|
@@ -309,18 +530,9 @@ export function useEditorWebSocket(params) {
|
|
|
309
530
|
if (disposed)
|
|
310
531
|
return;
|
|
311
532
|
if (!availability.allowed) {
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
availability.maxUsers !== undefined &&
|
|
316
|
-
availability.message) {
|
|
317
|
-
onConcurrentUserLimitRef.current?.({
|
|
318
|
-
currentUsers: availability.currentUsers,
|
|
319
|
-
maxUsers: availability.maxUsers,
|
|
320
|
-
message: availability.message,
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
// Don't attempt connection or retry for concurrent user limit
|
|
533
|
+
// Concurrent user limit — don't attempt or retry the connection; the limit recheck
|
|
534
|
+
// timer (and the dialog's Retry button) drive recovery from here.
|
|
535
|
+
notifyConcurrentUserLimit(availability);
|
|
324
536
|
return;
|
|
325
537
|
}
|
|
326
538
|
// Reset the flag if connection is allowed
|
|
@@ -355,6 +567,7 @@ export function useEditorWebSocket(params) {
|
|
|
355
567
|
}
|
|
356
568
|
reconnectAttemptsRef.current = 0;
|
|
357
569
|
isConcurrentUserLimitRef.current = false;
|
|
570
|
+
clearLimitRecheckTimer();
|
|
358
571
|
hadOpenedRef.current = true;
|
|
359
572
|
modeRef.current = "websocket";
|
|
360
573
|
clearFallbackTimer();
|
|
@@ -403,16 +616,7 @@ export function useEditorWebSocket(params) {
|
|
|
403
616
|
if (disposed)
|
|
404
617
|
return;
|
|
405
618
|
if (!availability.allowed) {
|
|
406
|
-
|
|
407
|
-
if (availability.currentUsers !== undefined &&
|
|
408
|
-
availability.maxUsers !== undefined &&
|
|
409
|
-
availability.message) {
|
|
410
|
-
onConcurrentUserLimitRef.current?.({
|
|
411
|
-
currentUsers: availability.currentUsers,
|
|
412
|
-
maxUsers: availability.maxUsers,
|
|
413
|
-
message: availability.message,
|
|
414
|
-
});
|
|
415
|
-
}
|
|
619
|
+
notifyConcurrentUserLimit(availability);
|
|
416
620
|
return;
|
|
417
621
|
}
|
|
418
622
|
fallbackToSse();
|
|
@@ -423,18 +627,12 @@ export function useEditorWebSocket(params) {
|
|
|
423
627
|
if (shouldCheckAvailability) {
|
|
424
628
|
checkConnectionAvailability(sessionId)
|
|
425
629
|
.then((availability) => {
|
|
630
|
+
if (disposed)
|
|
631
|
+
return;
|
|
426
632
|
if (!availability.allowed) {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
availability.message) {
|
|
431
|
-
onConcurrentUserLimitRef.current?.({
|
|
432
|
-
currentUsers: availability.currentUsers,
|
|
433
|
-
maxUsers: availability.maxUsers,
|
|
434
|
-
message: availability.message,
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
return; // Don't retry
|
|
633
|
+
// Don't retry — the limit recheck timer takes over.
|
|
634
|
+
notifyConcurrentUserLimit(availability);
|
|
635
|
+
return;
|
|
438
636
|
}
|
|
439
637
|
// Not a concurrent user limit issue, proceed with retry.
|
|
440
638
|
scheduleReconnect(socket);
|
|
@@ -480,10 +678,7 @@ export function useEditorWebSocket(params) {
|
|
|
480
678
|
}
|
|
481
679
|
};
|
|
482
680
|
// Call async connect function
|
|
483
|
-
|
|
484
|
-
console.error("Error in WebSocket connection:", error);
|
|
485
|
-
onErrorRef.current?.(new Event("error"));
|
|
486
|
-
});
|
|
681
|
+
startConnect();
|
|
487
682
|
return () => {
|
|
488
683
|
disposed = true;
|
|
489
684
|
if (reconnectTimeoutRef.current) {
|
|
@@ -491,6 +686,11 @@ export function useEditorWebSocket(params) {
|
|
|
491
686
|
reconnectTimeoutRef.current = null;
|
|
492
687
|
}
|
|
493
688
|
clearFallbackTimer();
|
|
689
|
+
clearLimitRecheckTimer();
|
|
690
|
+
clearSseReconnectTimer();
|
|
691
|
+
clearWsReprobeTimer();
|
|
692
|
+
// Settles (and closes) any in-flight WebSocket probe together with its timeout.
|
|
693
|
+
wsProbeCleanupRef.current?.();
|
|
494
694
|
setReconnectHandler(null);
|
|
495
695
|
if (sseTransportRef.current) {
|
|
496
696
|
sseTransportRef.current.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorWebSocket.js","sourceRoot":"","sources":["../../../../src/editor/client/hooks/useEditorWebSocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useEditorWebSocket.js","sourceRoot":"","sources":["../../../../src/editor/client/hooks/useEditorWebSocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -491,7 +491,12 @@ export function useSocketMessageHandler(deps) {
|
|
|
491
491
|
// refresh is normally skipped — but a MultiComponentEditor strip
|
|
492
492
|
// re-renders its slides from the app's layout data on every
|
|
493
493
|
// switch, which would revert an edit the app never refetched.
|
|
494
|
-
|
|
494
|
+
// One refresh per quiet period, not per autosave echo: an
|
|
495
|
+
// immediate refresh here pipelines full host re-renders into the
|
|
496
|
+
// very typing that produced the saves (with slow RSC renders this
|
|
497
|
+
// clobbers the field mid-edit), while the strip only needs the
|
|
498
|
+
// app data to be fresh by the time the user switches slides.
|
|
499
|
+
requestRefresh("waitForQuietPeriod");
|
|
495
500
|
}
|
|
496
501
|
}
|
|
497
502
|
}
|