chore(deps): bump effect from 4.0.6 to 4.1.1
Bumps effect from 4.0.6 to 4.1.1.
Release notes
Sourced from effect's releases.
effect@4.1.1
Patch Changes
#10186
8567117Thanks@effect-bot! - RestoreSchemaBinary.toCodecderivation forPrompt.FilePartand the AI response part schemas that include it.#10119
3f5c6aaThanks@Marve10s! - FixAtomRegistry.subscribewithoutimmediatenever notifying for an atom that has not been read yet. Subscribing now builds the atom, so the listener hears later changes. This also fixesget.subscribe,get.streamwithwithoutInitialValue, anduseAtomSubscribein@effect/atom-react.A failed build no longer makes
subscribethrow: the next read reports the failure, and the listener hears the recovery. An error thrown by a failed build's finalizer no longer aborts the next build; it is reported once that build has its value.#10189
29b89b6Thanks@tim-smart! - Speed upBase64Url.decodeandBase64Url.decodeStringby decoding the URL-safe alphabet directly, instead of transliterating the input and decoding it again as standard Base64.#10188
0b4cfbcThanks@effect-bot! - LimitBigDecimalscales to prevent resource exhaustion.
BigDecimal.fromStringandSchema.BigDecimalFromStringreject strings whose scale, before or after removing trailing zeros, is outside ±10,000, such as"1e300000000","10e10000"or more than 10,000 fractional digits.BigDecimal.fromStringUnsafethrows for them.- Operations that align scales (
sum,subtract,remainder,scale,round,truncate,ceil,floor) throw aRangeErrorwhen the scales differ by more than 20,000.roundreturns values already at or below the target scale unchanged.#10192
088510fThanks@effect-bot! - EnforceMaxBodySizeon buffered request body reads inBunHttpServer,DenoHttpServer, andHttpServerRequest.fromClientRequest.#10142
ad62cd7Thanks@effect-bot! - AddonRejectiontoCircuitBreaker.execute. With"allow", a call the circuit would refuse withCircuitOpenorCircuitHalfOpenruns unrecorded instead, while a call the circuit admits, probe included, is recorded as usual. Calls that must always run can then still count towards the breaker's state. Defaults to"fail", which keeps the current behavior.#10169
ba406a5Thanks@tim-smart! - Pass{ probe }toCircuitBreakerclassifycallbacks, includingHttpClient.withCircuitBreaker.probeistruewhen the call is the HalfOpen probe, so a classifier can count an outcome it otherwise ignores, such as a rate-limited response, as a failure that reopens the circuit. Existing one-argument classifiers are unchanged. The callback type is exported asCircuitBreaker.Classifier.#10126
5e56ebaThanks@baptisteArno! - FixClickhouseMigratorfailing to create its migrations table or record applied migrations, by running those statements as ClickHouse commands instead of queries.Migrator.makeaccepts an optionaltransformWritesoption for these statements, defaulting toidentity.#10206
6a95d51Thanks@effect-bot! - Retry transientPersistenceErrors when a cluster workflow sends an activity or reads its reply during a pending interrupt, instead of storing the failure as a workflow defect. A request whose save was committed but not acknowledged is deduplicated, so the activity still runs once.A cluster client request whose send fails is no longer retained by
Sharding.#10205
24d5acdThanks@effect-bot! - Fix local callers of persisted entity requests hanging when a reply save commits but reports a failure, for example when the connection drops before the COMMIT acknowledgement arrives. The runner now checks storage for the committed reply and lets the caller read it, without replaying the request.#10163
c38dfa0Thanks@effect-bot! - Fix persisted success replies being stored after aClusterSchema.WithTransactionrequest transaction rolled back. A failed save inside the request transaction is no longer retried, since a retry could autocommit the reply outside the aborted transaction (for example after a MySQL deadlock). The failed transaction now replays the request instead.#10197
f2755e7Thanks@effect-bot! - Fix type-checking theeffectcrypto declarations with@types/node22 or 24 and without the DOM library. The*FromCryptoKeyconstructors inAead,Cipher,KeyAgreement,KeyWrap,MacandSignaturenow accept the new structuralWebCrypto.CryptoKeytype instead of the globalCryptoKey, and DOM and Node Web Crypto keys are both assignable to it. TheWebCryptoreference andWebCrypto.layernow use the type ofglobalThis.cryptoinstead of the globalCryptotype.#10137
a40cb20Thanks@effect-bot! - FixDateTime.Zonedexposing itsadjustedEpochMillisecondscache as an enumerable property afterDateTime.toDate, which brokeObject.keys, spread and deep equality.#10174
bd6b9c2Thanks@effect-bot! - Speed upDateTimeconstruction by creating thepartsUtc,adjustedEpochMillisecondsandpartsAdjustedcache properties on first use. Reading and writing these fields is unchanged, butObject.hasOwn,Object.getOwnPropertyNamesandObject.getOwnPropertyDescriptorno longer report them before the caches are populated, or at all on instances sealed or frozen before first use. Reading the parts of, or writing these fields on, an instance frozen before first use no longer throws.#10082
49d84d6Thanks@typedrat! - FixEqual.equalsandHash.hashthrowing on plain objects whose"~effect/Equal"or"~effect/Hash"key is not a function. Such values are now treated as data.#10185
a8f77d5Thanks@effect-bot! - Verify the session authentication signature before an EventLog server binds a signing key to an identity, and reject a verified key that differs from the identity's existing binding. A request with an invalid signature no longer creates a binding.
EventLogServerUnencrypted.EventLogServerAuthorization.authorizeIdentityand theauthorizeIdentityoption ofEventLogServer.layerRpcHandlersnow also receive the presented signing public key. Use the newEventLogSessionAuth.deriveSigningPublicKeyto record an identity's signing key at provisioning time and reject any other key.#10164
7a9c22fThanks@effect-bot! - Stop finished fibers from retaining their last span and stack frame. A finished fiber kept alive by a cache entry, observer orDeferredno longer keeps the ended span's parent chain, and the success values recorded on those spans, from being garbage collected.#10145
efcb8ccThanks@jpowersdev! - FixHost.domainNameFromStringrejecting decomposed Unicode domain names.#10125
378f5f0Thanks@pujitha24! - FixEffect.requestretaining completed requests and their async context in its batch pool.
... (truncated)
Changelog
Sourced from effect's changelog.
4.1.1
Patch Changes
#10186
8567117Thanks@effect-bot! - RestoreSchemaBinary.toCodecderivation forPrompt.FilePartand the AI response part schemas that include it.#10119
3f5c6aaThanks@Marve10s! - FixAtomRegistry.subscribewithoutimmediatenever notifying for an atom that has not been read yet. Subscribing now builds the atom, so the listener hears later changes. This also fixesget.subscribe,get.streamwithwithoutInitialValue, anduseAtomSubscribein@effect/atom-react.A failed build no longer makes
subscribethrow: the next read reports the failure, and the listener hears the recovery. An error thrown by a failed build's finalizer no longer aborts the next build; it is reported once that build has its value.#10189
29b89b6Thanks@tim-smart! - Speed upBase64Url.decodeandBase64Url.decodeStringby decoding the URL-safe alphabet directly, instead of transliterating the input and decoding it again as standard Base64.#10188
0b4cfbcThanks@effect-bot! - LimitBigDecimalscales to prevent resource exhaustion.
BigDecimal.fromStringandSchema.BigDecimalFromStringreject strings whose scale, before or after removing trailing zeros, is outside ±10,000, such as"1e300000000","10e10000"or more than 10,000 fractional digits.BigDecimal.fromStringUnsafethrows for them.- Operations that align scales (
sum,subtract,remainder,scale,round,truncate,ceil,floor) throw aRangeErrorwhen the scales differ by more than 20,000.roundreturns values already at or below the target scale unchanged.#10192
088510fThanks@effect-bot! - EnforceMaxBodySizeon buffered request body reads inBunHttpServer,DenoHttpServer, andHttpServerRequest.fromClientRequest.#10142
ad62cd7Thanks@effect-bot! - AddonRejectiontoCircuitBreaker.execute. With"allow", a call the circuit would refuse withCircuitOpenorCircuitHalfOpenruns unrecorded instead, while a call the circuit admits, probe included, is recorded as usual. Calls that must always run can then still count towards the breaker's state. Defaults to"fail", which keeps the current behavior.#10169
ba406a5Thanks@tim-smart! - Pass{ probe }toCircuitBreakerclassifycallbacks, includingHttpClient.withCircuitBreaker.probeistruewhen the call is the HalfOpen probe, so a classifier can count an outcome it otherwise ignores, such as a rate-limited response, as a failure that reopens the circuit. Existing one-argument classifiers are unchanged. The callback type is exported asCircuitBreaker.Classifier.#10126
5e56ebaThanks@baptisteArno! - FixClickhouseMigratorfailing to create its migrations table or record applied migrations, by running those statements as ClickHouse commands instead of queries.Migrator.makeaccepts an optionaltransformWritesoption for these statements, defaulting toidentity.#10206
6a95d51Thanks@effect-bot! - Retry transientPersistenceErrors when a cluster workflow sends an activity or reads its reply during a pending interrupt, instead of storing the failure as a workflow defect. A request whose save was committed but not acknowledged is deduplicated, so the activity still runs once.A cluster client request whose send fails is no longer retained by
Sharding.#10205
24d5acdThanks@effect-bot! - Fix local callers of persisted entity requests hanging when a reply save commits but reports a failure, for example when the connection drops before the COMMIT acknowledgement arrives. The runner now checks storage for the committed reply and lets the caller read it, without replaying the request.#10163
c38dfa0Thanks@effect-bot! - Fix persisted success replies being stored after aClusterSchema.WithTransactionrequest transaction rolled back. A failed save inside the request transaction is no longer retried, since a retry could autocommit the reply outside the aborted transaction (for example after a MySQL deadlock). The failed transaction now replays the request instead.#10197
f2755e7Thanks@effect-bot! - Fix type-checking theeffectcrypto declarations with@types/node22 or 24 and without the DOM library. The*FromCryptoKeyconstructors inAead,Cipher,KeyAgreement,KeyWrap,MacandSignaturenow accept the new structuralWebCrypto.CryptoKeytype instead of the globalCryptoKey, and DOM and Node Web Crypto keys are both assignable to it. TheWebCryptoreference andWebCrypto.layernow use the type ofglobalThis.cryptoinstead of the globalCryptotype.#10137
a40cb20Thanks@effect-bot! - FixDateTime.Zonedexposing itsadjustedEpochMillisecondscache as an enumerable property afterDateTime.toDate, which brokeObject.keys, spread and deep equality.#10174
bd6b9c2Thanks@effect-bot! - Speed upDateTimeconstruction by creating thepartsUtc,adjustedEpochMillisecondsandpartsAdjustedcache properties on first use. Reading and writing these fields is unchanged, butObject.hasOwn,Object.getOwnPropertyNamesandObject.getOwnPropertyDescriptorno longer report them before the caches are populated, or at all on instances sealed or frozen before first use. Reading the parts of, or writing these fields on, an instance frozen before first use no longer throws.#10082
49d84d6Thanks@typedrat! - FixEqual.equalsandHash.hashthrowing on plain objects whose"~effect/Equal"or"~effect/Hash"key is not a function. Such values are now treated as data.#10185
a8f77d5Thanks@effect-bot! - Verify the session authentication signature before an EventLog server binds a signing key to an identity, and reject a verified key that differs from the identity's existing binding. A request with an invalid signature no longer creates a binding.
EventLogServerUnencrypted.EventLogServerAuthorization.authorizeIdentityand theauthorizeIdentityoption ofEventLogServer.layerRpcHandlersnow also receive the presented signing public key. Use the newEventLogSessionAuth.deriveSigningPublicKeyto record an identity's signing key at provisioning time and reject any other key.#10164
7a9c22fThanks@effect-bot! - Stop finished fibers from retaining their last span and stack frame. A finished fiber kept alive by a cache entry, observer orDeferredno longer keeps the ended span's parent chain, and the success values recorded on those spans, from being garbage collected.#10145
efcb8ccThanks@jpowersdev! - FixHost.domainNameFromStringrejecting decomposed Unicode domain names.
... (truncated)
Commits
bc492f0Version Packages (#10144)6a95d51Retry transient activity persistence failures in ClusterWorkflowEngine (#10206)7d6ead4Add HttpClient.timeout (#10207)d4272bdFail GraphQL calls on non-2xx HTTP responses (#10208)24d5acdRecover local persisted replies after lost commit acknowledgements (#10205)20cca92Fix Ndjson ignoreEmptyLines handling of space/tab-only lines (#10204)f2755e7Fix Node-only type-checking of crypto key declarations (#10197)9394b6dSupport object anyOf branches that redeclare enum properties (#10070)0b4cfbcBound BigDecimal scale parsing and alignment (#10188)088510fEnforce MaxBodySize on Bun, Deno and fromClientRequest buffered reads (#10192)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Summary by cubic
Bumps effect from 4.0.6 to 4.1.1 in the root package, updating package.json and bun.lock.
- The lock file keeps
effect@4.0.6for the@opencode/*workspace packages, so those still resolve the old version.