Release 2026-10-01 17:04
Release 2026-10-01 17:04
- solid-query: follow Solid 2.0.0-rc.9 (#11543) (cb63f0707) by @ryansolid
- solid-query: move off sharedConfig onto Solid's public hydration API (#11751) (8a13b15c3) by @ryansolid
- @tanstack/solid-query@6.0.0-rc.5
- @tanstack/solid-query-devtools@6.0.0-rc.5
- @tanstack/solid-query-persist-client@6.0.0-rc.5
Release 2026-10-01 17:04
Release 2026-10-01 17:04
- solid-query: follow Solid 2.0.0-rc.9 (#11543) (cb63f0707) by @ryansolid
- solid-query: move off sharedConfig onto Solid's public hydration API (#11751) (8a13b15c3) by @ryansolid
- @tanstack/solid-query@6.0.0-rc.5
- @tanstack/solid-query-devtools@6.0.0-rc.5
- @tanstack/solid-query-persist-client@6.0.0-rc.5
@tanstack/solid-query@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open.
@tanstack/solid-query@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open.
@tanstack/solid-query-devtools@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open. -
Updated dependencies [
8a13b15,cb63f07]:- @tanstack/solid-query@6.0.0-rc.5
@tanstack/solid-query-persist-client@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open. -
Updated dependencies [
8a13b15,cb63f07]:- @tanstack/solid-query@6.0.0-rc.5
@tanstack/solid-query-persist-client@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open. -
Updated dependencies [
8a13b15,cb63f07]:- @tanstack/solid-query@6.0.0-rc.5
@tanstack/solid-query-devtools@6.0.0-rc.5
-
#11751
8a13b15- Move off Solid's internalsharedConfigonto its public hydration API. The hydrating-mount checks readisHydrating(), the server cache stream writes throughgetHydrationWriter()gated onisHydratable()(so<NoHydration>is still respected), anduseQueryconsumes its streamed entry withtakeHydrationValue().sharedConfigis internal in Solid 2.0 and absent from the publishedsolid-jsdeclarations, so the previous imports no longer type-check.These APIs ship in Solid
2.0.0-rc.13, so thesolid-js/@solidjs/webpeer floor is now>=2.0.0-rc.13. -
#11543
cb63f07- Follow Solid 2.0.0-rc.9. The packages build with@solidjs/babel-plugin(the Solid 2.0 compiler, matching the rc.9 runtime's delegated-event contract) and test under vite 8; thesolid-js/@solidjs/webpeer floor is2.0.0-rc.9.useQuery's setup-time snapshots (the meta projection's seed, the mount counts) now read the cache directly instead of through the hook's version signal. Under hydration, priming writes that signal during setup, and a write made during the hydration pass is held: a computation in the pass that reads it — tracked or not — is served the pre-write value and replays when the pass ends. For the hook's own derived nodes that replay is the takeover; for the computation instantiating the component (a<Loading>boundary's children) it was a remount, re-creating the hydrated component as a client render and letting cache writes reach the DOM while the stream was still open. -
Updated dependencies [
8a13b15,cb63f07]:- @tanstack/solid-query@6.0.0-rc.5
spa v0.1.4
- Bumped
@remix-run/*dependencies:
ui v0.12.0
-
BREAKING CHANGE: The core component APIs provided by
@remix-run/uihave now moved to@remix-run/component.@remix-run/uinow provides headless, accessible UI primitives and animation utilities for Remix components.The package root and its JSX runtime, server-rendering, test, development-refresh, and styled-component exports are no longer available. Move runtime imports to
@remix-run/componentorremix/component:-import { createRoot, css, on } from '@remix-run/ui' +import { createRoot, css, on } from '@remix-run/component'
If
jsxImportSourcecurrently points to@remix-run/uiorremix/ui, move it to the corresponding component entrypoint:{ "compilerOptions": { "jsx": "react-jsx", - "jsxImportSource": "@remix-run/ui" + "jsxImportSource": "@remix-run/component" } }Primitive APIs retain their existing contracts but now use flat package subpaths:
-import * as accordion from '@remix-run/ui/accordion/primitives' +import * as accordion from '@remix-run/ui/accordion'
The package exports the
accordion,anchor,animation,combobox,listbox,menu,popover,select,tabs, andtogglesubpaths. The previous styledbreadcrumbs,button,checkbox,input, andradiomodules have been removed.@remix-run/uiis currently unstable and versioned independently. It is not available through theremixpackage and must be installed and imported directly. For an application that otherwise uses theremixpackage:npm i remix @remix-run/ui
If the asset server restricts imports with
allowPackages, add@remix-run/uinow that these APIs are imported from the standalone package:{ "assets": { - "allowPackages": ["remix"] + "allowPackages": ["@remix-run/ui", "remix"] } }Direct-package consumers should install both
@remix-run/componentand@remix-run/uiwhen they use the component runtime with the primitives or animation utilities.
- Bumped
@remix-run/*dependencies: