Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Upgrade solidjs beta 19 - #7813

Merged
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16
Jul 16, 2026
Merged

Upgrade solidjs beta 19#7813
birkskyum merged 21 commits into
solid-router-v2-prefrom
upgrade-solidjs-beta-16

Conversation

@brenelz

Copy link
Copy Markdown
Contributor

No description provided.

brenelzand others added 3 commits July 8, 2026 17:01
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.15
to 2.0.0-beta.16 across packages, examples, e2e apps, benchmarks, and
the pnpm overrides in pnpm-workspace.yaml.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.16
to 2.0.0-beta.17 across packages, examples, e2e apps, and benchmarks.
The scoped babel-preset-solid overrides in pnpm-workspace.yaml are
removed instead of bumped: vite-plugin-solid@3.0.0-next.5 and
@rsbuild/plugin-solid@2.0.0-beta.0 both declare
'>=2.0.0-beta.0 <2.0.0-experimental.0', which resolves to the newest
v2 beta on its own, while Solid 1.x consumers keep babel-preset-solid
1.x. A stale override here silently kept the beta.16 compiler (with
its broken omitLastClosingTag marker handling) in the build pipeline.
The @dom-expressions/* scope is added to minimumReleaseAgeExclude,
covering the renamed compiler package (@dom-expressions/babel-plugin-jsx,
formerly babel-plugin-jsx-dom-expressions).
Two unrelated loose specs are pinned to their locked versions because
re-resolving the lockfile pulled broken releases: @platformatic/flame
1.7.0 fails pnpm's trust-downgrade policy, and the nitro-nightly
'latest' tag depends on an unpublished h3 version.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
On the client, returning the loadPromise from MatchInner's pending
branch keeps a live async source in the tree whenever a match is
pending. Since Solid 2.0.0-beta.16, that routes every signal write
into a transition hold for the rest of the flush, which breaks
router-core's synchronous write-then-load flows: invalidate() on a
notFound match never re-ran the loader, and writes to unrelated
signals were held too.
SSR keeps the suspension so the streaming engine waits for the match
to settle; the client now renders just the pending component.
Verified on beta.17: without this, "re-runs loaders that throw
notFound() when invalidated via HMR filter" and "keeps rendering a
route notFoundComponent when loader returns notFound() after
invalidate" fail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jul 14, 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

Run ID: 351c5fb8-fc0a-4cae-8558-fb27732590d9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-solidjs-beta-16

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-cloudBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 8b7516c

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded12m 33sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded26sView ↗

☁️ Nx Cloud last updated this comment at 2026-07-16 13:48:21 UTC

@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🚀 Changeset Version Preview

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

🟩 Patch bumps

PackageVersionReason
@tanstack/solid-router2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-router-devtools2.0.0-beta.18 → 2.0.0-beta.19Changeset
@tanstack/solid-router-ssr-query2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start2.0.0-beta.24 → 2.0.0-beta.25Changeset
@tanstack/solid-start-client2.0.0-beta.23 → 2.0.0-beta.24Changeset
@tanstack/solid-start-server2.0.0-beta.23 → 2.0.0-beta.24Changeset

@socket-security

socket-securityBot commented Jul 14, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@brenelzbrenelz changed the title Upgrade solidjs beta 16Upgrade solidjs beta 17Jul 14, 2026
@codspeed-hq

codspeed-hqBot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 56%

⚠️Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 6 improved benchmarks
🆕 173 new benchmarks

Performance Changes

ModeBenchmarkBASEHEADEfficiency
Simulationssr request loop (react)330.5 ms77.9 ms×4.2
Simulationclient-side navigation loop (solid)72.6 ms43.9 ms+65.54%
Simulationssr request loop (vue)420.3 ms283.8 ms+48.07%
Simulationssr request loop (solid)174.6 ms151.7 ms+15.12%
Simulationclient-side navigation loop (react)56.3 ms50.3 ms+11.87%
Simulationclient-side navigation loop (vue)83 ms77.1 ms+7.64%
🆕Simulationssr not-found (vue)N/A169.5 msN/A
🆕Simulationssr redirect (vue)N/A68.3 msN/A
🆕Simulationssr head (vue)N/A326.9 msN/A
🆕Simulationssr loaders (vue)N/A136.9 msN/A
🆕Simulationssr selective (vue)N/A139.9 msN/A
🆕Simulationssr server-fn GET (vue)N/A74.5 msN/A
🆕Simulationssr server-fn POST (vue)N/A71.4 msN/A
🆕Simulationssr server-route middleware (vue)N/A63.3 msN/A
🆕Simulationssr server-route (vue)N/A60.8 msN/A
🆕Simulationssr streaming deferred (vue)N/A105.1 msN/A
🆕Simulationssr assets inline-css cdn (vue)N/A188.5 msN/A
🆕Simulationssr assets linked-css control (vue)N/A215.7 msN/A
🆕Simulationssr before-load chain (vue)N/A184.4 msN/A
🆕Simulationssr control-flow error 500 (vue)N/A197.8 msN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing upgrade-solidjs-beta-16 (8b7516c) with solid-router-v2-pre (67a9040)1

Open in CodSpeed

Footnotes

  1. No successful run was found on solid-router-v2-pre (2bb318b) 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.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 13, 2026 19:39
The lockfile entry for @rspack/binding@2.0.8 only listed the
darwin-arm64 binding, so linux CI runners had no matching native
binding and rspack fell back to a hoisted 2.0.0 binary, crashing the
bundle-size benchmark with a core/binding version mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… suspension
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Benchmarks

  • Commit: 9959c1462cda
  • Measured at: 2026-07-16T13:36:48.577Z
  • Baseline source: history:0b178a79e2e8
  • Dashboard: bundle-size history
ScenarioCurrent (gzip)Delta vs baselineInitial gzipRawBrotliTrend
react-router.minimal87.37 KiB+26 B (+0.03%)87.24 KiB273.88 KiB75.99 KiB▁██████▄▄▄▄█
react-router.full91.10 KiB+42 B (+0.05%)90.96 KiB285.78 KiB79.15 KiB▁██████▁▁▁▁█
solid-router.minimal40.98 KiB+5.45 KiB (+15.34%)40.85 KiB119.72 KiB36.94 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-router.full45.93 KiB+5.35 KiB (+13.18%)45.81 KiB134.95 KiB41.35 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-router.minimal53.07 KiB+69 B (+0.13%)52.94 KiB150.12 KiB47.70 KiB▂██████▁▁▁▁█
vue-router.full59.03 KiB+99 B (+0.16%)58.90 KiB168.88 KiB52.93 KiB▅██████▁▁▁▁█
react-start.minimal102.03 KiB+41 B (+0.04%)101.89 KiB322.31 KiB88.32 KiB▁██████▁▁▁▁█
react-start.deferred-hydration102.76 KiB+40 B (+0.04%)101.91 KiB323.69 KiB88.91 KiB▁██████▁▁▁▁█
react-start.full105.45 KiB+87 B (+0.08%)105.31 KiB332.24 KiB91.23 KiB▄██████▁▁▁▁█
react-start.rsbuild.minimal99.74 KiB+64 B (+0.06%)99.57 KiB316.74 KiB85.81 KiB▃██████▁▁▁▁█
react-start.rsbuild.minimal-iife100.14 KiB+67 B (+0.07%)99.98 KiB317.67 KiB86.21 KiB▃██████▁▁▁▁█
react-start.rsbuild.full102.96 KiB+70 B (+0.07%)102.79 KiB326.79 KiB88.60 KiB▃██████▁▁▁▁█
solid-start.minimal66.57 KiB+16.96 KiB (+34.18%)66.44 KiB198.37 KiB59.17 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.deferred-hydration70.42 KiB+17.55 KiB (+33.20%)66.94 KiB207.10 KiB62.79 KiB▁▁▁▁▁▁▁▁▁▁▁█
solid-start.full70.48 KiB+15.06 KiB (+27.17%)70.35 KiB209.95 KiB62.56 KiB▁▁▁▁▁▁▁▁▁▁▁█
vue-start.minimal71.13 KiB+104 B (+0.14%)71.00 KiB207.37 KiB63.03 KiB▇██████▁▁▁▁█
vue-start.full75.13 KiB+101 B (+0.13%)75.00 KiB220.01 KiB66.37 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-newBot commented Jul 14, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

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

@tanstack/eslint-plugin-router

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

@tanstack/eslint-plugin-start

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-rsc

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 8b7516c

brenelzand others added 3 commits July 13, 2026 20:10
…art-rscs
The pinned nitro-nightly@4.0.0-20251010 self-imports 'nitro/runtime/meta',
which under pnpm's isolated layout resolves to the hoisted nitro 3.x beta
and crashes vite config loading. Mirrors upstream fix e65f0c8 (#7809).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 2 commits July 14, 2026 17:30
…id to next.8
Bumps solid-js, @solidjs/web, and babel-preset-solid from 2.0.0-beta.17
to 2.0.0-beta.18 and vite-plugin-solid from 3.0.0-next.7 to 3.0.0-next.8
(which pins @dom-expressions/jsx-compiler to 0.50.0-next.21) across
packages, examples, e2e apps, and benchmarks.
vite-plugin-solid is added to minimumReleaseAgeExclude: Solid publishes
plugin prereleases in lockstep with the runtime betas, often minutes
before we bump, and pnpm's 24h release-age gate otherwise filters the
new version with a misleading NO_MATCHING_VERSION error.
Verified: solid-router unit tests (client + server modes), solid-start
basic e2e (80 passed), solid-router basic-file-based e2e (120 passed),
and all 17 bundle-size benchmark scenarios build cleanly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stead of asserting a single entry
vite-plugin-solid >= 3.0.0-next.6 emits a facade chunk for every
dynamically imported project module during SSR client builds (to keep
its own manifest lookups stable), and emitted chunks are flagged
`isEntry` just like the configured entry. The start manifest capture
plugin asserted the client bundle contains exactly one entry chunk, so
every solid-start app failed to build with "multiple entries detected".
The capture plugin now receives the resolved client entry path and picks
the entry chunk whose facadeModuleId matches it; other entry-flagged
chunks are treated as ordinary chunks. When no chunk matches, a single
entry is still accepted as before, and the multiple-entries error now
lists every entry chunk with its facade module to ease diagnosis.
Verified with fresh package builds: previously failing memory-server
solid benchmark targets, all 17 bundle-size scenarios, solid-start basic
build + e2e (80 passed), react-start basic build, and the
start-plugin-core unit suite (494 tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…n dev manifest test
Fixes the type tests after startManifestPlugin gained a required
getClientEntry option.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 17Upgrade solidjs beta 18Jul 15, 2026
brenelzand others added 2 commits July 15, 2026 08:48
…odule instead of asserting a single entry"
This reverts commit d0f4926.
next.10 ships the fix for the lazy facade entry reclassification under
rolldown-vite (solidjs/solid-vite-plugin#269): assigning isEntry = false
instead of deleting the property, so the reclassification actually
propagates through rolldown's bundle proxies and downstream plugins no
longer see every lazy facade chunk as an application entry. This is the
proper replacement for the reverted start-plugin-core workaround
(see a1ee163) — the strict single-entry assertion now holds again.
Verified: e2e/solid-start/basic build + e2e suite (80 passed),
solid-router test:unit client (814) + server (2) modes,
start-plugin-core unit tests (486).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11
vite-plugin-solid 3.0.0-next.11 peer-requires solid-js and @solidjs/web
>=2.0.0-beta.19, so the Solid v2 packages are bumped in lockstep across
all workspace pins (packages, examples, e2e, benchmarks).
Verified: e2e/solid-start/basic build succeeds — no "multiple entries
detected" error from start-manifest-capture-client-build; solid-router
test:unit client (814 passed) + server (2 passed) modes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@brenelzbrenelz changed the title Upgrade solidjs beta 18Upgrade solidjs beta 19Jul 16, 2026
@socket-security

socket-securityBot commented Jul 16, 2026

Copy link
Copy Markdown

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

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addedbabel-preset-solid@​2.0.0-beta.181001009096100

View full report

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

brenelzand others added 3 commits July 16, 2026 05:39
The prerender crawl runs inside `vite build` and SSRs /posts and every
crawled /posts/$postId. The `import.meta.env.VITE_NODE_ENV === 'test'`
switch to the local dummy server was inlined away at build time because
Playwright only sets that env for the test-time webServer, never for the
nx build target — so build-time SSR fetched the real
jsonplaceholder.typicode.com from CI. When that public API stalled, the
page never sent headers and the build died after undici's 5-minute
headers timeout (UND_ERR_HEADERS_TIMEOUT).
Fix, applied to the react/solid/vue basic apps alike:
- Resolve the posts/users API base URL at request time from process.env
(same pattern users.tsx already used) instead of build-time inlining,
so the built app honors whatever dummy server the harness is running.
- Add e2eStartDummyServerForBuild() to @tanstack/router-e2e-utils and
call it from the apps' vite configs in prerender mode: it starts the
dummy server on a free port for the lifetime of the build, exposes it
via VITE_NODE_ENV/VITE_EXTERNAL_PORT, and unrefs everything so the
build process can exit.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes (47 pages prerendered, dummy server used, tsc clean), prerendered
posts/index.html contains the expected content, and the server bundle
now keeps the runtime env check instead of a hardcoded external URL.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-solid to 3.0.0-next.11 [Self-Healing CI Rerun]
nx-cloud[bot]

This comment was marked as outdated.

@nx-cloudnx-cloudBot 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.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗


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

CI still hit UND_ERR_HEADERS_TIMEOUT during build:vite:prerender after
de2132a. The failure pattern (fetch logs print instantly, then a
5-minute stall) means the posts fetches still reached the real external
API in that run: the dummy server resolves in milliseconds in-process,
and a non-listening port would fail instantly with ECONNREFUSED.
One way that can happen: e2eStartDummyServerForBuild() early-returned
whenever VITE_EXTERNAL_PORT was already present in the environment,
skipping both the server start AND setting VITE_NODE_ENV — leaving the
runtime URL check pointing at jsonplaceholder. Guard on a globalThis
flag instead and always set both env vars.
Also, to make the next failure diagnosable and survivable:
- fetchPost/fetchPosts (react/solid/vue basic) now log the base URL they
fetch from, so CI output shows whether the dummy server was used.
- prerender configs set retryCount: 2 / retryDelay: 1000 so a transient
hang retries instead of failing the whole build.
Verified: nx run tanstack-solid-start-e2e-basic:build:vite:prerender
passes with "Fetching posts from http://localhost:<port>..." in the log
and 47 pages prerendered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@birkskyum
birkskyum merged commit ebe104c into solid-router-v2-preJul 16, 2026
26 checks passed
@birkskyum
birkskyum deleted the upgrade-solidjs-beta-16 branch July 16, 2026 14:17
@github-actionsgithub-actionsBot mentioned this pull request Jul 16, 2026
Sign up for freeto 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

@brenelz@birkskyum