Version Packages (next) - #372
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/next
branch
from
September 27, 2026 07:49
ddeb00a to
f692875
Compare
github-actions
Bot
force-pushed
the
changeset-release/next
branch
from
September 27, 2026 08:22
f692875 to
bb7ec46
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to next, this PR will be updated.
nextis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonnext.Releases
@solidjs/vite-plugin@3.0.0-next.45
Patch Changes
<endpoint>/live/<id>(aliveloop's connection), the way it already did for<endpoint>/data/<id>— mirroring the runtime'sparseServerFunctionAddress, one kind segment at most — so a live function whose module nothing has imported server-side yet is loaded on demand and the first call resolves instead of the runtime answering404 Unknown server function.vite previewpassestext/event-streamresponses and everything under the server-function mount through its compression middleware ascontent-encoding: identity, as it already did fortext/html: the middleware compresses from a ≥1KiB first write and then holds small writes in zlib's buffer, which would leave a live event stream's events (and the streaming codec's chunks) undelivered while the connection stays open. Underserve,solid-js/attributionand@solidjs/web/performance-tracksjoinoptimizeDeps.include, so a consumer the dependency scanner never crawls (a linked package, asolid-condition package vitefu excluded) importing one mid-session no longer triggers a late discovery → re-optimize → a second@solidjs/signalscore beside the onesolid-jswas bundled with.sourceNameswork rides on: the compilers renamecomponentNamestosourceNames(@solidjs/compilerrejects the old option, so a mismatched pair fails loudly), add thebindingskind whose trailing{ name }/ tag arguments oneffect/insert/spreadonly the rc.10@solidjs/webreads, ship the standalonetransformSourceNamespass behindsourceNames.primitives, and default their ownsourceNamestodev. The plugin keeps passing its resolved value explicitly (falsewhen every JSX kind is off), so its posture table — not the compilers' default — decides, andsolid.sourceNames: falsestays an opt-out undervite dev.observe: the compiler optioncomponentNamesis nowsourceNamesand covers components, compiled binding effects (span.textContent,div.children), and primitives. Component and binding names are the JSX compiler'ssourceNamesoption, passed to whichever backend compiles the JSX. Primitives are named by the native compiler's standalonetransformSourceNamespass —createSignal(0)declared ascountbecomescreateSignal(0, { name: "count" }),createCounter.valueinside a composed primitive — which the plugin runs ahead of the JSX transform and alone on plain.ts/.jsmodules (outsidenode_modules), for babel apps as well, so attribution chains, diagnostics owner paths, and the Chrome performance tracks read source identifiers instead ofsignal/computed/effect. Every kind defaults to on whenever the plugin compiles withdev(vite dev, ordev: true) or forobservebuilds, and to off for production builds, whose output is unchanged.solid.sourceNames: falseopts out of every kind (in dev too — the plugin always passes the resolved value, so the compilers' own dev default does not re-enable it),trueforces every kind on, and the object form{ components?, bindings?, primitives? }sets kinds individually with the rest at the posture default. Requires the@solidjs/compilerrelease carryingsourceNamesandtransformSourceNames(2.0.0-rc.10); on an older compiler the primitives pass is skipped with a one-time warning.ssr.target: 'webworker') and the plugin generates server code — SSR or client start mode, orserverFunctionson its own. That code imports@solidjs/web/storage, the one Solid module that needsnode:async_hooks(AsyncLocalStoragekeeps the request event live acrossawaits; there is no sync-scope fallback), so on a worker without Node compat the deploy failed with a bareNo such module "node:async_hooks"([2.0 rc.9] Start mode server handler requires node:async_hooks, fails on Workers runtimes without Node compat solid#3597, Shopify Oxygen — whose Vite plugin sets the webworker target). The warning names the requirement and both fixes: acompatibility_dateof 2026-08-04 or later (Cloudflare enablesnodejs_compatby default from that date, and Oxygen accepts the same date), or thenodejs_compatflag. It is emitted once per server build, from thessrenvironment'sbuildStart(the default builder resolves the config once per environment, so a config-time warning would repeat), and never in dev, where the ssr environment runs in Node. No new option; the condition is the resolvedssr.target.