Files
Pranay Prakash 2bc368c424 fix(compression): address PR review on codec read paths, cross-deployment safety, and web zstd decode
- decompress() now gates only on DecompressionStream (read path), not
  CompressionStream — reads work in decompress-only runtimes (Copilot).
- Cross-deployment writes (start({deploymentId}), resumeHook) restrict to
  the portable gzip codec via a new compressionPortableOnly flag. zstd
  decode needs node:zlib >= 22.15, a property of the reader's runtime that
  the SDK (engines: Node 18+) can't guarantee for a different deployment;
  same-deployment writes still use zstd since reader == writer (vercel bot).
- Browser zstd WASM is now vendored into web-shared dist and referenced via
  a relative new URL('./zstd.wasm', import.meta.url) — a bare package
  specifier was left unrewritten by Vite and 404'd. Verified the Vite build
  emits the asset (karthikscale3).
- hydrateResourceIOWithKey accepts an optional key and always registers the
  zstd decoder, so unencrypted compressed payloads (e.g. local world) are
  inflated; web no-key hydration paths now route through it (karthikscale3).
- Clarify the sync-decompress doc contract (best-effort via
  process.getBuiltinModule, not "always on Node") (Copilot).

Tests: cross-deployment gzip fallback, unencrypted compressed web
hydration, and zstd WASM ↔ node:zlib compatibility.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-16 16:36:38 -07:00
..
2026-06-16 10:37:51 -05:00
2026-06-15 13:46:00 -07:00
2025-10-23 12:07:52 +03:00
2026-06-15 13:46:00 -07:00