@nockdev/hsa 1.2.4 → 1.2.5

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.
Files changed (2) hide show
  1. package/dashboard.html +24 -8
  2. package/package.json +1 -1
package/dashboard.html CHANGED
@@ -1481,7 +1481,7 @@
1481
1481
  STATE
1482
1482
  ================================================================ */
1483
1483
  let endpoint =
1484
- localStorage.getItem("hsa_endpoint") || "http://localhost:13100";
1484
+ localStorage.getItem("hsa_endpoint") || window.location.origin;
1485
1485
  let autoRefresh = true;
1486
1486
  let refreshInterval = null;
1487
1487
  let cacheHistory = [];
@@ -1493,6 +1493,7 @@
1493
1493
  let sessionSSERetryMs = 1000;
1494
1494
  let sessionSSERetryCount = 0;
1495
1495
  const MAX_SSE_RETRIES = 5;
1496
+ let sseReconnectTimer = null;
1496
1497
  let fetchErrorCount = 0;
1497
1498
  const BASE_REFRESH_MS = 5000;
1498
1499
  const MAX_REFRESH_MS = 30000;
@@ -1510,6 +1511,11 @@
1510
1511
  setStatus("connecting");
1511
1512
  fetchErrorCount = 0; // Reset error counter on manual connect
1512
1513
  sessionSSERetryCount = 0; // Reset SSE retries so reconnect works
1514
+ sessionSSERetryMs = 1000; // Reset backoff delay
1515
+ if (sseReconnectTimer) {
1516
+ clearTimeout(sseReconnectTimer);
1517
+ sseReconnectTimer = null;
1518
+ }
1513
1519
  fetchDashboard();
1514
1520
  fetchSessions();
1515
1521
  connectSessionSSE(); // Re-establish SSE stream
@@ -1557,8 +1563,11 @@
1557
1563
  startRefresh();
1558
1564
  }
1559
1565
  function updateRefreshBadge(badge) {
1560
- const ms = Math.min(BASE_REFRESH_MS * Math.pow(2, fetchErrorCount), MAX_REFRESH_MS);
1561
- badge.textContent = ms >= 1000 ? (ms / 1000) + "s" : ms + "ms";
1566
+ const ms = Math.min(
1567
+ BASE_REFRESH_MS * Math.pow(2, fetchErrorCount),
1568
+ MAX_REFRESH_MS,
1569
+ );
1570
+ badge.textContent = ms >= 1000 ? ms / 1000 + "s" : ms + "ms";
1562
1571
  }
1563
1572
 
1564
1573
  /* ================================================================
@@ -2156,7 +2165,10 @@
2156
2165
  for (let i = 1; i < cacheHistory.length; i++) {
2157
2166
  deltas.push({
2158
2167
  hits: Math.max(0, cacheHistory[i].hits - cacheHistory[i - 1].hits),
2159
- misses: Math.max(0, cacheHistory[i].misses - cacheHistory[i - 1].misses),
2168
+ misses: Math.max(
2169
+ 0,
2170
+ cacheHistory[i].misses - cacheHistory[i - 1].misses,
2171
+ ),
2160
2172
  });
2161
2173
  }
2162
2174
  const maxVal = Math.max(
@@ -2240,7 +2252,9 @@
2240
2252
 
2241
2253
  function connectSessionSSE() {
2242
2254
  if (sessionSSERetryCount >= MAX_SSE_RETRIES) {
2243
- console.warn("SSE: Max retries reached, stopping session stream reconnect");
2255
+ console.warn(
2256
+ "SSE: Max retries reached, stopping session stream reconnect",
2257
+ );
2244
2258
  return;
2245
2259
  }
2246
2260
  if (sessionSSE) {
@@ -2266,10 +2280,12 @@
2266
2280
  sessionSSE.close();
2267
2281
  sessionSSE = null;
2268
2282
  sessionSSERetryCount++;
2269
- setTimeout(() => {
2283
+ const delay = sessionSSERetryMs;
2284
+ sessionSSERetryMs = Math.min(sessionSSERetryMs * 2, 30000);
2285
+ sseReconnectTimer = setTimeout(() => {
2286
+ sseReconnectTimer = null;
2270
2287
  connectSessionSSE();
2271
- sessionSSERetryMs = Math.min(sessionSSERetryMs * 2, 30000);
2272
- }, sessionSSERetryMs);
2288
+ }, delay);
2273
2289
  };
2274
2290
  sessionSSE.onopen = () => {
2275
2291
  sessionSSERetryMs = 1000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nockdev/hsa",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "HSA - Hierarchical Semantic Analysis MCP Server for AI Code Agents",
5
5
  "type": "module",
6
6
  "main": "dist/hsa-lib.bundle.js",