@sleep2agi/agent-network-dashboard 0.1.0-preview.5 → 0.1.0-preview.6
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +2 -2
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +1 -1
- package/.next/server/app/docs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0o~g2gtcm3~v5.js → 02w9ytw8eey3r.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/lib/useSSE.ts +23 -8
- package/package.json +1 -1
- /package/.next/static/{oE1CQfUPxWRF4qxM7LJ_r → keZJjdNjrdbFuzwrc4g4c}/_buildManifest.js +0 -0
- /package/.next/static/{oE1CQfUPxWRF4qxM7LJ_r → keZJjdNjrdbFuzwrc4g4c}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{oE1CQfUPxWRF4qxM7LJ_r → keZJjdNjrdbFuzwrc4g4c}/_ssgManifest.js +0 -0
package/app/lib/useSSE.ts
CHANGED
|
@@ -30,22 +30,31 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
|
|
|
30
30
|
const reconnectTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);
|
|
31
31
|
const unsupportedRef = useRef(false);
|
|
32
32
|
|
|
33
|
+
// Track the active probe + cancel flag so cleanup can abort the in-flight
|
|
34
|
+
// HEAD and prevent the EventSource from being created after unmount. Without
|
|
35
|
+
// this, every navigation leaks one SSE — six leaks saturate the browser's
|
|
36
|
+
// HTTP/1.1 pool and lock up further fetches (including RSC payloads).
|
|
37
|
+
const probeAbortRef = useRef<AbortController | null>(null);
|
|
38
|
+
const cancelledRef = useRef(false);
|
|
39
|
+
|
|
33
40
|
const connect = useCallback(() => {
|
|
34
|
-
if (!enabled || !url || unsupportedRef.current) return;
|
|
41
|
+
if (!enabled || !url || unsupportedRef.current || cancelledRef.current) return;
|
|
35
42
|
|
|
36
|
-
// Clean up existing connection
|
|
37
43
|
if (eventSourceRef.current) {
|
|
38
44
|
eventSourceRef.current.close();
|
|
45
|
+
eventSourceRef.current = null;
|
|
39
46
|
}
|
|
47
|
+
if (probeAbortRef.current) probeAbortRef.current.abort();
|
|
40
48
|
|
|
41
49
|
const probeUrl = url.includes('?') ? `${url}&probe=1` : `${url}?probe=1`;
|
|
42
|
-
|
|
43
50
|
const probeController = new AbortController();
|
|
51
|
+
probeAbortRef.current = probeController;
|
|
44
52
|
const probeTimeout = setTimeout(() => probeController.abort(), 5000);
|
|
45
53
|
|
|
46
54
|
fetch(probeUrl, { method: 'HEAD', cache: 'no-store', signal: probeController.signal })
|
|
47
55
|
.finally(() => clearTimeout(probeTimeout))
|
|
48
56
|
.then((res) => {
|
|
57
|
+
if (cancelledRef.current) return;
|
|
49
58
|
if (res.headers.get('x-anet-sse-available') !== 'true') {
|
|
50
59
|
unsupportedRef.current = true;
|
|
51
60
|
setConnected(false);
|
|
@@ -57,9 +66,7 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
|
|
|
57
66
|
const es = new EventSource(url);
|
|
58
67
|
eventSourceRef.current = es;
|
|
59
68
|
|
|
60
|
-
es.onopen = () =>
|
|
61
|
-
setConnected(true);
|
|
62
|
-
};
|
|
69
|
+
es.onopen = () => setConnected(true);
|
|
63
70
|
|
|
64
71
|
es.onmessage = (e) => {
|
|
65
72
|
try {
|
|
@@ -73,11 +80,13 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
|
|
|
73
80
|
setConnected(false);
|
|
74
81
|
es.close();
|
|
75
82
|
eventSourceRef.current = null;
|
|
76
|
-
|
|
77
|
-
|
|
83
|
+
if (!cancelledRef.current) {
|
|
84
|
+
reconnectTimerRef.current = setTimeout(connect, reconnectDelay);
|
|
85
|
+
}
|
|
78
86
|
};
|
|
79
87
|
})
|
|
80
88
|
.catch(() => {
|
|
89
|
+
if (cancelledRef.current) return;
|
|
81
90
|
setConnected(false);
|
|
82
91
|
setSupported(false);
|
|
83
92
|
});
|
|
@@ -85,9 +94,15 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
|
|
|
85
94
|
|
|
86
95
|
useEffect(() => {
|
|
87
96
|
unsupportedRef.current = false;
|
|
97
|
+
cancelledRef.current = false;
|
|
88
98
|
setSupported(enabled ? null : false);
|
|
89
99
|
connect();
|
|
90
100
|
return () => {
|
|
101
|
+
cancelledRef.current = true;
|
|
102
|
+
if (probeAbortRef.current) {
|
|
103
|
+
probeAbortRef.current.abort();
|
|
104
|
+
probeAbortRef.current = null;
|
|
105
|
+
}
|
|
91
106
|
if (eventSourceRef.current) {
|
|
92
107
|
eventSourceRef.current.close();
|
|
93
108
|
eventSourceRef.current = null;
|
package/package.json
CHANGED
|
File without changes
|
/package/.next/static/{oE1CQfUPxWRF4qxM7LJ_r → keZJjdNjrdbFuzwrc4g4c}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|