From 9e6e61db8cbf70055c9ac8b89111144ffc58c76e Mon Sep 17 00:00:00 2001 From: Rob Simmons Date: Wed, 1 Jul 2026 21:36:33 -0400 Subject: [PATCH 1/2] fix: keep sse session alive with comment lines --- src/lib/server/util.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lib/server/util.ts b/src/lib/server/util.ts index a2d2f63..56142fb 100644 --- a/src/lib/server/util.ts +++ b/src/lib/server/util.ts @@ -111,6 +111,8 @@ export function sseStreamResponse(onCancel?: () => void): [Response, (msg: objec let close: () => void = () => {} let closed = false const encoder = new TextEncoder() + let keepAliveTimeout: ReturnType | undefined = undefined + const stream = new ReadableStream({ start(controller) { send = msg => { @@ -120,11 +122,20 @@ export function sseStreamResponse(onCancel?: () => void): [Response, (msg: objec close = () => { if (closed) return closed = true + clearInterval(keepAliveTimeout) + keepAliveTimeout = undefined controller.close() } + // nginx will close connections that don't send some message in 60s + keepAliveTimeout = setInterval(() => { + if (closed) return + controller.enqueue(encoder.encode(`:\n`)) + }, 10_000) }, cancel() { closed = true + clearInterval(keepAliveTimeout) + keepAliveTimeout = undefined if (onCancel) onCancel() }, }) From 4f1e7ed4cf6c3a1f7fb7dbd5c1c591c0f2e0fb68 Mon Sep 17 00:00:00 2001 From: Rob Simmons Date: Wed, 1 Jul 2026 21:39:48 -0400 Subject: [PATCH 2/2] Add lakecache.blob.core.windows.net to allowlist, not sure why that didn't trip me up before --- DEVELOPMENT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index da41745..ec135f8 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -36,7 +36,7 @@ and allow sufficient network access: ``` sbx create shell --name workbench . -sbx policy allow network --sandbox workbench '*.docker.com:443,production.cloudfront.docker.com:443,*.docker.io:443,openvsx.eclipsecontent.org:443,electronjs.org:443,*.electronjs.org:443,fonts.googleapis.com:443,github-cloud.githubusercontent.com:443,raw.githubusercontent.com:443,release-assets.githubusercontent.com:443,github.com:443,*.github.com:443,fonts.gstatic.com:443,*.lean-lang.org:443,playwright.download.prss.microsoft.com:443,nodejs.org:443,*.nodejs.com:443,deb.nodesource.com:443,*.npmjs.org:443,open-vsx.org:443,*.playwright.dev:443,checkpoint.prisma.io:443,binaries.prisma.sh:443,www.schemastore.org:443,ports.ubuntu.com:80,ports.ubuntu.com:443' +sbx policy allow network --sandbox workbench '*.docker.com:443,production.cloudfront.docker.com:443,*.docker.io:443,openvsx.eclipsecontent.org:443,electronjs.org:443,*.electronjs.org:443,fonts.googleapis.com:443,github-cloud.githubusercontent.com:443,raw.githubusercontent.com:443,release-assets.githubusercontent.com:443,github.com:443,*.github.com:443,fonts.gstatic.com:443,*.lean-lang.org:443,playwright.download.prss.microsoft.com:443,nodejs.org:443,*.nodejs.com:443,deb.nodesource.com:443,*.npmjs.org:443,open-vsx.org:443,*.playwright.dev:443,checkpoint.prisma.io:443,binaries.prisma.sh:443,www.schemastore.org:443,ports.ubuntu.com:80,ports.ubuntu.com:443,lakecache.blob.core.windows.net:443' ``` The sandbox can be started by running