#19884fce28c6fbba41795b316becaf7d8cffa11fb521 Thanks @thekiwi! - Reduce route-typing type instantiations (~54% on TS6, ~48% on TS7 in a 100-route benchmark) by binding expensive sub-expressions once and sharing the input intersection / response-shape conditional.
Re-exporting zod's z as a pass-through let esbuild code-splitting resolve
import { z } from '@hono/zod-openapi' straight to zod and drop the edge to the
module that runs extendZodWithOpenApi(z), so schemas could be built before the
patch applied and .openapi() was undefined at runtime. Export z as an alias
declaration instead: it compiles to a binding local to the module, which keeps
that edge, while still carrying zod's type namespace so z.infer, z.ZodType
and the rest continue to work. Fixes #2051.
#19884fce28c6fbba41795b316becaf7d8cffa11fb521 Thanks @thekiwi! - Reduce route-typing type instantiations (~54% on TS6, ~48% on TS7 in a 100-route benchmark) by binding expensive sub-expressions once and sharing the input intersection / response-shape conditional.
Re-exporting zod's z as a pass-through let esbuild code-splitting resolve
import { z } from '@hono/zod-openapi' straight to zod and drop the edge to the
module that runs extendZodWithOpenApi(z), so schemas could be built before the
patch applied and .openapi() was undefined at runtime. Export z as an alias
declaration instead: it compiles to a binding local to the module, which keeps
that edge, while still carrying zod's type namespace so z.infer, z.ZodType
and the rest continue to work. Fixes #2051.
classifier: the classify v1 job methods (client.classifier.jobs.create, .list, .get, .getResults) are removed. The /api/v1/classifier/jobs* routes were unpublished from the API surface; use client.classify instead.
Features
api: map DELETE /api/v2/parse/{job_id} and GET /api/v2/pipelines into the SDKs (LI-9569) (0171901)
api: return what Parse latest resolves to on GET /api/v2/parse/versions (#25824) (bff8691)
#115019567367 - Declare dependencies used by the published devtools source and type declarations so they resolve with strict package managers. Keep runtime dependencies bundled in the compiled devtools.
Declare the React types used by React Query Devtools as a peer dependency, compatible with React 18 and 19.
#8418e561fa1 - deepEqual now takes its flags as positional arguments — deepEqual(a, b, partial?, explicitUndefined?) — instead of an options object. The router's hot callers (Link option stabilization and active-state checks, matchRoute) no longer allocate an options object per comparison, and the comparator reads two booleans instead of a polymorphic object. explicitUndefined replaces ignoreUndefined: false. deepEqual is an internal helper; it stays exported for compatibility of two-argument calls.
#8419a1c8d1a - resolvePath (internal helper) now takes positional arguments — resolvePath(base, to, trailingSlash?, cache?) — so buildLocation and matchRoute no longer allocate an options object per path resolution.
#8204cbbfbe3 - Stream large deferred SSR hydration payloads through a backpressure-aware router transport, fail known setup errors before response creation, and close cancelled or expired transforms safely.
Start now cancels discarded middleware and HEAD response bodies, including plain streams and derived branches.
Server-function raw streams share one ordered response. Arbitrary or sequential consumption can require potentially unbounded buffering of unread data on the client. Cancelling one raw stream discards it locally, while aborting the whole call cancels the response and server work. Consume streams concurrently, cancel unused streams promptly, or use separate calls when independent backpressure is required. A raw stream that exceeds its unread-byte limit now fails alone; sibling streams and the JSON result keep flowing.
The JSON wire shape of a RawStream server-function argument changed. Clients and servers must run matching versions for requests that pass a RawStream.
The frame-protocol constants (FRAME_TYPE_*, MAX_FRAME_PAYLOAD_SIZE, MAX_FRAMED_STREAMS) moved from the @tanstack/start-client-core root to the @tanstack/start-client-core/client-rpc subpath.
Router requests whose Accept header allows neither text/html nor */* now receive 406 Not Acceptable instead of 500.
Framework adapters share the body <Scripts> composition (getSsrBodyScriptParts, composeSsrBodyScripts) and the eager HTML response wrapper (renderSsrHtmlResponse) from @tanstack/router-core.
Solid SSR now emits one document type and renders late lazy errors through route boundaries. A Solid <Await> without a fallback no longer holds the streamed shell; it renders inside the nearest <Suspense> boundary like React and Vue, and now renders falsy resolved values.
Static server functions decode cached RawStream values with the client deserializer plugins.
SSR Query integrations now keep request cleanup and stream ownership aligned with the router lifecycle.
#84208e164d2 - useLinkProps no longer calls through an internal wrapper. The host element Link renders on is an @internal overload parameter that is stripped from the published declarations, so the public useLinkProps(options, forwardedRef?) signature is unchanged.
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Updates 38 dependencies across the repo to their latest versions, including major bumps for @types/node (^22 → ^26), typescript (^6 → ^7), and the vitest catalog entry (4.1.10 → 5.0.1). The PR is currently not mergeable and needs conflict resolution before review.
Migration
Verify builds and tests pass under TypeScript 7, Vitest 5, and the new @types/node major.
The vitest and vite-plus bumps propagate through the workspace catalog in pnpm-workspace.yaml, affecting all packages that reference it.