🚨 Breaking Changes
- publisher, bun: Keep Redis Pub/Sub delivery in stream order - by @dinwwwh in #2073 (ab120)
- ratelimit, lock: Drop Redis cluster client support - by @dinwwwh in #2075 (a16c8)
🚀 Features
- client:
- cloudflare:
- rpc, openapi:
🐞 Bug Fixes
- Upgrade standard-server to 0.10.0 and ban signal.throwIfAborted() - by @dinwwwh in #2118 (6c46a)
- ai-sdk:
- client:
- Stop concurrent body reads from starving deduped callers - by @dinwwwh in #2078 (588f0)
- Reject batched calls when a batch option throws - by @dinwwwh in #2079 (b050f)
- Reject WebSocket link calls after the socket closes - by @dinwwwh in #2081 (29285)
- Reject message port link calls after the port closes - by @dinwwwh in #2082 (0caff)
- Reject WebSocket link calls when connect returns a closed socket - by @dinwwwh in #2083 (3c0a0)
- Let the WebSocket link reconnect after giving up - by @dinwwwh in #2084 (91b8d)
- Send FormData uploads outside the batch - by @dinwwwh in #2102 (53616)
- Stop retrying forever when retryDelay throws - by @dinwwwh in #2105 (6e2bf)
- Stop native fetch from throwing Illegal invocation in browsers - by @dinwwwh in #2112 (f75db)
- Stop WebSocket errors from crashing the process in RPCLink - by @dinwwwh in #2111 (2f110)
- Stop deduped calls from ignoring their own abort signal - by @dinwwwh in #2159 (f4e25)
- Send batched and deduped requests in their caller's async context - by @dinwwwh in #2160 (0d42e)
- Stop cancelled batched streams from running forever on the server - by @dinwwwh in #2161 (63644)
- cloudflare:
- contract:
- json-schema:
- json-schema, openapi:
- nest:
- node:
- Bound multipart padding, header size, and parameter parsing - by @dinwwwh in #2062 (4a1f0)
- Charge multipart part headers against tmp file upload limits - by @dinwwwh in #2067 (e9f8e)
- Stop 8.3 short names from bypassing static file dotfiles - by @dinwwwh in #2087 (1f431)
- Weaken ETag and drop Accept-Ranges on compressed batch responses - by @dinwwwh and Claude in #2149 (515ad)
- Enforce per-event size limits in event streams - by @dinwwwh in #2168 (98162)
- openapi:
- Omit null and undefined members in delimited-object query styles - by @dinwwwh in #2076 (dcf5f)
- Emit valid refs for schemas that recurse to their own root - by @dinwwwh in #2088 (297d9)
- Stop Swagger UI reference from unquoting strings inside the spec - by @dinwwwh in #2096 (c45a0)
- Ignore paramsStyles keys the matched route has no path param for - by @dinwwwh in #2100 (26b97)
- Stop JsonifiedValue from turning interface outputs into unknown - by @dinwwwh in #2109 (1d402)
- Reject dot-segment path params in OpenAPILink - by @dinwwwh in #2126 (b3540)
- opentelemetry:
- publisher:
- server:
- Return ORPCError message when the batch body fails to resolve - by @dinwwwh in #2063 (0e501)
- Match RPC requests to a trailing-slash prefix exactly - by @dinwwwh in #2068 (05424)
- Keep decorated middleware metadata through .use and .adaptInput - by @dinwwwh in #2071 (a523e)
- Apply the contract to routers implemented with .lazy() - by @dinwwwh in #2070 (8e9a4)
- Weaken ETag and drop Accept-Ranges on compressed responses - by @dinwwwh in #2094 (a8030)
- Abort batch sub-requests when the client disconnects - by @dinwwwh in #2092 (47bd7)
- Stop MessagePort arrays from bypassing prototype pollution protection - by @dinwwwh in #2107 (16370)
- Stop malformed WebSocket frames from crashing the process - by @dinwwwh in #2108 (dfa4e)
- Keep union and index-signature context types across .use() - by @dinwwwh in #2110 (eab53)
- server, client:
- server, contract:
- server, node:
- server,contract,ai-sdk:
- shared:
- swr:
- tanstack-query,pinia-colada:
- trpc:
- valibot:
- zod:
🏎 Performance
- cloudflare: Drop redundant id index from publisher resume storage - by @dinwwwh in #2166 (8d644)
- openapi: Only parse the query when decodeInput uses it - by @dinwwwh in #2139 (de7f5)