Key Points
- msgpack added as compressible type
- compression now respects Accept-Encoding
- mime charset set per MIME type
Summary
This release (v4.12.22) includes bug fixes, a small feature addition, and tooling updates. Notable changes: msgpack is now treated as a compressible content type, compression respects client Accept-Encoding when an explicit encoding option is used, MIME handling now specifies charset per MIME type, and Vitest was updated to v4.
Key Points
- feat: add msgpack as a compressible content type — msgpack responses can now be compressed by the framework.
- fix(compress): respect Accept-Encoding when encoding option is set — server will no longer ignore client encoding preferences when an explicit encoding strategy is configured.
- fix(mime): specify charset parameter per MIME type instead of mechanical detection — charset is determined by MIME type metadata rather than heuristic detection.
- fix(deno): echo negotiated WebSocket subprotocol in upgrade response — Deno deployments will include the chosen subprotocol in the upgrade handshake.
- chore: update vitest to v4 and code cleanups — upgrade your dev tooling and run your test suite to catch any test runner changes.
- New contributors made first-time contributions in this release.
Actions for engineers
- If you depend on compression behavior, verify middleware and client negotiation still behave as expected with Accept-Encoding.
- Review any logic that inferred charset from content; prefer MIME-type-based charset handling where applicable.
- Run the test suite under Vitest v4 and update CI configs if necessary.
- If you rely on Deno WebSocket subprotocol behavior, confirm the upgrade response includes the negotiated subprotocol.
Links
- Full changelog: v4.12.21...v4.12.22