# What changed in @effect/platform

> 15 changes in @effect/platform 0.97 from its official release notes, upgrade guides and advisories: 3 breaking, 1 security, 1 new APIs and options. Each one cited. Sources checked 2026-11-01. HTML: https://unstale.sh/npm/@effect/platform/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @effect/platform 0.97

### Breaking changes

- Passes the HttpServerResponse returned by the send handler to middleware instead of the handler's response. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Rejects invalid cookie names and cookie attribute separators in domains and paths. (0.97.1) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.1)
- File-backed key-value stores now reject empty, `.` and `..` keys. (0.97.1) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.1)

### Security

- Fixes a security issue in HTML escaping for generated Scalar and Swagger API documentation. (0.97.1) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.1)

### New APIs and options

- Adds an extendEnv option for spawning commands with a clean environment. (0.97.1) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.1)

### Fixes and other changes

- BunHttpServer logs status 101 for upgraded WebSocket requests. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Avoids throwing when Error.stackTraceLimit is non-writable, including in frozen-intrinsics, SES, and deterministic sandbox environments. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Keeps HTTP message bodies unread during inspection. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Preserves annotations on Union and multi-value Literal schemas, and prevents a Union response status set on one endpoint from leaking to other endpoints reusing the schema. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Decodes request bodies with a +json content type, such as application/scim+json, as JSON instead of raw bytes. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Builds the layer eagerly, preventing an aborted first request from leaving the handler hanging on runtimes such as Cloudflare workerd. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Fixes the @effect/platform-node implementation to return an ArrayBuffer instead of a Uint8Array. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Correctly parses raw UTF-8 filenames containing characters above U+00FF, which were previously parsed as fields with empty names. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Flattens the emitted anyOf for setPayload unions whose members share a content type. (0.97.3) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.3)
- Multipart limit failures are no longer silently ignored. (0.97.2) — [release notes](https://github.com/Effect-TS/effect/releases/tag/%40effect/platform%400.97.2)
