Skip to content

fix(deps): update dependency effect to v4 - #1203

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-4.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
effect (source) ^3.22.2 → ^4.0.2 age confidence

Release Notes

Effect-TS/effect (effect)

v4.0.2

Compare Source

Patch Changes
  • #​8870 26c1089 Thanks @​Makisuo! - Update AI tracing to use current OpenTelemetry GenAI conventions:

    • Replace gen_ai.system with gen_ai.provider.name. The system option, BaseAttributes and WellKnownSystem are removed in favor of provider: { name }, ProviderAttributes and WellKnownProviderName.
    • Remove gen_ai.token.type, which is not a span attribute in the current conventions, along with the token option, TokenAttributes and the AllAttributes types.
    • LanguageModel spans are client spans and record gen_ai.output.type (text or json) for every provider. The OpenAI responseFormat telemetry option and WellKnownResponseFormat are removed.
    • Move OpenAI service-tier and system-fingerprint attributes from gen_ai.openai.* to openai.*.
    • Rename concurrency, toolChoice and objectName span attributes to effect.ai.concurrency, effect.ai.tool_choice and effect.ai.object_name. Tool choices record the resolved value, defaulting to "auto"; object choices are JSON-encoded.
    • Include cached tokens in Anthropic gen_ai.usage.input_tokens and report cache reads and writes as gen_ai.usage.cache_read.input_tokens and gen_ai.usage.cache_write.input_tokens. The duplicate Anthropic cacheCreationInputTokens and cacheReadInputTokens response options are removed.
  • #​8849 6c59de7 Thanks @​gcanti! - Fix Arbitrary property checks, schema generation, and shrinking swallowing defects or interruption when they accompany typed failures. Propagate the defect and interruption reasons with their annotations, removing typed failures from mixed causes to preserve the existing error types.

  • #​8760 467d3ac Thanks @​fubhy! - Include runtime layer errors in the result type of AtomRuntime.subscriptionRef.

  • #​8820 375c1b0 Thanks @​jarrednorrisdev! - Preserve the URL hash and omit empty query strings when writing Atom.searchParam.

  • #​8771 45a70ce Thanks @​jarrednorrisdev! - Prevent Atom.windowFocusSignal and Atom.refreshOnWindowFocus from throwing when window is undefined.

  • #​8837 fb757e3 Thanks @​tim-smart! - Fix a Cache.get interruption race that could leave an abandoned lookup running and its key stuck in the cache.

  • #​8778 716e358 Thanks @​fubhy! - Fix a stack overflow when many consecutive failure handlers throw synchronously. The thrown defect is now captured as the fiber's exit and pending finalizers still run.

  • #​8838 af114e6 Thanks @​tim-smart! - Derive Channel.decodeText options from the TextDecoder constructor so declarations work with Node-only types without requiring the DOM library.

  • #​8758 d0b3862 Thanks @​fubhy! - Fix Channel.mapInput data-last overload to preserve channel requirements and add the mapping function's requirements.

  • #​8757 7064da9 Thanks @​fubhy! - Fix Channel.runIntoPubSub to include the channel's error type in the returned Effect.

  • #​8810 eee0eeb Thanks @​fubhy! - Fix compiled Struct parsers sharing mutable output when the same suspended Effect is executed more than once.

  • #​8808 b9d6581 Thanks @​fubhy! - Preserve provider defects and interruption reasons during Config parsing, and prevent Config.orElse from recovering mixed causes.

  • #​8877 7a721ce Thanks @​jayhemnani9910! - Preserve separators inside Config.Record values, including base64 padding in OTLP headers.

  • #​8832 a0cb4c2 Thanks @​tim-smart! - Add image input to DecisionModel.decide. Providers opt in with supportsImages: true and receive images through ProviderOptions.images. Models without image support reject nonempty image input with InvalidUserInputError.

  • #​8765 3cb395e Thanks @​fubhy! - Fix ExecutionPlan to preserve errors and service requirements from layers, predicates, and schedules across fallback steps. Provide captured services to schedules when using captureRequirements.

  • #​8770 540ecd1 Thanks @​fubhy! - Tag every module and directly importable export with an explicit @stability. @stability stable follows strict semver, and @stability unstable may receive breaking changes in minor releases.

  • #​8814 aefe05a Thanks @​fubhy! - Fix Map and Set schema equivalences incorrectly treating proper subsets as equal.

  • #​8804 c381fbc Thanks @​fubhy! - Fix stack overflow when many equal requests share a pending RequestResolver.withCache entry.

  • #​8805 c6f2179 Thanks @​fubhy! - Allow interruption while waiting for permits or locks in TxSemaphore and TxReentrantLock helpers, while preserving automatic release after acquisition.

  • #​8586 0aeb7fd Thanks @​Marve10s! - Allow spans without an Effect parent to inherit active OpenTelemetry spans created outside Effect.

  • #​8799 2fbecc8 Thanks @​fubhy! - Preserve finalizer defects in Effect.repeat and Effect.schedule. Prevent Effect.retry from retrying failures containing defects or interruptions.

  • #​8753 7095539 Thanks @​jayhemnani9910! - Fix Toml.parse to trim an immediate opening CRLF in basic and literal multiline strings, matching its existing LF handling.

  • #​8752 46b75b1 Thanks @​jayhemnani9910! - Fix Yaml.parse block scalar chomping to preserve trailing line breaks with keep (|+, >+) and avoid adding line breaks to empty or unterminated scalars.

  • #​8815 99b6b45 Thanks @​fubhy! - Fix Array concatenation reducers sharing mutable empty results across calls and reducer instances.

  • #​8811 e4cb9f1 Thanks @​fubhy! - Fix Standard Schema and Standard JSON Schema adapters to use the child schema rather than an inherited parent adapter.

  • #​8792 2e03688 Thanks @​fubhy! - Fix Stream.peel dropping the sink's unconsumed elements from a partially consumed chunk.

  • #​8809 b817ebe Thanks @​fubhy! - Fix suspended Schema union parsers reusing successes and issues when the same decode or encode effect is run again.

  • #​8742 4153144 Thanks @​wouter173! - Fix the data-last overload of AsyncResult.flatMap to correctly infer a changed success type.

  • #​8830 2b3c63c Thanks @​devangpratap! - Fix HttpClient retaining unread responses on runtimes without FinalizationRegistry, such as Hermes.

  • #​8772 bd00773 Thanks @​juliusmarminge! - Read HttpClientResponse.cookies on platforms whose Headers has no getSetCookie, such as React Native, instead of throwing.

  • #​8873 146e86a Thanks @​tim-smart! - Align HTTP tracing span names, response error status, server addresses and ports with OpenTelemetry conventions. Make header capture opt-in and export homogeneous primitive arrays as array attributes in @effect/opentelemetry.

  • #​8759 44defad Thanks @​fubhy! - Fix HttpServer service serve to infer required services from the middleware-transformed app.

  • #​8821 22d6f4d Thanks @​Makisuo! - Mark HttpMiddleware.tracer server spans as failed for 5xx responses, including rendered errors, without changing the application exit or existing span failure causes.

  • #​8852 7d8d497 Thanks @​effect-bot! - Report the 101 status of a successful WebSocket upgrade to server middleware such as HttpMiddleware.logger and HttpMiddleware.tracer, instead of the handler's discarded response status.

  • #​8767 98a5ed7 Thanks @​fubhy! - Fix HttpApiClient and AtomHttpApi result types for union response modes while preserving decoded-only results when the mode is omitted.

  • #​8858 d350f8e Thanks @​jayhemnani9910! - Fix HttpApi rejecting single-value array fields in form-urlencoded and GET payloads.

  • #​8834 bd96be0 Thanks @​tim-smart! - Return 500 and report HTTP API response encoding failures to ErrorReporter, while keeping request decoding failures at 400 and unreported. Preserve response failures as HttpApiSchemaError values for schema-error middleware.

  • #​8875 f6af4b6 Thanks @​tim-smart! - expose more of the atom registry apis

  • #​8836 7234786 Thanks @​tim-smart! - Cache the Kubernetes service-account token for one minute so K8sHttpClient picks up rotated credentials without reading the token file on every request.

  • #​8773 1f74b62 Thanks @​juliusmarminge! - Add opt-in allowSessionTermination to McpServer.layerHttp. DELETE ends the session and interrupts its active requests; later requests with that session id return 404.

    Fix an RPC cancellation race by registering request fibers before their handlers run.

  • #​8775 42763ce Thanks @​RhysSullivan! - McpServer.layerHttp uses the negotiated protocol version when a session request omits MCP-Protocol-Version. Unsupported or mismatched protocol versions, missing required MCP-Session-Id headers, and initialize requests with a session header now return JSON-RPC error bodies.

  • #​8842 5630677 Thanks @​brandon-julio-t! - Fix MCP toolkit registration to require tool handler and schema services.

  • #​8864 a0e1b87 Thanks @​Makisuo! - Leave interrupt-only spans Unset with an effect.fiber.interrupted: true attribute instead of Ok with an "Interrupted" description and the span.label / status.interrupted attributes. Successful spans keep Ok; failures keep Error and their exception events.

    Cause.prettyErrors no longer captures an internal stack frame for non-object failures such as Effect.fail("boom"); the stack is now the message plus the span frame, when available. This affects the exception.stacktrace exported by both tracers and the output of Cause.pretty.

  • #​8868 f5716ad Thanks @​Makisuo! - Align OTLP and @effect/opentelemetry logs, traces, and resources with OpenTelemetry conventions.

  • #​8869 26931d0 Thanks @​Makisuo! - OtlpMetrics exports each summary as one OTLP Summary metric named <id> instead of <id>_quantiles, <id>_count and <id>_sum Sum metrics. Summaries are always cumulative. Common unit names such as milliseconds are mapped to UCUM, and bigint values beyond 2^53 keep their precision.

  • #​8756 972c80f Thanks @​creatifcoding! - Fix PostgreSQL SqlEventJournal writes by storing entry and remote IDs as BYTEA, and decode BIGINT timestamps returned as strings or bigints.

    Existing tables with UUID columns are not migrated automatically. Recreate both journal tables only after confirming they are empty, or externally migrate id, remote_id, and entry_id to BYTEA while preserving existing data.

  • #​8762 efebfa9 Thanks @​fubhy! - Include completion-handler services in the requirements of McpServer.registerPrompt and McpServer.prompt, including optional handlers.

  • #​8819 a3b4cf3 Thanks @​mikearnaldi! - Prevent message loss when Queue.take, takeAll, takeN, takeBetween, poll, and clear are interrupted at a scheduler yield.

  • #​8816 3ed997b Thanks @​fubhy! - Fix Channel.merge hanging or succeeding when a side finalizer fails, preserving both usage and finalizer failures.

  • #​8798 7b396bd Thanks @​fubhy! - Fix Channel.mergeAll and concurrent Channel.flatMap dropping inner scope finalizer defects, preserving both usage and release failures.

  • #​8800 c07c144 Thanks @​fubhy! - Fix Cron.next returning past occurrences or exhausting its search limit when starting in a repeated DST interval.

  • #​8777 8903b68 Thanks @​fubhy! - Fix child fibers reusing completed transaction journals so later transactions commit their writes.

  • #​8784 a84aa4e Thanks @​fubhy! - Fix FiberHandle losing ownership of fibers started by a synchronous replacement finalizer.

  • #​8782 88917eb Thanks @​fubhy! - Fix Formatter.formatJson redaction of getter-returned values with toJSON without invoking getters twice.

  • #​8776 50a5686 Thanks @​fubhy! - Fix Effect.effectify so throwing error mappers become defects instead of escaping asynchronous callbacks and leaving fibers suspended.

  • #​8789 c419a0e Thanks @​fubhy! - Fix stack overflows when PartitionedSemaphore hands permits through long queues of synchronous tasks.

  • #​8791 d85a309 Thanks @​fubhy! - Fix Queue.clear swallowing failures combined with Cause.Done.

  • #​8785 7e7ede6 Thanks @​fubhy! - Fix Queue consumers defecting and messages being buffered after reentrant shutdown while resuming blocked producers.

  • #​8779 1803500 Thanks @​fubhy! - Mask interruption before invoking scope finalizer callbacks so singleton cleanup completes when its callback interrupts the closing fiber.

  • #​8795 495740d Thanks @​fubhy! - Fix Stream.zipLatest, zipLatestWith, and zipLatestAll hanging when an input completes without emitting.

  • #​8780 985860d Thanks @​fubhy! - Preserve failures raised while a transaction is retrying instead of rerunning the transaction.

  • #​8833 e36abbb Thanks @​tim-smart! - Return HTTP 200 with an empty body for empty RPC POST requests using framed serialization.

  • #​8867 c6086ee Thanks @​Makisuo! - RPC client and server spans now set span kind client / server and record the OpenTelemetry rpc.system.name (effect_rpc) and rpc.method attributes. User spanAttributes still override them.

    Default span names are now the RPC method, for example Echo.Ping instead of RpcClient.Echo.Ping. Update dashboards, alerts or samplers that match the old names, or pass spanPrefix: "RpcClient" / spanPrefix: "RpcServer" to keep them. Spans with an explicit spanPrefix keep their existing names.

  • #​8835 0ac6ac8 Thanks @​tim-smart! - Fix RPC request defects breaking subsequent SchemaBinary calls after an unknown request tag or payload decoding failure.

  • #​8825 90a1bae Thanks @​tim-smart! - Add configurable pingInterval and pingTimeout to RPC socket clients, counting any decoded server frame as liveness. Forward retryPolicy through layerProtocolSocket. The default ping interval and timeout remain 5 seconds.

  • #​8748 b1d200c Thanks @​gcanti! - Expose the selected tag property key through tag on schemas returned by Schema.toTaggedUnion and Schema.TaggedUnion, closes #​8681.

  • #​8764 1ba8521 Thanks @​fubhy! - Fix the data-last Sink.catchCause overload to return the handler's error type instead of the original error type.

  • #​8878 1b35732 Thanks @​jayhemnani9910! - Fix Stream.slidingSize dropping elements from the final partial window when windows overlap.

  • #​8855 763b445 Thanks @​tim-smart! - Fix SQL unencrypted event-log notifications to publish in sequence order after commit, without missing startup rows or publishing rolled-back writes.

  • #​8866 00f1cc7 Thanks @​Makisuo! - Align SQL tracing with OpenTelemetry database conventions:

    • Name statement spans by db.namespace, server.address[:server.port] or db.system.name, falling back to sql.execute. The rules are exported as Statement.spanName and Statement.spanTarget.
    • Record Effect execution methods in effect.sql.method instead of db.operation.name.
    • Use internal transaction spans with effect.sql.transaction.commit|savepoint|rollback events.
    • Name D1 batches of two or more statements BATCH, or BATCH {target} when a target is set, with db.operation.name set to BATCH and db.operation.batch.size.
  • #​8857 d4f4bc8 Thanks @​jayhemnani9910! - Fix Stream.groupBy, Stream.groupByKey, Stream.partition, and Stream.partitionEffect hanging when a substream consumer stops early by shutting down its queue when the consumer finishes.

  • #​8794 f11526a Thanks @​fubhy! - Fix Stream.tapSink swallowing sink failures after end-of-stream.

  • #​8817 8781388 Thanks @​fubhy! - Fix Channel.callback and Channel.callbackArray losing registration effect failures and defects.

  • #​8796 5326527 Thanks @​fubhy! - Fix Channel.acquireUseRelease leaking resources when interrupted during acquisition.

  • #​8813 8409eb4 Thanks @​fubhy! - Fix Floyd-Warshall path reconstruction looping on zero-cost cycles after floating-point rounding.

  • #​8781 c5cf8ce Thanks @​fubhy! - Fix Layer.buildWithMemoMap retries returning an already-finalized resource by deferring each build until execution.

  • #​8807 684ccdc Thanks @​fubhy! - Fix Logger.batched shutdown to finish in-flight output before flushing remaining entries, without overlapping flushes.

  • #​8788 33303ea Thanks @​fubhy! - Fix Pool shutdown to wait for borrowed resources to be finalized before releasing owner scope dependencies.

  • #​8786 b79fcb8 Thanks @​fubhy! - Fix PubSub publishers accepting surplus messages after end when they yield during publishing.

  • #​8790 888a189 Thanks @​fubhy! - Reject NaN and fractional PubSub capacities to prevent nonterminating batch publication, while preserving Infinity support.

  • #​8787 9b8200d Thanks @​fubhy! - Fix PubSub take and takeAll delivering the final message before data published during waiter registration.

  • #​8783 82303c1 Thanks @​fubhy! - Fix ManagedRuntime disposal deadlocking when called from one of its own fibers, including their child fibers.

  • #​8803 76fcd89 Thanks @​fubhy! - Report ScopedCache finalizer failures during expiry and capacity eviction without failing reads or blocking replacement lookups.

  • #​8793 f31e6b7 Thanks @​fubhy! - Fix Stream.tapSink hanging when the sink finishes during an upstream pull.

  • #​8797 332d363 Thanks @​fubhy! - Fix Sink.make to return successful pipeline results instead of failing with a channel completion signal.

  • #​8806 a6c7dcb Thanks @​fubhy! - Preserve one-shot iterable inputs across transaction retries in TxPriorityQueue.offerAll, TxHashMap.fromIterable/setMany/removeMany, and TxHashSet.fromIterable.

v4.0.1

Compare Source

Patch Changes
  • #​8603 ed2cc2f Thanks @​danieljvdm! - Preserve all Anthropic system instructions and support configurable mid-conversation system messages. Add optional LanguageModel.supportsSystemMessagesInHistory to query support with scoped overrides.

  • #​8680 58a2ee8 Thanks @​danieljvdm! - Cache per-tool response schemas and parameter-mode copies to reduce schema construction in LanguageModel.generateText and LanguageModel.streamText. The schema cache also applies to direct calls to Response.Part, Response.StreamPart and Response.AllParts.

  • #​8719 bc44526 Thanks @​tim-smart! - Treat interruption as abandonment in Effect.cached, Effect.cachedWithTTL, Effect.cachedInvalidateWithTTL, Cache, ScopedCache, RcRef, RcMap and the cluster ResourceMap. Concurrent callers share one computation that is interrupted only after every caller has been interrupted, interrupted results are never cached, and a call made while an abandoned computation is still finalizing starts a fresh one.

  • #​8734 073bb47 Thanks @​pawelblaszczyk5! - Adjust Effect.cachedInvalidateWithTTL types to accept callbacks that select a TTL from the computation's Exit, including piped calls.

  • #​8659 2ec021e Thanks @​samueleguino97! - Prevent entity registration when shard ownership is lost during construction. Pending requests retry on the new owner.

  • #​8662 cad1118 Thanks @​tim-smart! - Avoid replaying suspended cluster workflows for unawaited deferred checkpoints while preserving interrupt wakes.

  • #​8637 1672d9c Thanks @​tim-smart! - Fix cluster defect recovery to replay unfinished requests without duplicating requests awaiting their first dispatch. Stop replay and interrupt waiting requests on shutdown, and prevent superseded rebuilds from publishing stale handlers or SQL lock connections.

  • #​8741 a81e4e6 Thanks @​tim-smart! - Prevent PostgreSQL deadlocks between cluster message claims and shard or address resets by locking reset rows in message order.

  • #​8707 f5c2a91 Thanks @​tim-smart! - Fix zoned DateTime conversion on runtimes that omit Intl fractional seconds, preserving milliseconds for pre-epoch timestamps.

  • #​8629 498e72b Thanks @​tim-smart! - Preserve a fiber's AsyncLocalStorage context when another fiber wakes or interrupts it. Run Effect.tryPromise error handlers in the resumed fiber's context.

  • #​8675 cabf123 Thanks @​IMax153! - Fix HashRing.getShards returning different shard assignments for the same nodes and weights after different add/remove histories. Sum weights in node-key order and break hash ties by node key. Assignments may change for fractional weights or hash ties.

  • #​8706 a5b1d4e Thanks @​tim-smart! - Prevent HttpApiSchemaError from being reported as a server failure for invalid requests.

  • #​8737 878cb33 Thanks @​tim-smart! - Log client-abort-only HTTP request causes as "Sent HTTP response" rather than an interrupt error, while preserving response status annotations and logging other causes.

  • #​8685 5e6f756 Thanks @​tim-smart! - Fix HttpTraceContext decoding of B3 debug and legacy sampling values, and reject all-zero W3C trace and parent IDs.

  • #​8652 18dfb98 Thanks @​mikearnaldi! - Preserve pending interruptions when an uninterruptible effect fails. Drop typed failures when interruption skips recovery handlers, but keep defects.

  • #​8657 04706ef Thanks @​schickling-assistant! - Fix JSON Schema pattern importing for valid expressions whose RegExp source is canonicalized, including slashes, empty patterns, and literal line terminators.

  • #​8723 f157482 Thanks @​serhii-indyrct! - Fix encoding optional MCP fields whose schemas decode to classes, such as Implementation.icons.

  • #​8644 b5a2d4c Thanks @​sbking! - Prevent shard lock refreshes from releasing shards acquired while the refresh is in flight.

  • #​8660 1c18c68 Thanks @​tim-smart! - Prevent singleton shard reassignment from durably cancelling outstanding RPC requests.

  • #​8705 43416c4 Thanks @​tim-smart! - Honor If-Range in HttpStaticServer, returning the full file when the entity-tag is stale or weak instead of serving a partial response. Reject date validators because filesystem metadata cannot establish their strength.

  • #​8704 d6ac8f9 Thanks @​tim-smart! - Fix Stream.scan to emit its initial state for empty streams.

  • #​8698 1d9fb8c Thanks @​bishil06! - Fix accumulated rate drift in Stream.throttle with the "shape" strategy by retaining token debt after early wake-ups. Use monotonic time so wall clock changes do not affect throttling.

  • #​8664 20dcd50 Thanks @​lloydrichards! - Preserve server and client extension capabilities in stateful MCP protocols.

  • #​8653 42e5750 Thanks @​lloydrichards! - Keep idle MCP HTTP subscriptions open on Cloudflare Workers with SSE keepalives.

  • #​8679 888e326 Thanks @​tim-smart! - Fix Pool usage TTL to expire only idle, unreserved excess items, oldest idle first. Measure idle time from the last release to avoid retiring recently used items.

  • #​8648 0b52bb4 Thanks @​dv-waynehaffenden! - Fix RpcClient stream interruption leaving chunk delivery blocked on a full buffer and stalling the shared protocol receive loop.

  • #​8627 e823e69 Thanks @​tim-smart! - Keep streaming RPC chunk decode failures local to the affected request and interrupt it on the server, without disconnecting unrelated requests.

  • #​8658 962647b Thanks @​tim-smart! - Fix RpcClient protocol errors incorrectly failing requests started synchronously by error handlers. Only requests pending when the error broadcast begins now receive that error; new requests remain pending for their own responses.

  • #​8714 43fdcdc Thanks @​jaideeppyne! - Fix RPC stdio shutdown to drain responses after stdin EOF.

  • #​8618 1f89b8e Thanks @​serhii-indyrct! - Set ScopedCache entry expiry before waking lookup waiters, so a zero-TTL result cannot be reused.

  • #​8718 e1a521a Thanks @​juliusmarminge! - Pause schedules while Stream.aggregateWithin, Stream.groupedWithin and Stream.aggregate are idle. When a schedule ends, emit the current aggregation and drain sink leftovers without further upstream pulls.

v4.0.0

Compare Source

Patch Changes
  • #​8580 cbfc7b4 Thanks @​gcanti! - Restrict Schema.brand to a single concrete identifier and require Schema.fromBrand to use the constructor's sole brand key. Apply brand or fromBrand repeatedly when composing distinct brands. For enum brand keys, pass the enum member instead of its string value.

  • #​8601 5a81a6f Thanks @​RizgarOzan! - Prevent a stale Atom.family finalizer from evicting a newer cached atom.

  • #​8576 68b6394 Thanks @​tim-smart! - Prevent stale concurrent workflow resumes from clearing a newer completed reply. Custom message storage implementations must honor the optional expected reply ID on clearReplies to provide this safety guarantee.

  • #​8589 5250ca6 Thanks @​marek-hanzal! - Fix lost synchronous successes and failures in concurrent Atom.fn calls.

  • #​8625 5f9c9d1 Thanks @​tim-smart! - Fix MutableHashMap retaining previously used equal object keys after they are replaced or removed, including when Cache and ScopedCache refresh entries on hits.

  • #​8619 3278821 Thanks @​tim-smart! - Keep Queue.takeN suspended when only part of its requested batch is available. Previously a single offer woke the batch taker in a synchronous retry loop that starved the host. Queue.State.takers now holds Queue.Taker entries: call entry.resume(...) instead of calling the entry as a function.

  • #​8607 83429b4 Thanks @​mannyc2! - Interrupt losers in Effect.race, Effect.raceFirst, Effect.raceAll and Effect.raceAllFirst when the race settles or is interrupted while other effects are still starting.

  • #​8626 0af6d0c Thanks @​tim-smart! - The RpcMessage.ExitEncoded interrupt fiberId type now admits the null emitted by JSON encoding. Consumers reading encoded interrupts should handle null alongside undefined.

  • #​8614 927e01e Thanks @​gcanti! - Fix SchemaRepresentation.toCodeDocument to preserve the grouping of branded union types in generated TypeScript code.

  • #​8617 10d8524 Thanks @​gcanti! - Fix Schema.toType and Schema.toEncoded losing parent checks when projecting checked children without transformations. Suspended children remain opaque, and structural checks continue to be preserved.

  • #​8583 35ac25a Thanks @​KhraksMamtsov! - Array, Chunk, Effect, and Record partition, their separate helpers, and Option.partitionMap now return successes before failures, matching Stream.partition. Swap the tuple when moving from the previous [failures, successes] order.

  • #​8585 29e0aa7 Thanks @​roninjin10! - Preserve sibling and callback cleanup failures alongside interruption in concurrent Effect.forEach / Effect.all, including shared Layer.build.

  • #​8593 8783536 Thanks @​tim-smart! - Fail in-flight RPC calls when a socket misses a pong, even with transient connection retries enabled. Missed pongs no longer invoke onTransientError; connection-open failures still do.

  • #​8579 df77fff Thanks @​jasonkuhrt! - Fix union-of-tag inference for flat RPC clients and AtomRpc.query and AtomRpc.mutation. Payloads and results now reflect the selected RPCs instead of resolving to never.

  • #​8628 ef7d77f Thanks @​gcanti! - Make Schema.brand type-only: brand identifiers are no longer stored in AST annotations or preserved by SchemaRepresentation. Reapply Schema.brand after rebuilding a representation when a branded TypeScript type is required; checks added by Schema.fromBrand remain preserved. Preserve the order of equal-priority union members that share an AST when deriving JSON and string-tree codecs.

  • #​8597 035e369 Thanks @​Ceereals! - Speed up JIT and AOT Schema decoding of transformations whose source has checks, such as a pattern-checked string decoded to a number. Fix compiled TemplateLiteral validation to enforce oneOf parts and preserve interpreter diagnostics when templates appear in transformation chains.

  • #​8630 f72790c Thanks @​gcanti! - Fix duplicate references in decoded and encoded schema representations when reusing schemas through optional or mutable keys.

  • #​8555 aa19472 Thanks @​front-depiction! - Resolve a Schema union's candidate parsers once per union instead of on every decode, so union decoding and encoding a

❗ Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ 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 this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cd2bee8d-609c-4be2-a07e-cfc89399d2f4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-security Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedeffect@​3.22.2 ⏵ 4.0.276 -1710093 +298 +1100

View full report

@renovate
renovate Bot force-pushed the renovate/effect-4.x branch 8 times, most recently from d11a284 to 7d7f725 Compare October 9, 2026 20:02
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch 2 times, most recently from ea2838f to 2e73589 Compare October 11, 2026 09:34
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from 2e73589 to aba6d56 Compare October 11, 2026 14:58

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants