incognitolm commited on
Commit
c97ad08
·
1 Parent(s): 17bf060

Server connection issues

Browse files
Files changed (3) hide show
  1. server/auth.js +0 -7
  2. server/chatStream.js +6 -4
  3. 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
  },