Skip to content

chore(solid): bump to solid-js 2.0.0-rc.4 and @solidjs/vite-plugin 3.0.0-next.35 - #8189

Merged
brenelz merged 3 commits into
solid-router-v2-prefrom
upgrade-solidjs-rc-4
Aug 29, 2026
Merged

chore(solid): bump to solid-js 2.0.0-rc.4 and @solidjs/vite-plugin 3.0.0-next.35#8189
brenelz merged 3 commits into
solid-router-v2-prefrom
upgrade-solidjs-rc-4

Conversation

@brenelz

@brenelz brenelz commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Bumps the Solid 2 toolchain to today's releases and adapts to the rc.3/rc.4 changes:

  • solid-js / @solidjs/web → 2.0.0-rc.4, @solidjs/vite-plugin → ^3.0.0-next.35 across the monorepo.

  • Compiler package rename: babel-preset-solid ended at rc.2 (the compilers were lifted into the Solid monorepo as @solidjs/babel-plugin / @solidjs/compiler in rc.3). The webpack quickstart example and the with-webpack docs now use @solidjs/babel-plugin (its defaults are Solid-branded, so it is a drop-in). @rsbuild/plugin-solid is bumped to ^2.0.0-beta.2 so the rsbuild/rspack path compiles with the rc-line preset instead of the stale beta.34.

  • Server function transport (rc.4): the X-Server-Function header was removed — function ids now resolve from the request url pathname. The solid-start handler configures the endpoint mount, resolves ids via parseServerFunctionUrl, and rewrites non-canonical requests onto the canonical url shape; the client reference derives endpoint + id from the configured endpoint instead of a fixed base url (with a base, POSTs fetched the bare base and 404/500'd).

  • AbortSignal support: rc.4 added a per-call invocation channel (invoke(fn, { signal }, ...args)), i.e. the transport seam tracked in RFC 10 follow-up: support per-call server function cancellation solidjs/solid#3057. The client rpc now forwards a signal passed to a server function call through that channel, and the previously skipped abort e2e tests are re-enabled (GET + POST).

  • @tanstack/solid-query → ^6.0.0-rc.1 (catalog + the lockstep solid-query-devtools pins): the rc.1 adapter is rewritten onto Solid 2.0's native async model (feat(solid-query): rewrite the adapter onto Solid 2.0's native async model query#11308) and peer-requires solid-js >=2.0.0-rc.4, so it belongs with this bump. Verified: solid-router-ssr-query build clean, and all five query e2e suites pass (basic-solid-query router 3 + file-based 3, start basic-solid-query 6, query-integration 5, solid-query-layout-suspense 1).

Verification (all at prior baselines or better):

Suite Result
solid-router test:unit (client / server) 865 passed + 2 skipped / 4 passed, no type errors
solid-start-client test:unit 8 passed
e2e/solid-start/server-functions 29 passed + 1 (pre-existing) skipped — abort tests re-enabled and passing
e2e/solid-start/basic 80 passed + 4 skipped
e2e/solid-start/deferred-hydration (rsbuild path) 15 passed
e2e/solid-router/basic-file-based 120 passed
webpack quickstart example builds clean with @solidjs/babel-plugin

🤖 Generated with Claude Code

…0.0-next.35

Also:
- Migrate the webpack example and docs off the deleted babel-preset-solid
  onto @solidjs/babel-plugin (compiler packages were renamed in rc.3).
- Bump @rsbuild/plugin-solid to ^2.0.0-beta.2 so the rsbuild path compiles
  with the rc-line preset.
- Adapt the server function transport to rc.4: function ids resolve from
  the request url pathname (X-Server-Function header removed), and the
  client reference derives its url from the configured endpoint.
- Wire per-call AbortSignals through Solid's new invoke() channel and
  re-enable the previously skipped abort e2e tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 67c3a564-363d-423f-a05e-1f969bb6a2ae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nx-cloud

nx-cloud Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 0339745

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 12m 14s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 2m 13s View ↗

☁️ Nx Cloud last updated this comment at 2026-08-29 00:01:49 UTC

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

6 package(s) bumped directly, 0 bumped as dependents.

🟩 Patch bumps

Package Version Reason
@tanstack/solid-router 2.0.0-rc.3 → 2.0.0-rc.4 Changeset
@tanstack/solid-router-devtools 2.0.0-rc.3 → 2.0.0-rc.4 Changeset
@tanstack/solid-router-ssr-query 2.0.0-rc.3 → 2.0.0-rc.4 Changeset
@tanstack/solid-start 2.0.0-rc.3 → 2.0.0-rc.4 Changeset
@tanstack/solid-start-client 2.0.0-rc.3 → 2.0.0-rc.4 Changeset
@tanstack/solid-start-server 2.0.0-rc.3 → 2.0.0-rc.4 Changeset

@socket-security

socket-security Bot commented Aug 28, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​tanstack/​solid-query-devtools@​6.0.0-rc.11001007098100
Added@​rsbuild/​plugin-solid@​2.0.0-beta.2991007594100

View full report

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 00e96bfdd7f8
  • Measured at: 2026-08-28T23:50:38.577Z
  • Baseline source: history:0caf6b9a2b7e
  • Dashboard: bundle-size history

The following scenarios have bundle-size changes compared with the baseline:

Scenario Current (gzip) Delta vs baseline Initial gzip Raw Brotli Trend
react-router.minimal 83.84 KiB +63 B (+0.07%) 83.70 KiB 262.48 KiB 72.97 KiB ██▃▃▃▃▃▃▃▃▁▇
react-router.full 87.35 KiB +71 B (+0.08%) 87.22 KiB 274.19 KiB 75.97 KiB ██▃▃▃▃▃▃▃▃▁█
solid-router.minimal 40.23 KiB +7.10 KiB (+21.43%) 40.11 KiB 115.28 KiB 36.34 KiB ▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full 47.97 KiB +10.01 KiB (+26.36%) 47.85 KiB 139.15 KiB 43.14 KiB ▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal 49.58 KiB +112 B (+0.22%) 49.46 KiB 138.42 KiB 44.75 KiB ▅▅▁▁▂▂▂▂▂▂▁█
vue-router.full 55.19 KiB +88 B (+0.16%) 55.07 KiB 156.63 KiB 49.65 KiB ▄▄▁▁▂▂▂▂▂▂▁█
react-start.minimal 96.66 KiB -27 B (-0.03%) 96.52 KiB 304.69 KiB 83.79 KiB ██▅▅▆▆▆▆▆▆▃▁
react-start.deferred-hydration 97.38 KiB -35 B (-0.04%) 96.54 KiB 306.05 KiB 84.51 KiB ██▅▅▅▅▅▅▅▅▄▁
react-start.full 99.83 KiB -7 B (-0.01%) 99.70 KiB 314.41 KiB 86.53 KiB ██▄▄▄▄▄▄▄▄▂▁
react-start.rsbuild.minimal 99.97 KiB -15 B (-0.01%) 99.79 KiB 315.11 KiB 86.19 KiB ██▄▄▄▄▄▄▄▄▂▁
react-start.rsbuild.minimal-iife 100.37 KiB -18 B (-0.02%) 100.21 KiB 316.05 KiB 86.55 KiB ██▄▄▅▅▅▅▅▅▂▁
react-start.rsbuild.full 103.29 KiB -24 B (-0.02%) 103.12 KiB 325.20 KiB 88.98 KiB ██▄▄▄▄▄▄▄▄▃▁
solid-start.minimal 62.04 KiB +16.07 KiB (+34.94%) 61.92 KiB 181.87 KiB 55.63 KiB ▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration 65.73 KiB +16.67 KiB (+33.97%) 62.46 KiB 189.97 KiB 58.99 KiB ▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full 75.95 KiB +24.88 KiB (+48.72%) 70.02 KiB 225.55 KiB 67.83 KiB ▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal 65.63 KiB +3 B (+0.00%) 65.51 KiB 189.24 KiB 58.42 KiB ██▁▁▃▃▃▃▃▃▁▁
vue-start.full 69.44 KiB -17 B (-0.02%) 69.31 KiB 201.55 KiB 61.64 KiB ██▃▃▄▄▄▄▄▄▃▁

Current gzip tracks all emitted client JS chunks. Initial gzip tracks only the entry/import graph. Trend sparkline is historical current gzip ending with this PR measurement; lower is better.

@pkg-pr-new

pkg-pr-new Bot commented Aug 28, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/@tanstack/arktype-adapter@8189

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/@tanstack/eslint-plugin-router@8189

@tanstack/eslint-plugin-start

npm i https://pkg.pr.new/@tanstack/eslint-plugin-start@8189

@tanstack/history

npm i https://pkg.pr.new/@tanstack/history@8189

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/@tanstack/nitro-v2-vite-plugin@8189

@tanstack/react-router

npm i https://pkg.pr.new/@tanstack/react-router@8189

@tanstack/react-router-devtools

npm i https://pkg.pr.new/@tanstack/react-router-devtools@8189

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/@tanstack/react-router-ssr-query@8189

@tanstack/react-start

npm i https://pkg.pr.new/@tanstack/react-start@8189

@tanstack/react-start-client

npm i https://pkg.pr.new/@tanstack/react-start-client@8189

@tanstack/react-start-rsc

npm i https://pkg.pr.new/@tanstack/react-start-rsc@8189

@tanstack/react-start-server

npm i https://pkg.pr.new/@tanstack/react-start-server@8189

@tanstack/router-cli

npm i https://pkg.pr.new/@tanstack/router-cli@8189

@tanstack/router-core

npm i https://pkg.pr.new/@tanstack/router-core@8189

@tanstack/router-devtools

npm i https://pkg.pr.new/@tanstack/router-devtools@8189

@tanstack/router-devtools-core

npm i https://pkg.pr.new/@tanstack/router-devtools-core@8189

@tanstack/router-generator

npm i https://pkg.pr.new/@tanstack/router-generator@8189

@tanstack/router-plugin

npm i https://pkg.pr.new/@tanstack/router-plugin@8189

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/@tanstack/router-ssr-query-core@8189

@tanstack/router-utils

npm i https://pkg.pr.new/@tanstack/router-utils@8189

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/@tanstack/router-vite-plugin@8189

@tanstack/solid-router

npm i https://pkg.pr.new/@tanstack/solid-router@8189

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/@tanstack/solid-router-devtools@8189

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/@tanstack/solid-router-ssr-query@8189

@tanstack/solid-start

npm i https://pkg.pr.new/@tanstack/solid-start@8189

@tanstack/solid-start-client

npm i https://pkg.pr.new/@tanstack/solid-start-client@8189

@tanstack/solid-start-server

npm i https://pkg.pr.new/@tanstack/solid-start-server@8189

@tanstack/start-client-core

npm i https://pkg.pr.new/@tanstack/start-client-core@8189

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/@tanstack/start-fn-stubs@8189

@tanstack/start-plugin-core

npm i https://pkg.pr.new/@tanstack/start-plugin-core@8189

@tanstack/start-server-core

npm i https://pkg.pr.new/@tanstack/start-server-core@8189

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/@tanstack/start-static-server-functions@8189

@tanstack/start-storage-context

npm i https://pkg.pr.new/@tanstack/start-storage-context@8189

@tanstack/valibot-adapter

npm i https://pkg.pr.new/@tanstack/valibot-adapter@8189

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/@tanstack/virtual-file-routes@8189

@tanstack/vue-router

npm i https://pkg.pr.new/@tanstack/vue-router@8189

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/@tanstack/vue-router-devtools@8189

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/@tanstack/vue-router-ssr-query@8189

@tanstack/vue-start

npm i https://pkg.pr.new/@tanstack/vue-start@8189

@tanstack/vue-start-client

npm i https://pkg.pr.new/@tanstack/vue-start-client@8189

@tanstack/vue-start-server

npm i https://pkg.pr.new/@tanstack/vue-start-server@8189

@tanstack/zod-adapter

npm i https://pkg.pr.new/@tanstack/zod-adapter@8189

commit: 0339745

@codspeed-hq

codspeed-hq Bot commented Aug 28, 2026

Copy link
Copy Markdown

Hooray! CodSpeed harness just leveled up!

The base and head of this comparison were measured with different runner settings, so their benchmark values are not directly comparable.

What changed between base and head:

Re-run the base with the same settings to get a valid performance comparison.


Comparing upgrade-solidjs-rc-4 (0339745) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (5f65783) during the generation of this report, so 67a9040 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

…enchmark wire protocol

- @rsbuild/plugin-solid >= 2.0.0-beta.1 compiles through its own solid
  loader (native compiler) instead of registering babel-preset-solid, so
  the babel preset patch never fired and node-target rsbuild bundles were
  compiled in dom mode, throwing "Client-only API called on the server
  side" at import. Patch the loader's solid options (generate ssr on
  node targets, hydratable) alongside the legacy preset patch.
