Skip to content

Update tanstack-router monorepo - #3516

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/tanstack-router-monorepo
Open

Update tanstack-router monorepo#3516
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/tanstack-router-monorepo

Conversation

@renovate

@renovate renovate Bot commented May 5, 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
@tanstack/react-router (source) 1.169.11.170.36 age confidence
@tanstack/react-router-devtools (source) 1.166.131.167.2 age confidence
@tanstack/react-router-ssr-query (source) 1.166.121.167.2 age confidence
@tanstack/react-start (source) 1.167.621.168.53 age confidence
@tanstack/zod-adapter (source) 1.166.91.167.0 age confidence

Release Notes

TanStack/router (@​tanstack/react-router)

v1.170.36

Compare Source

Patch Changes
  • #​8390 b747fb8 - Keep the Link location cache out of server bundles: buildLocation only creates, reads and writes it when isServer is false. Render React Links on the server without the extra prop copies and the forwarded-ref hook. Link SSR rendering is 20-40% faster in the Link benchmarks and the React Start SSR request loop about 7% faster.

    React activeProps and inactiveProps now follow one precedence rule on every link, including links whose destination is blocked for using a disallowed scheme: state props override element props, ref and event handlers, while href, disabled and target stay controlled by the router. Previously a blocked link ignored a ref or handler from its inactive props.

    React Link and useLinkProps split router options from element props with one key set on the client and the server. Element props pass through as given: external links forward them verbatim, falsy values included, and useLinkProps now returns children for router-controlled links as it already did for external ones.

  • #​8324 6387d58 - Reuse hydration snapshot getters to avoid unnecessary store-instance effect updates when Links and other hydration-aware components rerender.

  • #​8318 9b2adaf - Allow active and inactive Link props to override base element props in React and Solid while preserving class/style merging. Keep React's href, target, and disabled values controlled by routing options. Preserve Vue object and nested-array class bindings, including reactive updates and server rendering, without mutating cached bindings during VNode normalization.

  • #​8327 634da91 - Make pathParamsAllowedCharacters initialization-only. Configure it when creating the router; changing allowed characters requires a new router instance. Remove decoder-update bookkeeping and decoder-change checks from route-owned path caches.

  • #​8370 e9396c9 - Stop exporting the internal isPlainObject and isPlainArray helpers.

  • #​8324 6387d58 - Avoid a redundant prop copy when rendering native Links while preserving custom-component props and the public hook result.

  • #​8252 7e349c3 - Reduce the bundle cost of shared Link pathname interpolation while preserving its rendering performance. Reuse one interpolation pass for pathname and optional metadata, keep the bounded cache on the router, and simplify React Link active-state and prop merging.

  • #​8370 e9396c9 - Reuse built locations for Links whose destination does not depend on the current location. buildLocation keeps the result per options object when the build never read the current location, and the React Link passes one stable options object per instance, so navigations resolve unchanged Links with a lookup instead of a full build. The per-route pathname interpolation cache this replaces is removed. Link params, search and activeOptions are compared by value on render, so inline object literals with unchanged contents keep reusing the Link's location. Pass a new object to change a destination; like any other React prop, an object mutated in place is not re-read.

  • Updated dependencies [d76a332, b747fb8, 6cfb1e8, 700a714, 700a714, 8fff7fa, f021f6d, ae68535, 7e349c3, 873c830, 7e349c3, 634da91, e9396c9, 634da91, f151ab0, bc57fa3, 9872d2a, d76a332, 634da91, 634da91, 7e349c3, 9448caa, e9396c9, 700a714, 634da91, 634da91]:

v1.170.35

Compare Source

Patch Changes
  • #​7824 8c43c71 - Upgrade TanStack Store to 0.11 and migrate router subscriptions to useSelector, preserving selector comparisons and Vue subscription cleanup.

v1.170.34

Compare Source

Patch Changes
  • #​8279 aee42c6 - Avoid allocating event-handler arrays and wrapper functions for links without user-supplied event handlers.

  • #​8308 9c1871c - 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.

  • #​8311 9aec5a7 - React Links resolve state props without temporary class-name arrays or unnecessary style copies.

  • Updated dependencies [f9836f1, 9c1871c, 9871c06, 0654c0a]:

v1.170.33

Compare Source

Patch Changes
  • #​8165 2f20c00 - Exclude structural descendants below error and not-found boundaries from route lifecycle callbacks. Preserve lifecycle membership through invalidation, hydration, background reloads, and superseded navigation publication.

  • #​8209 28a5e45 - Preserve falsy thrown values in React and Vue error boundaries. Type React and Vue boundary error components and onCatch callbacks as unknown. Solid boundary errors remain typed as Error; SSR now wraps non-Error loader errors to match Solid’s native boundary behavior, preserving the original value in cause. Router state and loader onError values are unchanged.

    When upgrading React or Vue, narrow boundary errors (for example, with error instanceof Error) before reading message or stack. ErrorComponentProps<TError> remains available for values narrowed to a specific error type. Route onError types are unchanged.

  • #​8161 f0b5eda - Retain successful not-found matches as terminal shared boundaries during client navigation, preserving route context while the destination loads.

  • #​8251 0497cae - Use URL.canParse for absolute URL checks in links, navigation, redirects, and build configuration. Preserve a URL constructor fallback for older browsers.

  • #​8169 0caf6b9 - Fix route-scoped useMatch, useSearch, and useParams APIs to forward the shouldThrow option and preserve optional return types when shouldThrow: false.

  • #​8257 cf166d1 - Fix repeated innerHTML writes for unchanged styles and data scripts during React re-renders. This prevents unnecessary CSS parsing and Trusted Types errors during client navigation.

  • Updated dependencies [edf0e16, 2f20c00, 28a5e45, 08eff50, 216c0c4, 2f91503, f0b5eda, 50eafca, 0497cae, ee28348, 9035abc, c18e690]:

v1.170.32

Compare Source

Patch Changes

v1.170.31

Compare Source

Patch Changes

v1.170.30

Compare Source

Patch Changes

v1.170.29

Compare Source

Patch Changes

v1.170.28

Compare Source

Patch Changes
  • #​8055 0c25a7b - Avoid wrapping root components that may render the HTML document in a Suspense boundary during SSR and hydration.

  • #​8054 31882c7 - Reuse resolved lazy route components when revisiting code-split routes, preventing unnecessary pending UI.

  • Updated dependencies [31882c7]:

v1.170.27

Compare Source

Patch Changes

v1.170.26

Compare Source

Patch Changes
  • #​8045 f500760 - Warn when an Outlet is rendered inside a pending, error, or not-found component.

  • #​8043 1aafca9 - remove the undocumented Link isTransitioning state and data-transitioning attribute

  • #​8044 aa10b65 - Apply preloadDelay to viewport link preloading and cancel pending preloads when links leave the viewport.

  • Updated dependencies [7e93431]:

v1.170.25

Compare Source

Patch Changes

v1.170.24

Compare Source

Patch Changes

v1.170.23

Compare Source

Patch Changes
  • #​7952 95dec51 - bail out of Link re-renders when the resolved href and active state are unchanged

v1.170.22

Compare Source

Patch Changes

v1.170.21

Compare Source

Patch Changes
  • #​7961 697ebb6 - Prevent a blank frame before zero-delay initial pending UI by using a
    component-scoped React transition for match publication. Pending timing,
    boundary selection, and rendered matches continue to come from the router
    core.

  • #​7970 2435885 - createFileRoute does not rely on FileRoute class

  • #​7971 86bf510 - clean intersection observer options in link component

  • #​7967 6aefb33 - Preserve path params in their raw string form while matching routes so structured values returned by params.parse produce stable match IDs and do not reuse stale loader data.

    RouterCore.getMatchedRoutes() now returns [matchedRoutes, rawParams, foundRoute] instead of an object.

  • Updated dependencies [84db4a8, 9cac62a, 6aefb33]:

v1.170.20

Compare Source

Patch Changes

v1.170.19

Compare Source

Patch Changes
  • #​7805 45c4ad8 - Rewrite match loading around a lane-based scheduler that tracks each navigation, preload, and background reload as an ordered unit of work. This fixes pending/redirect/retry state leaking between overlapping navigations, restores correct SSR status codes for redirects, errors, and not-found responses, and closes hydration gaps where the client re-ran work the server had already completed.

    • Invalidation now retires matching active preloads so older speculative loader results cannot become fresh cache data after invalidation.
    • Route headers() now only runs on the server, matching the documented behavior — it is no longer invoked during client-side asset projection.
    • The documented default gcTime and preloadGcTime now match the existing runtime default of 5 minutes (300_000).

    Removed / changed exported internals

    • RouterState no longer includes loadedAt, isTransitioning, statusCode, or redirect. Use match.updatedAt in place of loadedAt; subscribe to router.state.status / router.state.isLoading in place of isTransitioning; server response status and redirect handling are now internal to the server loader and are no longer exposed on router.state.
    • RouteMatch.fetchCount has been removed, with no replacement — it was purely informational.
    • RouteMatch.status no longer includes 'redirected' (it remains 'pending' | 'success' | 'error' | 'notFound') — redirected matches are dropped from the match list instead of being rendered.
    • RouteMatch.globalNotFound has been renamed and privatized to the internal _notFound field. Use match.status === 'notFound' instead.
    • The exported React, Solid, and Vue Match components now accept routeId instead of matchId.
    • The exported RouterStores adapter contract now uses route-keyed presentation stores: matchesId is replaced by ids, matchStores by byRoute, and getRouteMatchStore() by getMatchStore(). The separate loadedAt, isLoading, isTransitioning, statusCode, and redirect stores have been removed, along with the pending/cache stores and their setters. StoreConfig.init has also been removed. Read application-facing state from router.state; preload and cache coordination are now internal.
    • Removed RouterCore members getMatch(), updateMatch(), cancelMatch(), and cancelMatches() — read matches from router.state.matches (e.g. router.state.matches.find((m) => m.id === id)); there is no replacement for mutating or cancelling an individual in-flight match from outside the router.
    • Removed RouterCore.hasNotFoundMatch() — use router.state.matches.some((m) => m.status === 'notFound').
    • Removed RouterCore.looseRoutesById — use routesById.
    • Removed RouterCore.isPrerendering(), RouterCore.isViewTransitionTypesSupported, and RouterCore.viewTransitionPromise, with no replacement.
    • Removed RouterCore.getParsedLocationHref() and RouterCore.clearExpiredCache(), with no replacement — expired cache entries are now reconciled automatically as part of match commit.
    • Removed RouterCore.latestLoadPromise and RouterCore.beforeLoad(), with no replacement.
    • RouterCore.commitLocationPromise and RouterCore.pendingBuiltLocation have been replaced by the internal _commitPromise and _pendingLocation fields.
    • Removed the exported GetMatchFn and UpdateMatchFn types, along with the methods they typed.
    • Removed the standalone getMatchedRoutes() export from @tanstack/router-core — use the router.getMatchedRoutes() instance method instead.
    • RouterCore.loadRouteChunk() no longer accepts an array of component types as its second argument. One-argument usage is unchanged; the optional second argument is now 'errorComponent', 'notFoundComponent', or false for internal boundary loading.
    • Removed Redirect.redirectHandled, which was internal redirect bookkeeping.
    • MatchRoutesOpts.preload and MatchRoutesOpts.dest have been removed.
    • StartTransitionFn is now (fn, expected) => Promise<boolean> (previously (fn) => void). This only affects custom framework adapters that implement startTransition.
  • Updated dependencies [45c4ad8]:

v1.170.18

Compare Source

Patch Changes

v1.170.17

Compare Source

Patch Changes

v1.170.16

Compare Source

Patch Changes
  • #​7595 52db703 - Perf improvement of useMatch and derived hooks when navigating away from previous match

  • #​7575 4a93cff - useMatches can skip useRef for structural sharing during SSR

  • #​7600 f046b06 - Reduce Match rerenders during navigations (PR #​7596)

  • #​7577 689d88e - Reduce bundle size by sharing structuralSharing selector logic

  • #​7627 689c5ab - Silence AbortError in renderRouterToStream, this is normal operation

v1.170.15

Compare Source

Patch Changes

v1.170.14

Compare Source

Patch Changes

v1.170.13

Compare Source

Patch Changes

v1.170.12

Compare Source

Patch Changes

v1.170.11

Compare Source

Patch Changes

v1.170.10

Compare Source

Patch Changes

v1.170.9

Compare Source

Patch Changes

v1.170.8

Compare Source

Patch Changes
  • Add support for Rsbuild client output formats, including module output by default and IIFE output for classic script environments. (#​7477)

    Client entry scripts and preloads are now represented as root route manifest assets, script preloads follow the manifest script format, and script asset cross-origin configuration uses the script key. The transformAssets script callback context now exposes only kind: 'script' and url, keeping script format handling internal to manifest rendering.

  • Updated dependencies [51a97a1]:

v1.170.7

Compare Source

Patch Changes

v1.170.6

Compare Source

Patch Changes

v1.170.5

Compare Source

Patch Changes

v1.170.4

Compare Source

Patch Changes

v1.170.3

Compare Source

Patch Changes

v1.170.2

Compare Source

Patch Changes

v1.170.1

Compare Source

Patch Changes

v1.170.0

Compare Source

Minor Changes
  • Clean minor bump, fresh start (#​7395)
Patch Changes

v1.169.2

Compare Source

Patch Changes
TanStack/router (@​tanstack/react-router-devtools)

v1.167.2

Compare Source

Patch Changes

v1.167.1

Compare Source

Patch Changes

v1.167.0

Compare Source

Minor Changes
  • Clean minor bump, fresh start (#​7395)
Patch Changes
TanStack/router (@​tanstack/react-router-ssr-query)

v1.167.2

Compare Source

Patch Changes

v1.167.1

Compare Source

Patch Changes

v1.167.0

Compare Source

Minor Changes
  • Clean minor bump, fresh start (#​7395)
Patch Changes
TanStack/router (@​tanstack/react-start)

v1.168.53

Compare Source

Patch Changes

v1.168.52

Compare Source

Patch Changes

Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)

🚦 Automerge: Enabled.

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

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • 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 added the renovate label May 5, 2026
@changeset-bot

changeset-bot Bot commented May 5, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 7e9c9c1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch from 5c1d463 to 96a0199 Compare May 5, 2026 22:29
@renovate renovate Bot changed the title Update dependency @tanstack/react-start to v1.167.63 Update tanstack-router monorepo May 5, 2026
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 4 times, most recently from 20d0823 to 17fd568 Compare May 12, 2026 02:07
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 12 times, most recently from 81eb138 to d76e395 Compare May 21, 2026 22:09
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 8 times, most recently from f9c8039 to afb526c Compare May 30, 2026 14:10
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 2 times, most recently from 4b1c8a8 to 4a8aa2e Compare June 2, 2026 21:05
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 2 times, most recently from 8c72f2e to cc0406e Compare July 6, 2026 00:47
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 6 times, most recently from d11a383 to 4ed7c47 Compare July 19, 2026 19:06
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 2 times, most recently from e5e8e32 to ba75724 Compare July 27, 2026 00:35
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 6 times, most recently from 8101167 to 7c2450f Compare August 5, 2026 20:04
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 7 times, most recently from 03ea47e to d34b90b Compare August 12, 2026 09:49
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 4 times, most recently from 26412d9 to 31a64ba Compare August 19, 2026 20:11
@renovate
renovate Bot force-pushed the renovate/tanstack-router-monorepo branch 2 times, most recently from 5a0bdbc to f366ce6 Compare August 24, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants