Skip to content

All versions since 4.0.0-beta.85

4.0.0-beta.85

Patch Changes

  • #2436 328d97c Thanks @MohanedMashaly! - change default operation in redis from LPUSH TO RPUSH

  • #2431 8441836 Thanks @gcanti! - Derive template literal arbitraries from encoded parts, closes #2414.

  • #2439 074e436 Thanks @gcanti! - Allow schema class .extend to accept a Struct and preserve checks from the extension schema, closes #2419.

  • #2444 c1dfd60 Thanks @bweis! - Avoid throwing when Error.stackTraceLimit is non-writable (frozen intrinsics / SES / deterministic sandboxes such as Temporal).

    Effect manipulates Error.stackTraceLimit in several internal spots to capture short or empty stack traces cheaply. In hardened environments where Error is frozen and stackTraceLimit is read-only, assigning to it throws, which broke Effect entirely. Stack-trace-limit manipulation is now best-effort and silently no-ops when the property cannot be modified, mirroring Node’s own internal guard. Behavior in normal (writable) environments is unchanged.

  • #2425 2ba316b Thanks @tim-smart! - Add Random.choice for selecting a random element from an iterable.

  • #2434 7ce7344 Thanks @gcanti! - Use semantic matching for TemplateLiteral parsing and index signature keys

    Replace regex-based TemplateLiteral parsing with backtracking segmentation over template literal parts, applying part checks during matching.

    Use schema membership when selecting Record index signature keys, including checked string, number, symbol, and TemplateLiteral parameters. Tighten valid index signature parameters on both type and encoded sides, and preserve key parameter semantics in codec transformations.

4.0.0-beta.86

Patch Changes

  • #2462 0b5795a Thanks @tim-smart! - Add Statement.valuesUnprepared for returning unprepared SQL statement rows as arrays.

  • #2455 3e3a859 Thanks @fubhy! - Fix Cron.next skipping earlier matching days when the upcoming day-of-month does not exist in the current month.

  • #2454 7dbec24 Thanks @StarpTech! - Exclude response metadata from HTTP server span failures after response headers have been sent.

  • #2449 d8c00a1 Thanks @gcanti! - Fix Schema handling of encoded-side checks for container ASTs.

    Checks added after flip are now preserved as encodingChecks across Declaration, Arrays, Objects, and Union, even when rebuilding the AST does not change child nodes. toType now projects those checks consistently, and parsing applies encoded-side checks to the local encoded value when an encoding chain is present without allowing encoded-side parseOptions annotations to affect the current parser side.

  • #2446 85b6317 Thanks @IMax153! - Allow schemas provided to CLI flags / arguments to utilize the environment required by the CLI

  • #2452 6d0fda0 Thanks @gcanti! - Remove the keepDeclarations option from Schema.toCodecStringTree.

  • #2461 108a933 Thanks @tim-smart! - Fail RpcClient HTTP requests with a defect when the response stream closes before the request receives a terminal response.

  • #2442 7e1f455 Thanks @gcanti! - Improve Schema type-level performance by lazily computing schema views, specializing common struct projections, and using lighter schema constraints at API boundaries that do not need the full schema protocol.

    This also adds the Schema type-performance benchmark suite, introduces Schema.toCodecArrayFromSingle, preserves canonical StringTree array codecs, renames the arbitrary-generation annotation constraint for clarity, and updates affected codec, parser, channel, SQL, HTTP API, persistence, RPC, AI, OpenAPI, and workflow typings to match the refined Schema surface.

  • #2464 46b3e79 Thanks @tim-smart! - do not use performance.timeOrigin and calculate origins lazily

4.0.0-beta.87

Patch Changes

  • #2468 5a0c1a4 Thanks @gcanti! - Expose the original input schema on Schema.toType, Schema.toEncoded, Schema.toCodecJson, and Schema.toCodecStringTree results via the schema property. This aligns these schema wrappers with other wrappers that retain their source schema for type-level and runtime introspection.

  • #2466 1eea2ea Thanks @gcanti! - Use URL.canParse to validate URL string schema decoding before constructing a URL. This avoids relying on thrown exceptions for routine validation while preserving the same invalid URL issue and successful decode output.

4.0.0-beta.88

Patch Changes

  • #2472 911f1b8 Thanks @tim-smart! - Add adaptive consume and feedback operations to the unstable persistent RateLimiterStore API, including in-memory and Redis-backed bounded cooldown, learning, learned pacing, and expiry behavior for 429 Retry-After feedback.

  • #2457 8beeeea Thanks @P0lip! - Localize missing rpc method errors to the provided request id

  • #2428 c306fcf Thanks @MrGovindan! - Add isOpen to Latch to allow querying the latch’s open state

4.0.0-beta.89

Patch Changes

  • #2475 b7d46ab Thanks @tim-smart! - Update Schema.Void to model ignored void return values.

    Runtime parsing now accepts any present value and discards it as undefined. This matches TypeScript void return values, where callers do not observe the returned value. Use Schema.Undefined when the input must be exactly undefined.

  • #2479 7777e15 Thanks @tim-smart! - Add custom error callbacks to Effect.fromOption.

  • #2480 5376197 Thanks @tim-smart! - render causes in OtlpTracer exception events

4.0.0-beta.90

Patch Changes

  • #2483 d237fdf Thanks @tim-smart! - Fix Config.schema so missing array values are treated as missing data, allowing Config.withDefault to apply.

4.0.0-beta.91 Latest

Patch Changes

  • #2498 b135b25 Thanks @gcanti! - Fix Schedule.andThenResult to emit self outputs as Failure and other outputs as Success, closes #2497.

  • #2488 aaa21a3 Thanks @fubhy! - Fix String.camelCase and String.pascalCase handling of numeric word segments, and add String.configCase for configuration key casing.

  • #2485 3475ee6 Thanks @tim-smart! - fix RequestResolver interruption