effect@4.0.1
Patch Changes
-
#8603
ed2cc2fThanks @danieljvdm! - Preserve all Anthropic system instructions and support configurable mid-conversation system messages. Add optionalLanguageModel.supportsSystemMessagesInHistoryto query support with scoped overrides. -
#8680
58a2ee8Thanks @danieljvdm! - Cache per-tool response schemas and parameter-mode copies to reduce schema construction inLanguageModel.generateTextandLanguageModel.streamText. The schema cache also applies to direct calls toResponse.Part,Response.StreamPartandResponse.AllParts. -
#8719
bc44526Thanks @tim-smart! - Treat interruption as abandonment inEffect.cached,Effect.cachedWithTTL,Effect.cachedInvalidateWithTTL,Cache,ScopedCache,RcRef,RcMapand the clusterResourceMap. 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
073bb47Thanks @pawelblaszczyk5! - AdjustEffect.cachedInvalidateWithTTLtypes to accept callbacks that select a TTL from the computation'sExit, including piped calls. -
#8659
2ec021eThanks @samueleguino97! - Prevent entity registration when shard ownership is lost during construction. Pending requests retry on the new owner. -
#8662
cad1118Thanks @tim-smart! - Avoid replaying suspended cluster workflows for unawaited deferred checkpoints while preserving interrupt wakes. -
#8637
1672d9cThanks @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
a81e4e6Thanks @tim-smart! - Prevent PostgreSQL deadlocks between cluster message claims and shard or address resets by locking reset rows in message order. -
#8707
f5c2a91Thanks @tim-smart! - Fix zoned DateTime conversion on runtimes that omit Intl fractional seconds, preserving milliseconds for pre-epoch timestamps. -
#8629
498e72bThanks @tim-smart! - Preserve a fiber'sAsyncLocalStoragecontext when another fiber wakes or interrupts it. RunEffect.tryPromiseerror handlers in the resumed fiber's context. -
#8675
cabf123Thanks @IMax153! - FixHashRing.getShardsreturning 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
a5b1d4eThanks @tim-smart! - Prevent HttpApiSchemaError from being reported as a server failure for invalid requests. -
#8737
878cb33Thanks @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
5e6f756Thanks @tim-smart! - Fix HttpTraceContext decoding of B3 debug and legacy sampling values, and reject all-zero W3C trace and parent IDs. -
#8652
18dfb98Thanks @mikearnaldi! - Preserve pending interruptions when an uninterruptible effect fails. Drop typed failures when interruption skips recovery handlers, but keep defects. -
#8657
04706efThanks @schickling-assistant! - Fix JSON Schema pattern importing for valid expressions whose RegExp source is canonicalized, including slashes, empty patterns, and literal line terminators. -
#8723
f157482Thanks @serhii-indyrct! - Fix encoding optional MCP fields whose schemas decode to classes, such asImplementation.icons. -
#8644
b5a2d4cThanks @sbking! - Prevent shard lock refreshes from releasing shards acquired while the refresh is in flight. -
#8660
1c18c68Thanks @tim-smart! - Prevent singleton shard reassignment from durably cancelling outstanding RPC requests. -
#8705
43416c4Thanks @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
d6ac8f9Thanks @tim-smart! - FixStream.scanto emit its initial state for empty streams. -
#8698
1d9fb8cThanks @bishil06! - Fix accumulated rate drift inStream.throttlewith the"shape"strategy by retaining token debt after early wake-ups. Use monotonic time so wall clock changes do not affect throttling. -
#8664
20dcd50Thanks @lloydrichards! - Preserve server and client extension capabilities in stateful MCP protocols. -
#8653
42e5750Thanks @lloydrichards! - Keep idle MCP HTTP subscriptions open on Cloudflare Workers with SSE keepalives. -
#8679
888e326Thanks @tim-smart! - FixPoolusage 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
0b52bb4Thanks @dv-waynehaffenden! - FixRpcClientstream interruption leaving chunk delivery blocked on a full buffer and stalling the shared protocol receive loop. -
#8627
e823e69Thanks @tim-smart! - Keep streaming RPC chunk decode failures local to the affected request and interrupt it on the server, without disconnecting unrelated requests. -
#8658
962647bThanks @tim-smart! - FixRpcClientprotocol 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
43fdcdcThanks @jaideeppyne! - Fix RPC stdio shutdown to drain responses after stdin EOF. -
#8618
1f89b8eThanks @serhii-indyrct! - SetScopedCacheentry expiry before waking lookup waiters, so a zero-TTL result cannot be reused. -
#8718
e1a521aThanks @juliusmarminge! - Pause schedules whileStream.aggregateWithin,Stream.groupedWithinandStream.aggregateare idle. When a schedule ends, emit the current aggregation and drain sink leftovers without further upstream pulls.