Skip to content

Commit f9521ba

Browse files
committed
feat: tolerate disconnects in agent metadata frontend
1 parent 84956c1 commit f9521ba

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

site/src/components/Resources/AgentMetadata.tsx

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -241,18 +241,29 @@ 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+
const connect = (): (() => void) => {
246+
const source = watchAgentMetadata(agent.id)
247+
248+
source.onerror = (e) => {
249+
console.error("received error in watch stream", e)
250+
setMetadata(undefined)
251+
source.close()
252+
253+
setTimeout(() => {
254+
connect()
255+
}, 3000)
256+
}
257+
258+
source.addEventListener("data", (e) => {
259+
const data = JSON.parse(e.data)
260+
setMetadata(data)
261+
})
262+
return () => {
263+
source.close()
264+
}
255265
}
266+
return connect()
256267
}, [agent.id, watchAgentMetadata, storybookMetadata])
257268

258269
if (metadata === undefined) {

0 commit comments

Comments
 (0)