Repository navigation
Release RC packages (rc) - #4037
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
changeset-release/next
branch
18 times, most recently
from
October 14, 2026 18:49
02a7084 to
1235d99
Compare
github-actions
Bot
force-pushed
the
changeset-release/next
branch
from
October 14, 2026 20:25
1235d99 to
ab39522
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/diagnostics@2.0.0-rc.16
Patch Changes
@solidjs/element@2.0.0-rc.16
Patch Changes
@solidjs/h@2.0.0-rc.16
Patch Changes
@solidjs/html@2.0.0-rc.16
Patch Changes
@solidjs/signals@2.0.0-rc.16
Patch Changes
<Show>that opens when a flight lands, flashed at the landing before the content). A first pass born into the flush's hold is now the hold's, not the boundary's: the content reads with the hold and the whole mount appears at its commit. A mount made by a verdict reader (latestin a<Show>) is still mainline and shows the fallback while the hold is up.onkeeps owning what it collects outright.SSR_LIVE_HOLE_LATCHED(A live hole silently stops re-emitting when its markup has a conditional on a property ({m.usage && …}) #4023): a live markup hole that shipped its markers and then stopped updating, because re-running it would create reactive scopes (most often a compiler condition memo for{m.usage && …}), is now named on the console, located by its component, instead of going quiet. Behavior is unchanged; hoisting the property into a local keeps the hole live.on-reset Loading boundary no longer waits for a flight its nestedon-reset boundary catches (D-14, U-4). A pending reader forwarded through both boundaries while neither was collecting was recorded in both, so when one tick re-armed both the outer kept its fallback until the inner's flight landed. A reader a nested collecting boundary holds is now that boundary's alone: the outer's content shows beside the inner's fallback as soon as the outer's own work lands.createProjectionrecords the owner in scope ascreateStoredoes, so a projection's property nodes carry an owner path ([2.0 rc.15 / next] GRAPH_GROWTH reports a keyed cache filling with new keys as a leak, and a cache has no way to say what it is #4035). TheGRAPH_GROWTHmessage and its skill section now name a cache that never evicts as a source of the same growth.onowns the content under it that reads a hold another change made (D-14, D-16, U-9). Before, that content joined the hold, so no fallback showed and the boundary reported pending, and a held tree under a re-armed boundary could redraw forever. Now the fallback shows with the re-arming change and the content reveals at the hold's commit, which no longer waits for it. A re-arm whose own change joins that hold still shows no fallback (the frame waits on the same data), andLOADING_ON_OUTSIDE_HOLDis reported only for a flight the change itself started.isPending/latest) shows the verdict now, beside a held value it also reads (F-6, U-10, [2.0 rc.15 + next] Held navigation never publishes delayed pending feedback #4050). Before, it re-entered the hold with that value and the verdict waited for the landing: a Provider's children memo over a router shell[<Feedback/>, outlet]never showed delayed pending feedback during a held navigation. It now behaves as the same probe read inline, or a render effect reading both, already did.solid-js@2.0.0-rc.16
Patch Changes
<For>keeps its rows across live-hole sweeps (Server components: a markup hole that re-emits re-renders every row of its list on every sweep #4056). A markup hole that re-emits (a live server component, a standing source) re-evaluated every row of a list on every write. During a sweep, a row whose item at the same index is unchanged (the same reference, or a shallow-equal object, as a live source's fresh snapshot usually is) now reuses the row it rendered on the previous sweep. Plain SSR and a server component's first render are unchanged. A row is a function of its item: an item mutated in place keeps its old row, and a row that reads outside data keeps the value it rendered with.lhmarkers,data-lhaaddresses or a ledger binding, because no channel op can ever address it. On a request/response page that is every hole: the 1,406-comment hackernews thread drops from 948 KB to 787 KB and renders in about half the server time.@solidjs/universal@2.0.0-rc.16
Patch Changes
@solidjs/web@2.0.0-rc.16
Patch Changes
_s:on:click) when a boundary outside the component resumes it. The retry renders under the component's claims arming instead of the resuming boundary's context, so the markup the client adopts carries the marker. Before, the chat example's Copy buttons shipped without it and were only bound after the end-of-response sweep re-sent the whole message list.scriptNonce/styleNonceexports from the server build. They stayed exported after fix(web): single-script surfaces take a CSPNonce; scriptNonce/styleNonce become internal #4016 only because@solidjs/vite-plugin≤ 3.0.0-next.49 imported them. 3.0.0-next.50 projects the nonce itself (fix(ssr): project the CSP nonce locally instead of importing scriptNonce/styleNonce solid-vite-plugin#409). Apps must use@solidjs/vite-plugin3.0.0-next.50 or later with this release._s:*attributes are scanned once, after the tier installs, instead of twicesc:tiersrecord so the client skips its per-element slot-marker scanPromisestub, so every later call for that function hung; and a call made after the page's last reveal (a hydration-end recompute) was released only by a reveal that never came. Waits made under a trace are no longer kept, and outstanding waits are released when hydration ends as well as on reveals.lhmarkers,data-lhaaddresses or hole digests; the live address keeps every marker for its reconnect have-listdata-lhaaddress on an element whose attribute was still pending inside a<Loading>in a live server component (Live holes: a pending attribute inside a Loading boundary writes data-lha twice, and the element's later attr updates are dropped #4032). When the in-tag hole escalated, the attribute capture was dropped but the address it had spliced into the tag stayed, and the boundary's resume minted a second one in front of it. The stale address rode every later attr op for the element, so the first op moved the element off its bound address and every op after it was dropped. The address now goes with the dropped capture.SSR_LIVE_HOLE_LATCHED(A live hole silently stops re-emitting when its markup has a conditional on a property ({m.usage && …}) #4023): a live markup hole that shipped its markers and then stopped updating, because re-running it would create reactive scopes (most often a compiler condition memo for{m.usage && …}), is now named on the console, located by its component, instead of going quiet. Behavior is unchanged; hoisting the property into a local keeps the hole live.<For>, a compiler condition memo such as{m.usage && …}, a component). Each re-render runs in a throwaway scope disposed once its markup is out; only a scope still waiting on async work closes the hole (A live hole silently stops re-emitting when its markup has a conditional on a property ({m.usage && …}) #4023).<Loading>whoselazy()module lands after hydration starts no longer moves its server-rendered nodes when the boundary has a sibling in the same fragment ([2.0 rc.15 + next] Hydration reverses static and lazy children in Loading after a sibling #4049). A sibling before the boundary used to swap the boundary's static and lazy children (A/C/B instead of A/B/C), and a sibling after it detached and re-attached the boundary's content, restarting CSS animations and blurring a focused input. The late claim now leaves server nodes in place when they already sit in the region, in order, around the nodes the insert was tracking.respond(value, init)accepts every value a plain return does ([2.0 rc.15 + next]respond()encodes its value withJSON.stringifyup front, so abigintresult that a plain return carries fine throws #4060). Its passthrough JSON body — read only by consumers without the client runtime — is now encoded when read instead of when the envelope is built, so abigintno longer throws insiderespond()and fails both the direct call and the HTTP call. Unscripted HTTP callers get the carried JSON body only when JSON carries the value faithfully; otherwise the value is encoded the same way as a plain return.id,id~2, …), so a site behind async setup, rendered after its neighbours on the server but mounted first on the client, adopted a neighbour's element, and its first update landed in the wrong frame. A document frame for a call with arguments now carries the call's argument hash (data-fa), and a mount takes the unclaimed site showing its own arguments, falling back to the first unclaimed site when none does. Argless calls render byte-identical markup.lhmarkers,data-lhaaddresses or a ledger binding, because no channel op can ever address it. On a request/response page that is every hole: the 1,406-comment hackernews thread drops from 948 KB to 787 KB and renders in about half the server time.</body>instead of being appended after</html>when the shell is a whole document (Shell-end marker is written after </html> in fully assembled documents (rc.15, #4002) #4030). Async render mode and a stream with nothing pending now end with</html>again; a shell without</body>(an embedded render) still gets the marker appended.renderToStream'ssignaldisposes the render inside theabortlistener, where a throw became an uncaught exception; the teardown now reports it throughonErroras a failed render (handling: "failed") and finishes.@solidjs/babel-plugin@2.0.0-rc.16
@solidjs/compiler@2.0.0-rc.16
board-example@0.0.1-rc.1
Patch Changes
server-dbmon-example@0.0.1-rc.0
Patch Changes
todos-server-example@0.0.1-rc.4
Patch Changes
test-integration@2.0.0-rc.16
Patch Changes