Skip to content

Release RC packages (rc) - #4037

Open
github-actions[bot] wants to merge 1 commit into
nextfrom
changeset-release/next
Open

github-actions[bot] wants to merge 1 commit into
nextfrom
changeset-release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

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.

⚠️⚠️⚠️⚠️⚠️⚠️

next is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on next.

⚠️⚠️⚠️⚠️⚠️⚠️

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

  • a7fe050: A Loading boundary mounted by a pass that joined a hold appears at that hold's commit, its fallback never shown (D-13, U-3). Before, the boundary's content was caught as a fresh mount and the fallback published at once (or, for a <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 (latest in a <Show>) is still mainline and shows the fallback while the hold is up.
  • 61c4436: An async memo created inside a fresh Loading boundary over a held value no longer lands its first answer before the hold commits (D-12, U-1). The boundary still catches it and shows its fallback, and the hold still does not wait for it: its answer is staged with the hold and appears no earlier than the hold's commit. A boundary re-armed by on keeps owning what it collects outright.
  • 347f242: New dev check 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.
  • c12c420: An outer on-reset Loading boundary no longer waits for a flight its nested on-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.
  • 4bc7969: fix(signals): a later mainline store setter that does not write a held key publishes on the mainline tick — a setter's written keys are its own set, so its notify visits only the keys it wrote (D-8, U-8, Solid 2: reconcile repeats unchanged presence and holds unrelated updates #3743)
  • d3cddff: Attribution: createProjection records the owner in scope as createStore does, 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). The GRAPH_GROWTH message and its skill section now name a cache that never evicts as a source of the same growth.
  • c2513e3: A Loading boundary re-armed by on owns 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), and LOADING_ON_OUTSIDE_HOLD is reported only for a flight the change itself started.
  • 42c2568: A memo that reads a verdict memo (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

  • 51d005a: Server <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.
  • a61c929: A server component in a document marks its live holes only once the render has served something a later commit can replace: an async iterable it pumps, or a loading value or seed shown ahead of its landing. Until then a hole that resolves synchronously ships without lh markers, data-lha addresses 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.
  • Updated dependencies [a7fe050]
  • Updated dependencies [61c4436]
  • Updated dependencies [347f242]
  • Updated dependencies [c12c420]
  • Updated dependencies [4bc7969]
  • Updated dependencies [d3cddff]
  • Updated dependencies [c2513e3]
  • Updated dependencies [42c2568]
    • @solidjs/signals@2.0.0-rc.16

@solidjs/universal@2.0.0-rc.16

Patch Changes

  • Updated dependencies [51d005a]
  • Updated dependencies [a61c929]
    • solid-js@2.0.0-rc.16

@solidjs/web@2.0.0-rc.16

Patch Changes

  • f048691: A server component's hole that waits on async data keeps its handler-position markers (_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.
  • 96b615d: Remove the internal scriptNonce/styleNonce exports 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-plugin 3.0.0-next.50 or later with this release.
  • a0991b3: perf(frames): while the bind tier is announced or loading, the slot walk visits comments only and holds the frame, so _s:* attributes are scanned once, after the tier installs, instead of twice
  • 8092282: fix(frames): a link inside nested slot regions is claimed once per adoption instead of once per enclosing region, and a streaming document whose server components mint no tier writes an empty sc:tiers record so the client skips its per-element slot-marker scan
  • 8163bc3: Send data server functions called during hydration on a page with server components (With serverFunctions.components on, data server functions called during hydration never reach the network (frames intercept waits forever) #4033). The frames client holds a server-function call while the document may still deliver a boundary for it, and a data function never has one. A wait created under a hydration trace cached the trace's never-settling Promise stub, 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.
  • 1f3b5b4: fix(frames): a frame rendered off the live address marks only the holes that can change within its response (the document face's gate), so synchronous holes ship without lh markers, data-lha addresses or hole digests; the live address keeps every marker for its reconnect have-list
  • 0e0c043: Write one data-lha address 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.
  • 347f242: New dev check 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.
  • b972757: Live holes keep updating when their markup creates reactive scopes (a nested <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).
  • 8e2590e: Hydrating a <Loading> whose lazy() 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.
  • 8e2590e: respond(value, init) accepts every value a plain return does ([2.0 rc.15 + next] respond() encodes its value with JSON.stringify up front, so a bigint result 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 a bigint no longer throws inside respond() 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.
  • 8bd7a5b: Bind each server-component site to its own frame when the server minted the sites in a different order than the client mounts them ([2.0 rc.15] Server-component sites reached in a different order on the client bind to the wrong frame #4042). Document adoption took sites of one server function by ordinal (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.
  • a61c929: A server component in a document marks its live holes only once the render has served something a later commit can replace: an async iterable it pumps, or a loading value or seed shown ahead of its landing. Until then a hole that resolves synchronously ships without lh markers, data-lha addresses 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.
  • 36039e2: The shell-end marker is spliced in before </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.
  • 8d4a285: A cleanup that throws while a stream is torn down no longer crashes the server (renderToStream: an onCleanup that throws during signal abort crashes the server process #4029). Aborting renderToStream's signal disposes the render inside the abort listener, where a throw became an uncaught exception; the teardown now reports it through onError as a failed render (handling: "failed") and finishes.
  • Updated dependencies [51d005a]
  • Updated dependencies [a61c929]
    • solid-js@2.0.0-rc.16

@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

  • Updated dependencies [a7fe050]
  • Updated dependencies [f048691]
  • Updated dependencies [96b615d]
  • Updated dependencies [a0991b3]
  • Updated dependencies [8092282]
  • Updated dependencies [8163bc3]
  • Updated dependencies [1f3b5b4]
  • Updated dependencies [61c4436]
  • Updated dependencies [0e0c043]
  • Updated dependencies [51d005a]
  • Updated dependencies [347f242]
  • Updated dependencies [b972757]
  • Updated dependencies [8e2590e]
  • Updated dependencies [c12c420]
  • Updated dependencies [4bc7969]
  • Updated dependencies [d3cddff]
  • Updated dependencies [c2513e3]
  • Updated dependencies [8e2590e]
  • Updated dependencies [8bd7a5b]
  • Updated dependencies [a61c929]
  • Updated dependencies [36039e2]
  • Updated dependencies [8d4a285]
  • Updated dependencies [42c2568]
    • @solidjs/signals@2.0.0-rc.16
    • @solidjs/web@2.0.0-rc.16
    • solid-js@2.0.0-rc.16
    • @solidjs/babel-plugin@2.0.0-rc.16
    • @solidjs/h@2.0.0-rc.16
    • @solidjs/html@2.0.0-rc.16
    • @solidjs/universal@2.0.0-rc.16

@github-actions
github-actions Bot force-pushed the changeset-release/next branch 18 times, most recently from 02a7084 to 1235d99 Compare October 14, 2026 18:49
@github-actions
github-actions Bot force-pushed the changeset-release/next branch from 1235d99 to ab39522 Compare October 14, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants