From 4ed99088d198a55473ceb8771c6361286a25b4f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Thu, 25 Jun 2026 20:51:45 -0400 Subject: [PATCH 1/5] Update wisp to v0.5.6 (429/503 on WS upgrade connection-limit rejection) --- Dockerfile | 4 ++-- startos/versions/current.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7e9a0d5..a747de5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,8 @@ RUN case "${TARGETARCH}" in \ # Pinned to the latest upstream release. Bump WISP_VERSION and WISP_COMMIT to # update (see UPDATING.md). WISP_COMMIT is the immutable commit the tag points # to; the guard below fails the build if the tag is ever re-pointed. -ARG WISP_VERSION=v0.5.5 -ARG WISP_COMMIT=76a3261369ff4a2b5dedb778e8b1d42184800ea4 +ARG WISP_VERSION=v0.5.6 +ARG WISP_COMMIT=15891be7b685b40099fe4704c1f678897059dfec RUN git clone --branch ${WISP_VERSION} --depth 1 https://github.com/privkeyio/wisp.git /src && \ HEAD_SHA="$(git -C /src rev-parse HEAD)" && \ if [ "${HEAD_SHA}" != "${WISP_COMMIT}" ]; then \ diff --git a/startos/versions/current.ts b/startos/versions/current.ts index 0046d41..0812b9c 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -1,10 +1,10 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ - version: '0.5.5:0', + version: '0.5.6:0', releaseNotes: { en_US: - 'Updates wisp to v0.5.5. No behavior change from v0.5.4: wisp now builds against the upstream http.zig and websocket.zig libraries instead of temporary forks, since all of its fixes have been merged upstream. Carries forward every prior fix: the inbound-worker crash fix, crash-safe storage, stable Spider upstream connections, no per-IP cap behind the StartOS proxy, and the diagnosable (ReleaseSafe) build.', + 'Updates wisp to v0.5.6. WebSocket upgrades rejected by the connection limiter now return HTTP 429 (per-IP cap) or 503 (server full) instead of HTTP 500, so external uptime monitors no longer report the relay as down when only a single connection is being rejected (the relay info document keeps returning 200 throughout). The rejected client IP is logged for diagnosis. Carries forward every prior fix.', }, migrations: { up: async ({ effects }) => {}, From 4a9c4b2789e3375934c8d48da932391b50cafacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Sat, 27 Jun 2026 08:40:35 -0400 Subject: [PATCH 2/5] Update wisp to v0.5.7 (shutdown use-after-free fix) --- Dockerfile | 4 ++-- startos/versions/current.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a747de5..d2a6bde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,8 @@ RUN case "${TARGETARCH}" in \ # Pinned to the latest upstream release. Bump WISP_VERSION and WISP_COMMIT to # update (see UPDATING.md). WISP_COMMIT is the immutable commit the tag points # to; the guard below fails the build if the tag is ever re-pointed. -ARG WISP_VERSION=v0.5.6 -ARG WISP_COMMIT=15891be7b685b40099fe4704c1f678897059dfec +ARG WISP_VERSION=v0.5.7 +ARG WISP_COMMIT=ab6d9214608c2322c55fedad05f71b498d6cb054 RUN git clone --branch ${WISP_VERSION} --depth 1 https://github.com/privkeyio/wisp.git /src && \ HEAD_SHA="$(git -C /src rev-parse HEAD)" && \ if [ "${HEAD_SHA}" != "${WISP_COMMIT}" ]; then \ diff --git a/startos/versions/current.ts b/startos/versions/current.ts index 0812b9c..e2ebbe2 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -1,10 +1,10 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ - version: '0.5.6:0', + version: '0.5.7:0', releaseNotes: { en_US: - 'Updates wisp to v0.5.6. WebSocket upgrades rejected by the connection limiter now return HTTP 429 (per-IP cap) or 503 (server full) instead of HTTP 500, so external uptime monitors no longer report the relay as down when only a single connection is being rejected (the relay info document keeps returning 200 throughout). The rejected client IP is logged for diagnosis. Carries forward every prior fix.', + 'Updates wisp to v0.5.7. Fixes a crash (SIGSEGV) on shutdown when a query was still streaming as the relay stopped, for example during a backup: the connection worker tore down storage while a query was still reading it. Storage was never at risk (crash-safe writes), but the unclean shutdown is gone. Carries forward every prior fix.', }, migrations: { up: async ({ effects }) => {}, From 1778ea79401c27c350c1b06670a6e1ed36efcfb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Mon, 29 Jun 2026 09:55:42 -0400 Subject: [PATCH 3/5] Update wisp to v0.5.9 (churn + shutdown crash fixes; folds in v0.5.8) --- Dockerfile | 4 ++-- startos/versions/current.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2a6bde..770c184 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,8 @@ RUN case "${TARGETARCH}" in \ # Pinned to the latest upstream release. Bump WISP_VERSION and WISP_COMMIT to # update (see UPDATING.md). WISP_COMMIT is the immutable commit the tag points # to; the guard below fails the build if the tag is ever re-pointed. -ARG WISP_VERSION=v0.5.7 -ARG WISP_COMMIT=ab6d9214608c2322c55fedad05f71b498d6cb054 +ARG WISP_VERSION=v0.5.9 +ARG WISP_COMMIT=bbea8bdd15d24ae5b9760e602fb3e2a7110e8ef0 RUN git clone --branch ${WISP_VERSION} --depth 1 https://github.com/privkeyio/wisp.git /src && \ HEAD_SHA="$(git -C /src rev-parse HEAD)" && \ if [ "${HEAD_SHA}" != "${WISP_COMMIT}" ]; then \ diff --git a/startos/versions/current.ts b/startos/versions/current.ts index e2ebbe2..ca358eb 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -1,10 +1,10 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ - version: '0.5.7:0', + version: '0.5.9:0', releaseNotes: { en_US: - 'Updates wisp to v0.5.7. Fixes a crash (SIGSEGV) on shutdown when a query was still streaming as the relay stopped, for example during a backup: the connection worker tore down storage while a query was still reading it. Storage was never at risk (crash-safe writes), but the unclean shutdown is gone. Carries forward every prior fix.', + 'Updates wisp to v0.5.9 (folds in v0.5.8). Fixes two crashes: (1) a SIGSEGV every few hours during normal operation under connection churn, where a finished connection could be freed while the event loop still had a pending read for it; connections are now removed from the event loop before being freed. (2) A SIGSEGV on shutdown when a query was still being served, where connection buffers a query was reading were freed before in-flight handlers finished; the worker pool now drains before any buffers are freed. Storage was never at risk in either case. Carries forward every prior fix.', }, migrations: { up: async ({ effects }) => {}, From a519daa9e8c5cd6ffa3f619bceaf00dd55240b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Wed, 1 Jul 2026 08:51:46 -0400 Subject: [PATCH 4/5] Update wisp to v0.5.10 (build against upstream http.zig; drop fork) --- Dockerfile | 4 ++-- startos/versions/current.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 770c184..e8d0b90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,8 @@ RUN case "${TARGETARCH}" in \ # Pinned to the latest upstream release. Bump WISP_VERSION and WISP_COMMIT to # update (see UPDATING.md). WISP_COMMIT is the immutable commit the tag points # to; the guard below fails the build if the tag is ever re-pointed. -ARG WISP_VERSION=v0.5.9 -ARG WISP_COMMIT=bbea8bdd15d24ae5b9760e602fb3e2a7110e8ef0 +ARG WISP_VERSION=v0.5.10 +ARG WISP_COMMIT=9e741b5ea3904976b97aa3d0eaf98e230224cdfe RUN git clone --branch ${WISP_VERSION} --depth 1 https://github.com/privkeyio/wisp.git /src && \ HEAD_SHA="$(git -C /src rev-parse HEAD)" && \ if [ "${HEAD_SHA}" != "${WISP_COMMIT}" ]; then \ diff --git a/startos/versions/current.ts b/startos/versions/current.ts index ca358eb..ca3654e 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -1,10 +1,10 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ - version: '0.5.9:0', + version: '0.5.10:0', releaseNotes: { en_US: - 'Updates wisp to v0.5.9 (folds in v0.5.8). Fixes two crashes: (1) a SIGSEGV every few hours during normal operation under connection churn, where a finished connection could be freed while the event loop still had a pending read for it; connections are now removed from the event loop before being freed. (2) A SIGSEGV on shutdown when a query was still being served, where connection buffers a query was reading were freed before in-flight handlers finished; the worker pool now drains before any buffers are freed. Storage was never at risk in either case. Carries forward every prior fix.', + 'Updates wisp to v0.5.10. No behavior change from v0.5.9: wisp now builds against the upstream http.zig library instead of a temporary fork, since both crash fixes from v0.5.8 and v0.5.9 have been merged upstream. Carries forward every prior fix.', }, migrations: { up: async ({ effects }) => {}, From 93b9c359d60f4c7416eb496bc8fea96c121d9216 Mon Sep 17 00:00:00 2001 From: "William K. Santiago" Date: Mon, 6 Jul 2026 16:10:58 -0400 Subject: [PATCH 5/5] Build wisp from main HEAD (d96bd0e) as 0.5.10:1 test build --- Dockerfile | 4 ++-- startos/versions/current.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index e8d0b90..776ba04 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,8 @@ RUN case "${TARGETARCH}" in \ # Pinned to the latest upstream release. Bump WISP_VERSION and WISP_COMMIT to # update (see UPDATING.md). WISP_COMMIT is the immutable commit the tag points # to; the guard below fails the build if the tag is ever re-pointed. -ARG WISP_VERSION=v0.5.10 -ARG WISP_COMMIT=9e741b5ea3904976b97aa3d0eaf98e230224cdfe +ARG WISP_VERSION=main +ARG WISP_COMMIT=d96bd0e036308e73922fa5e06b20394115ca0883 RUN git clone --branch ${WISP_VERSION} --depth 1 https://github.com/privkeyio/wisp.git /src && \ HEAD_SHA="$(git -C /src rev-parse HEAD)" && \ if [ "${HEAD_SHA}" != "${WISP_COMMIT}" ]; then \ diff --git a/startos/versions/current.ts b/startos/versions/current.ts index ca3654e..b861557 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -1,10 +1,10 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ - version: '0.5.10:0', + version: '0.5.10:1', releaseNotes: { en_US: - 'Updates wisp to v0.5.10. No behavior change from v0.5.9: wisp now builds against the upstream http.zig library instead of a temporary fork, since both crash fixes from v0.5.8 and v0.5.9 have been merged upstream. Carries forward every prior fix.', + 'Test build: wisp built from upstream main HEAD (d96bd0e) past the v0.5.10 tag — includes connection reaping + SO_KEEPALIVE (#136), idle-close slot reclaim (#133), spider staleness watchdog (#132), and shutdown-aware spider bootstrap (#137).', }, migrations: { up: async ({ effects }) => {},