Effect
4.0.0-beta.41
Patch Changes
-
#1881
36f5c21Thanks @gcanti! - AddedBigDecimal.sumAllandBigDecimal.multiplyAllfor feature parity withNumberandBigInt, closes #1880. -
#1869
d8ce758Thanks @gcanti! - Schema: collapse same-type literal branches in JSON Schema output into a singleenumarray, closes #1868.Before:
{"anyOf": [{ "type": "string", "enum": ["A"] },{ "type": "string", "enum": ["B"] }]}After:
{"type": "string","enum": ["A", "B"]} -
#1879
11aab4cThanks @tim-smart! - Highlight active option labels inPrompt.selectandPrompt.multiSelectusing cyan text so selection state is visible beyond the pointer / checkbox icon. -
#1884
3bc1efbThanks @tim-smart! - Fail RpcClient HTTP requests when the server response contains no RPC messages instead of leaving requests pending. -
#1875
70e724eThanks @IMax153! - Fix AI text method toolkit typing to support generic handler toolkits, preserve toolkit union inference, and keep response part narrowing by tool name. -
#1876
738dee7Thanks @tim-smart! - Track ManagedRuntime fibers in a scope -
#1886
2111963Thanks @tim-smart! - add ClusterSchema.WithTransaction annotation -
#1877
198a553Thanks @tim-smart! - allow Context.Key to be covariant
4.0.0-beta.40
Patch Changes
4.0.0-beta.39
Patch Changes
-
#1844
f91fd3dThanks @tim-smart! - RelaxHttpApiClient.urlBuilderto acceptHttpApi.Anyinstead of requiringHttpApi.AnyWithProps. This allows use in helpers generic overHttpApi.Anywhile preserving inferred URL builder types. -
#1851
edaae9dThanks @tim-smart! - Re-export additional core runtime references fromeffect/References, including logger and error reporter references. -
#1856
b47db0bThanks @gcanti! - FixStructutility return types (for examplepick) to preserve the previous simplified shape instead of exposing raw utility types likePick<T, K>, closes #1855. -
#1849
82d3c8eThanks @tim-smart! - Fix theQueue.takeNdocumentation example to end the queue before showing a partial batch. -
#1848
7c22b31Thanks @tim-smart! - RemoveSchedule.composein favor ofSchedule.both, and update schedule examples to useSchedule.both.
4.0.0-beta.38
Patch Changes
-
#1842
f4dbe5bThanks @gcanti! - Schema: renameMakeOptions.disableValidationtodisableChecks. Apply constructor defaults whendisableChecksis true, closes #1841. -
#1837
a71a607Thanks @kitlangton! - FixHttpApiBuildersecurity middleware caching so separate handler builds do not reuse the first provided middleware implementation. -
#1840
66a0494Thanks @tim-smart! - Rename HttpApiClient request optionwithResponsetoresponseModeand add support forresponseMode: "response-only"to return the rawHttpClientResponsewithout decoding. -
#1838
5ef7218Thanks @tim-smart! - UpdateHttpApiClient.urlBuilderto mirror client shape, and encode params/query via endpoint schemas before building URLs. -
#1700
472d260Thanks @tim-smart! - adduseCodecsoption to HttpClientEndpoint constructors
4.0.0-beta.37
Patch Changes
-
#1812
f7a0b71Thanks @tim-smart! - Consolidate the SqlError changes to the new reason-based shape across effect and the SQL drivers, classifying native failures into structured reasons with Unknown fallback where native codes are unavailable. -
#1816
1e223c3Thanks @tim-smart! - unstable/http HttpClientRequest: add toWeb and fromWeb conversions for web Request objects -
#1829
53740f4Thanks @tim-smart! - Fix sql migrator lock handling to only treat duplicate migration-row inserts as a concurrent migration lock. -
#1831
8c7cf89Thanks @tim-smart! - FixSchedule.fixedto run the next iteration immediately when the previous action takes longer than the configured interval. -
#1833
b6b81a9Thanks @tim-smart! - FixUnify.unifyso unions ofEffectvalues collapse to a single unifiedEffecttype again. -
#1825
8f4c1f9Thanks @skoshx! - Fix DevToolsClient not flushing final span events on teardown.The stream consumer was
forkScoped, causing it to be interrupted before it could drain remaining queue items. Replaced withforkChildandFiber.awaitin the finalizer so the stream drains naturally after the queue is failed. -
#1824
f2479f9Thanks @tim-smart! - Ignore unsupported Ctrl key combinations in interactive CLI prompts to avoid rendering control characters such as Ctrl+L form feed into prompt input. -
#1819
c919921Thanks @j! - HttpServerResponse: fixfromWebto preserve Content-Type header when response has a bodyPreviously, when converting a web
Responseto anHttpServerResponseviafromWeb, theContent-Typeheader was not passed toBody.stream(), causing it to default toapplication/octet-stream. This affected any code usingHttpApp.fromWebHandlerto wrap web handlers, as JSON responses would incorrectly have their Content-Type set toapplication/octet-streaminstead ofapplication/json. -
#1821
7af90c2Thanks @gcanti! - Schema: relaxassertsandisconstraints. -
#1822
f3be185Thanks @tim-smart! - improve runSync error when executing async effects
4.0.0-beta.36
Patch Changes
-
#1793
60fcbccThanks @tim-smart! - Ensure streamed tool results are emitted before the finish part so chat history includes tool outputs before stream termination. -
#1762
0a60837Thanks @kitlangton! - Allow unstable HttpApi middleware to declare multiple error schemas with arrays.Middleware errors now follow endpoint error behavior for response status resolution, client decoding, and generated API schemas.
-
#1805
49164d2Thanks @tim-smart! - FixEffect.cachedWithTTLandEffect.cachedInvalidateWithTTLto start TTL expiration when the cached value is produced instead of when computation starts. -
#1808
334b6e4Thanks @tim-smart! - BackportCron.prevwith reverse lookup tables and cron stepping logic, including DST-aware reverse traversal. -
#1789
5700695Thanks @mikearnaldi! - FixStream.scanEffecthanging and repeatedly emitting the initial state. -
#1810
f8f4456Thanks @tim-smart! - Support key-derivedidleTimeToLiveinLayerMapoptions (make,fromRecord, andLayerMap.Service) and addLayerMaptests for dynamic TTL behavior. -
#1802
969d24fThanks @kitlangton! - PubSub.publish and PubSub.publishAll now return false on shutdown instead of interrupting, matching Queue.offer semantics. -
#1796
851eda0Thanks @tim-smart! - ImprovePrompt.fileto support incremental filtering while typing, including backspace and ctrl-u handling. -
#1806
8059c1cThanks @tim-smart! - Fix a regression inPubSub.shutdownso shutting down a pubsub interrupts suspended subscribers (includingtakeAll) by ensuring subscriptions are scoped under the pubsub shutdown scope. -
#1797
6f83295Thanks @tim-smart! - Add `Ctrl-A` and `Ctrl-E` key handling for editable CLI text prompts to move the cursor to the beginning or end of the current input line. -
#1633
65f7f57Thanks @kitlangton! - Schema: adddecodeUnknownResult/decodeResultandencodeUnknownResult/encodeResulthelpers for synchronousResult-based parsing. -
#1798
e7fabd2Thanks @gcanti! - Schema: allow usingStructtype helpers directly, e.g.Schema.Struct.Type<F>instead ofSchema.Schema.Type<Schema.Struct<F>>. -
#1794
89c3e98Thanks @tim-smart! - Fix ai LanguageModel streaming finish parts so finish events are always emitted when a toolkit is provided. -
#1785
53794abThanks @KhraksMamtsov! - add missing Equivalence.Date
4.0.0-beta.35
Patch Changes
-
#1784
7daf387Thanks @gcanti! - AddConfig.Successtype utility, closes #1783. -
#1778
e1664a3Thanks @tim-smart! - AllowEffect.acquireReleaserelease finalizers to depend on the surrounding environment. -
#1777
fdaa6e0Thanks @tim-smart! - Remove an unreachable array branch indecodeJsonRpcRawto simplify JSON-RPC decode logic without changing behavior. -
#1774
19aa47eThanks @tim-smart! - Align CLI help flag and global flag descriptions to a single column even when some flag names are very long. -
#1780
c667dadThanks @tim-smart! - FixLanguageModelincremental prompt fallback to reliably retry with the full prompt when an incremental request fails withInvalidRequestError. -
#1781
764d150Thanks @gcanti! - FixDateTime.makeUnsafeincorrectly appending “Z” to date strings containing “GMT” -
#1772
3c27098Thanks @tim-smart! - make Layer.mock work with Stream and Channel
4.0.0-beta.34
Patch Changes
-
#1758
f2f75eeThanks @tim-smart! - Use a normal Map in ResponseIdTracker and clear it on divergence / reset instead of reallocating a WeakMap. -
#1764
342fc4bThanks @tim-smart! - Add unstable EmbeddingModel support across core and OpenAI providers.- Add the unstable EmbeddingModel module API surface in
effect, including service, request, response, and provider types. - Implement the unstable EmbeddingModel runtime constructor in
effect, withRequestResolverbatching,embed/embedManyspans, provider error propagation, deterministic ordering, and empty-inputembedManyfast-path behavior. - Add and align EmbeddingModel behavior tests in
effectfor embedding usage, batching, ordering, and error handling. - Add
OpenAiEmbeddingModelin@effect/ai-openai, including model / make / layer constructors, config overrides, and provider output index validation with deterministic reordering. - Add OpenAI-compatible EmbeddingModel provider support in
@effect/ai-openai-compat, including config overrides, layer constructors, and output index validation.
- Add the unstable EmbeddingModel module API surface in
-
#1766
5d704eeThanks @tim-smart! - Fix JSDoc wording forEffect.catchto consistently reference the current API name. -
#1771
00add69Thanks @tim-smart! - AddEmbeddingModel.ModelDimensionsand require dimensions in embedding providermodelconstructors. -
#1767
58217d3Thanks @gcanti! - AddisMutableHashMapandisMutableHashSet, and align nominal guard implementations and tests across collections and transactional data types. -
#1765
f4e2abaThanks @tim-smart! - retry incremental prompt on invalid request -
#1756
e3b44b6Thanks @tim-smart! - add HttpApiMiddleware.layerSchemaErrorTransform -
#1732
e1472b7Thanks @KhraksMamtsov! - port Url module from v3 -
#1761
7686320Thanks @gcanti! - FixTool.maketype and runtime behavior whenparametersis not provided.
4.0.0-beta.33
Patch Changes
4.0.0-beta.32
Patch Changes
-
#1717
bf8fff8Thanks @gcanti! - Schema: addOptionFromOptionalNullOrschema, closes #1707. -
#1722
1af3ef3Thanks @tim-smart! - FixRpcSerialization.jsondecode so JSON array payloads are not wrapped in an extra outer array. -
#1725
27fea0fThanks @tim-smart! - Improve unstable HttpApi runtime failures for missing server middleware and missing group implementations.- HttpApiBuilder.applyMiddleware now resolves middleware services via Context.getUnsafe, so missing middleware fails with a clear “Service not found:
” error instead of an opaque is not a function TypeError. - HttpApiBuilder.layer now reports missing groups with actionable context (group identifier, service key, suggested HttpApiBuilder.group(…) call, and available group keys).
- Added regression tests in packages/platform-node/test/HttpApi.test.ts covering:
- addHttpApi + API-level middleware applied across merged groups
- missing middleware service diagnostics
- missing addHttpApi group layer diagnostics
- HttpApiBuilder.applyMiddleware now resolves middleware services via Context.getUnsafe, so missing middleware fails with a clear “Service not found:
-
#1727
2ad6c1bThanks @tim-smart! - Make all built-inHttpApiErrorclasses implementHttpServerRespondable, so they can be returned directly from plain HTTP server handlers outside ofHttpApi. -
#1739
398ac3eThanks @tim-smart! - Use predicate-baseddualdispatch forStream.mergeso data-last calls with optionaloptionsare handled correctly. -
#1741
51fe22fThanks @tim-smart! - AddLayer.tap,Layer.tapError, andLayer.tapCauseAPIs for effectful observation of layer success and failure without changing layer outputs. -
#1740
4605db6Thanks @tim-smart! - Refactor call sites with multipleContextmutations to useContext.mutatefor batched updates. -
#1750
f4de1b0Thanks @gcanti! - Improve unstable AI structured output handling for empty tool params and addTool.EmptyParams, closes #1749. -
#1525
60214f2Thanks @tim-smart! - use Option instead of undefined | A -
#1747
c4b8b0fThanks @tim-smart! - seperate scheduler dispatch from yield decisions -
#1753
6de4efeThanks @tim-smart! - Add dtslint coverage forStream.catchIfto lock in predicate and refinement inference behavior in both data-first and data-last forms. -
#1716
4f969d1Thanks @gcanti! - Remove unusedeffect/NullOrmodule. -
#1721
6cc67c8Thanks @IMax153! - Correct the type of the schema parameter accepted by thefileSchemamethods in the CLI to beSchema.Decoder<A> -
#1709
8531a22Thanks @mikearnaldi! - Add module-level helpers forSemaphore,Latch, and extractedPartitionedSemaphoreoperations. -
#1743
47a51abThanks @tim-smart! - default ws close codes to 1001 in case they are undefined -
#1728
1521d02Thanks @tim-smart! - add graceful shutdown to http servers