npm / @effect/platform-node-shared
@effect/platform-node-shared
What changed in @effect/platform-node-shared 0.61 to 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.
3 breaking3 new APIs and options15 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@effect/platform-node-shared 420 changes
Breaking changes 3
Exit codes now fail when stdin or additionalFds input streams fail, rather than reporting success after truncated input.
Buffered or decompressed request bodies over their size limit return 413 instead of 400; other parse failures still return 400.
NodeStream readable consumers now fail rather than hang on prematurely closed or already-destroyed streams.
New APIs and options 3
Node stream readers accept an optional destroyOnOverflow setting; their default destruction behavior is unchanged.
Adds lstat to return File.Info for a path without following symbolic links; custom FileSystem implementations must provide it.
Node stream readers expose MaxBytesError for size-limit overflows.
Fixes and other changes 14
Detached processes keep waiting while their process group exists but cannot be signalled, including when only zombie members remain.
Scoped finalization now succeeds if the temporary directory has already been removed.
Scoped finalization now succeeds if the temporary file has already been removed.
Avoids signalling a possibly reused process group after a non-detached child exits.
The maxBytes limit is enforced on bytes read rather than decoded text, avoiding incorrect limits for non-UTF-8 and UTF-16 input.
Without forceKillAfter, waiting for the leader has no time limit and never escalates to SIGKILL; after the leader exits, remaining process-group members get up to one second to exit.
No longer rejects readable Windows AppContainer paths when an ancestor is inaccessible.
Preserves stream body encoding errors instead of reporting transport errors caused by request cleanup.
Drain oversized request bodies so the response can reach the client without destroying the socket.
A writable destroyed without an error no longer hangs: premature closure fails through onError, while closure after completed writes settles successfully.
Releases writables when upstream fails or the sink is interrupted, preserving the original exit cause; writables using endOnDone: false remain open.
No longer hangs if a writable finishes before all upstream chunks are written; callback errors go through onError, and normal finish releases backpressure waits.
EPERM errors are classified as PermissionDenied instead of Unknown in Node platform error handling.
Fixes TTY input echo and Ctrl+C handling.
@effect/platform-node-shared 0.611 changes
Fixes and other changes 1
Raw UTF-8 multipart filenames containing characters above U+00FF are now parsed correctly instead of becoming fields with empty names.