@tanstack/start-server-core
1.169.44 · 16 Oct 2026MIT7.2M / weekRepositoryHomepagenpmAtom feed
427 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
1.169.44
16 Oct 2026Render generated script preloads (
modulepreload, orpreload as="script"for IIFE output) withfetchPriority="low"and forward it into static Early Hints, so they no longer compete with render-blocking stylesheets, fonts and images.
Patch Changes
Render generated script preloads (
modulepreload, orpreload as="script"for IIFE output) withfetchPriority="low"and forward it into static Early Hints, so they no longer compete with render-blocking stylesheets, fonts and images.
1.169.43
14 Oct 2026Update
fetchdtsto^0.2.0. The typed request and response header helpers keep the same header names and value types.
1.169.42
12 Oct 2026Skip request middleware bookkeeping when no request middleware is configured, and stop copying serialization adapters when the router adds none.
Server route handlers and route middleware now receive the router's decoded pathname, the same one used for route matching. Characters that would change how the path is read, such as
%2F,%3F, and%23, stay encoded.Reuse the parsed request location during SSR instead of repeating input rewrites. Match server routes against the app router's parsed pathname while preserving encoded pathnames for server handlers and middleware.
Patch Changes
Skip request middleware bookkeeping when no request middleware is configured, and stop copying serialization adapters when the router adds none.
Server route handlers and route middleware now receive the router's decoded pathname, the same one used for route matching. Characters that would change how the path is read, such as
%2F,%3F, and%23, stay encoded.Reuse the parsed request location during SSR instead of repeating input rewrites. Match server routes against the app router's parsed pathname while preserving encoded pathnames for server handlers and middleware.
1.169.41
12 Oct 2026- removed
Remove the built-in
useSessionAPI. Applications choose a session library, such as iron-session, and save or destroy sessions explicitly before returning or redirecting. Connect a cookie adapter throughgetCookieandsetCookie, or append serialized cookies withappendResponseHeader('set-cookie', cookie). Existing session cookies require a deliberate migration or signing in again with a new cookie name.createServerEntrykeeps the complete callback, including custom error handling, inside the request context and converts errors that escape it. The built-in entry still converts errors automatically. RawcreateStartHandlerhandlers now rethrow the original error. For custom reporting, catch insidecreateServerEntry, then rethrow for default conversion or returnhandleStartError(error)to preserve response-helper status, headers, and cookies. Return an explicitResponsewhen choosing a custom error payload.Response helpers now apply consistently across server routes, SSR, server functions, redirects, errors, and middleware response replacements. Helper setters override returned values; cookie helpers preserve independent cookies and replace matching cookie identities. Use
appendResponseHeader('set-cookie', cookie)when adding a serialized cookie without replacing other cookies. Changed responses receive copied headers and reuse the body stream, so applications should inspect the response returned by Start rather than relying on mutation of the original response. Return 400 Bad Request for malformed percent-encoded request pathnames before running server entry callbacks. Preserve valid encoded paths and query handling.
Reduce request middleware overhead, reuse loaded entries and transport header requirements, and avoid unnecessary URL normalization for server functions. Preserve response helper writes made during body cancellation and SSR cleanup.
Avoid allocating absent middleware headers and reply context, and construct RPC redirects with their final response state. Preserve middleware accessor evaluation and the documented undefined value for absent
sendContext.Reduce synchronous server-function response overhead while preserving cancellation cleanup and middleware response mutations.
Patch Changes
Return 400 Bad Request for malformed percent-encoded request pathnames before running server entry callbacks. Preserve valid encoded paths and query handling.
Reduce request middleware overhead, reuse loaded entries and transport header requirements, and avoid unnecessary URL normalization for server functions. Preserve response helper writes made during body cancellation and SSR cleanup.
Avoid allocating absent middleware headers and reply context, and construct RPC redirects with their final response state. Preserve middleware accessor evaluation and the documented undefined value for absent
sendContext.Reduce synchronous server-function response overhead while preserving cancellation cleanup and middleware response mutations.
Keep streaming a page when request middleware returns a response that reads the page body, such as a copy made through a wrapped global
Response, a copy in Bun, or a body piped through a transform. Start now disposes a replaced page stream only when nothing reads it.transferResponseBodyOwnershipis removed: return the derived response directly.Let request middleware read the body of a
HEADresponse, and strip it when the response leaves the pipeline. Start no longer appliesContent-Encoding,Content-Length, or other framing headers set through response helpers to error bodies and serialized server-function replies that it builds itself. A response that middleware assigns toresult.responseis now disposed when the middleware returns another response.- removed
Remove the built-in
useSessionAPI. Applications choose a session library, such as iron-session, and save or destroy sessions explicitly before returning or redirecting. Connect a cookie adapter throughgetCookieandsetCookie, or append serialized cookies withappendResponseHeader('set-cookie', cookie). Existing session cookies require a deliberate migration or signing in again with a new cookie name.createServerEntrykeeps the complete callback, including custom error handling, inside the request context and converts errors that escape it. The built-in entry still converts errors automatically. RawcreateStartHandlerhandlers now rethrow the original error. For custom reporting, catch insidecreateServerEntry, then rethrow for default conversion or returnhandleStartError(error)to preserve response-helper status, headers, and cookies. Return an explicitResponsewhen choosing a custom error payload.Response helpers now apply consistently across server routes, SSR, server functions, redirects, errors, and middleware response replacements. Helper setters override returned values; cookie helpers preserve independent cookies and replace matching cookie identities. Use
appendResponseHeader('set-cookie', cookie)when adding a serialized cookie without replacing other cookies. Changed responses receive copied headers and reuse the body stream, so applications should inspect the response returned by Start rather than relying on mutation of the original response.
1.169.40
10 Oct 20261.169.39
30 Sep 2026Align server function request and response handling.
Patch Changes
Align server function request and response handling.
1.169.38
27 Sep 2026Update
serovalandseroval-pluginsfrom 1.6.2 to 1.6.7. This picks up the typed array length guard, themaxBase64LengthandcompactArrayBufferViewsoptions, and theisStreamexport.Apply route path parameter parsers, including parent-route parsers, before invoking server route handlers so runtime parameters agree with their inferred types.
Patch Changes
Update
serovalandseroval-pluginsfrom 1.6.2 to 1.6.7. This picks up the typed array length guard, themaxBase64LengthandcompactArrayBufferViewsoptions, and theisStreamexport.Apply route path parameter parsers, including parent-route parsers, before invoking server route handlers so runtime parameters agree with their inferred types.
1.169.37
16 Sep 20261.169.36
16 Sep 2026Stream 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
RawStreamserver-function argument changed. Clients and servers must run matching versions for requests that pass aRawStream.The frame-protocol constants (
FRAME_TYPE_*,MAX_FRAME_PAYLOAD_SIZE,MAX_FRAMED_STREAMS) moved from the@tanstack/start-client-coreroot to the@tanstack/start-client-core/client-rpcsubpath.Router requests whose
Acceptheader allows neithertext/htmlnor*/*now receive406 Not Acceptableinstead of500.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 afallbackno 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
RawStreamvalues with the client deserializer plugins.SSR Query integrations now keep request cleanup and stream ownership aligned with the router lifecycle.
Patch Changes
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
RawStreamserver-function argument changed. Clients and servers must run matching versions for requests that pass aRawStream.The frame-protocol constants (
FRAME_TYPE_*,MAX_FRAME_PAYLOAD_SIZE,MAX_FRAMED_STREAMS) moved from the@tanstack/start-client-coreroot to the@tanstack/start-client-core/client-rpcsubpath.Router requests whose
Acceptheader allows neithertext/htmlnor*/*now receive406 Not Acceptableinstead of500.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 afallbackno 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
RawStreamvalues with the client deserializer plugins.SSR Query integrations now keep request cleanup and stream ownership aligned with the router lifecycle.
1.169.35
13 Sep 2026Use lightweight request history for SSR and make server navigation a no-op. Use redirect() to issue HTTP redirects. Server hrefs use the same normalization as browser history to handle protocol-relative URLs and control characters.
Patch Changes
Use lightweight request history for SSR and make server navigation a no-op. Use redirect() to issue HTTP redirects. Server hrefs use the same normalization as browser history to handle protocol-relative URLs and control characters.
1.169.34
10 Sep 2026Fix
setResponseHeadersto iterateHeadersentries, replace existing values, and preserve separateSet-Cookievalues.
1.169.33
9 Sep 2026Validate navigation and redirect destinations, keep ambiguous relative URLs on the current origin, and constrain prerender requests and output paths. Prevent redirect headers from appearing in serialized server function response bodies.
Preserve native form HTTP redirects, route error handling and masks for document redirects, and per-navigation destinations for shared loader redirects. Avoid redundant origin parsing and reduce link styling and server-rendering work. Configured origins must already be normalized.
Keep blocked-link inactive props consistent during React hydration, honor explicit redirect Location headers before checking route options, and refresh Vue link state when destinations become internal. Reuse the protocol-relative URL check while parsing redirect schemes once.
Reduce React link bundle size by sharing pathname comparisons, state-prop selection, and element creation.
Share normalized pathname comparisons in Solid and Vue links to reduce bundle size.
Patch Changes
Validate navigation and redirect destinations, keep ambiguous relative URLs on the current origin, and constrain prerender requests and output paths. Prevent redirect headers from appearing in serialized server function response bodies.
Preserve native form HTTP redirects, route error handling and masks for document redirects, and per-navigation destinations for shared loader redirects. Avoid redundant origin parsing and reduce link styling and server-rendering work. Configured origins must already be normalized.
Keep blocked-link inactive props consistent during React hydration, honor explicit redirect Location headers before checking route options, and refresh Vue link state when destinations become internal. Reuse the protocol-relative URL check while parsing redirect schemes once.
Reduce React link bundle size by sharing pathname comparisons, state-prop selection, and element creation.
Share normalized pathname comparisons in Solid and Vue links to reduce bundle size.
1.169.22 – 1.169.3211 releases that only update dependencies@tanstack/router-core 1.171.28@tanstack/history 1.162.2@tanstack/start-client-core 1.170.28and 1 moreShow each
- 1.169.326 Sep 2026@tanstack/router-core 1.171.28@tanstack/history 1.162.2@tanstack/start-client-core 1.170.28and 1 more
- 1.169.3122 Aug 2026@tanstack/router-core 1.171.27@tanstack/start-client-core 1.170.27@tanstack/start-storage-context 1.167.29
- 1.169.3019 Aug 2026@tanstack/router-core 1.171.26@tanstack/start-client-core 1.170.26@tanstack/start-storage-context 1.167.28
- 1.169.2918 Aug 2026@tanstack/router-core 1.171.25@tanstack/start-client-core 1.170.25@tanstack/start-storage-context 1.167.27
- 1.169.2814 Aug 2026@tanstack/router-core 1.171.24@tanstack/start-client-core 1.170.24@tanstack/start-storage-context 1.167.26
- 1.169.2714 Aug 2026@tanstack/router-core 1.171.23@tanstack/start-client-core 1.170.23@tanstack/start-storage-context 1.167.25
- 1.169.2612 Aug 2026@tanstack/router-core 1.171.22@tanstack/start-client-core 1.170.22@tanstack/start-storage-context 1.167.24
- 1.169.259 Aug 2026@tanstack/router-core 1.171.21@tanstack/start-client-core 1.170.21@tanstack/start-storage-context 1.167.23
- 1.169.249 Aug 2026@tanstack/router-core 1.171.20@tanstack/start-client-core 1.170.20@tanstack/start-storage-context 1.167.22
- 1.169.237 Aug 2026@tanstack/start-client-core 1.170.19
- 1.169.227 Aug 2026@tanstack/router-core 1.171.19@tanstack/start-client-core 1.170.18@tanstack/start-storage-context 1.167.21
1.169.21
6 Aug 2026Preserve path params in their raw string form while matching routes so structured values returned by
params.parseproduce stable match IDs and do not reuse stale loader data.RouterCore.getMatchedRoutes()now returns[matchedRoutes, rawParams, foundRoute]instead of an object.
Patch Changes
Preserve path params in their raw string form while matching routes so structured values returned by
params.parseproduce stable match IDs and do not reuse stale loader data.RouterCore.getMatchedRoutes()now returns[matchedRoutes, rawParams, foundRoute]instead of an object.
1.169.20
5 Aug 2026Update Seroval dependencies to version 1.6.2.
Patch Changes
Update Seroval dependencies to version 1.6.2.
1.169.19
4 Aug 20261.169.18
3 Aug 2026Use focused server entrypoints for shared constants and handler helpers so build tooling and framework renderers do not traverse the full Start server barrel.
1.168.0 – 1.169.1723 releases without a noteShow each
- 1.169.1713 Jul 2026no note
- 1.169.161 Jul 2026no note
- 1.169.1516 Jun 2026no note
- 1.169.146 Jun 2026no note
- 1.169.136 Jun 2026no note
- 1.169.126 Jun 2026no note
- 1.169.115 Jun 2026no note
- 1.169.105 Jun 2026no note
- 1.169.92 Jun 2026no note
- 1.169.830 May 2026no note
- 1.169.730 May 2026no note
- 1.169.629 May 2026no note
- 1.169.528 May 2026no note
- 1.169.425 May 2026no note
- 1.169.324 May 2026no note
- 1.169.221 May 2026no note
- 1.169.120 May 2026no note
- 1.169.020 May 2026no note
- 1.168.417 May 2026no note
- 1.168.316 May 2026no note
- 1.168.216 May 2026no note
- 1.168.115 May 2026no note
- 1.168.015 May 2026no note