Skip to content

Update dependency effect to v4.0.0-rc.110 - #12

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-4.x
Open

Update dependency effect to v4.0.0-rc.110#12
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/effect-4.x

Conversation

@renovate

@renovate renovate Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
effect (source) 4.0.0-beta.1034.0.0-rc.110 age confidence

Release Notes

Effect-TS/effect (effect)

v4.0.0-rc.110

Compare Source

Patch Changes
  • #​7234 6eebd0a Thanks @​lloydrichards! - MCP servers can now use the 2025-11-25 protocol, including sampling with tools and both form- and URL-based elicitation.

    Enable it by adding McpProtocol.v2025_11_25 to the server's protocols option.

  • #​7234 6eebd0a Thanks @​lloydrichards! - MCP servers can now provide icons for server information, resources, resource templates, prompts, and tools using McpSchema.Icon.

    Each icon can specify its source URI, MIME type, supported sizes, and light or dark theme.

  • #​7291 d10ceb0 Thanks @​fubhy! - Include traversed edge indexes in graph shortest-path results.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add deterministic, index-preserving Graph.minimumSpanningForest.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add index-preserving transitive reduction for directed acyclic graphs.

  • #​7261 189b003 Thanks @​fubhy! - Add Graph.Snapshot and Graph.fromSnapshot for constructing immutable graphs with explicit node and edge indexes, and simplify Graph.Edge to a type-only structural interface.

  • #​7261 189b003 Thanks @​fubhy! - Add Schema.Graph for schema-based encoding and decoding of immutable directed and undirected graphs.

  • #​7267 0a127b8 Thanks @​tim-smart! - Allow customizing the prefix displayed by CLI prompts.

  • #​7272 e491deb Thanks @​fubhy! - Preserve scoped Graph mutation callback errors when the callback manually finalizes its mutable handle.

  • #​7266 f99c508 Thanks @​tim-smart! - Fix SQL persisted queue delivery on SQLite builds without SQLITE_ENABLE_UPDATE_DELETE_LIMIT.

  • #​7199 7e3f07c Thanks @​rekram1-node! - Fix Zsh completions for CLI commands with both positional arguments and subcommands.

  • #​7274 a894fe1 Thanks @​fubhy! - Ignore removed allocator history when comparing and hashing immutable Graph values with the same active indexed structure.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add Graph.findCycle with exact node and edge witnesses.

  • #​7294 7e9923b Thanks @​tim-smart! - Add custom reviver support to HTTP JSON parsing APIs.

  • #​7200 f064121 Thanks @​mikearnaldi! - Support narrowing schedule input and output types with type guard predicates passed to Schedule.while.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add index-preserving Graph.inducedSubgraph.

  • #​7244 b660bf0 Thanks @​AnnaSuSu! - Normalize unbounded PubSub replay capacities to positive integers.

  • #​7293 f4fbe9c Thanks @​tim-smart! - Support standalone Effect.forEach data-last usage

  • #​7291 d10ceb0 Thanks @​fubhy! - Add bounded lazy enumeration of simple paths and all tied shortest paths.

  • #​7259 e811353 Thanks @​fubhy! - Prevent graph edge reads from exposing internal edge records and reject non-finite A* heuristic values.

  • #​7251 9761c3c Thanks @​tim-smart! - Add Encoding.randomHex, a lightweight non-cryptographic generator that coerces lengths to unsigned 32-bit multiples of 8.

  • #​7296 baa99fc Thanks @​tim-smart! - Make unstable CLI boolean flags required when omitted, allowing optional, default, config, and prompt fallbacks to handle absence consistently.

  • #​7246 7fd79b2 Thanks @​tim-smart! - Add Effect.head for retrieving the first element of an iterable produced by an effect.

  • #​7273 a82ffc0 Thanks @​fubhy! - Validate Graph traversal radii, isolate traversal start configuration, and prioritize the first supplied DFS root.

  • #​7291 d10ceb0 Thanks @​fubhy! - Throw GraphError when a negative cycle affects a Bellman-Ford target, reserving Option.none() for unreachable paths.

  • #​7248 4026e2d Thanks @​tim-smart! - Improve tracing performance in span creation and HTTP middleware.

  • #​7276 397bf1e Thanks @​fubhy! - Deduplicate directed neighbor-node queries while preserving first edge occurrence order.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add incident-edge, edges-between, and directed and undirected degree queries to Graph.

  • #​7291 d10ceb0 Thanks @​fubhy! - Add unweighted reachability, explicit weak and strong connectivity predicates, weak components, and tree detection to Graph.