- The benchmark server-function request builders still spoke the pre-rc.4
  wire protocol (id in the removed X-Server-Function-Id header, bare
  endpoint url). Ids now ride the url pathname.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@nx-cloud nx-cloud Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

At least one additional CI pipeline execution has run since the conclusion below was written and it may no longer be applicable.

Nx Cloud is proposing a fix for your failed CI:

We fix the rsbuild SSR server startup crash ("Client-only API called on the server side") by extending the tanstackStart rsbuild plugin to also tap the native solid loader options, not just babel presets. With @rsbuild/plugin-solid@2.0.0-beta.2 defaulting to compiler='native', there is no babel-preset-solid entry in the babel chain to patch, so the SSR generate option was never applied and server bundles were compiled as DOM code. The added code path targets CHAIN_ID.ONE_OF.JS_MAIN > use('solid') and sets { generate: 'ssr', hydratable: true } for node targets, mirroring what the babel path already did for the old compiler.

Tip

We verified this fix by re-running tanstack-solid-start-e2e-basic:test:e2e--rsbuild-ssr.

Suggested Fix changes
diff --git a/packages/solid-start/src/plugin/rsbuild.ts b/packages/solid-start/src/plugin/rsbuild.ts
index b1f25322..4b0e6e19 100644
--- a/packages/solid-start/src/plugin/rsbuild.ts
+++ b/packages/solid-start/src/plugin/rsbuild.ts
@@ -75,6 +75,26 @@ export function tanstackStart(
             return babelOptions
           })
         }
