Skip to content

Merge main to solidv2#7105

Merged
birkskyum merged 63 commits intosolid-router-v2-prefrom
merge-main-to-solidv2
Apr 5, 2026
Merged

Merge main to solidv2#7105
birkskyum merged 63 commits intosolid-router-v2-prefrom
merge-main-to-solidv2

Conversation

@birkskyum
Copy link
Copy Markdown
Member

No description provided.

birkskyum and others added 30 commits March 19, 2026 14:49
* fix: better react HMR

* layout and fixes

* fix

* stabilize test

* stabilize test
* feat: transformAssets

replaces transformAssetUrls

* fix

* fix
---------

Co-authored-by: Birk Skyum <birk.skyum@pm.me>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud bot commented Apr 5, 2026

View your CI Pipeline Execution ↗ for commit 3339dbd

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

☁️ Nx Cloud last updated this comment at 2026-04-05 18:33:50 UTC

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

🚀 Changeset Version Preview

No changeset entries found. Merging this PR will not cause a version bump for any packages.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

Bundle Size Benchmarks

  • Commit: 5a81726f0a2f
  • Measured at: 2026-04-05T18:29:50.996Z
  • Baseline source: history:796406da66cf
  • Dashboard: bundle-size history
Scenario Current (gzip) Delta vs baseline Raw Brotli Trend
react-router.minimal 87.48 KiB 0 B (0.00%) 275.76 KiB 75.97 KiB ████▁▁▁▁▁▂▃
react-router.full 90.78 KiB 0 B (0.00%) 286.95 KiB 78.95 KiB ▆▆▆█▁▁▁▁▁▂▂
solid-router.minimal 39.78 KiB +4.22 KiB (+11.88%) 117.28 KiB 35.89 KiB ▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full 44.16 KiB +4.13 KiB (+10.33%) 130.95 KiB 39.83 KiB ▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal 53.38 KiB 0 B (0.00%) 153.07 KiB 47.94 KiB ████▁▁▁▁▁▂▄
vue-router.full 58.25 KiB 0 B (0.00%) 168.53 KiB 52.18 KiB ████▁▁▁▁▁▂▄
react-start.minimal 102.01 KiB 0 B (0.00%) 324.00 KiB 88.21 KiB ▅▅▅█▁▂▂▂▂▃▃
react-start.full 105.38 KiB 0 B (0.00%) 334.35 KiB 91.14 KiB ▆▆▆█▁▁▁▂▂▃▃
solid-start.minimal 59.95 KiB +10.28 KiB (+20.71%) 182.55 KiB 53.01 KiB ▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full 63.80 KiB +8.63 KiB (+15.63%) 194.07 KiB 56.30 KiB ▁▁▁▁▁▁▁▁▁▁▁█

Trend sparkline is historical gzip bytes ending with this PR measurement; lower is better.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Apr 5, 2026

More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 3339dbd

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Apr 5, 2026

Merging this PR will degrade performance by 9.69%

⚡ 3 improved benchmarks
❌ 2 regressed benchmarks
✅ 1 untouched benchmark

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
ssr request loop (vue) 514 ms 420.1 ms +22.36%
ssr request loop (solid) 226 ms 188.1 ms +20.14%
client-side navigation loop (solid) 64.2 ms 70 ms -8.38%
client-side navigation loop (react) 69.8 ms 56.4 ms +23.9%
client-side navigation loop (vue) 75.1 ms 83.2 ms -9.69%

Comparing merge-main-to-solidv2 (3339dbd) with solid-router-v2-pre (cde6e61)1

Open in CodSpeed

Footnotes

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

Copy link
Copy Markdown
Contributor

@nx-cloud nx-cloud bot left a comment

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 fixed two type/lint failures introduced during the main→solidv2 merge by aligning code with the solid-js v2 API. The unused replaceEqualDeep import was removed from headContentUtils.tsx, and benchmarks/client-nav/solid/app.tsx was corrected to use @solidjs/web for render, the two-argument form of createRenderEffect, and accessor unwrapping for For item callbacks.

Tip

We verified this fix by re-running @tanstack/solid-router:test:eslint, @benchmarks/client-nav:test:types.

Suggested Fix changes
diff --git a/benchmarks/client-nav/solid/app.tsx b/benchmarks/client-nav/solid/app.tsx
index ef90130f5e..46eb01d927 100644
--- a/benchmarks/client-nav/solid/app.tsx
+++ b/benchmarks/client-nav/solid/app.tsx
@@ -1,5 +1,5 @@
 import { For, createRenderEffect } from 'solid-js'
-import { render } from 'solid-js/web'
+import { render } from '@solidjs/web'
 import {
   Link,
   Outlet,
@@ -37,9 +37,10 @@ const routeSelectors = Array.from({ length: 6 }, (_, index) => index)
 const linkGroups = Array.from({ length: 4 }, (_, index) => index)
 
 function PerfValue(props: { value: () => number }) {
-  createRenderEffect(() => {
-    void props.value()
-  })
+  createRenderEffect(
+    () => props.value(),
+    () => {},
+  )
 
   return null
 }
@@ -67,13 +68,14 @@ function LinkPanel() {
     <>
       <For each={linkGroups}>
         {(groupIndex) => {
-          const itemsId = groupIndex === 0 ? 1 : groupIndex + 2
-          const ctxId = groupIndex + 1
+          const gi = groupIndex()
+          const itemsId = gi === 0 ? 1 : gi + 2
+          const ctxId = gi + 1
 
           return (
             <div>
               <Link
-                data-testid={groupIndex === 0 ? 'go-items-1' : undefined}
+                data-testid={gi === 0 ? 'go-items-1' : undefined}
                 to="/items/$id"
                 params={{ id: itemsId }}
                 replace
@@ -84,27 +86,27 @@ function LinkPanel() {
                 {`Items ${itemsId}`}
               </Link>
               <Link
-                data-testid={groupIndex === 0 ? 'go-items-2' : undefined}
+                data-testid={gi === 0 ? 'go-items-2' : undefined}
                 to="/items/$id"
                 params={{ id: 2 }}
                 replace
                 activeOptions={{ includeSearch: false }}
               >
-                {`Items 2 alt ${groupIndex}`}
+                {`Items 2 alt ${gi}`}
               </Link>
               <Link
-                data-testid={groupIndex === 0 ? 'go-search' : undefined}
+                data-testid={gi === 0 ? 'go-search' : undefined}
                 to="/search"
-                search={{ page: 1, filter: 'all', junk: `group-${groupIndex}` }}
+                search={{ page: 1, filter: 'all', junk: `group-${gi}` }}
                 replace
                 activeOptions={{ includeSearch: true }}
                 activeProps={{ class: 'active-link' }}
                 inactiveProps={{ class: 'inactive-link' }}
               >
-                {`Search ${groupIndex}`}
+                {`Search ${gi}`}
               </Link>
               <Link
-                data-testid={groupIndex === 0 ? 'go-ctx' : undefined}
+                data-testid={gi === 0 ? 'go-ctx' : undefined}
                 to="/ctx/$id"
                 params={{ id: ctxId }}
                 search={true}
@@ -117,16 +119,16 @@ function LinkPanel() {
                 from={searchRoute.fullPath}
                 to="/search"
                 search={(prev: { page: number; filter: string }) => ({
-                  page: prev.page + groupIndex + 1,
+                  page: prev.page + gi + 1,
                   filter: prev.filter,
-                  junk: `updater-${groupIndex}`,
+                  junk: `updater-${gi}`,
                 })}
                 activeOptions={{ includeSearch: true }}
               >
                 {({ isActive }) =>
                   isActive
-                    ? `Search updater active ${groupIndex}`
-                    : `Search updater inactive ${groupIndex}`
+                    ? `Search updater active ${gi}`
+                    : `Search updater inactive ${gi}`
                 }
               </Link>
             </div>
diff --git a/packages/solid-router/src/headContentUtils.tsx b/packages/solid-router/src/headContentUtils.tsx
index c1ed5e271c..30ae9540b9 100644
--- a/packages/solid-router/src/headContentUtils.tsx
+++ b/packages/solid-router/src/headContentUtils.tsx
@@ -2,7 +2,6 @@ import * as Solid from 'solid-js'
 import {
   escapeHtml,
   getAssetCrossOrigin,
-  replaceEqualDeep,
   resolveManifestAssetLink,
 } from '@tanstack/router-core'
 import { useRouter } from './useRouter'

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally VGZL-aCXz

Apply fix locally with your editor ↗   View interactive diff ↗



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

@birkskyum birkskyum merged commit 14d39ce into solid-router-v2-pre Apr 5, 2026
16 of 17 checks passed
@birkskyum birkskyum deleted the merge-main-to-solidv2 branch April 5, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment