Spaces:
Runtime error
Runtime error
incognitolm commited on
Commit ·
c97ad08
1
Parent(s): 17bf060
Server connection issues
Browse files- server/auth.js +0 -7
- server/chatStream.js +6 -4
- server/wsHandler.js +2 -0
server/auth.js
CHANGED
|
@@ -100,13 +100,6 @@ export async function getUsageInfo(accessToken, clientId = '') {
|
|
| 100 |
if (clientId) h['X-Client-ID'] = clientId;
|
| 101 |
const r = await fetch('https://sharktide-lightning.hf.space/usage', { headers: h });
|
| 102 |
const payload = r.ok ? await r.json() : null;
|
| 103 |
-
console.log('[Usage API]', JSON.stringify({
|
| 104 |
-
ok: r.ok,
|
| 105 |
-
status: r.status,
|
| 106 |
-
clientId: clientId || null,
|
| 107 |
-
hasAuth: !!accessToken,
|
| 108 |
-
payload,
|
| 109 |
-
}));
|
| 110 |
return payload;
|
| 111 |
} catch (err) {
|
| 112 |
console.error('[Usage API] request failed:', err.message);
|
|
|
|
| 100 |
if (clientId) h['X-Client-ID'] = clientId;
|
| 101 |
const r = await fetch('https://sharktide-lightning.hf.space/usage', { headers: h });
|
| 102 |
const payload = r.ok ? await r.json() : null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
return payload;
|
| 104 |
} catch (err) {
|
| 105 |
console.error('[Usage API] request failed:', err.message);
|
server/chatStream.js
CHANGED
|
@@ -18,7 +18,7 @@ const WORKER_PATH = path.join(__dirname, "searchWorker.js");
|
|
| 18 |
// Persistent WebSocket pool
|
| 19 |
let persistentWs = null;
|
| 20 |
let wsAuthPromise = null;
|
| 21 |
-
let requestIdCounter = 0;
|
| 22 |
let activeStreamHandlers = new Map(); // Track active stream handlers by request ID
|
| 23 |
let errorHandlers = new Map(); // Track error handlers by request ID
|
| 24 |
|
|
@@ -31,6 +31,7 @@ function invalidatePersistentWebSocket(ws, reason, err = null) {
|
|
| 31 |
|
| 32 |
persistentWs = null;
|
| 33 |
wsAuthPromise = null;
|
|
|
|
| 34 |
activeStreamHandlers.delete("__messageListener__");
|
| 35 |
activeStreamHandlers.delete("__errorHandler__");
|
| 36 |
activeStreamHandlers.delete("__closeHandler__");
|
|
@@ -226,6 +227,7 @@ async function getSafeWebSocket() {
|
|
| 226 |
ws.on("message", globalMessageHandler);
|
| 227 |
ws.on("error", globalErrorHandler);
|
| 228 |
ws.on("close", globalCloseHandler);
|
|
|
|
| 229 |
activeStreamHandlers.set("__messageListener__", globalMessageHandler);
|
| 230 |
activeStreamHandlers.set("__errorHandler__", globalErrorHandler);
|
| 231 |
activeStreamHandlers.set("__closeHandler__", globalCloseHandler);
|
|
@@ -1618,7 +1620,7 @@ export async function streamChat({
|
|
| 1618 |
const sessionName = extractSessionName(assistantText);
|
| 1619 |
|
| 1620 |
if (typeof onDone === "function") {
|
| 1621 |
-
onDone(assistantText, allToolCalls, false, sessionName, responseEdits, responseSegments);
|
| 1622 |
}
|
| 1623 |
|
| 1624 |
clearPromptState(sessionId);
|
|
@@ -1626,10 +1628,10 @@ export async function streamChat({
|
|
| 1626 |
} catch (err) {
|
| 1627 |
clearPromptState(sessionId);
|
| 1628 |
if (err.name === "AbortError" || err.message === "AbortError") {
|
| 1629 |
-
if (typeof onDone === "function") onDone(null, null, true, null);
|
| 1630 |
} else {
|
| 1631 |
console.error("streamChat error:", err?.internalMessage || err);
|
| 1632 |
-
if (typeof onError === "function") onError(getPublicErrorMessage(err));
|
| 1633 |
}
|
| 1634 |
}
|
| 1635 |
}
|
|
|
|
| 18 |
// Persistent WebSocket pool
|
| 19 |
let persistentWs = null;
|
| 20 |
let wsAuthPromise = null;
|
| 21 |
+
let requestIdCounter = 0; // Upstream request IDs are scoped to the current websocket connection.
|
| 22 |
let activeStreamHandlers = new Map(); // Track active stream handlers by request ID
|
| 23 |
let errorHandlers = new Map(); // Track error handlers by request ID
|
| 24 |
|
|
|
|
| 31 |
|
| 32 |
persistentWs = null;
|
| 33 |
wsAuthPromise = null;
|
| 34 |
+
requestIdCounter = 0;
|
| 35 |
activeStreamHandlers.delete("__messageListener__");
|
| 36 |
activeStreamHandlers.delete("__errorHandler__");
|
| 37 |
activeStreamHandlers.delete("__closeHandler__");
|
|
|
|
| 227 |
ws.on("message", globalMessageHandler);
|
| 228 |
ws.on("error", globalErrorHandler);
|
| 229 |
ws.on("close", globalCloseHandler);
|
| 230 |
+
requestIdCounter = 0;
|
| 231 |
activeStreamHandlers.set("__messageListener__", globalMessageHandler);
|
| 232 |
activeStreamHandlers.set("__errorHandler__", globalErrorHandler);
|
| 233 |
activeStreamHandlers.set("__closeHandler__", globalCloseHandler);
|
|
|
|
| 1620 |
const sessionName = extractSessionName(assistantText);
|
| 1621 |
|
| 1622 |
if (typeof onDone === "function") {
|
| 1623 |
+
await onDone(assistantText, allToolCalls, false, sessionName, responseEdits, responseSegments);
|
| 1624 |
}
|
| 1625 |
|
| 1626 |
clearPromptState(sessionId);
|
|
|
|
| 1628 |
} catch (err) {
|
| 1629 |
clearPromptState(sessionId);
|
| 1630 |
if (err.name === "AbortError" || err.message === "AbortError") {
|
| 1631 |
+
if (typeof onDone === "function") await onDone(null, null, true, null);
|
| 1632 |
} else {
|
| 1633 |
console.error("streamChat error:", err?.internalMessage || err);
|
| 1634 |
+
if (typeof onError === "function") await onError(getPublicErrorMessage(err));
|
| 1635 |
}
|
| 1636 |
}
|
| 1637 |
}
|
server/wsHandler.js
CHANGED
|
@@ -439,6 +439,7 @@ const handlers = {
|
|
| 439 |
activeStreams.delete(ws);
|
| 440 |
console.error('streamChat error:', err);
|
| 441 |
safeSend(ws, { type: 'chat:error', error: String(err), sessionId });
|
|
|
|
| 442 |
},
|
| 443 |
});
|
| 444 |
},
|
|
@@ -693,6 +694,7 @@ const handlers = {
|
|
| 693 |
activeStreams.delete(ws);
|
| 694 |
console.error('assistant action streamChat error:', err);
|
| 695 |
safeSend(ws, { type: 'chat:error', error: String(err), sessionId });
|
|
|
|
| 696 |
},
|
| 697 |
});
|
| 698 |
},
|
|
|
|
| 439 |
activeStreams.delete(ws);
|
| 440 |
console.error('streamChat error:', err);
|
| 441 |
safeSend(ws, { type: 'chat:error', error: String(err), sessionId });
|
| 442 |
+
safeSend(ws, { type: 'chat:aborted', sessionId, reason: 'error' });
|
| 443 |
},
|
| 444 |
});
|
| 445 |
},
|
|
|
|
| 694 |
activeStreams.delete(ws);
|
| 695 |
console.error('assistant action streamChat error:', err);
|
| 696 |
safeSend(ws, { type: 'chat:error', error: String(err), sessionId });
|
| 697 |
+
safeSend(ws, { type: 'chat:aborted', sessionId, reason: 'error' });
|
| 698 |
},
|
| 699 |
});
|
| 700 |
},
|