Skip to content

Commit dd85ea8

Browse files
authored
feat: tolerate disconnects in agent metadata frontend (#6939)
1 parent 5398150 commit dd85ea8

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

site/src/components/Resources/AgentMetadata.tsx

+26-10
Original file line numberDiff line numberDiff line change
@@ -241,18 +241,34 @@ export const AgentMetadata: FC<{
241241
setMetadata(storybookMetadata)
242242
return
243243
}
244-
const source = watchAgentMetadata(agent.id)
245244

246-
source.onerror = (e) => {
247-
console.error("received error in watch stream", e)
248-
}
249-
source.addEventListener("data", (e) => {
250-
const data = JSON.parse(e.data)
251-
setMetadata(data)
252-
})
253-
return () => {
254-
source.close()
245+
let timeout: NodeJS.Timeout | undefined = undefined
246+
247+
const connect = (): (() => void) => {
248+
const source = watchAgentMetadata(agent.id)
249+
250+
source.onerror = (e) => {
251+
console.error("received error in watch stream", e)
252+
setMetadata(undefined)
253+
source.close()
254+
255+
timeout = setTimeout(() => {
256+
connect()
257+
}, 3000)
258+
}
259+
260+
source.addEventListener("data", (e) => {
261+
const data = JSON.parse(e.data)
262+
setMetadata(data)
263+
})
264+
return () => {
265+
if (timeout !== undefined) {
266+
clearTimeout(timeout)
267+
}
268+
source.close()
269+
}
255270
}
271+
return connect()
256272
}, [agent.id, watchAgentMetadata, storybookMetadata])
257273

258274
if (metadata === undefined) {

0 commit comments

Comments
 (0)