Skip to content

Release v3.6.1 - #304

Merged
raaymax merged 2 commits into
mainfrom
dev
Jun 18, 2026
Merged

Release v3.6.1#304
raaymax merged 2 commits into
mainfrom
dev

Conversation

@raaymax

@raaymax raaymax commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Release v3.6.1

Patch release on top of v3.6.0.

Fixes

  • Thumbnails no longer block the server event loop (fix(storage): resize thumbnails off the event loop #303). On-the-fly image resizing (@cf-wasm/photon WASM) ran synchronously on Deno's single thread, so a single large thumbnail froze every concurrent request — avatars, downloads, SSE — for the duration, then "self-healed" once cached. This manifested in production as all avatars vanishing for everyone for ~1–2 minutes with no crash, restart, or error logs.

Changes

  • Resizing now runs in a Web Worker pool (default 2, STORAGE_RESIZE_WORKERS), keeping the main event loop responsive.
  • Per-job timeout (STORAGE_RESIZE_TIMEOUT_MS, default 30s) terminates and respawns a hung worker instead of leaking it.
  • Backpressure: thumbnail requests are gated on pool capacity (STORAGE_RESIZE_MAX_PENDING) before the image is read into memory; the original is served when saturated.
  • Restored resize-failure logging; graceful pool shutdown on process exit.
  • Fixed a pre-existing workspace type-check error in @quack/api (SSESourceInit).
  • Added unit + integration test coverage for the resize pool and thumbnail route.

@raaymax raaymax added the v3.6.1 Release v3.6.1 label Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Docker image

ghcr.io/raaymax/quack:build-99

@github-actions

Copy link
Copy Markdown
Contributor

Docker image

ghcr.io/raaymax/quack:build-100

@raaymax
raaymax merged commit 01eb916 into main Jun 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v3.6.1 Release v3.6.1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant