From a068afd2edf9f1cf77844fa42b05dcfe9635f137 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 20:36:05 +0000 Subject: [PATCH] Version Packages (next) --- .changeset/pre.json | 22 ++++++++++++++++++- CHANGELOG.md | 53 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 75 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 4c17036..8e853cb 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -30,15 +30,20 @@ "compiler-next-37", "compiler-package-rename", "compiler-range-next-43", + "dedupe-solid-in-builds", "dev-asset-resolver-convergence", "dev-boundaries-ssr", "dev-css-and-client-manifest", "dev-external-conditions-fidelity", "dev-false-production-runtime", "dev-manifest-bridge-and-boundary-modules", + "dev-manifest-css-invalidation", + "dev-manifest-early-import", + "dev-manifest-no-debounce", "dev-middleware-data-address", "dev-middleware-full-dispatch", "dev-page-request-head-accept", + "dev-shared-css-order", "dev-ssr-entry-styles", "dev-ssr-inline-core", "dev-toolbar-inspector", @@ -81,8 +86,10 @@ "native-compiler-option", "native-event-seam", "native-server-function-transform", + "no-jsdom-default", "no-tla-server-env", "node-22-floor-signals-dedupe", + "node-entry-instrument-first", "nonce-local-projection", "observe-option", "path-addressed-server-functions", @@ -90,6 +97,7 @@ "plugin-package-rename", "production-error-boundary", "protect-configured-entry-chunks", + "query-before-extension", "rc10-live-address-preview-passthrough-prebundle", "reject-prefixed-server-env-keys", "remove-client-manifest-virtual", @@ -110,17 +118,25 @@ "server-environments-reload", "server-function-manifest-ids", "server-functions-client-runtime-prebundle", + "server-functions-client-subpath-prebundle", "server-functions-compiler", "server-functions-default-runtime", + "server-functions-host-environments", "server-functions-server-subpath-docs", "server-functions-turnkey", + "signals-optimize-include", "six-lions-joke", "solid-compiler-packages", "solid-rc13", "solid-rc14", + "solid-rc16", + "source-names-locations", "source-names", + "ssr-codegen-without-ssr-option", "ssr-inline-seroval", "ssr-inline-solid-consumers", + "ssr-webworker-worker-condition", + "start-client-setup", "start-css-filter", "start-env-typed", "start-instrument-early-server-import", @@ -128,6 +144,7 @@ "start-node-entry", "start-render-mode", "start-setup-hook", + "strip-entry-module-url", "support-tsrx-vite", "true-boxes-arrive", "ts-lazy-module-url", @@ -139,8 +156,11 @@ "vite8-scan-jsx-classic", "vitest-5-shared-server-projects", "vitest-browser-mode-no-jsdom-default", + "vitest-client-inline-runtime", "vitest-client-posture", "vitest-server-posture-opt-out", - "webworker-async-hooks-warning" + "vitest-ssr-no-browser-condition", + "webworker-async-hooks-warning", + "workspace-root-solid-pkgs" ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index c4e826f..635eec1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,58 @@ # Changelog +## 3.0.0-next.51 + +### Patch Changes + +- ff493b9: Production builds now dedupe `solid-js`, `@solidjs/web` and `@solidjs/signals` the same way dev does. A dependency with its own nested copy of Solid no longer adds a second runtime to the bundle, which broke context lookups (#112). +- 81555d8: Invalidate the dev manifest's CSS cache in isolated SSR runners after file changes. Subsequent server responses include the updated styles before hydration. Responses started before invalidation cannot restore old cache entries or remove newer pending requests. +- 00d6746: Lazy-route CSS no longer goes missing from dev SSR when a host imports `virtual:solid-manifest` before the dev server is listening (#414). Nitro's isolated runner does this at startup: the manifest had no origin to bake into the bridge URL yet, so it fell back to js-only resolution for the rest of the session. The bridge URL is now looked up on first use, without making the manifest import wait for the port, and a lookup made before the server listened is retried once it does. +- eecd5b6: Two dev fixes for the server function manifest, which the generated handler imports when another plugin owns the SSR environment (for example `@cloudflare/vite-plugin`): + + - The manifest no longer waits a fixed second on each load (#427). It reloads each time a new server function module is transformed, so startup, restarts and the first call to a new function each waited 1,000 ms. The debounce is only needed for builds, so dev now returns the current list. Each new module still invalidates the manifest before anything can call it. + - A deleted `"use server"` file, or one that no longer declares server functions, is now removed from the manifest. Before, the manifest kept importing it, and every request failed with `Failed to load url` until the dev server restarted. + +- b0887c0: Start mode dev: a stylesheet shared by the entry graph and a lazy component now keeps its first position in `
`, as in production. The dev shell renders it twice. The dev style patch used to drop the earlier copy, so the stylesheet moved after the lazy component's own styles and equal-specificity overrides in the lazy component lost. When both copies are server-rendered, the patch now drops the later one. +- 711c918: The plugin no longer sets `test.environment: 'jsdom'` for Vitest. Set the + environment yourself (`jsdom` or `happy-dom` for DOM component tests); Vitest's + own default is `node`. The default also applied to Node-only suites that loaded + the plugin through a shared config, which then ran under jsdom and failed in + ways that were hard to trace. The client test posture (browser conditions, DOM + codegen) is unchanged, and `environment: 'node'` still selects the server + posture. +- f3fb6f2: `start.node` with `start.instrument`: `dist/server/node.js` no longer loads `node:http` before the instrument module runs, so OpenTelemetry's HTTP instrumentation now records a server span for each request. The entry awaits `./server.js` first and loads its runtime from `node-runtime.js` afterwards. +- e01a6b3: Compile modules whose id has the extension after the query, such as unplugin-icons' `~icons/mdi/folder?width=2em.tsx`. These were left to Vite's default JSX transform, which produced React code (#206). Custom `extensions` are now also matched when the query contains a dot. +- 3954804: With `serverFunctions` on, the dev server now also pre-bundles `@solidjs/web/server-functions/client` (#428): + + - `@solidjs/web/frames`, used with `components: true`, imports the client runtime by that subpath. + - `@solidjs/web/server-functions/rich-args` imports it by that subpath too. + + When the app listed `@solidjs/web` in `optimizeDeps.exclude`, both loaded a second copy of the client from node_modules. Server components that mounted after boot resolved to `undefined`, and `enableRichArguments()` configured a client that compiled server functions did not use. + + A custom `runtime.client` is unchanged. + +- 84a681d: In dev, the server function manifest is now invalidated in every Vite environment, not just `client` and `ssr`. A host that imports the generated handler from a server environment of its own, such as Void's `void_worker` or a Cloudflare worker, kept a stale manifest before. A server function that only the client referenced then failed with "not part of the deployment" until the dev server restarted. +- dd21761: Pre-bundle `@solidjs/signals` up front under `vite dev` (and Vitest browser + mode) when the app can import it by name, i.e. it resolves from the project + root. The first optimizer pass otherwise inlines signals into `solid-js`, so a + direct `@solidjs/signals` import from a module the scanner never reached (a + browser-mode test file, a non-literal dynamic import) was a late discovery: + re-optimize and a full page reload ("Vite unexpectedly reloaded a test"). + Apps that only get signals transitively (pnpm's isolated layout) are + unchanged. +- ab61dcc: Require solid-js / @solidjs/web 2.0.0-rc.16 (peer floor) and compile with @solidjs/compiler / @solidjs/babel-plugin rc.16. rc.16 adds `reportRequestFailure` to @solidjs/web, and start mode's production handler now reports a contained failure (a middleware throw, a `setup` failure) through it, so the `configureServerErrors` hook hears it as `{ kind: 'request', handling: 'failed', event }` — and not at all when the runtime already reported that error (an uncaught in-process server-function call stays `server-function`/`thrown`), where rc.16's per-kind ledger would otherwise have heard it twice. JSX source locations (`sourceNames.locations`, which rc.16's compilers emit) now point at the authored source on both compiler backends: the JSX transform runs after the primitive-names, `lazy()` and refresh passes have reprinted the module, so its positions are mapped back through those passes' sourcemap. +- cc8c3bd: `sourceNames` gains a `locations` kind: a `file:line:col` next to every component, binding and primitive label — `createComponent(Home, props, "Home", "src/App.tsx:12:5")`, `createSignal(0, { name: "count", loc: "src/store.ts:3:22" })` — so diagnostics, `whyDidRun` chains and devtools point at the line that declared the node. On in dev; off for `observe` and production builds unless set (`{ locations: true }` or `sourceNames: true`), since those are shipped bundles. The plugin passes the resolved Vite root to both JSX compilers and to the primitives pass as `root`, so paths are root-relative and `http://localhost:5173/