effect@4.0.0-rc.112
Pre-releaseMinor Changes
-
#7390
a5f78d3Thanks @tim-smart! - Make RPC serialization schema-aware.Add
codecForto RPC serialization and client/server protocols so RPC and cluster
network payloads use the transport's schema codec. Framing, cluster storage, and
existing built-in wire formats remain unchanged.
Patch Changes
-
#7411
20cb4f2Thanks @altendky! - AddRcMap.getOptionandLayerMap.contextEffectOptionfor atomically retaining
entries only when they are already cached. -
#7437
44675cbThanks @wmaurer! - Add an optionaldescriptiontoAiError.AuthenticationError, rendered after the kind-based suggestion, and pass the provider's own error text through it on HTTP 401 and 403, so authentication failures report what actually went wrong instead of only a category. -
#7393
b6bf5e1Thanks @wmaurer! - FixPrompt.autoCompleteswallowingjandkwhile typing a filter query. -
#7401
0b9f780Thanks @gjermundgaraba! - Retry transient EventLog remote write failures so pending local entries are synchronized after recovery. -
#7384
150e92cThanks @tim-smart! - Improve synchronous Schema decode and encode performance by preserving completed parser exits and using a direct loop for common struct parsers. -
#7386
6740db2Thanks @tim-smart! - AddSchema.TaggedUnion.matchOrElsefor partial case matching with a typed fallback. -
#7389
d57bba1Thanks @tim-smart! - ImproveSchemaErrorconstruction performance by skipping stack frame capture. -
#7402
be75d5eThanks @tim-smart! - Improve Pool acquisition and release performance. Pool now tracks usage
incrementally, stores available items in an intrusive FIFO, and skips work for
fixed and empty pools. This changes the publicPool.StateandPool.PoolItem
interfaces. -
#7402
be75d5eThanks @tim-smart! - AddPool.use, which borrows an item while an effect runs and returns it on any
exit. UnlikeEffect.scoped(Pool.get(pool)), it does not require aScope. -
#7402
be75d5eThanks @tim-smart! - Reduce scoped resource acquisition allocations by storing the first Scope
finalizer inline and allocating a Map only when a second is added. This changes
the publicScope.State.Openinterface. -
#7424
02a5146Thanks @tim-smart! - Skip remote event journal write callbacks when there are no uncommitted entries and return anOptionindicating
whether the callback ran. -
#7312
15272a6Thanks @godu! - Fix shell completion for choice values containing quotes, spaces, word-break characters, Unicode, and shell metacharacters.Bash now quotes candidates for readline, keeps choice values intact when reconstructing words, and supports Bash 3.2 without associative arrays. Fish and Zsh escape choices across both parsing rounds, and Fish hides value-taking flags after use without suppressing their value completions.
-
#7395
436f10dThanks @wmaurer! - FixPrompt.fileswallowingjandkwhile typing a filter query. -
#7406
058fb15Thanks @gcanti! - Preserve finite string and unique symbol key unions in the return types ofArray.groupByandIterable.groupBy.Previously, grouping widened finite keys to
stringorsymbol, which lost known-key autocomplete and allowed access to keys that the selector could never produce. The newRecord.ReadonlyRecord.GroupByResultkeeps finite keys and marks their properties optional because any group may be absent at runtime, while openstringandsymbolselectors retain their existing record index signatures. -
#7415
4d89bb8Thanks @gcanti! - Reject unsupported JSON Schema references instead of resolving them by their final path segment, closes #7409. -
#7420
480fb15Thanks @gcanti! - Make JSON Schema dialect conversions preserve custom keywords, translate conditionals, contains, dependencies, identifiers, and tuples where representable, relocate local references after structural changes, and throw instead of silently changing unsupported constraints. -
#7417
f77ec19Thanks @Makisuo! - Defer built-in OpenAPI response generation until the documentation route is first requested, retrying after generation defects. -
#7388
925b82aThanks @ebramanti! - Fix MCP initialize rejected over the protocol version headerMcpServer.layerHttpvalidated theMCP-Protocol-Versionheader on every POST, including
theinitializerequest. That header reports the version negotiated by an earlier
initialize, so on a fresh connection a client can only send its own default. Whenever
that default was not among the server's registered protocols theinitializereturned
400and never reached version negotiation, even when the body offered a version the
server supports.The header check now applies only to requests after initialization, where the
specification requires it. Aninitializenegotiates from the version offered in its
body, through the protocol registry, and reports the selected version in the response. -
#7403
7455246Thanks @hsyntax! - Add support for explicit cache breakpoints on the OpenAI responses API for GPT-5.6-or-later. -
#7442
118124dThanks @tim-smart! - Redact password prompt values from CLI wizard command output. -
#7366
0dd7825Thanks @tim-smart! - AddSchemaBinary, a compact schema-derived codec with streaming, optional fingerprints and dictionaries, and RPC support. -
#7404
b722ecaThanks @gcanti! - Add a publicStandardSchemamodule containing the vendored Standard Schema V1 specification and remove the direct dependency on@standard-schema/spec. -
#7436
811d579Thanks @gcanti! - Fix JSON Schema imports:- Type-specific keywords no longer imply a type. For example,
minLengthvalidates strings without rejecting
non-string values. - Constraints next to
const,enum, and$refare now applied instead of being ignored. - Disjoint and linear union intersections are imported without a Cartesian expansion. Other overlapping union
intersections fail with an explicit error. - References to definitions without unions no longer make otherwise linear intersections fail.
- Imported
oneOfschemas remainoneOfwhen exported again. minItemsis preserved whenprefixItemsdoes not fully enforce it.
- Type-specific keywords no longer imply a type. For example,
-
#7382
043b587Thanks @tim-smart! - Replace per-prompt prefix options with a context-based theme for CLI prompt symbols and colors. -
#7373
8583727Thanks @ChubbyDuck! - Drop unreachable concurrency guard in iteratorEagerImpl -
#7429
d9d2cfcThanks @gcanti! - Reject unsupported JSON Schema validation keywords and object or arrayconst/enumvalues during import instead of
silently weakening validation. -
#7428
5c4b7a0Thanks @ebramanti! - Return workflow execution IDs from generated RPC and HTTP discard endpoints.