Effect
Version 4.0.0-beta.28
Minor Changes
- #1637
42bc7ceThanks @tim-smart! - Add a neweffect/unstable/http/HttpStaticServermodule for static file serving with MIME resolution, directory index fallback, SPA fallback, and safe path resolution.
Patch Changes
-
#1659
ff533f2Thanks @tim-smart! - Persist MCP HTTP session and protocol headers after initialize so follow-up JSON-RPC requests includeMCP-Protocol-Version. -
#1663
dc803eeThanks @tim-smart! - AddHttpServerResponse.fromClientResponsefor directly converting client responses into server responses. -
#1657
d660b1cThanks @tim-smart! - AddCtrl-Uline clearing support to editable CLI prompts. -
#1645
93a05e3Thanks @gijsbartman! - ensure transformed Atom’s don’t extend idle ttl -
#1655
2a65cf6Thanks @tim-smart! - MakeAtomRpc.queryandAtomHttpApi.queryreturn serializable atoms by default when query results are schema-backed.The atom serialization key now uses each API’s built-in request schemas so dehydrated state can be keyed consistently across server and client.
-
#1662
a561a40Thanks @tim-smart! - AddHttpServerRequest.toClientRequestfor direct server-to-client request conversion. -
#1648
29cd24dThanks @gcanti! - FixTypes.VoidIfEmptyto correctly detect empty object types. Remove deprecatedTypes.MatchRecordin favor of the simplified implementation, closes #1647. -
#1664
662a8e6Thanks @tim-smart! - AddHttpServerRequest.fromClientRequestfor direct client-request-backed server request conversion. -
#1656
d2b52baThanks @tim-smart! - Persist MCP client capability context across HTTP requests by resolving initialized payloads through the standardMcp-Session-IdHTTP header inMcpServer.Adds a regression test that initializes an MCP HTTP client, verifies the MCP server echoes
Mcp-Session-Id, and then checks a later tool call can still readMcpServer.clientCapabilities. -
#1639
407c3b4Thanks @tim-smart! - AddScheduler.PreventSchedulerYieldand expose it viaReferencesso fibers can skip schedulershouldYieldchecks when needed. -
#1649
e741322Thanks @tim-smart! - SetSchema.TaggedErrorClassinstancenameto the tag value, matchingData.TaggedErrorbehavior. -
#1646
5c75fa8Thanks @tim-smart! - Simplify internal and documented request usage by passing request resolvers directly toEffect.requestinstead of wrapping them withEffect.succeed. -
#1641
747177bThanks @tim-smart! - Don’t transform Tool result schemas, as they aren’t sent to the providers as json schemas -
#1636
326cd48Thanks @tim-smart! - AddCookies.expireCookie/expireCookieUnsafeandHttpServerResponse.expireCookie/expireCookieUnsafefor emitting expired cookies. -
#1653
627e922Thanks @tim-smart! - expose mcp client capabilities -
#1660
662287eThanks @tim-smart! - AddHttpServerResponse.toClientResponsefor converting server responses intoHttpClientResponsevalues.