Repository navigation
deps: update effect to v4.1.0 - #117
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/effect
branch
from
October 29, 2026 06:48
d50d718 to
9da0027
Compare
renovate
Bot
force-pushed
the
renovate/effect
branch
from
October 30, 2026 05:14
9da0027 to
d866911
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
4.0.6→4.1.04.0.6→4.1.04.0.6→4.1.04.0.6→4.1.0Release Notes
Effect-TS/effect (@effect/platform-node)
v4.1.0Compare Source
Minor Changes
8f23668Thanks @fubhy! - Replaceeffect/Cryptowith family-specificeffect/crypto/*services, opaque keys,CryptoError, a configurableWebCryptoreference and key schemas ineffect/Schema. Encoding secret or private keys through byte/format schemas requires{ allowEncode: true }.Breaking changes
SecureRandomfor randomness and UUIDs, andDigestwith algorithm values such asDigest.sha256for hashing. Replaceeffect/testing/TestCryptowithLayer.mockfor the required services.*Servicesbundles.NodeCrypto,BunCrypto,DenoCryptoandBrowserCryptooffer individual family layers and a combinedlayer, supplyingSecureRandomwhere needed. Core modules offerlayerWebCrypto.Digest.Digestinstead ofCrypto.CryptotoSqlMessageStorageandSingleRunner, and instead ofEventLogEncryptiontoSqlEventLogServerEncrypted.makeStorageandlayerStorage. ReplaceEventLogEncryption.sha256Stringwithdigest.digestHex(Digest.sha256, bytes).Existing workflow ID, activity idempotency key and event log table-name encodings are unchanged.
Event log encryption, identity key derivation and session authentication now run on
Aead,Digest,SignatureandSecureRandom.EventLogEncryption.makeandEventLogEncryption.layertake those services from context, so Node apps can use theNodeCryptolayers.EventLogEncryption.layerSubtleand the session auth functions use the Web Crypto layers on theWebCryptoreference instead ofglobalThis.crypto. Existing identities, derived signing keys and encrypted batches are unchanged.UUIDv7 and ULID generation is now monotonic below the maximum 48-bit timestamp, including within a millisecond and across clock rollback. Ordering is per
SecureRandominstance; the unsafe helpers and model UUIDv7 defaults share per-realm ordering.#10087
472c469Thanks @effect-bot! - Node.js 22.19.0 (required byundici8) is now the minimum for@effect/platform-node,@effect/platform-node-shared,@effect/opentelemetryand@effect/docgen, up from 18.NodeSocketWebSocket clients now use Node's globalWebSocketinstead ofws, so client-only usage no longer bundlesws.Breaking:
wsmoved to a newNodeWSmodule.NodeSocket.NodeWSandBunSocket.NodeWSare removed. ImportNodeWSfrom@effect/platform-nodeor@effect/platform-node-shared(on Bun, importwsdirectly). UseNodeWS.WebSocketin place ofNodeSocket.NodeWS.default.NodeSocket.layerWebSocketConstructorWSis removed. UseNodeWS.layerWebSocketConstructor.Behaviour changes for clients that pass handshake headers, which previously used
ws. UseNodeWS.layerWebSocketConstructorto keep the old behaviour:highWaterMarkfails the socket with aSocketReadError.ErrorEvent, soSocketOpenErrorcauses lack the underlying error code.Socket.WebSocketservice is a globalWebSocket, sowsinstanceofchecks andws-only methods such asterminate()andping()no longer apply.Hostheader is ignored.permessage-deflatemessages are still decompressed.http.globalAgent/https.globalAgent.Patch Changes
#10081
438ce72Thanks @effect-bot! -NodeHttpClient.layerNodeHttpnow encodesFormDatarequest bodies with the globalResponse, so it no longer loads theundicipackage. Bundles that use thenode:httpclient no longer include undici. File contents are still streamed as the upload needs them, and a file that cannot be read still fails the request with aTransportError. The Undici-backed client is unchanged.#10071
19d36b8Thanks @effect-bot! - Convert Node HTTP server request headers toHeadersinstead of casting them, so configured header redaction applies when request headers are logged or inspected.#10065
8e668feThanks @jpowersdev! - Preserve a leading UTF-8 BOM in URL-encoded body field names.#10067
ce9e999Thanks @jpowersdev! - Preserve a leading?in URL-encoded form field names.urlParamsBodypreviously dropped it as a query-string prefix, so?name=valuedecoded toname.Updated dependencies [
631d4f4,7ea1ea2,a2ccc14,ed20129,20795b9,a8e5e6c,66c796a,c4d298d,fb5dbee,8309b94,ac10e55,af23904,df8dce5,0c24a8f,468c6ee,2d1fcd4,8f23668,3f8f359,fe6b748,2a03584,40e145e,7217410,cf249fe,4f0fad1,e75708c,7890077,c4a00fc,f74db37,069cf72,9a07ebc,f40dc4e,fa516c6,ffd9237,93895b9,8938b19,e5a1479,89e1e1e,eda0960,65db606,7c42335,cb21d14,89e1e1e,c32eb78,be9895b,472c469,26b4bfe,e19c611,f97711f,4f16778,d2b6bc7,8e668fe,ce9e999,3d88452,3c42058,2ae4045,e853fa1,6dc3f7c,1513bbd,c065ed7,1194a4c,2cb498e,89e5443,2a9a425,e710bbb,b0d6e75,32b3570,9f93f4f,27370c7]:v4.0.7Compare Source
Patch Changes
#9751
fb38ce6Thanks @effect-bot! - Allow buffered payloads and typed101response headers onHttpApiSchema.Upgradeendpoints.HttpApiSchema.Upgrade({ protocol, headers })declares101headers, encoded likeWithHeadersheaders. Clients decode them and return{ headers, socket }, and OpenAPI lists them on the101.upgradefunction instead ofsocket:upgrade(), orupgrade({ headers })when headers are declared.426 Upgrade Requiredis returned before the payload is decoded.HttpServerRequestgainsupgradeWith({ headers }), andupgradeisupgradeWith({}). Third-partyHttpServerRequestimplementations must add it. WebSocket upgrades fail when headers are given.NodeHttpServerwaits for the request body to end before writing the101. On Node 25 and older, which do not parse upgrade request bodies, it readsContent-Lengthbodies from the connection and answers chunked ones with411 Length Required.NodeMultipartfails with aMultipartErrorwhen its source stream errors, instead of waiting for more input.#10004
4ee3a67Thanks @athammer! - FixNodeHttpServerhanging or reporting a defect when an HTTP/1 client disconnects before the response is written.#9978
07ca583Thanks @jpowersdev! - FixNodeMultipart.streamhanging when the source closes early or is already destroyed, including any file part still being read, and remove its source listeners once parsing finishes.#9828
45c467aThanks @tim-smart! - AddRedis.reserve, which leases a dedicated connection from a pool, so blocking commands likeXREAD BLOCKandBLPOPno longer hold up other commands on the shared connection.NodeRedis,BunRedisandDenoRedislayers acceptmaxConnections,minConnections,idleTimeoutandacquireTimeoutto size the pool.Redis.makenow requires aconnectoption, and hand-writtenRedisservices need areservemember.Updated dependencies [
ac3485a,3a4c691,4f0600e,110fd22,aa58cda,8e257e7,e62a149,958307b,dcd43a5,5fbccf4,3388cdd,81b0e14,a046435,f6d8968,5741c3a,381d5c6,d47478a,383716d,46dc30a,3d5c862,93ebc4f,c7b161a,e55945d,1a53d6a,5e25cc9,9503d5c,13efb72,8ca6abb,4a09dd1,346fc92,20e5ba8,f4b237e,1dd08ee,940be42,37be245,563fde0,938cecb,cf197c1,7ca71bb,1e73219,4dd860d,4d24a11,6bbc5ac,5fd25f4,a461561,832b3c6,837e906,cd1f2d4,fb38ce6,446c7ac,b48b7d8,dc66d90,d5a3dc3,482e0d5,d84f518,d34d399,5bbd25e,14eab6b,a3bd27a,ec19ab3,af8fcb3,6b82a28,3043aea,785577e,a8dbbce,65094ac,113ec70,ad3126e,eedfb27,45c467a,c983fc1,58f164f,f6df1aa,c05355c,ae7805c,9ffc621,c97b331,15297e5,41f6738,53f9352,b72f6a2,52e1716,50c863a,f09dc43,c148d27,a11ecdd,08e338e,8450ad5,39da87a,a2adb31,a6174d5,96e6004,3ebd645,3c3c79b,8c6d2fa,1ff35d2,2b100e9,e3938e5,f90101a,306c9a1,5b69c67,a12ffe3,f6cf0fd,3541f65,d50aaa2,3731ddb,3b8090c,137757a,a658477]:Effect-TS/effect (@effect/platform-node-shared)
v4.1.0Compare Source
Minor Changes
#8829
66c796aThanks @effect-bot! - Bound Node stream and socket pulls to at mostchunkSizechunks (default 4096), preventing synchronously refilling sources from draining indefinitely in one pull. Add achunkSizeoption to Node socket constructors and a separatereadSizeoption for Node streamread(size)calls; callers previously usingchunkSizefor byte read sizes should usereadSizeinstead. SetchunkSize: Infinityto opt into unbounded batching.#8829
8f23668Thanks @fubhy! - Replaceeffect/Cryptowith family-specificeffect/crypto/*services, opaque keys,CryptoError, a configurableWebCryptoreference and key schemas ineffect/Schema. Encoding secret or private keys through byte/format schemas requires{ allowEncode: true }.Breaking changes
SecureRandomfor randomness and UUIDs, andDigestwith algorithm values such asDigest.sha256for hashing. Replaceeffect/testing/TestCryptowithLayer.mockfor the required services.*Servicesbundles.NodeCrypto,BunCrypto,DenoCryptoandBrowserCryptooffer individual family layers and a combinedlayer, supplyingSecureRandomwhere needed. Core modules offerlayerWebCrypto.Digest.Digestinstead ofCrypto.CryptotoSqlMessageStorageandSingleRunner, and instead ofEventLogEncryptiontoSqlEventLogServerEncrypted.makeStorageandlayerStorage. ReplaceEventLogEncryption.sha256Stringwithdigest.digestHex(Digest.sha256, bytes).Existing workflow ID, activity idempotency key and event log table-name encodings are unchanged.
Event log encryption, identity key derivation and session authentication now run on
Aead,Digest,SignatureandSecureRandom.EventLogEncryption.makeandEventLogEncryption.layertake those services from context, so Node apps can use theNodeCryptolayers.EventLogEncryption.layerSubtleand the session auth functions use the Web Crypto layers on theWebCryptoreference instead ofglobalThis.crypto. Existing identities, derived signing keys and encrypted batches are unchanged.UUIDv7 and ULID generation is now monotonic below the maximum 48-bit timestamp, including within a millisecond and across clock rollback. Ordering is per
SecureRandominstance; the unsafe helpers and model UUIDv7 defaults share per-realm ordering.#10087
472c469Thanks @effect-bot! - Node.js 22.19.0 (required byundici8) is now the minimum for@effect/platform-node,@effect/platform-node-shared,@effect/opentelemetryand@effect/docgen, up from 18.NodeSocketWebSocket clients now use Node's globalWebSocketinstead ofws, so client-only usage no longer bundlesws.Breaking:
wsmoved to a newNodeWSmodule.NodeSocket.NodeWSandBunSocket.NodeWSare removed. ImportNodeWSfrom@effect/platform-nodeor@effect/platform-node-shared(on Bun, importwsdirectly). UseNodeWS.WebSocketin place ofNodeSocket.NodeWS.default.NodeSocket.layerWebSocketConstructorWSis removed. UseNodeWS.layerWebSocketConstructor.Behaviour changes for clients that pass handshake headers, which previously used
ws. UseNodeWS.layerWebSocketConstructorto keep the old behaviour:highWaterMarkfails the socket with aSocketReadError.ErrorEvent, soSocketOpenErrorcauses lack the underlying error code.Socket.WebSocketservice is a globalWebSocket, sowsinstanceofchecks andws-only methods such asterminate()andping()no longer apply.Hostheader is ignored.permessage-deflatemessages are still decompressed.http.globalAgent/https.globalAgent.#8829
d2b6bc7Thanks @jpowersdev! - Add experimentalGlobpath matching and a sharedFileSystem.globimplementation for Node, Bun, and Deno.FileSystemimplementations, including inputs toFileSystem.make, must providereadDirectoryEntries; mappingreadDirectorynames to{ name, type: "Unknown" }is supported. Wrappers must apply directory-listing changes to both methods.FileSystem.makenow derivesglobinstead of accepting it. Apply custom overrides afterward withFileSystem.of({ ...fs, glob: customGlob })./separators and backslash escapes; Node extglobs no longer expand. Results use/separators and are relative torootunless the pattern is absolute. Deno wildcards now skip dotfiles unless explicitly named ordot: true; unreadable wildcard-reached directories are skipped, while read failures at the root or a leading literal directory propagate.#8829
3d88452Thanks @fubhy! - AddCommandLinetoeffect/processfor quoting and joining command lines, and supportRedactedarguments andenvvalues inChildProcess.Migration:
ChildProcess.maketemplates keep quoted words together and throw aCommandLineErrorfor shell syntax such as|,$HOMEor*. Quote such characters or pass them with${}.shelloption, templates cannot contain${}values and extra arguments fail withBadArgument. Pass the whole script as the command, built withCommandLine.join.StandardCommand.argsandenvvalues can beRedactedstrings.ChildProcess.TemplateExpressionandChildProcess.TemplateExpressionItemare removed. Use theCommandLinetypes of the same name.#8829
89e5443Thanks @jpowersdev! - AddTerminal.size, a scoped queue that starts with the current terminal dimensions and receives each resize. Custom terminals passed toTerminal.makemust now supplysize.Patch Changes
fe6b748Thanks @effect-bot! - Support duplexadditionalFdsthroughgetInputFdandgetOutputFd, preserving both directions when used withpipeTo.631d4f4,7ea1ea2,a2ccc14,ed20129,20795b9,a8e5e6c,c4d298d,fb5dbee,8309b94,ac10e55,af23904,df8dce5,0c24a8f,468c6ee,2d1fcd4,8f23668,3f8f359,fe6b748,2a03584,40e145e,7217410,cf249fe,4f0fad1,e75708c,7890077,c4a00fc,f74db37,069cf72,9a07ebc,f40dc4e,fa516c6,ffd9237,93895b9,8938b19,e5a1479,89e1e1e,eda0960,65db606,7c42335,cb21d14,89e1e1e,c32eb78,be9895b,26b4bfe,e19c611,f97711f,4f16778,d2b6bc7,8e668fe,ce9e999,3d88452,3c42058,2ae4045,e853fa1,6dc3f7c,1513bbd,c065ed7,1194a4c,2cb498e,89e5443,2a9a425,e710bbb,b0d6e75,32b3570,9f93f4f,27370c7]:v4.0.7Compare Source
Patch Changes
#9795
958307bThanks @effect-bot! - FailChildProcessexit codes when astdinoradditionalFdsinput stream fails, instead of reporting a successful exit after truncated input.#9823
5fbccf4Thanks @effect-bot! - Keep waiting for a detachedChildProcessprocess group that still exists but cannot be signalled, such as on macOS when only zombie members remain, instead of treating it as gone once the leader exits.#9977
a3bd27aThanks @jpowersdev! - MakeNodeStream.toStringenforcemaxByteson the bytes read instead of the decoded text, which rejected non-UTF-8 input at the limit and accepted oversized UTF-16 input.#9798
ec19ab3Thanks @effect-bot! - FixNodeChildProcessSpawnersignalling a possibly reused process group after a non-detached child exits.#10020
f09dc43Thanks @effect-bot! - AllowFileSystem.makeTempDirectoryScopedandFileSystem.makeTempFileScopedto finalize successfully when their temporary path has already been removed.Updated dependencies [
ac3485a,3a4c691,4f0600e,110fd22,aa58cda,8e257e7,e62a149,dcd43a5,3388cdd,81b0e14,a046435,f6d8968,5741c3a,381d5c6,d47478a,383716d,46dc30a,3d5c862,93ebc4f,c7b161a,e55945d,1a53d6a,5e25cc9,9503d5c,13efb72,8ca6abb,4a09dd1,346fc92,20e5ba8,f4b237e,1dd08ee,940be42,37be245,563fde0,938cecb,cf197c1,7ca71bb,1e73219,4dd860d,4d24a11,6bbc5ac,5fd25f4,a461561,832b3c6,837e906,cd1f2d4,fb38ce6,446c7ac,b48b7d8,dc66d90,d5a3dc3,482e0d5,d84f518,d34d399,5bbd25e,14eab6b,af8fcb3,6b82a28,3043aea,785577e,a8dbbce,65094ac,113ec70,ad3126e,eedfb27,45c467a,c983fc1,58f164f,f6df1aa,c05355c,ae7805c,9ffc621,c97b331,15297e5,41f6738,53f9352,b72f6a2,52e1716,50c863a,c148d27,a11ecdd,08e338e,8450ad5,39da87a,a2adb31,a6174d5, [96e6004](https:Configuration
📅 Schedule: (in timezone Europe/Istanbul)
* 0-5 * * *)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.