summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/server/server.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index f1d4ecd8d..d30fe63b8 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -139,8 +139,22 @@ export namespace Server {
})
}
GlobalBus.on("event", handler)
+
+ // Send heartbeat every 30s to prevent WKWebView timeout (60s default)
+ const heartbeat = setInterval(() => {
+ stream.writeSSE({
+ data: JSON.stringify({
+ payload: {
+ type: "server.heartbeat",
+ properties: {},
+ },
+ }),
+ })
+ }, 30000)
+
await new Promise<void>((resolve) => {
stream.onAbort(() => {
+ clearInterval(heartbeat)
GlobalBus.off("event", handler)
resolve()
log.info("global event disconnected")
@@ -2470,8 +2484,20 @@ export namespace Server {
stream.close()
}
})
+
+ // Send heartbeat every 30s to prevent WKWebView timeout (60s default)
+ const heartbeat = setInterval(() => {
+ stream.writeSSE({
+ data: JSON.stringify({
+ type: "server.heartbeat",
+ properties: {},
+ }),
+ })
+ }, 30000)
+
await new Promise<void>((resolve) => {
stream.onAbort(() => {
+ clearInterval(heartbeat)
unsub()
resolve()
log.info("event disconnected")