+
+        // Handle native solid compiler (@rsbuild/plugin-solid >= 2.0.0-beta.2
+        // defaults to compiler='native' via solidLoader, not babel-preset-solid).
+        // The solid use lives at RULE.JS > ONE_OF.JS_MAIN > use('solid').
+        if (chain.module.rules.has(CHAIN_ID.RULE.JS)) {
+          const jsRule = chain.module.rule(CHAIN_ID.RULE.JS)
+          if (jsRule.oneOfs.has(CHAIN_ID.ONE_OF.JS_MAIN)) {
+            const jsMainRule = jsRule.oneOf(CHAIN_ID.ONE_OF.JS_MAIN)
+            if (jsMainRule.uses.has('solid')) {
+              jsMainRule.use('solid').tap((loaderOptions: any) => ({
+                ...loaderOptions,
+                solid: {
+                  ...loaderOptions?.solid,
+                  hydratable: true,
+                  generate: target === 'node' ? 'ssr' : 'dom',
+                },
+              }))
+            }
+          }
+        }
       })
     },
   }

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 38qR-hrLX

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

The rc.1 adapter is rewritten onto Solid 2.0's native async model
(TanStack/query#11308) and peer-requires solid-js >=2.0.0-rc.4, so it
rides this branch's rc.4 bump. Catalog entry plus the non-catalogued
solid-query-devtools pins move in lockstep.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelz
brenelz merged commit 22fd367 into solid-router-v2-pre Aug 29, 2026
26 checks passed
@brenelz
brenelz deleted the upgrade-solidjs-rc-4 branch August 29, 2026 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants