{ }
Resource profile / Official TanStack Router and Query Integration Guide
About this skill

Workflow & requirements

Independent BB Skills packaging and recorded scope (2026-10-09)

This official Router–Query composition skill is retained from fixed TanStack/router repository snapshot 663282b0ebbc494aee3595ed95867ee29d01938e, not a versioned skill release. The original frontmatter, code and instructions are preserved under repository-context. The primary copy below changes only four local Markdown link targets and adds this separately identified scope note. All 121 original mirrored files retain their Git blob and SHA-256 identities, and the complete upstream MIT notice credits 2021-present Tanner Linsley. This is selected context, not the full monorepo; 30 literal relative targets in expanded context were absent from the pinned Git tree (40 occurrences), which does not establish that their public website routes return 404. Primary and required entrypoint links have no missing targets.

The skill declares library_version 1.166.2. Separately locked runtime identities are React Router 1.170.41, Router Core 1.171.34, SSR Query integration 1.167.3, Query/React Query 5.104.1, React/React DOM 19.3.0, Node 24.10.0 and esbuild 0.28.2. Fourteen original documentation code blocks are fingerprinted. Three whole contrast blocks fail parsing from duplicate declarations; the labelled loader comparison parses but exports no loader. Unchanged alternatives are called with explicitly independent imports, route-tree inputs, query options, components and object wrappers. The original bash install command is source data and is not executed. Transpilation is not full TypeScript checking.

The independent fixture records 49 main observations and 8 native preloader observations: static cache hits, distinct observer updates, dynamic keys, synthetic HTTP status handling, fresh and shared clients, manual hydration, controlled loader scheduling, real React Router server rendering, initial query dehydration, resolved-query stream delivery and native cleanup. A JSON body with synthetic HTTP status 503 is treated as success by the unchanged queryFn, which does not check response.ok. The stream did not emit the controlled query while it remained pending; after resolution it emitted the query data and native render completion closed the stream. The Node preloader uses the development export condition, memory history, explicit isServer:false and a synthetic origin; it is not a browser. Its independent query route separates Router's loader cache from Query freshness. Initial failed fixture expectations and their corrections are summarized in fixture-evidence.json, without rewriting original code.

Only synthetic inputs are used. JavaScript HTTP/socket APIs are denied during execution and recorded zero connection attempts; this is not an OS audit. Locked dependency installation separately contacts the free npm registry. No real account, credential, paid API or production database is used. No complete AI-client execution, browser navigation/hover, real authentication, concurrent request test, HTTP streaming transport, browser hydration, retry/reset interaction, redirects or performance benchmark follows. runtime_tested remains false for the complete skill. Inspect examples/README.md, the evidence and your complete matching project before adoption. Installed dependencies, binaries and generated outputs are excluded.

TanStack Router + TanStack Query Integration

This skill requires familiarity with both TanStack Router and TanStack Query. Read router-core and react-router first.

This skill covers coordinating TanStack Query as an external data cache with TanStack Router's loader system. The router acts as a coordinator — it triggers data fetching during navigation, while Query manages caching, background refetching, and data lifecycle.

CRITICAL: Set defaultPreloadStaleTime: 0 when using TanStack Query. Without this, Router's built-in preload cache (30s default) prevents Query from controlling data freshness.

CRITICAL: For SSR, create QueryClient inside the createRouter factory function. A module-level singleton leaks data between server requests.

Setup: QueryClient in Router Context

Basic (Client-Only)

// src/main.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import {
  RouterProvider,
  createRouter,
  createRootRouteWithContext,
} from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

// Root route declares that router context includes queryClient
// (root route file creates it with createRootRouteWithContext — see below)

const queryClient = new QueryClient()

const router = createRouter({
  routeTree,
  defaultPreloadStaleTime: 0, // Let Query manage caching
  context: { queryClient },
  Wrap: ({ children }) => (
    <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
  ),
})

declare module '@tanstack/react-router' {
  interface Register {
    router: typeof router
  }
}

function App() {
  return <RouterProvider router={router} />
}

Root Route with Context

// src/routes/__root.tsx
import { createRootRouteWithContext, Outlet } from '@tanstack/react-router'
import type { QueryClient } from '@tanstack/react-query'

// Double parentheses: factory pattern
export const Route = createRootRouteWithContext<{
  queryClient: QueryClient
}>()({
  component: () => <Outlet />,
})

SSR-Safe Setup

// src/router.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

export function createAppRouter() {
  // Fresh QueryClient per request — prevents data leaking between SSR requests
  const queryClient = new QueryClient()

  return createRouter({
    routeTree,
    defaultPreloadStaleTime: 0,
    context: { queryClient },
    Wrap: ({ children }) => (
      <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
    ),
  })
}

declare module '@tanstack/react-router' {
  interface Register {
    router: ReturnType<typeof createAppRouter>
  }
}

SSR with setupRouterSsrQueryIntegration

For automatic SSR dehydration/hydration and streaming:

npm install @tanstack/react-router-ssr-query
// src/router.tsx
import { QueryClient } from '@tanstack/react-query'
import { createRouter } from '@tanstack/react-router'
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
import { routeTree } from './routeTree.gen'

export function createAppRouter() {
  const queryClient = new QueryClient()

  const router = createRouter({
    routeTree,
    defaultPreloadStaleTime: 0,
    context: { queryClient },
  })

  setupRouterSsrQueryIntegration({
    router,
    queryClient,
    // wrapQueryClient: true (default — wraps with QueryClientProvider)
    // handleRedirects: true (default — handles redirect() from queries)
  })

  return router
}

The integration:

  • Dehydrates query state on the server and hydrates on the client automatically
  • Streams queries that resolve during server render to the client
  • Handles redirect() thrown from queries/mutations

Manual SSR Dehydration/Hydration (Without SSR Query Package)

// src/router.tsx
import { QueryClient, dehydrate, hydrate } from '@tanstack/react-query'
import { QueryClientProvider } from '@tanstack/react-query'
import { createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

export function createAppRouter() {
  const queryClient = new QueryClient()

  return createRouter({
    routeTree,
    defaultPreloadStaleTime: 0,
    context: { queryClient },
    dehydrate: () => ({
      queryClientState: dehydrate(queryClient),
    }),
    hydrate: (dehydrated) => {
      hydrate(queryClient, dehydrated.queryClientState)
    },
    Wrap: ({ children }) => (
      <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
    ),
  })
}

Core Pattern: Static query in Loader + useSuspenseQuery in Component

This is the recommended pattern. The loader queries data before render (no loading flash), using staleTime: 'static' to reuse cached data without a stale refetch. The component subscribes to the cache for updates.

// src/routes/posts.tsx
import { queryOptions, useSuspenseQuery } from '@tanstack/react-query'
import { createFileRoute } from '@tanstack/react-router'

interface Post {
  id: string
  title: string
}

const postsQueryOptions = queryOptions({
  queryKey: ['posts'],
  queryFn: (): Promise<Array<Post>> =>
    fetch('/api/posts').then((r) => r.json()),
})

export const Route = createFileRoute('/posts')({
  loader: ({ context }) => {
    // query returns cached data when available and fetches when it is missing
    // Keep this query static so a stale refetch does not block navigation
    return context.queryClient.query({
      ...postsQueryOptions,
      staleTime: 'static',
    })
  },
  component: PostsPage,
})

function PostsPage() {
  // useSuspenseQuery subscribes to cache — gets background updates
  const { data: posts } = useSuspenseQuery(postsQueryOptions)

  return (
    <ul>
      {posts.map((post) => (
        <li key={post.id}>{post.title}</li>
      ))}
    </ul>
  )
}

With Dynamic Params

// src/routes/posts/$postId.tsx
import { queryOptions, useSuspenseQuery } from '@tanstack/react-query'
import { createFileRoute } from '@tanstack/react-router'

interface Post {
  id: string
  title: string
  content: string
}

const postQueryOptions = (postId: string) =>
  queryOptions({
    queryKey: ['posts', postId],
    queryFn: () => fetch(`/api/posts/${postId}`).then((r) => r.json()),
  })

export const Route = createFileRoute('/posts/$postId')({
  loader: ({ context, params }) => {
    return context.queryClient.query({
      ...postQueryOptions(params.postId),
      staleTime: 'static',
    })
  },
  component: PostPage,
})

function PostPage() {
  const { postId } = Route.useParams()
  const { data: post } = useSuspenseQuery(postQueryOptions(postId))

  return <article>{post.title}</article>
}

Streaming Pattern: Fire-and-Forget query (Not Awaited)

For non-critical data, start a query without blocking navigation. Handle its rejection with noop so a background failure does not become an unhandled rejection:

import { noop, useQuery, useSuspenseQuery } from '@tanstack/react-query'

export const Route = createFileRoute('/dashboard')({
  loader: ({ context }) => {
    // Await critical data
    const user = context.queryClient.query({
      ...userQueryOptions,
      staleTime: 'static',
    })

    // Start non-critical query without awaiting — streams during SSR
    void context.queryClient.query({ ...analyticsQueryOptions }).catch(noop)

    return user
  },
  component: Dashboard,
})

function Dashboard() {
  // Critical: suspense (data ready immediately)
  const { data: user } = useSuspenseQuery(userQueryOptions)

  // Non-critical: regular query (shows loading state)
  const { data: analytics, isLoading } = useQuery(analyticsQueryOptions)

  return (
    <div>
      <h1>Welcome {user.name}</h1>
      {isLoading ? <Skeleton /> : <AnalyticsChart data={analytics} />}
    </div>
  )
}

Error Handling with useQueryErrorResetBoundary

import { useEffect } from 'react'
import { useQueryErrorResetBoundary } from '@tanstack/react-query'
import { useRouter } from '@tanstack/react-router'

export const Route = createFileRoute('/posts')({
  loader: ({ context }) =>
    context.queryClient.query({
      ...postsQueryOptions,
      staleTime: 'static',
    }),
  errorComponent: PostsErrorComponent,
  component: PostsPage,
})

function PostsErrorComponent({
  error,
  reset,
}: {
  error: unknown
  reset: () => void
}) {
  const router = useRouter()
  const queryErrorResetBoundary = useQueryErrorResetBoundary()

  useEffect(() => {
    queryErrorResetBoundary.reset()
  }, [queryErrorResetBoundary])

  return (
    <div>
      <p>{error instanceof Error ? error.message : String(error)}</p>
      <button onClick={() => router.invalidate()}>Retry</button>
    </div>
  )
}

Common Mistakes

1. HIGH: Not setting defaultPreloadStaleTime to 0

Router has a built-in preload cache (default staleTime for preloads is 30s). This prevents Query from controlling data freshness during preloading.

// WRONG — Router's preload cache serves stale data, Query never refetches
const router = createRouter({ routeTree })

// CORRECT — disable Router's preload cache, let Query manage freshness
const router = createRouter({
  routeTree,
  defaultPreloadStaleTime: 0,
})

2. HIGH: Creating QueryClient outside createRouter for SSR

A module-level singleton QueryClient is shared across all server requests, leaking user data between requests.

// WRONG — shared across SSR requests
const queryClient = new QueryClient()
export function createAppRouter() {
  return createRouter({
    routeTree,
    context: { queryClient },
  })
}

// CORRECT — new QueryClient per createAppRouter call
export function createAppRouter() {
  const queryClient = new QueryClient()
  return createRouter({
    routeTree,
    context: { queryClient },
  })
}

3. MEDIUM: Awaiting a fire-and-forget query in a loader blocks rendering

A query used for streaming should start in the background and handle errors with catch(noop). Awaiting it blocks the navigation transition until the data resolves, defeating the purpose of streaming.

import { noop } from '@tanstack/react-query'

// WRONG — blocks navigation, no streaming benefit
loader: async ({ context }) => {
  await context.queryClient.query({ ...analyticsQueryOptions }).catch(noop)
}

// CORRECT — fire and forget for streaming, with handled rejection
loader: ({ context }) => {
  void context.queryClient.query({ ...analyticsQueryOptions }).catch(noop)
}

// If you need to block (critical data), use a static query instead:
loader: ({ context }) => {
  return context.queryClient.query({
    ...criticalQueryOptions,
    staleTime: 'static',
  })
}

4. HIGH: Missing double parentheses on createRootRouteWithContext

createRootRouteWithContext<Type>() is a factory — it returns a function. The second call passes route options.

// WRONG — passing options to the factory, not the returned function
const rootRoute = createRootRouteWithContext<{ queryClient: QueryClient }>({
  component: RootComponent,
})

// CORRECT — double call: factory()({options})
const rootRoute = createRootRouteWithContext<{ queryClient: QueryClient }>()({
  component: RootComponent,
})

Tension: Built-In SWR Cache vs External Cache

TanStack Router has its own SWR cache (staleTime, gcTime, defaultPreloadStaleTime). When using Query as an external cache:

  • Set defaultPreloadStaleTime: 0 to prevent Router's cache from short-circuiting Query's freshness logic
  • Router's staleTime/gcTime still apply to the loader return value. For pure Query patterns, return nothing from the loader (just a static query for the side effect) and read data exclusively from useSuspenseQuery
  • router.invalidate() re-runs loaders (which call query with staleTime: 'static'), so the cached Query data remains the freshness authority

Cross-References

PACKAGE TRANSPARENCY

Inspect before installing

Source: Tanner Linsley · MIT · SHA-256 shown alongside the download.

138 files453353 ZIP bytes5 script/code files

License file included. A license and checksum are not a security certification. Review package instructions and scripts before running them.

View files and uncompressed sizes
Machine-readable installation guide →
CATALOG REVIEW NOTES

Know what you need before installing

Source and packaging checks recorded on 2026-10-09. These notes are not safety certification or measured task performance.

Requirements

Original skill plus required retained entrypoints; complete matching project remains necessary. For the independent fixture: recorded Node 24.10.0, Python 3, pinned npm packages; development condition and explicit synthetic origin for Node preloader. No real browser is used. Source library_version differs from installed versions.

Costs, access & practical limits

Free MIT source and independent fixture. npm installation contacts the free public registry; native execution uses synthetic inputs and no paid service or API. Full AI-client inference is outside this fixture.

View the recorded checks
  • 121 original Git blob/SHA-256 identities and complete MIT notice preserved
  • 14 original blocks retained; 3 duplicate-declaration contrasts rejected; labels are not loaders
  • 49 main and 8 preloader named native observations passed
  • Static loader hits, separate observer updates, dynamic query keys and synthetic HTTP status limits observed
  • Shared versus fresh clients checked with synthetic caches, without authentication claims
  • Real RouterProvider React server rendering, manual hydration and resolved-query stream/cleanup observed
  • Native preloader uses Node development condition, memory history and explicit origin; no browser
  • Zero JS HTTP/socket attempts; no OS network or full AI-client claim
  • 30 expanded literal relative targets absent in Git tree; no website-404 claim

Upstream commit: 663282b0ebbc494aee3595ed95867ee29d01938e

Runtime status: not tested by this catalog. Configure your client and test the skill in your own environment.

LICENSE & ATTRIBUTION

License & attribution

The notices identify their files, attribution and changes. Retain the applicable original notices when adapting or redistributing the package.

MIT ↗

All retained original TanStack repository files and original primary instructions

Attribution: Copyright (c) 2021-present Tanner Linsley

Changes: Original mirror bytes preserved. Primary copy maps four local Markdown links and adds a separately identified scope note.

Included notice: router-query/LICENSE.upstream.txt

Declared source ↗

MIT ↗

Independent BB Skills fixture, evidence and packaging notes

Attribution: BB Skills independent additions; see complete retained notice

Changes: Independent synthetic experiments and reporting; not part of the upstream project.

Included notice: router-query/LICENSE.bb-skills.txt

Declared source ↗
SCENARIOS

Inputs, criteria and recorded outcomes

Records are supplied by the site administrator and bound to a specific package. They are not third-party safety certification. This page does not execute skills.

Official TanStack Router and Query blocks: cache, preload and SSR

Reported passed · v663282b0ebbc.bb1

View input and acceptance criteria

Input

Fifty-seven named observations: 49 loader, cache and SSR checks plus eight native preloader checks. Pinned TanStack source retains 14 original fenced blocks, including one install command that was not executed. Eighteen executable entries add explicitly recorded imports, synthetic bindings or wrappers. Three whole contrast blocks reject duplicate declarations; their unchanged alternatives are tested separately. The labelled loader block parses but exports no loader; independent object wrappers make its alternatives callable. Static ensureQueryData keeps cached data after invalidation; observer mount and subsequent invalidation effects remain separate. Distinct dynamic keys, synthetic transport errors and unchecked response.ok behavior are recorded. Fresh SSR clients separate synthetic caches; the wrong singleton example shares them. This is not a real authentication bypass test. React server rendering escapes a synthetic HTML-shaped title. Native query integration dehydrates, streams after controlled resolution, finishes and clears its cache. Native Node client-mode preload uses the development condition, explicit isServer:false and an explicit origin; loader/query counts are 1/1, 2/2 and 2/1. JavaScript network guards record zero attempts; initial mistaken expectations remain disclosed. No complete AI-client execution, full TypeScript typecheck, browser interaction or hydration, HTTP stream transport, production authorization, OS-level network audit or performance benchmark claim.

Acceptance criteria

All 57 named observations match explicit expected values, including contrast parse failures and unchecked synthetic 503 JSON. Native library scope remains limited; no full-skill, real-browser, production-authentication or benchmark claim.

Recorded outcome

Fifty-seven named observations: 49 loader, cache and SSR checks plus eight native preloader checks. Pinned TanStack source retains 14 original fenced blocks, including one install command that was not executed. Eighteen executable entries add explicitly recorded imports, synthetic bindings or wrappers. Three whole contrast blocks reject duplicate declarations; their unchanged alternatives are tested separately. The labelled loader block parses but exports no loader; independent object wrappers make its alternatives callable. Static ensureQueryData keeps cached data after invalidation; observer mount and subsequent invalidation effects remain separate. Distinct dynamic keys, synthetic transport errors and unchecked response.ok behavior are recorded. Fresh SSR clients separate synthetic caches; the wrong singleton example shares them. This is not a real authentication bypass test. React server rendering escapes a synthetic HTML-shaped title. Native query integration dehydrates, streams after controlled resolution, finishes and clears its cache. Native Node client-mode preload uses the development condition, explicit isServer:false and an explicit origin; loader/query counts are 1/1, 2/2 and 2/1. JavaScript network guards record zero attempts; initial mistaken expectations remain disclosed. No complete AI-client execution, full TypeScript typecheck, browser interaction or hydration, HTTP stream transport, production authorization, OS-level network audit or performance benchmark claim.

Scoped native evidence:
{
  "checked_at": "2026-10-09T00:01:13.928Z",
  "source_commit": "663282b0ebbc494aee3595ed95867ee29d01938e",
  "versions": {
    "node": "v24.10.0",
    "@tanstack/react-router": "1.170.41",
    "@tanstack/query-core": "5.104.1",
    "@tanstack/react-query": "5.104.1",
    "@tanstack/react-router-ssr-query": "1.167.3",
    "react": "19.3.0",
    "react-dom": "19.3.0",
    "esbuild": "0.28.2",
    "@tanstack/router-core": "1.171.34"
  },
  "native_blocks": [
    {
      "index": 0,
      "language": "tsx",
      "sha256": "1a5d8eb1cab635be727fb2071b6edbc9ea32f3fb35d4dad5e7d630fc6a2560dc",
      "bytes": 827,
      "executed_as_source_command": false
    },
    {
      "index": 1,
      "language": "tsx",
      "sha256": "e7cfd915288007e34187c00f8f4d68c9f1de8e69ebe46a6a3996ed31bf600e13",
      "bytes": 316,
      "executed_as_source_command": false
    },
    {
      "index": 2,
      "language": "tsx",
      "sha256": "b4d2d018d8f3bd9b1fd9b8a10359633ba4206771ab65424a92855e47ffc3b9a4",
      "bytes": 694,
      "executed_as_source_command": false
    },
    {
      "index": 3,
      "language": "bash",
      "sha256": "77ee21a44539db6f9e9d57b77022df87038e4ca085cb0ded23cb30b30fa8016a",
      "bytes": 45,
      "executed_as_source_command": false
    },
    {
      "index": 4,
      "language": "tsx",
      "sha256": "a3be0d24ed6d52daba870bcee46d8016d6896b060f090386b9a15309ab896203",
      "bytes": 680,
      "executed_as_source_command": false
    },
    {
      "index": 5,
      "language": "tsx",
      "sha256": "dc87b7d117bf7cfd48cf5f4bec4f3496b3cc1085b6df9993c56e6206f26ca85b",
      "bytes": 726,
      "executed_as_source_command": false
    },
    {
      "index": 6,
      "language": "tsx",
      "sha256": "6b71afae8f0e79e8a4e11c3014303b9b0dd58e583bf42c052db66aab94c0ba25",
      "bytes": 997,
      "executed_as_source_command": false
    },
    {
      "index": 7,
      "language": "tsx",
      "sha256": "efd2e13fec2b3f4ca13562e02cbbc6ce5061f0fd9cdf162795e91c0c9f39f651",
      "bytes": 815,
      "executed_as_source_command": false
    },
    {
      "index": 8,
      "language": "tsx",
      "sha256": "b0a451ef1f0a76a411842b6874c6407615ad92366e75411b4cd6175043089898",
      "bytes": 895,
      "executed_as_source_command": false
    },
    {
      "index": 9,
      "language": "tsx",
      "sha256": "58bd6984e99aebd13615beed9802a730e1e1d67663e88bec5d3c546d1ad50a21",
      "bytes": 842,
      "executed_as_source_command": false
    },
    {
      "index": 10,
      "language": "tsx",
      "sha256": "006b97a13fdbae0804fde467676657ac26f1291dfbfc5bc84431ba2ee2bc6349",
      "bytes": 271,
      "executed_as_source_command": false
    },
    {
      "index": 11,
      "language": "tsx",
      "sha256": "57403357c9772b31b640c497283d3fdc2286d74eb08c6376d46dd87070ad5a2d",
      "bytes": 399,
      "executed_as_source_command": false
    },
    {
      "index": 12,
      "language": "tsx",
      "sha256": "2af43b2320d6452b55f59b5b83107d400594993e51a989d3fd3ccccbc5dbe53b",
      "bytes": 579,
      "executed_as_source_command": false
    },
    {
      "index": 13,
      "language": "tsx",
      "sha256": "13f373e516a9c91fac460109cb69e4b2b3f2d3cd17e09a712f336b0fc1ebbc2b",
      "bytes": 339,
      "executed_as_source_command": false
    }
  ],
  "extraction_plan": {
    "source_path": "packages/react-router/skills/compositions/router-query/SKILL.md",
    "primary_sha256": "50f85ec86be049d166b8bc4d9c5883e7b7720c4952d6eef92616319f3cf3dcd0",
    "blocks": [
      {
        "index": 0,
        "language": "tsx",
        "sha256": "1a5d8eb1cab635be727fb2071b6edbc9ea32f3fb35d4dad5e7d630fc6a2560dc",
        "bytes": 827,
        "executed_as_source_command": false
      },
      {
        "index": 1,
        "language": "tsx",
        "sha256": "e7cfd915288007e34187c00f8f4d68c9f1de8e69ebe46a6a3996ed31bf600e13",
        "bytes": 316,
        "executed_as_source_command": false
      },
      {
        "index": 2,
        "language": "tsx",
        "sha256": "b4d2d018d8f3bd9b1fd9b8a10359633ba4206771ab65424a92855e47ffc3b9a4",
        "bytes": 694,
        "executed_as_source_command": false
      },
      {
        "index": 3,
        "language": "bash",
        "sha256": "77ee21a44539db6f9e9d57b77022df87038e4ca085cb0ded23cb30b30fa8016a",
        "bytes": 45,
        "executed_as_source_command": false
      },
      {
        "index": 4,
        "language": "tsx",
        "sha256": "a3be0d24ed6d52daba870bcee46d8016d6896b060f090386b9a15309ab896203",
        "bytes": 680,
        "executed_as_source_command": false
      },
      {
        "index": 5,
        "language": "tsx",
        "sha256": "dc87b7d117bf7cfd48cf5f4bec4f3496b3cc1085b6df9993c56e6206f26ca85b",
        "bytes": 726,
        "executed_as_source_command": false
      },
      {
        "index": 6,
        "language": "tsx",
        "sha256": "6b71afae8f0e79e8a4e11c3014303b9b0dd58e583bf42c052db66aab94c0ba25",
        "bytes": 997,
        "executed_as_source_command": false
      },
      {
        "index": 7,
        "language": "tsx",
        "sha256": "efd2e13fec2b3f4ca13562e02cbbc6ce5061f0fd9cdf162795e91c0c9f39f651",
        "bytes": 815,
        "executed_as_source_command": false
      },
      {
        "index": 8,
        "language": "tsx",
        "sha256": "b0a451ef1f0a76a411842b6874c6407615ad92366e75411b4cd6175043089898",
        "bytes": 895,
        "executed_as_source_command": false
      },
      {
        "index": 9,
        "language": "tsx",
        "sha256": "58bd6984e99aebd13615beed9802a730e1e1d67663e88bec5d3c546d1ad50a21",
        "bytes": 842,
        "executed_as_source_command": false
      },
      {
        "index": 10,
        "language": "tsx",
        "sha256": "006b97a13fdbae0804fde467676657ac26f1291dfbfc5bc84431ba2ee2bc6349",
        "bytes": 271,
        "executed_as_source_command": false
      },
      {
        "index": 11,
        "language": "tsx",
        "sha256": "57403357c9772b31b640c497283d3fdc2286d74eb08c6376d46dd87070ad5a2d",
        "bytes": 399,
        "executed_as_source_command": false
      },
      {
        "index": 12,
        "language": "tsx",
        "sha256": "2af43b2320d6452b55f59b5b83107d400594993e51a989d3fd3ccccbc5dbe53b",
        "bytes": 579,
        "executed_as_source_command": false
      },
      {
        "index": 13,
        "language": "tsx",
        "sha256": "13f373e516a9c91fac460109cb69e4b2b3f2d3cd17e09a712f336b0fc1ebbc2b",
        "bytes": 339,
        "executed_as_source_command": false
      }
    ],
    "entries": [
      {
        "name": "basic",
        "block": 0,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "1a5d8eb1cab635be727fb2071b6edbc9ea32f3fb35d4dad5e7d630fc6a2560dc",
        "fragment_start": 0,
        "fragment_bytes": 827,
        "independent_prefix": "",
        "independent_suffix": "\nexport { router, queryClient, App };\n",
        "entry_sha256": "9f09e3cd5de35eff956ccde6c21fa5d50581c5b7b3084f5f17332885bea0a880"
      },
      {
        "name": "root",
        "block": 1,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "e7cfd915288007e34187c00f8f4d68c9f1de8e69ebe46a6a3996ed31bf600e13",
        "fragment_start": 0,
        "fragment_bytes": 316,
        "independent_prefix": "",
        "independent_suffix": "",
        "entry_sha256": "e7cfd915288007e34187c00f8f4d68c9f1de8e69ebe46a6a3996ed31bf600e13"
      },
      {
        "name": "factory",
        "block": 2,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "b4d2d018d8f3bd9b1fd9b8a10359633ba4206771ab65424a92855e47ffc3b9a4",
        "fragment_start": 0,
        "fragment_bytes": 694,
        "independent_prefix": "",
        "independent_suffix": "",
        "entry_sha256": "b4d2d018d8f3bd9b1fd9b8a10359633ba4206771ab65424a92855e47ffc3b9a4"
      },
      {
        "name": "integration",
        "block": 4,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "a3be0d24ed6d52daba870bcee46d8016d6896b060f090386b9a15309ab896203",
        "fragment_start": 0,
        "fragment_bytes": 680,
        "independent_prefix": "",
        "independent_suffix": "",
        "entry_sha256": "a3be0d24ed6d52daba870bcee46d8016d6896b060f090386b9a15309ab896203"
      },
      {
        "name": "manual",
        "block": 5,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "dc87b7d117bf7cfd48cf5f4bec4f3496b3cc1085b6df9993c56e6206f26ca85b",
        "fragment_start": 0,
        "fragment_bytes": 726,
        "independent_prefix": "",
        "independent_suffix": "",
        "entry_sha256": "dc87b7d117bf7cfd48cf5f4bec4f3496b3cc1085b6df9993c56e6206f26ca85b"
      },
      {
        "name": "posts",
        "block": 6,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "6b71afae8f0e79e8a4e11c3014303b9b0dd58e583bf42c052db66aab94c0ba25",
        "fragment_start": 0,
        "fragment_bytes": 997,
        "independent_prefix": "",
        "independent_suffix": "\nexport { postsQueryOptions, PostsPage };\n",
        "entry_sha256": "214f76f549d86d39d093cc40e96ab611c71187b05374c5c1b9302025557afaa4"
      },
      {
        "name": "post",
        "block": 7,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "efd2e13fec2b3f4ca13562e02cbbc6ce5061f0fd9cdf162795e91c0c9f39f651",
        "fragment_start": 0,
        "fragment_bytes": 815,
        "independent_prefix": "",
        "independent_suffix": "\nexport { postQueryOptions, PostPage };\n",
        "entry_sha256": "d827ae5f2ca4ed0efb5ba5644f598c2e044c3860d34519ba0abf5769f1a80a98"
      },
      {
        "name": "dashboard",
        "block": 8,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "b0a451ef1f0a76a411842b6874c6407615ad92366e75411b4cd6175043089898",
        "fragment_start": 0,
        "fragment_bytes": 895,
        "independent_prefix": "// Independent synthetic bindings absent from the original fragment.\nimport { createFileRoute } from '@tanstack/react-router';\nconst userQueryOptions = { queryKey: ['user'], queryFn: () => globalThis.__bbUser(), retry: false };\nconst analyticsQueryOptions = { queryKey: ['analytics'], queryFn: () => globalThis.__bbAnalytics(), retry: false };\nfunction Skeleton() { return <p>Loading analytics</p>; }\nfunction AnalyticsChart({data}) { return <p>{JSON.stringify(data)}</p>; }\n",
        "independent_suffix": "\nexport { Dashboard };\n",
        "entry_sha256": "9f4edd374efa1b7cd16dfca11849c9dbf096bda6e66046b1603f0b83db13ee19"
      },
      {
        "name": "errors",
        "block": 9,
        "whole_block_unchanged": true,
        "original_fragment_sha256": "58bd6984e99aebd13615beed9802a730e1e1d67663e88bec5d3c546d1ad50a21",
        "fragment_start": 0,
        "fragment_bytes": 842,
        "independent_prefix": "// Independent imports absent from the original fragment.\nimport { createFileRoute } from '@tanstack/react-router';\nimport { postsQueryOptions, PostsPage } from './posts';\n",
        "independent_suffix": "\nexport { PostsErrorComponent };\n",
        "entry_sha256": "d63eed64ab8bde59fe34d6583617d7766363be491440a7cabc351bce988dc9d5"
      },
      {
        "name": "preload-default",
        "block": 10,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "71040353619bd094dc19a538674d8094071f0f595f2cbf529c0a97b4e9634889",
        "fragment_start": 0,
        "fragment_bytes": 121,
        "independent_prefix": "import { createRouter } from '@tanstack/react-router';\nimport { routeTree } from './routeTree.gen';\n",
        "independent_suffix": "\nexport { router };\n",
        "entry_sha256": "d27e112479f9450642f96462137356ee76ea7b62b9b556d1e18fec8eb3d10ac5"
      },
      {
        "name": "preload-zero",
        "block": 10,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "8d2eda808c2285ca4c21fdda8b6cc403e8cdf163ffe5db316a2bfabbf4410b3a",
        "fragment_start": 119,
        "fragment_bytes": 150,
        "independent_prefix": "import { createRouter } from '@tanstack/react-router';\nimport { routeTree } from './routeTree.gen';\n",
        "independent_suffix": "\nexport { router };\n",
        "entry_sha256": "e111a679cb0e5106ea3f018bc916d0c448aa07adb54e4b2e7b348e73a7f3e77d"
      },
      {
        "name": "shared-factory",
        "block": 11,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "381f92ec1e0ff59b5df4daad4d964b612ba379dbd49f42fcfd777841ea720c93",
        "fragment_start": 0,
        "fragment_bytes": 191,
        "independent_prefix": "import { QueryClient } from '@tanstack/react-query';\nimport { createRouter } from '@tanstack/react-router';\nimport { routeTree } from './routeTree.gen';\n",
        "independent_suffix": "",
        "entry_sha256": "579d3b7cf3177e0e424ba797ddcf154ee6a14b8767309ff1b5de7ba664d9da83"
      },
      {
        "name": "fresh-factory",
        "block": 11,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "8d2d78e0f0205f14339d8e7a005a392b07eaa75a3f547bfafa2c6ce9798a1534",
        "fragment_start": 189,
        "fragment_bytes": 208,
        "independent_prefix": "import { QueryClient } from '@tanstack/react-query';\nimport { createRouter } from '@tanstack/react-router';\nimport { routeTree } from './routeTree.gen';\n",
        "independent_suffix": "",
        "entry_sha256": "dda5d04a41a52794f41d5bef39e7609e11ac46ea0bf1da8c432781c8248f4877"
      },
      {
        "name": "wrong-root",
        "block": 13,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "f6f4d4392205bbd9d8f7025f2369ed8c767bef9471ed4f3426e8ad015ebd9e75",
        "fragment_start": 0,
        "fragment_bytes": 180,
        "independent_prefix": "import { createRootRouteWithContext } from '@tanstack/react-router';\nimport type { QueryClient } from '@tanstack/react-query';\nfunction RootComponent() { return <p>Root</p>; }\n",
        "independent_suffix": "\nexport { rootRoute };\n",
        "entry_sha256": "31822d4870d47a8e6f6f1c4033985a832d8f1e2cd78a541af65096a9e9f19858"
      },
      {
        "name": "correct-root",
        "block": 13,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "4f0945fefa6af6db22b8485dcc4c256ff03787d78a0ffb27b9b3e24f9b791eda",
        "fragment_start": 178,
        "fragment_bytes": 159,
        "independent_prefix": "import { createRootRouteWithContext } from '@tanstack/react-router';\nimport type { QueryClient } from '@tanstack/react-query';\nfunction RootComponent() { return <p>Root</p>; }\n",
        "independent_suffix": "\nexport { rootRoute };\n",
        "entry_sha256": "a3db95b128b0b2e1ec252663eed052617a1324872334fdb922a13a775d674ad4"
      },
      {
        "name": "awaited-loader",
        "block": 12,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "c682abef89c30f6907eea95724c9f4ea533f889349799e9135f92fe17a6c943a",
        "fragment_start": 97,
        "fragment_bytes": 111,
        "independent_prefix": "import { noop } from '@tanstack/react-query';\nconst analyticsQueryOptions = { queryKey: ['analytics'], queryFn: () => globalThis.__bbAnalytics(), retry: false };\nconst criticalQueryOptions = { queryKey: ['critical'], queryFn: () => globalThis.__bbCritical(), retry: false };\nconst fixture = {\n",
        "independent_suffix": "\n};\nexport { fixture };\n",
        "entry_sha256": "2bba24b5d016d8f515dc635d8e2833d9db8e825c889eeebad6c9fe076f667d3b"
      },
      {
        "name": "background-loader",
        "block": 12,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "6ce08438e94f10c7b1ca0c768c6cab93e0a66c71cef8d50bc701fff976349f6c",
        "fragment_start": 276,
        "fragment_bytes": 104,
        "independent_prefix": "import { noop } from '@tanstack/react-query';\nconst analyticsQueryOptions = { queryKey: ['analytics'], queryFn: () => globalThis.__bbAnalytics(), retry: false };\nconst criticalQueryOptions = { queryKey: ['critical'], queryFn: () => globalThis.__bbCritical(), retry: false };\nconst fixture = {\n",
        "independent_suffix": "\n};\nexport { fixture };\n",
        "entry_sha256": "8bfdcac0dd3f890ee30fb09e8bfab2bc787597db35fd028da6345c4fcd8b3f8f"
      },
      {
        "name": "critical-loader",
        "block": 12,
        "whole_block_unchanged": false,
        "original_fragment_sha256": "97830cddf5b3fc8f8497a42f06c35fce1b15cc85e93343fae36846f0033e9f7e",
        "fragment_start": 450,
        "fragment_bytes": 125,
        "independent_prefix": "import { noop } from '@tanstack/react-query';\nconst analyticsQueryOptions = { queryKey: ['analytics'], queryFn: () => globalThis.__bbAnalytics(), retry: false };\nconst criticalQueryOptions = { queryKey: ['critical'], queryFn: () => globalThis.__bbCritical(), retry: false };\nconst fixture = {\n",
        "independent_suffix": "\n};\nexport { fixture };\n",
        "entry_sha256": "124bd70b6afba6cc650bf5bceca61dead42dc9caae91969e3a0469e3c772edb3"
      }
    ],
    "contrast_blocks": [
      10,
      11,
      12,
      13
    ]
  },
  "compilation": {
    "checked_at": "2026-10-09T00:08:27.883Z",
    "blocks": [
      {
        "block": 0,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 1,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 2,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 3,
        "status": "not-executed-source-command"
      },
      {
        "block": 4,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 5,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 6,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 7,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 8,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 9,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 10,
        "status": "parse-rejected",
        "contrast_block": true,
        "errors": [
          {
            "text": "The symbol \"router\" has already been declared",
            "line": 5
          }
        ],
        "full_typecheck": false
      },
      {
        "block": 11,
        "status": "parse-rejected",
        "contrast_block": true,
        "errors": [
          {
            "text": "Multiple exports with the same name \"createAppRouter\"",
            "line": 11
          },
          {
            "text": "The symbol \"createAppRouter\" has already been declared",
            "line": 11
          }
        ],
        "full_typecheck": false
      },
      {
        "block": 12,
        "status": "transpiled",
        "full_typecheck": false
      },
      {
        "block": 13,
        "status": "parse-rejected",
        "contrast_block": true,
        "errors": [
          {
            "text": "The symbol \"rootRoute\" has already been declared",
            "line": 7
          }
        ],
        "full_typecheck": false
      }
    ],
    "compiled_entries": 18,
    "full_typecheck": false
  },
  "main": {
    "checked_at": "2026-10-09T00:00:15.319Z",
    "node": "v24.10.0",
    "phase": "native-local-fixture",
    "passed": true,
    "observations": [
      {
        "id": "primary-source-sha256-preserved",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "three-whole-contrast-blocks-rejected",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "labelled-loader-fragment-parses-but-exports-no-loader",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "source-install-command-not-executed",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "static-loader-miss-fetches",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "static-loader-hit-reuses-cache",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "static-loader-after-invalidation-still-reuses-cache",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "nonstatic-observer-mount-refetches-invalidated-cache",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "active-nonstatic-observer-refetches",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "static-observer-invalidation-does-not-refetch",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-posts-component-renders-cached-query",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "dynamic-parameters-have-separate-query-keys",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "dynamic-repeat-reuses-only-matching-key",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-fetch-does-not-check-response-ok",
        "passed": true,
        "evidence": {
          "synthetic_http_status": 503,
          "production_http_tested": false
        }
      },
      {
        "id": "original-error-loader-propagates-transport-rejection",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-ssr-factory-creates-distinct-clients",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-ssr-factory-does-not-share-synthetic-cache",
        "passed": true,
        "evidence": {
          "real_authentication_tested": false
        }
      },
      {
        "id": "wrong-module-singleton-shares-client",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "wrong-module-singleton-exposes-synthetic-cache",
        "passed": true,
        "evidence": {
          "real_authentication_tested": false
        }
      },
      {
        "id": "correct-contrast-factory-creates-distinct-clients",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "manual-original-dehydrate-hydrate-roundtrip",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "manual-hydration-keeps-client-identity-separate",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "dashboard-loader-waits-for-critical-user",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "dashboard-loader-does-not-await-analytics",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-dashboard-renders-user-and-skeleton",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "background-analytics-rejection-is-handled",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "awaited-contrast-blocks-until-optional-query-settles",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "awaited-contrast-resumes-after-resolution",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "background-contrast-returns-before-resolution",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "background-contrast-catches-rejection",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "critical-contrast-returns-blocking-promise",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "critical-contrast-resolves-required-data",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "wrong-root-call-produces-factory-function",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "correct-root-double-call-produces-route",
        "passed": true,
        "evidence": {
          "full_typecheck": false
        }
      },
      {
        "id": "original-basic-app-renders-through-real-router",
        "passed": true,
        "evidence": {
          "server_render_only": true
        }
      },
      {
        "id": "react-escapes-synthetic-html-title",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-dynamic-route-renders-real-params",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-ssr-integration-installs-provider",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "original-ssr-integration-installs-native-callbacks",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-integration-dehydrates-initial-query",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-integration-provides-readable-stream",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-integration-no-chunk-before-late-resolution",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-integration-streams-resolved-query",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "streamed-query-contains-resolved-native-data",
        "passed": true,
        "evidence": {
          "http_transport_and_browser_hydration_tested": false
        }
      },
      {
        "id": "native-render-finished-closes-query-stream",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-server-ssr-has-cleanup",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "native-integration-cleanup-clears-request-cache",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "no-unhandled-promise-rejections",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "zero-js-network-attempts",
        "passed": true,
        "evidence": {
          "os_level_network_audit": false
        }
      }
    ],
    "observation_count": 49,
    "synthetic_requests": [
      {
        "path": "/api/posts",
        "status": 200
      },
      {
        "path": "/api/posts",
        "status": 200
      },
      {
        "path": "/api/posts",
        "status": 200
      },
      {
        "path": "/api/posts/alpha",
        "status": 200
      },
      {
        "path": "/api/posts/beta",
        "status": 200
      },
      {
        "path": "/api/posts",
        "status": 503
      },
      {
        "path": "/api/posts",
        "status": 200
      },
      {
        "path": "/api/posts",
        "status": 200
      },
      {
        "path": "/api/posts/beta",
        "status": 200
      },
      {
        "path": "/api/posts",
        "status": 200
      }
    ],
    "network_attempts": [],
    "unhandled_rejections": [],
    "limits": {
      "full_ai_client_execution": false,
      "full_typecheck": false,
      "browser_execution": false,
      "real_authentication": false,
      "production_database": false,
      "http_stream_transport": false,
      "browser_hydration": false,
      "performance_benchmark": false,
      "os_level_network_audit": false
    },
    "source_command_executed": false
  },
  "preloader": {
    "checked_at": "2026-10-09T00:01:13.928Z",
    "node": "v24.10.0",
    "required_node_condition": "development",
    "passed": true,
    "observations": [
      {
        "id": "development-condition-allows-native-client-mode",
        "passed": true,
        "evidence": {
          "runtime": "Node",
          "real_browser": false
        }
      },
      {
        "id": "default-stale-uses-real-native-client-mode",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "zero-stale-uses-real-native-client-mode",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "zero-fresh-uses-real-native-client-mode",
        "passed": true,
        "evidence": {}
      },
      {
        "id": "default-router-preload-skips-repeated-loader",
        "passed": true,
        "evidence": {
          "name": "default-stale",
          "loader_calls": 1,
          "query_function_calls": 1,
          "query_stale_time": 0,
          "configured_default_preload_stale_time": "unset (native fallback)",
          "data": {
            "sequence": 1
          }
        }
      },
      {
        "id": "zero-preload-reenters-loader-and-stale-query",
        "passed": true,
        "evidence": {
          "name": "zero-stale",
          "loader_calls": 2,
          "query_function_calls": 2,
          "query_stale_time": 0,
          "configured_default_preload_stale_time": 0,
          "data": {
            "sequence": 2
          }
        }
      },
      {
        "id": "zero-preload-does-not-force-fresh-query-to-refetch",
        "passed": true,
        "evidence": {
          "name": "zero-fresh",
          "loader_calls": 2,
          "query_function_calls": 1,
          "query_stale_time": "Infinity",
          "configured_default_preload_stale_time": 0,
          "data": {
            "sequence": 1
          }
        }
      },
      {
        "id": "zero-js-network-attempts",
        "passed": true,
        "evidence": {
          "os_level_network_audit": false
        }
      }
    ],
    "observation_count": 8,
    "cases": [
      {
        "name": "default-stale",
        "loader_calls": 1,
        "query_function_calls": 1,
        "query_stale_time": 0,
        "configured_default_preload_stale_time": "unset (native fallback)",
        "data": {
          "sequence": 1
        }
      },
      {
        "name": "zero-stale",
        "loader_calls": 2,
        "query_function_calls": 2,
        "query_stale_time": 0,
        "configured_default_preload_stale_time": 0,
        "data": {
          "sequence": 2
        }
      },
      {
        "name": "zero-fresh",
        "loader_calls": 2,
        "query_function_calls": 1,
        "query_stale_time": "Infinity",
        "configured_default_preload_stale_time": 0,
        "data": {
          "sequence": 1
        }
      }
    ],
    "network_attempts": [],
    "scope": "Real native router preloader under Node with isServer:false; independent route and query options; no browser DOM, hover, network, or authentication",
    "real_browser": false
  },
  "observation_count": 57,
  "scoped_native_runtime_executed": true,
  "runtime_tested": false,
  "ai_client_executed": false,
  "production_tested": false,
  "paid_api_used": false,
  "real_credentials_used": false,
  "browser_used": false,
  "full_typescript_typecheck_ran": false,
  "http_stream_transport_tested": false,
  "browser_hydration_tested": false,
  "initial_failed_expectations": [
    {
      "recorded_at": "2026-10-08T23:58:27.241Z",
      "failed_observation": "active-nonstatic-observer-refetches",
      "passed_before_failure": 7,
      "raw_local_record_sha256": "67394ab8ba548776ba90e85075b4abe9b24828f263d106c52ddb920b3fe931d4",
      "correction": "Mounted nonstatic observer refetch is observed separately from the later invalidation; source snippets unchanged."
    },
    {
      "recorded_at": "2026-10-08T23:59:06.299Z",
      "failed_observation": "Guard timeout: SSR native query stream",
      "passed_before_failure": 41,
      "raw_local_record_sha256": "a65365bfe98b37f2f5699a293fa998c20501c642cc09d0370b00fa048183ff8b",
      "correction": "Controlled query resolves before expecting the native stream chunk; native timing is recorded, not replaced."
    },
    {
      "recorded_at": "2026-10-09T00:00:40.647Z",
      "failed_observation": "window is not defined",
      "passed_before_failure": 1,
      "raw_local_record_sha256": "f8006a42a586e1344d9cbac56caa1bd0d35818404dfeba10709ebe042df2f800",
      "correction": "Native origin option configured explicitly for the Node client-mode fixture; no fake window or substitute browser."
    }
  ],
  "source_hashes": {
    "repository-context/packages/react-router-ssr-query/package.json": "1c3f978bf621ac9c3239b997d4af996bd7efc14dab061cfeb77d85e8e03d80bf",
    "repository-context/packages/react-router/package.json": "35e014579bc1a4c890d146465677618f93e4efaee2d2292a86643e128cc542d0",
    "repository-context/packages/router-core/package.json": "99ea8d95cc7ed6be5cf232418fb24471a1ba104031ecfe12411de842c3593e38",
    "examples/extract_native.py": "d24c5d425b1d87bb2b75578101203690773396e83d6c35728883be8313f09c9b",
    "examples/compile_native.mjs": "51559578c7554b1f3f103ea9af21bdb8d8532602b30f6372d359477216822fa5",
    "examples/deny_network.mjs": "62250fd9c38d3c1ef027374754ab515eac73258045304cbe5dbf42d8a23826a2",
    "examples/run_fixture.mjs": "016f34029d19df01d952bc87cef445702bd3d43201cf2a20079df97b1af8c26d",
    "examples/run_preload.mjs": "48f01d977dcb256a83a2cd01f98f85877d06babc0f5ea417e60b0d824ad026c1",
    "examples/README.md": "6c43b73de939d9867e63bdd16eba66250a9f73b731c9895345d7dab3225bc60e",
    "package.json": "28f6d0191295518771bf686b5035cdfd197846f9e2d33daf945906282994ca40",
    "package-lock.json": "20ffffe16cc6abc83553c2ee89f80a2eaa05bc02d6cd89c027c7f4a4900297db",
    "registry-evidence.json": "58ba64a6eccf95bd7ab5caea816457a8bc076fa0969d26e7207a94da0ac49c2d"
  }
}

Environment

Windows; Node 24.10.0; React 19.3.0; React Router 1.170.41; Router Core 1.171.34; SSR Query 1.167.3; Query 5.104.1; esbuild 0.28.2. Synthetic local data, real native libraries, no paid service or real account/key. Fixed skill snapshot and runtime versions are separate identities.

Package SHA-256: 821117eed3ec96d17b0b3a4be05d4649c86131bb1905d4b50a4b444d7bb76f01

Outcome recorded: 2026-10-09 00:01 UTC

Open evidence ↗

Community reviews

★ New

Be the first to share your experience.

Sign in to leave a review →

Guides using this resource

All guides →
Practical guide

TanStack Router and Query: preload, cache and SSR checks

When TanStack Router delegates fetching to TanStack Query, two caches can affect the same navigation. A repeated preload can stop at Router before it reaches Query, while a static…

By BB Skills · Read guide →
View all ↗

Links use published guide associations and catalog labels. Inspect each resource’s requirements and license.