TanStack
OSS
router
Sign in / Sign up
Open main menu
router
Overview
Runs
Analytics
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Canceled
7114
b916a556 fix(router-core): treat null return from beforeLoad as no-op for route context When beforeLoad returns null, treat it the same as undefined (no-op) instead of storing it as __beforeLoadContext: null. This is consistent with how the context route option already handles null returns via ?? undefined, and prevents null from silently interfering with context accumulation. Closes #7110
12 days ago
by sleitor
s
Failed
7046
b355c52d fix(scroll-restoration): capture restoreKey at event time to fix throttle race condition When the onScroll throttle executed, it read router.state.location at execution time (up to 100ms after the scroll event fired). If the user scrolled and navigated within that 100ms window, the old page's scroll position was saved under the new page's cache key. Fix 1: Capture restoreKey eagerly at scroll-event time by separating the event listener from a dedicated throttled save function that receives the key as an argument. Fix 2: Clear any stale cache entry for the destination key before calling restoreScroll() in the onRendered subscriber, guarding against browser-generated scroll events during DOM transitions. Fixes #7040
24 days ago
by sleitor
s
Succeeded
6876
b44d9fb4 fix(examples): remove stale delay slider reference from with-trpc example
1 month ago
by sleitor
s
Succeeded
fix-6806
2217f7c3 fix(router-core): clear _nonReactive.displayPendingPromise on pending resolution
2 months ago
by sleitor
s
Succeeded
6814
f1f10f7e fix(router-core): clear _nonReactive.displayPendingPromise on pending resolution
2 months ago
by sleitor
s
Succeeded
fix-6806
2217f7c3 fix(router-core): replace fatal invariant with null-check in SPA mode hydration When hydrating a 404/error page in SPA mode, matches[1] can be undefined (only the root match exists). The previous code used a fatal invariant that threw an uncaught error, causing a white screen of death. Replace with a graceful null-check and console.warn, matching the intent of the ESM build behaviour described in #6806. Fixes #6806
2 months ago
by sleitor
s
Canceled
6814
8731f23c fix(router-core): replace fatal invariant with null-check in SPA mode hydration When hydrating a 404/error page in SPA mode, matches[1] can be undefined (only the root match exists). The previous code used a fatal invariant that threw an uncaught error, causing a white screen of death. Replace with a graceful null-check and console.warn, matching the intent of the ESM build behaviour described in #6806. Fixes #6806
2 months ago
by sleitor
s
Succeeded
fix-6801
1acc8eaf docs(router): add How To section to docs navigation sidebar The how-to/ directory contains 20+ step-by-step guides covering authentication, search params, testing, SSR, UI integrations, and more, but none of them were linked from the docs navigation config. Add a new 'How To' section to docs/router/config.json between 'Guides' and 'API' with entries for all existing how-to guides. Fixes #6801
2 months ago
by sleitor
s
Succeeded
6804
fe88fa68 docs(router): add How To section to docs navigation sidebar The how-to/ directory contains 20+ step-by-step guides covering authentication, search params, testing, SSR, UI integrations, and more, but none of them were linked from the docs navigation config. Add a new 'How To' section to docs/router/config.json between 'Guides' and 'API' with entries for all existing how-to guides. Fixes #6801
2 months ago
by sleitor
s
Succeeded
main
442ada1f fix(router-core): use routeId for lifecycle hooks to fix onStay when loaderDeps change (#6769)
2 months ago
by sleitor
s
Succeeded
6769
e485707d fix: remove unused enteringMatches and stayingMatches variables After splitting match identity into cache-level (match.id) and lifecycle-hook-level (match.routeId), enteringMatches and stayingMatches became unused. Only exitingMatches is still needed for cachedMatches. Addresses review comment from @Sheraff
2 months ago
by sleitor
s
Succeeded
fix/router-lifecycle-use-routeid
d958ef18 fix: remove unused enteringMatches and stayingMatches variables After splitting match identity into cache-level (match.id) and lifecycle-hook-level (match.routeId), enteringMatches and stayingMatches became unused. Only exitingMatches is still needed for cachedMatches. Addresses review comment from @Sheraff
2 months ago
by sleitor
s
Succeeded
fix/router-lifecycle-use-routeid
67b717a2 test(router-core): consolidate /foo loaderDeps router setup into createFooRouter helper
2 months ago
by sleitor
s
Canceled
6769
40e71762 test(router-core): consolidate /foo loaderDeps router setup into createFooRouter helper
2 months ago
by sleitor
s
Succeeded
fix/router-lifecycle-use-routeid
e17d44aa fix(router-core): separate cache identity (match.id) from lifecycle hook identity (routeId) Cache entries use match.id (routeId + params + loaderDeps) so navigating between different params/deps correctly caches the previous match. Lifecycle hooks (onEnter/ onStay/onLeave) use routeId to track route *presence* in the matched tree — so navigating /posts/123 → /posts/456 fires onStay for /posts/$id, not onLeave+onEnter. Addresses caching regression spotted by @Sheraff in PR #6772 test.
2 months ago
by sleitor
s
Succeeded
6769
c8be9de0 fix(router-core): separate cache identity (match.id) from lifecycle hook identity (routeId) Cache entries use match.id (routeId + params + loaderDeps) so navigating between different params/deps correctly caches the previous match. Lifecycle hooks (onEnter/ onStay/onLeave) use routeId to track route *presence* in the matched tree — so navigating /posts/123 → /posts/456 fires onStay for /posts/$id, not onLeave+onEnter. Addresses caching regression spotted by @Sheraff in PR #6772 test.
2 months ago
by sleitor
s
Succeeded
fix/router-lifecycle-use-routeid
f5e92d7e fix(router-core): use routeId for lifecycle hooks to fix onStay with loaderDeps When loaderDeps change (e.g. from search param updates), the match.id changes because it includes the loaderDepsHash. This caused the lifecycle hooks (onLeave/onEnter/onStay) to compute exiting/entering/staying matches using match.id, which treated a loaderDeps change on the same route as 'leave + re-enter' instead of 'stay'. Fix: use match.routeId (consistent with loader's cause param logic) when computing exitingMatches, enteringMatches, and stayingMatches so that only an actual route change triggers onLeave/onEnter. Fixes #6765
2 months ago
by sleitor
s
Canceled
6769
a8f88f2e fix(router-core): use routeId for lifecycle hooks to fix onStay with loaderDeps When loaderDeps change (e.g. from search param updates), the match.id changes because it includes the loaderDepsHash. This caused the lifecycle hooks (onLeave/onEnter/onStay) to compute exiting/entering/staying matches using match.id, which treated a loaderDeps change on the same route as 'leave + re-enter' instead of 'stay'. Fix: use match.routeId (consistent with loader's cause param logic) when computing exitingMatches, enteringMatches, and stayingMatches so that only an actual route change triggers onLeave/onEnter. Fixes #6765
2 months ago
by sleitor
s
Previous page
Previous
Next
Next page