v4.0.0-rc.109

Compare Source

Patch Changes
  • #​7219 a0743f2 Thanks @​tim-smart! - Add SQL, HttpApi testing, and CLI schema examples to the published AI documentation.

  • #​7241 17892e7 Thanks @​tim-smart! - Use Context mapUnsafe in less call sites

  • #​7240 4d8a230 Thanks @​tim-smart! - Fix Effect.fromOption data-first inference for inline Option expressions.

  • #​7216 f21f9c9 Thanks @​tim-smart! - Add a HttpStatus module to effect/unstable/http that centralizes the mapping from HTTP status literal names to numeric codes and exports HttpStatus.fromLiteral. HttpApiSchema.status now consumes the new module.

  • #​6829 18270dd Thanks @​lloydrichards! - MCP servers now support the 2024-11-05 and 2025-03-26 RPC revisions through version-specific protocol adapters.

  • #​7218 26db404 Thanks @​tim-smart! - Run SQL PersistedQueue table creation through versioned migrations so future schema changes can be applied safely.

  • #​7210 2670398 Thanks @​tim-smart! - Preserve nanosecond precision when adjusting TestClock with large durations.

  • #​7205 3702bed Thanks @​tim-smart! - Remove the kubernetes-types dependency by vendoring the Kubernetes Pod declarations used by the cluster helpers and exporting them from effect/unstable/cluster/K8sTypes.

  • #​7236 ccae60e Thanks @​roninjin10! - Propagate a failed BEGIN or SAVEPOINT from SqlClient.withTransaction as a typed SqlError.

    makeWithTransaction wrapped the begin step together with the transaction body, so a
    failed BEGIN took the rollback branch. No transaction was active at that point, the
    ROLLBACK failed, and its Effect.orDie wrapper replaced the original typed error with a
    defect (cannot rollback - no transaction is active). Callers could no longer classify the
    failure as retryable. The path became reachable when the sqlite client started using
    BEGIN IMMEDIATE, which acquires a write lock and can fail with SQLITE_BUSY.

    Commit and rollback now run only after begin or savepoint succeeds. A failed begin or
    savepoint fails with its original SqlError, leaves the wrapped effect unexecuted, and
    still closes the acquired connection scope.

  • #​7206 6ff5396 Thanks @​tim-smart! - Bound cluster runner entity residency and storage reads.

    ShardingConfig gains two knobs:

    • maxResidentEntities (default 10_000): the maximum number of entities
      that can be resident on a runner at the same time. At the cap, the storage
      read loop stops admitting messages for new entity addresses (they stay in
      storage until a slot frees up) and volatile sends to new addresses fail with
      MailboxFull. Persisted sends still succeed. "unbounded" restores the
      previous behaviour and can only be set programmatically.
    • unprocessedMessageBatchSize (default 1024): the maximum number of
      unprocessed messages read from storage in a single poll.

    MessageStorage.unprocessedMessages accepts an optional
    { limit, addresses } argument, and only claims the messages it actually
    returns. The memory implementation now applies the same ten-minute claim
    window as SQL, so bounded reads advance past in-flight requests; resetting an
    address or shard makes its claimed messages immediately eligible again.

    The encoded driver contract replaces Encoded.resetAddress with the batched
    Encoded.resetAddresses operation. SqlMessageStorage.makeEncoded constructs
    the SQL encoded driver directly for custom storage composition.

    ClusterWorkflowEngine entities (workflows and the durable clock) now use a
    fixed ten-second idle time, so completed and suspended executions release their
    entity slots quickly. Their state is durable, so an evicted execution is
    rebuilt from storage when its next message arrives.

v4.0.0-rc.108

Compare Source

Patch Changes
  • #​6546 dfb173e Thanks @​xianjianlf2! - Handle BigInt values safely and consistently across JSON diagnostics and logger formats.

  • #​7174 005e090 Thanks @​tim-smart! - Fix Queue.await failing with Cause.Done when registered before the queue ends.

  • #​7180 c82c532 Thanks @​gcanti! - Prioritize redacted representations in formatters and normalize text logger levels to uppercase.

  • #​7193 22b579f Thanks @​kitlangton! - Fix Deferred.await dying with a TypeError when a waiter is interrupted after the Deferred has been completed.

  • #​7179 3e19539 Thanks @​tim-smart! - Fix DurableDeferred.raceAll so a completed deferred can wake an active workflow without changing success-biased race semantics

  • #​7189 08a3c74 Thanks @​gcanti! - Fix HttpApi query decoding for array parameters with a single value.

  • #​6550 eb0bae0 Thanks @​xianjianlf2! - Return fresh OpenAPI specs from cached OpenApi.fromApi calls.

  • #​7188 97b544d Thanks @​gcanti! - Mark the internal ~sentinels Schema annotation as @internal so release declaration stripping removes it together with SchemaAST.Sentinel. This keeps the published declarations self-consistent for consumers that type-check dependencies with skipLibCheck: false.

  • #​7158 4f6d131 Thanks @​k3dom! - Improve Union candidate selection: a nested union member is dispatched by the sentinels common to all its members, and candidates whose sentinel the input contradicts are excluded.

  • #​7178 fad4b7c Thanks @​tim-smart! - Use Promise microtasks for synchronous Scheduler dispatch.

  • #​7181 accf447 Thanks @​gcanti! - Move SchemaError into the Schema module and remove the standalone SchemaError module.

  • #​7195 31b27e4 Thanks @​tim-smart! - Ensure discarded non-persisted cluster messages complete without waiting for the entity reply.

  • #​7191 8458951 Thanks @​Digifox03! - Fix HttpRouter.Middleware.layer to provide request error services for errors declared in handles, and expose global
    middleware errors from HttpRouter.toHttpEffect.

v4.0.0-beta.107

Compare Source

Patch Changes
  • #​7156 596f3f9 Thanks @​tim-smart! - Terminate active multipart file streams when a parser limit is exceeded or the body ends unexpectedly, so file parts fail instead of hanging.

  • #​7153 9611ed4 Thanks @​rajanpanth! - Fix Duration's Hash.symbol implementation to hash a canonical nanoseconds form instead of the raw internal Millis/Nanos representation. Two durations that Duration.equals/Equal.equals consider equal (e.g. Duration.seconds(5) and Duration.nanos(5_000_000_000n)) previously hashed differently, violating the Hash/Equal contract and silently breaking HashSet/HashMap lookups keyed by Duration.

  • #​7166 8b91605 Thanks @​CDVolvik! - Import migrations through a file URL in Migrator.fromFileSystem, so absolute Windows paths are accepted by the ESM loader.

    Previously the directory and file name were passed to import as a plain path. On Windows that produced a specifier such as D:\migrations\1_init.ts, which the ESM loader rejects with Only URLs with a scheme in: file, data, and node are supported.

    fromFileSystem now resolves the specifier through the Path service, so its type widens from Loader<FileSystem> to Loader<FileSystem | Path>. Callers that already provide an aggregate platform layer such as NodeServices.layer are unaffected; callers that provide FileSystem on its own now also need a Path layer, and on Windows it must be a platform-aware one rather than the POSIX Path.layer.

  • #​7157 d901928 Thanks @​tim-smart! - Add Channel.mkUint8Array and reuse it from Stream and multipart file collection. This also fixes quadratic buffering in File.contentEffect, improving collection of a 16 MiB chunked upload by approximately 90x.

  • #​7149 b32bdef Thanks @​gcanti! - Require explicit handling for regular expression pattern constraints translated from JSON Schema documents, with modes to apply trusted patterns or ignore their constraints.

v4.0.0-beta.106

Compare Source

Patch Changes
  • #​7110 2695168 Thanks @​fubhy! - Ensure concurrent first RcRef borrowers share the same resource generation.

  • #​7114 6310a8c Thanks @​fubhy! - Report buffered worker send failures as WorkerError values.

  • #​7117 c2071b1 Thanks @​fubhy! - Make TxQueue.shutdown safe to call after a queue has already been interrupted.

  • #​7119 7aff81a Thanks @​fubhy! - Prevent SQL resolvers from invoking non-empty batch callbacks when every request fails encoding.

  • #​7105 a1d4057 Thanks @​tim-smart! - Add ConfigProvider.fromEnvRecord for building a provider from an explicit environment record.

  • #​7111 abf77b0 Thanks @​fubhy! - Preserve input fiber error types in Fiber.joinAll.

  • #​7134 6c60375 Thanks @​marbemac! - Fix cluster shutdown hangs by failing abandoned non-discard requests and stream chunk acknowledgements with EntityNotAssignedToRunner, including persisted requests sent after runner unregistration. This adds EntityNotAssignedToRunner to the typed error channel of entity clients and request-only EntityProxy RPC/HTTP endpoints; discard endpoints remain unchanged.

  • #​7107 22f4897 Thanks @​fubhy! - Preserve FormData bodies when converting client requests through HttpServerRequest.

  • #​7120 615d1d5 Thanks @​fubhy! - Fix SqlResolver.findById failing to complete duplicate requests when id encoding fails, which surfaced as a RequestResolver did not complete request defect instead of the underlying SchemaError.

  • #​7131 3a86757 Thanks @​fubhy! - Ignore MCP cancellation notifications for unknown request identifiers.

  • #​7104 f4a9762 Thanks @​gcanti! - Add Function.memoizeIdempotent and use it to avoid reprocessing canonical Schema ASTs, including optional and mutable property modifiers. Cache Config schema cursor AST compilation.

  • #​7144 0bcf6ed Thanks @​fubhy! - Stop multipart parsing after part count, part size, or field size limits are exceeded.

  • #​7121 ba9cb63 Thanks @​fubhy! - Prevent execution-plan event observer defects from changing attempt outcomes or leaving attempt events unpaired.

  • #​7147 42c810d Thanks @​tim-smart! - Release worker pool entries when an RPC worker's receive loop fails.

  • #​7148 1416ccd Thanks @​gcanti! - Consolidate schema arbitrary derivation into Schema.toArbitrary, which now returns a Schema.Arbitrary factory that accepts the fast-check module. Remove Schema.toArbitraryLazy and arbitrary derivation reports.

  • #​7109 08d0d39 Thanks @​fubhy! - Fix RcRef leaking resources acquired before a failed acquisition.

  • #​7146 548908a Thanks @​gcanti! - Improve Schema representation identity, anonymous-reference eligibility, and JSON Schema alias finalization.

  • #​6862 4b3460d Thanks @​fubhy! - Ensure ScopedRef.set releases a replacement when the previous value's finalizer defects.

  • #​7060 d170596 Thanks @​fubhy! - Preserve maxItems semantics when importing JSON Schema prefixItems.

  • #​7116 aea89d0 Thanks @​fubhy! - Keep span end times at zero when tracer timing is disabled.

  • #​7124 deed5fb Thanks @​fubhy! - Use a distinct AES-GCM initialization vector for each encrypted event log entry. EventLogEncryption.encrypt now returns each IV with its ciphertext, and encrypted event log clients and servers must be upgraded together because the WriteEntries wire shape changed.

v4.0.0-beta.105

Compare Source

Patch Changes
  • #​7087 0418564 Thanks @​tim-smart! - Recognize tagged Config and RPC errors across duplicated effect package copies.

  • #​6827 d334a85 Thanks @​jaipaljadeja! - Add bounded 429 retries and custom response header names to HttpClient.withRateLimiter.

  • #​7084 f0be855 Thanks @​tim-smart! - Stop capturing definition-location stack frames in Context.Service.

  • #​7090 b206fa5 Thanks @​tim-smart! - Expose stdinIsTerminal and stdoutIsTerminal effects through the Stdio service.

  • #​7093 b938c8a Thanks @​gcanti! - Add the opt-in reportInput parse option for retaining rejected inputs in enumerable fields on value-bearing schema issues and including them in default formatted messages. Value-bearing issue constructors accept the rejected input and parse options directly, and Schema.Annotations.Issue now supports expected for default messages.

    Schema issues no longer format implicitly through Issue#toString. Use SchemaIssue.makeFormatterDefault() when a human-readable message is needed. The throwing and Promise-based adapters in SchemaParser now use the generic message "Schema validation failed" and expose the structured SchemaIssue.Issue as the error cause; consumers that previously read the formatted error message should inspect and explicitly format that cause instead.

    Schema.makeEffect now returns SchemaIssue.Issue failures instead of wrapping them in SchemaError, and Schema.withConstructorDefault accepts an Effect that fails with SchemaIssue.Issue. Fallible Optic operations return structured SchemaIssue.Issue failures, while schema failures from Schema.toIso and Schema.toDifferJsonPatch use the generic error message and preserve the issue in cause instead of formatting it internally.

  • #​7097 8525f05 Thanks @​tim-smart! - Add Cron.format for converting a Cron instance to a cron expression, with an option to include the seconds field.

v4.0.0-beta.104

Compare Source

Minor Changes
Patch Changes
  • #​6934 1001bcc Thanks @​tim-smart! - httpapi: add typed response headers across handlers, generated clients (including HttpApiTest), streaming responses, and OpenAPI with HttpApiSchema.WithHeaders. Add HttpApiSchema.encodeToWithHeaders for folding response headers into domain types such as error classes. Explicit content-type and content-length values applied with HttpServerResponse.setHeader or setHeaders now override body-derived values.

  • #​7044 993ba60 Thanks @​fubhy! - Commit SQL event journal entries only after their write callback succeeds.

  • #​6957 67faacd Thanks @​fubhy! - Select Bash completions for the active positional argument.

  • #​6941 b78acdf Thanks @​fubhy! - Generate even and odd safe integers in Crypto random APIs.

  • #​6965 fbb9ce5 Thanks @​fubhy! - Correct the runtime tag spelling for CliError.UnknownSubcommand.

  • #​6963 722ea48 Thanks @​fubhy! - Exclude disabled choices from multi-select prompt selection and submission.

  • #​7001 3058fd5 Thanks @​fubhy! - Keep ordered SQL resolver results aligned when batched request encoding fails.

  • #​6937 62d0575 Thanks @​fubhy! - Fix the encoded output type of TestSchema.Encoding.encodeUnknownEffect.

  • #​7014 99dd6b5 Thanks @​tim-smart! - Add lightweight INI, YAML, and TOML parsers under effect/unstable/encoding and remove their runtime dependencies.

  • #​7053 7963ce1 Thanks @​fubhy! - Fix arbitrary generation for tuples with multiple optional elements.

  • #​7047 af14e75 Thanks @​fubhy! - Fix Tuple.pick return types to preserve the requested index order and duplicate indices.

  • #​7066 24e22d2 Thanks @​fubhy! - Close ResourceMap acquisition scopes when a lookup fails.

  • #​7036 647d14e Thanks @​fubhy! - Fix scoped reentrant lock finalizers releasing under the wrong fiber owner.

  • #​6983 1434eec Thanks @​fubhy! - Apply byte range and chunk size options to default Web file responses.

  • #​7071 a5278b1 Thanks @​fubhy! - Fix MCP sampling metadata optionality and validate it as an object.

  • #​6946 6af04a5 Thanks @​fubhy! - Defer memoized Layer state installation until Effect execution.

  • #​6943 cb6c837 Thanks @​fubhy! - Reject zero execution attempts in ExecutionPlan steps.

  • #​7026 d44cead Thanks @​tim-smart! - Add execution-plan lifecycle events via an optional onEvent handler on Effect.withExecutionPlan and Stream.withExecutionPlan.

    The handler receives an ExecutionPlan.Event, a tagged union of AttemptStart, AttemptSuccess, and AttemptFailure, allowing attempt outcomes to be observed from outside the effect for logging and metrics:

    import { Effect } from "effect"
    
    Effect.withExecutionPlan(program, plan, {
      onEvent: (event) => Effect.log("execution plan event", event)
    })

    Every AttemptStart is followed by exactly one terminal event. AttemptFailure carries the full failure Cause, so defects and interruption are reported as well as expected errors, and terminal events run like finalizers so they are emitted even when the attempt is interrupted. Event numbering matches ExecutionPlan.CurrentMetadata: attempt is cumulative across steps, while stepAttempt is 1-based within the current step.

  • #​7077 88c7632 Thanks @​tim-smart! - Rename Schedule.andThen and Schedule.andThenResult to Schedule.concat and Schedule.concatResult.

  • #​6975 abcbb2a Thanks @​fubhy! - Encode SSE events with empty data as dispatchable events.

  • #​7037 8f63cce Thanks @​fubhy! - Preserve OTLP metric delta checkpoints when an export fails.

  • #​7057 d56dfcf Thanks @​fubhy! - Fix the error type exposed by the curried Sink.catch overload.

  • #​6947 a98cda9 Thanks @​fubhy! - Check symbol-keyed properties in Match object patterns.

  • #​6956 6704bb8 Thanks @​fubhy! - Emit valid CSI sequences from the unstable CLI cursorTo helper.

  • #​7008 6143de2 Thanks @​tim-smart! - Prevent Bash completions from treating flag values as subcommands.

  • #​7032 936b135 Thanks @​marbemac! - Fix a @effect/cluster shutdown deadlock on single-runner topologies (e.g. single-node deployments and TestRunner), where Sharding.sendOutgoing retried EntityNotAssignedToRunner forever during teardown.

  • #​6940 1bbae84 Thanks @​fubhy! - Omit services removed by Context.addOrOmit from the returned context type.

  • #​7065 d795ee7 Thanks @​tim-smart! - Fix DevTools span requests to preserve their state when queued for sending.

  • #​7016 0a82d88 Thanks @​brandon-julio-t! - Normalize cluster durable clock wake-up timestamps to whole milliseconds.

  • #​6945 9215bc5 Thanks @​fubhy! - Preserve integral precision when parsing decimal nano and micro duration inputs

  • #​7050 a1b5df2 Thanks @​fubhy! - Include schedule errors in the error channel of Effect.schedule and Effect.scheduleFrom.

  • #​7062 92a9ac5 Thanks @​fubhy! - Fix the inspectable JSON identity of FiberSet.

  • #​6959 6bde7f2 Thanks @​fubhy! - Match Fish completions against the full nested command path.

  • #​6951 a712131 Thanks @​fubhy! - Use the supplied hash for HashMap.modifyHash insertions, updates, and removals.

  • #​6989 2e6f760 Thanks @​fubhy! - Support standard BodyInit values when reading converted client request bodies through HttpServerRequest.

  • #​6986 aa05804 Thanks @​fubhy! - Synchronize HTTP server response content headers when replacing the body.

  • #​6944 badd3bf Thanks @​fubhy! - Make Iterable.flatten stack safe across empty iterables.

  • #​6968 02b0265 Thanks @​fubhy! - Allow MCP tool calls to omit optional arguments.

  • #​7033 3437e21 Thanks @​fubhy! - Fix memory journal conflict detection skipping the first newer entry.

  • #​7034 41a550d Thanks @​fubhy! - Return the first unused remote sequence from the in-memory event journal.

  • #​7042 17b5d50 Thanks @​fubhy! - Relay entries imported into an in-memory event journal to other remotes.

  • #​7074 96e5e95 Thanks @​fubhy! - Preserve and update runner health in the in-memory cluster runner storage.

  • #​7038 e4d589e Thanks @​fubhy! - Clear in-memory message primary-key indexes when clearing an entity address.

  • #​7005 ae4cf7b Thanks @​fubhy! - Generate valid MSSQL upserts for multi-table persistence.

  • #​6998 6ef5f1a Thanks @​fubhy! - Decode split UTF-8 sequences correctly in NDJSON streams.

  • #​6972 2235a29 Thanks @​tim-smart! - Persist a serializable defect when a cluster reply cannot be encoded, preventing persisted entity callers from hanging.

  • #​6962 b32f4cb Thanks @​fubhy! - Support empty records and non-array iterables in Prompt.all.

  • #​7023 7f4c095 Thanks @​tim-smart! - Rename RateLimiter.makeSleep to RateLimiter.sleep and support self-first partially applied and uncurried usage.

  • #​7041 5f3fb81 Thanks @​fubhy! - End runner streams after emitting their terminal replies.

  • #​7020 17f0b91 Thanks @​gcanti! - Fix Schema.make to preserve existing nested Schema.Class instances, including in array fields, while recursively constructing plain class inputs provided at runtime inside unions. Constructor defaults remain scoped to structural field and element occurrences, with SchemaAST.Context.constructorDefault representing the single default link for each occurrence.

    Optimize Function.memoize to use a single WeakMap lookup for cached values. Its callback no longer accepts undefined as a return type because undefined represents a cache miss.

    The performance of the two array paths can be reproduced by saving the following program as
    scratchpad/schema-make-6890-benchmark.ts and running node scratchpad/schema-make-6890-benchmark.ts from the repository
    root:

    import { Schema } from "effect"
    import { performance } from "node:perf_hooks"
    
    class Row extends Schema.Class<Row>("Row")({ value: Schema.String }) {}
    class DirectTable extends Schema.Class<DirectTable>("DirectTable")({ rows: Schema.Array(Row) }) {}
    class UnionTable extends Schema.Class<UnionTable>("UnionTable")({ rows: Schema.Array(Schema.Union([Row])) }) {}
    
    const rows = Array.from({ length: 30_000 }, (_, value) => Row.make({ value: String(value) }))
    
    function benchmark(label: string, make: () => { readonly rows: ReadonlyArray<Row> }) {
      const samples: Array<number> = []
      for (let i = 0; i < 6; i++) {
        const start = performance.now()
        const result = make()
        samples.push(performance.now() - start)
        if (result.rows[0] !== rows[0] || result.rows.at(-1) !== rows.at(-1)) {
          throw new Error(`${label} did not preserve Row identity`)
        }
      }
      console.log(`${label}: ${samples.slice(1).map((n) => n.toFixed(3)).join(", ")} ms`)
    }
    
    benchmark("Array(Class)", () => DirectTable.make({ rows }))
    benchmark("Array(Union([Class]))", () => UnionTable.make({ rows }))

    Representative local results on Node 24.12.0 (six runs, with the first discarded):

    Array(Class): 0.639, 0.498, 0.447, 0.448, 0.451 ms
    Array(Union([Class])): 3.141, 2.195, 2.126, 2.108, 2.057 ms
    
  • #​7055 0cdadd7 Thanks @​fubhy! - Fix Stream.slidingSize to produce the same windows regardless of upstream chunk boundaries.

  • #​6978 39b57d7 Thanks @​fubhy! - Retain the last SSE event ID across dispatched events.

  • [#​6976](https://redirect.github.com/Effect-TS/eff

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from c4eea85 to c442a36 Compare August 12, 2026 09:06
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-beta.104 Update dependency effect to v4.0.0-beta.105 Aug 12, 2026
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from c442a36 to 877de1d Compare August 13, 2026 17:05
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-beta.105 Update dependency effect to v4.0.0-beta.106 Aug 13, 2026
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from 877de1d to e0c032d Compare August 15, 2026 05:39
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-beta.106 Update dependency effect to v4.0.0-beta.107 Aug 15, 2026
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from e0c032d to 6319e4c Compare August 17, 2026 15:13
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-beta.107 Update dependency effect to v4.0.0-rc.108 Aug 17, 2026
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from 6319e4c to 3482e2f Compare August 19, 2026 02:48
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-rc.108 Update dependency effect to v4.0.0-rc.109 Aug 19, 2026
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch 2 times, most recently from 1fcd18b to 02b78b7 Compare August 21, 2026 06:22
@renovate
renovate Bot force-pushed the renovate/effect-4.x branch from 02b78b7 to a8118f0 Compare August 22, 2026 02:46
@renovate renovate Bot changed the title Update dependency effect to v4.0.0-rc.109 Update dependency effect to v4.0.0-rc.110 Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants