38b93e0abe
The packaged app crashed at launch with 'No QueryClient set, use QueryClientProvider to set one': useQuery in a lazy chunk (session-list-density) read a second @tanstack/react-query runtime whose QueryClientContext was never populated by the entry's QueryClientProvider. The source tree was correct — the duplication happened at build time, because react-query was the one context-bearing runtime not pinned to a shared vendor chunk, and rolldown's merge heuristics inline the spare copy into a lazy chunk depending on toolchain version. - vite.config.ts: add @tanstack/react-query to the vendor-react advancedChunks group + dev dedupe list, mirroring the react-router fix. - assert-dist-built.mjs: fail the build when the 'No QueryClient set' invariant appears in more than one JS asset (launch-smoke guard). - assert-dist-built.test.mjs: unit tests for the new invariant check. - launch-packaged-app.spec.ts: e2e smoke test asserting the packaged app boots to real UI, not the QueryClient error boundary.