Skip to content

Effect

4.0.0-beta.57

Patch Changes

  • #2085 a971f5c Thanks @tim-smart! - add Effect.abortSignal

  • #2088 8e110c5 Thanks @tim-smart! - ensure each sql client gets a unique transaction service

4.0.0-beta.56

4.0.0-beta.55

Patch Changes

  • #2081 42cc744 Thanks @gcanti! - Export the Schema.encodeKeys interface, closes #2070.

    Previously the interface was internal, so exporting a value whose inferred type referenced it triggered TypeScript error TS4023: Exported variable has or is using name 'encodeKeys' from external module ... but cannot be named, e.g.:

  • #2067 04855ce Thanks @mrazauskas! - fix isNullish() type predicate

4.0.0-beta.54

Patch Changes

  • #2078 e4b74f9 Thanks @tim-smart! - add Socket.make

  • #2075 4c72808 Thanks @tim-smart! - ensure workflow failures are not squashed by suspension interrupts

4.0.0-beta.53

Patch Changes

  • #2068 0768509 Thanks @tim-smart! - Fix AtomHttpApi query and mutation error inference to include endpoint middleware and client middleware errors, matching HttpApiClient behavior (including response-only mutation mode).

  • #2062 476aede Thanks @aldotestino! - Fix HttpIncomingMessage.schemaBodyJson to forward parse options via the parseOptions annotation key.

  • #2074 4f79c54 Thanks @tim-smart! - fix Latch.release

  • #2069 4be6a7c Thanks @mikearnaldi! - Fix TestClock.currentTimeNanosUnsafe() to floor fractional millisecond instants before converting them to BigInt.

  • #2065 88927eb Thanks @tim-smart! - add Effectable module

4.0.0-beta.52

Patch Changes

  • #2057 8e04bfc Thanks @tim-smart! - add HttpApiSchemaError for determining where a schema error originates from

  • #2055 cf3a311 Thanks @tim-smart! - ensure tagged enum _tag is correctly set

  • #2057 8e04bfc Thanks @tim-smart! - make HttpApi schema errors defects unless transformed

  • #2058 131fdd5 Thanks @tim-smart! - mcp http request with no session header is 404 response

4.0.0-beta.51

Patch Changes

  • #2049 778d2af Thanks @bohdanbirdie! - Add RpcSerialization.makeMsgPack for creating MessagePack serialization with custom msgpackr options. On Cloudflare Workers with allow_eval_during_startup (default for compatibility_date >= 2025-06-01), pass { useRecords: false } to prevent msgpackr’s JIT code generation via new Function(), which is blocked during request handling. Also fixes silent error swallowing in the msgPack decode path — non-incomplete errors are now rethrown instead of returning [].

  • #2010 4e24dcf Thanks @tim-smart! - process schema properties / elements concurrently

  • #2052 4b1c015 Thanks @gcanti! - Schema: expand FilterOutput and add FilterIssue for richer filter failures.

    The return type of a Schema.makeFilter predicate now supports two additional shapes:

    • { path, issue } where issue is string | SchemaIssue.Issue (previously only { path, message: string } was accepted). The issue arm lets you attach a fully-formed Issue at a nested path without manually constructing a Pointer.
    • ReadonlyArray<Schema.FilterIssue> to report several failures at once. An empty array is success, a single-element array is equivalent to returning that element, and multi-entry arrays are grouped into an Issue.Composite. This removes the need to import SchemaIssue and hand-build a Composite for multi-field validators.

    The single-failure shapes (undefined, true, false, string, SchemaIssue.Issue) are unchanged.

    Breaking: the object shape renamed from { path, message } to { path, issue }. Call sites that used the old shape must rename the field; the migration is mechanical.

    // before
    Schema.makeFilter((o) => ({ path: ["a"], message: "bad" }));
    // after
    Schema.makeFilter((o) => ({ path: ["a"], issue: "bad" }));

    Also renamed { path, message } to { path, issue } in the accepted return type of SchemaGetter.checkEffect.

  • #2047 454f8ad Thanks @gcanti! - Fix SchemaAST.isJson rejecting DAGs as cycles, closes #2021.

    The previous implementation marked every visited object in a single seen set and never removed it, so any value that referenced the same object through two different paths (a DAG, e.g. { x: shared, y: shared }) was treated as a cycle and returned false. Cycle detection now tracks only the current recursion path (popping on exit) and memoizes fully validated subtrees, so DAGs are accepted while true cycles are still rejected.

  • #2051 6754a0c Thanks @tim-smart! - disable sql traces for EventLog, RunnerStorage

  • #2053 90f7fd5 Thanks @tim-smart! - remove use of bigint literals

  • #2046 d7e1519 Thanks @gcanti! - Remove the options parameter from OpenApi.fromApi.

    The parameter only carried additionalProperties, but the function caches results in a WeakMap keyed solely on the api instance. Passing different options across calls for the same api was silently ignored, making the parameter order-dependent and effectively single-shot. No call sites were using it, so the signature is now simply fromApi(api).

  • #2044 72a8122 Thanks @tim-smart! - ensure envelope payloads are correctly encoded for notify path

4.0.0-beta.50

Patch Changes

  • #2038 07be594 Thanks @tim-smart! - add support for deferred responses in rpc

  • #2040 ae02433 Thanks @tim-smart! - require a option to make AtomRpc.query atoms serializatable

4.0.0-beta.49

Patch Changes

  • #2035 7d87873 Thanks @tim-smart! - Add support for common HTTP status string literals in HttpApiSchema.status (for example, HttpApiSchema.status("Created") resolves to status code 201).

  • #2036 c2f6f90 Thanks @tim-smart! - add RpcGroup.omit

  • #2034 216f13c Thanks @IMax153! - Fix issue with exported CLI Completions types

4.0.0-beta.48

Patch Changes

  • #2025 4da56ec Thanks @tim-smart! - update dependencies

  • #2029 a5e6f77 Thanks @tim-smart! - omit scope from HttpApi handlers

  • #2023 f1ba5b8 Thanks @tim-smart! - EventLog Identity string encodes to base 64

  • #2023 f1ba5b8 Thanks @tim-smart! - disable tracer propagation for otlp exporter