Skip to content

Release RC packages (rc) - #3192

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

Release RC packages (rc)#3192
github-actions[bot] wants to merge 1 commit into
nextfrom
changeset-release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 1, 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/babel-plugin@2.0.0-rc.6

Minor Changes

  • 82868c6: Support recursive lazy destructuring, lazy arrow parameters, per-read defaults, computed keys, rest views, standalone assignments, accessor-backed keyed-loop and catch patterns, and JavaScript-correct writes and updates across the Babel and native TSRX frontends.
  • c9c16cb: Add an experimental TSRX syntax frontend to both compilers. .tsrx sources (routed by filename with the new syntax: "auto" | "jsx" | "tsrx" option) desugar @if/@else, @for … @empty, @switch/@case, @try/@catch/@pending, @{} statement containers, and lazy destructuring (&{}/&[]) into the shared Solid JSX lowering, producing byte-identical output from both compilers. The Babel plugin loads the optional @tsrx/core peer dependency lazily; the native compiler ships the frontend behind the default-on tsrx cargo feature (statement containers in expression position are rejected with a structured diagnostic pending upstream oxc-tsrx support).

Patch Changes

  • 1e7fa73: Reject authored TSRX lazy destructuring in Solid while retaining deferred patterns generated for keyed loops and catch clauses.
  • bbff5e0: Direct value/checked (and other stateful DOM property) bindings no longer overwrite pre-hydration user input during the hydration claim pass ([Solid 2 regression] Direct value and checked bindings overwrite pre-hydration user input #3182). Hydratable compiled output now routes locked DOM properties through setProperty, which skips writes on hydrating nodes and carries the <select value> microtask and input/textarea nullish special cases.
  • cdbd584: Assign static <select value> values through the live DOM property so the matching option is selected consistently with reactive values.
  • 5a1abb3: Compile TSRX loops with an index but no explicit key using Solid's non-keyed callback shape.
  • 774aad5: Add compile-time scoped styles, CSS sidecar output, style class maps, and style refs to both TSRX frontends.

@solidjs/compiler@2.0.0-rc.6

Minor Changes

  • bb9dacb: Expose exact authored-to-generated TSRX ranges for editor tooling.
  • 82868c6: Support recursive lazy destructuring, lazy arrow parameters, per-read defaults, computed keys, rest views, standalone assignments, accessor-backed keyed-loop and catch patterns, and JavaScript-correct writes and updates across the Babel and native TSRX frontends.
  • 005d938: Recover common incomplete TSRX editor snapshots in the typecheck projection while keeping compilation strict.
  • c9c16cb: Add an experimental TSRX syntax frontend to both compilers. .tsrx sources (routed by filename with the new syntax: "auto" | "jsx" | "tsrx" option) desugar @if/@else, @for … @empty, @switch/@case, @try/@catch/@pending, @{} statement containers, and lazy destructuring (&{}/&[]) into the shared Solid JSX lowering, producing byte-identical output from both compilers. The Babel plugin loads the optional @tsrx/core peer dependency lazily; the native compiler ships the frontend behind the default-on tsrx cargo feature (statement containers in expression position are rejected with a structured diagnostic pending upstream oxc-tsrx support).

Patch Changes

  • 5a1abb3: Add a typed semantic IR stage and a compiler-owned TSRX typecheck projection with authored source maps, style metadata, and embedded CSS/script regions.
  • 38cab7a: Lower TSRX compiler output directly to Oxc AST without reparsing a generated text projection.
  • 1e7fa73: Reject authored TSRX lazy destructuring in Solid while retaining deferred patterns generated for keyed loops and catch clauses.
  • c9c16cb: Fix DOM insert markers to reference the following sibling's declared walk variable (_$insert(_el$, expr, _el$2)) instead of re-deriving the walk inline (_el$.firstChild), matching babel-plugin output. Affects dynamic slots followed by static content in both single-slot and per-slot parents.
  • bbff5e0: Direct value/checked (and other stateful DOM property) bindings no longer overwrite pre-hydration user input during the hydration claim pass ([Solid 2 regression] Direct value and checked bindings overwrite pre-hydration user input #3182). Hydratable compiled output now routes locked DOM properties through setProperty, which skips writes on hydrating nodes and carries the <select value> microtask and input/textarea nullish special cases.
  • cdbd584: Assign static <select value> values through the live DOM property so the matching option is selected consistently with reactive values.
  • 59da78e: Preserve direct JSX child shape and deferred callback evaluation when lowering TSRX control flow.
  • ed9993f: Preserve scoped selectors when a TSRX element contains dynamic children.
  • 5a1abb3: Compile TSRX loops with an index but no explicit key using Solid's non-keyed callback shape.
  • a836015: Rewrite prefix and postfix updates of TSRX lazy bindings to their deferred member targets, matching the Babel frontend.
  • f02ce64: Preserve nested TSRX deferred-binding rewrites in optimized native compiler builds.
  • 4da3fb4: Refresh pass: modules rendering document-shell elements (<html>/<head>/<body>) now take the @refresh reload path (decline + full reload) instead of registering hot-swappable components (2.0.0-rc.3 | Updates in Document.jsx won't HRM update #3151). A document shell can never hot-swap: the hydratable compile emits no client template for those elements — they are only recoverable from the hydration walk, so a post-hydration re-render throws a hydration mismatch — and their static markup/attributes exist only in the server-rendered HTML, so even a successful swap could not reflect the edit. Editing a Document/Shell component now triggers a full page reload that fetches a fresh server render.
  • 82868c6: Support TSRX statement containers in expression positions in the native compiler.
  • 774aad5: Add compile-time scoped styles, CSS sidecar output, style class maps, and style refs to both TSRX frontends.
  • d9a10b8: Support composing lowered .tsrx modules with the server-function directive transform while preserving path-stable function IDs.
  • 66cce98: Emit native TSRX source maps against authored .tsrx locations while leaving compiler-generated projection ranges unmapped.

@solidjs/diagnostics@2.0.0-rc.6

Patch Changes

@solidjs/element@2.0.0-rc.6

Patch Changes

  • Updated dependencies [c7c0ffb]
  • Updated dependencies [a964f03]
  • Updated dependencies [67bf03d]
  • Updated dependencies [7d559bf]
  • Updated dependencies [8f26066]
  • Updated dependencies [3c357fb]
  • Updated dependencies [bbff5e0]
  • Updated dependencies [c21b0a4]
  • Updated dependencies [3e48a75]
  • Updated dependencies [c42fc3f]
  • Updated dependencies [70a6180]
    • @solidjs/web@2.0.0-rc.6
    • solid-js@2.0.0-rc.6

@solidjs/h@2.0.0-rc.6

Patch Changes

@solidjs/html@2.0.0-rc.6

Patch Changes

@solidjs/signals@2.0.0-rc.6

Patch Changes

  • e13ca05: Attribution: async waterfall detection. A new flightStart dev hook announces every async flight as it registers; the engine chains flights whose recompute was caused by an upstream flight's landing AND whose origin post-dates that landing — origin being the earliest provable start (cooperative DEV.attribution.markFlight(promise, startedAt) stamps from preloaders/caches, first-seen object identity, else registration time), so preloaded work in the air alongside its upstream is parallel, never a waterfall link. Chains are recorded as queryable facts (DEV.attribution.waterfalls()); the ASYNC_WATERFALL diagnostic is the duration-gated verdict (each link ≥ waterfalls.minFlightMs, default 50ms): depth-2 chains emit at the new info severity on the structured channel only, depth-3+ escalate to a console warn, once per node with re-warn on growth. DiagnosticSeverity gains the "info" advisory tier. Zero production bytes (dev-hook site folds out; tree-shake guard covers it).
  • 432b089: Remove a duplicated SETTLE_WALK_UNINITIALIZED_SOURCE entry in the DiagnosticCode union (registered twice by parallel fixes; type-only, no behavior change).
  • aa03f76: Share the pending-backing visibility decision between per-key store reads and deep()/snapshot composition (deep()/snapshot readers and per-key readers disagree while a transaction holds store landings #3147). deep()/snapshot remain the speculative peek channel (they see ordinary pending staging synchronously), but a transition-HELD landing (2.0.0-rc until doesnt entangle the update resolving it with the action update #3164 fold) is now masked to the committed view for them exactly as it is for per-key readers, so the two reader families can no longer disagree while a transaction holds store landings.
  • fb5061c: Optimistic store truth-flights now own their transaction (Optimistic store truth-flight should own its transaction rather than rely on ambient adoption #3146): the flight declares it on the family at the ask (recording the causal transaction, or opening one when a stale stamp bare-returned the pre-throw entry), registers itself as its own async reporter so the transaction lives exactly as long as the question is unanswered — observed or not — and renews it per settle event. Bare optimistic writes (2.0.0-beta.26 | optimistic store unexpected pending state for store or dependency, while having an optimistic override #2951) and landings route into the declared transaction instead of whatever stamp last brushed the firewall, and the transitionBlocked store-half checks declared ownership instead of reconstructing it from _optimisticStores membership.
  • 6b743c6: Fix a one-frame isPending === true pulse leaking to direct render effects when a quiet refresh() landing is transition-held (A quiet refresh landing leaks a one-frame isPending=true pulse to render effects #3178). The quiet re-ask classification now survives the landing until the hold commits (the reveal), mirroring the Loading-window landing leaks a one-frame isPending=true pulse to live observers #2990 loading-window treatment, so companion synchronization never classifies the held old value as pending.
  • 1012859: Attribution: fold hot-scope spam into a culprit-keyed aggregate. HOT_SCOPE_RERUNS blames the victim scope, so one hot cause fanning out over many scopes (a selection write re-running every row, a timer leaking into a list) produced N warnings for one culprit. Now the first scope to go hot for a given root-cause key warns as before (single hot scopes keep exact current behavior), subsequent scopes in the same window are counted silently, and scope-count milestones (5, then 10x) emit one escalating HOT_SCOPE_FANOUT diagnostic naming the shared cause.
  • 71acf62: Register the SETTLE_WALK_UNINITIALIZED_SOURCE diagnostic code in the DiagnosticCode union (completes the settlePendingSource dev invariant).
  • 3e36d6d: Dev-only invariant diagnostic in settlePendingSource: walking a settle implies truth exists. A future call site that reaches the walk with an uninitialized source now fails loudly in development (SETTLE_WALK_UNINITIALIZED_SOURCE) instead of waking parked readers into a value that was never produced.
  • 202ee53: Complete the SETTLE_WALK_UNINITIALIZED_SOURCE dev invariant: register the diagnostic code in the DiagnosticCode union (the emit site referenced an unregistered code, failing typecheck), and exempt uninitialized sources that still have truth to reveal — a transition-held first landing (streamed hydration) parks its value in _pendingValue with the flag still set, and a comparator throw on that landing leaves the node errored; both were false positives.
  • e767ebd: Require initialization for the recompute-side settle walk (2.0.0-rc.4 | async createProjection commit is not seen through a memo over the projection — leaf reader behind createMemo(() => store.value) is never notified again #3181 follow-up). The walk compensates for a preempted landing, and a landing means truth exists — a node that leaves STATUS_PENDING while still STATUS_UNINITIALIZED (a projection driver whose first flight was superseded before any commit reached the observable store) has nothing to reveal. Waking parked readers there served them the projection's initial face: undefined data a read layer had promised was settled, which threw in unguarded reads and halted the reactive system (observed as the TanStack Query adapter's first loads wedging at their loading boundary on rc.5).

solid-js@2.0.0-rc.6

Patch Changes

  • 3e48a75: Dev console footer: perf/graph diagnostic codes now also point at the attribution surface (DEV.attribution.enable() — why-chains, costs(), waterfalls()) and the agent-loops skill. Breaks a discovery circularity: the sensitive perf detectors only fire while attribution is enabled, so the always-on graph warnings are the moment to teach that the deeper evidence channel exists.
  • Updated dependencies [e13ca05]
  • Updated dependencies [432b089]
  • Updated dependencies [aa03f76]
  • Updated dependencies [fb5061c]
  • Updated dependencies [6b743c6]
  • Updated dependencies [1012859]
  • Updated dependencies [71acf62]
  • Updated dependencies [3e36d6d]
  • Updated dependencies [202ee53]
  • Updated dependencies [e767ebd]
    • @solidjs/signals@2.0.0-rc.6

@solidjs/universal@2.0.0-rc.6

Patch Changes

  • 3a6836d: Expose diagnostic names for renderer-owned effects (Expose diagnostic names for renderer-owned effects in @solidjs/universal #3063). The public Renderer interface now accepts a trailing RendererEffectOptions ({ name?: string }) on effect, insert, and spreadspread forwards one shared name to its child insertion and internal ref/props effects — so dev attribution can correlate signal write → application computation → renderer effect → output mutation end-to-end. Renderer-created effects without a caller-supplied name get stable dev-only fallbacks ("renderer insert", "renderer spread props/ref/children", "renderer render", "renderer patch"); production builds tree-shake all of it via the _SOLID_DEV_ constant.
  • Updated dependencies [3e48a75]
    • solid-js@2.0.0-rc.6

@solidjs/web@2.0.0-rc.6

Patch Changes

test-integration@2.0.0-rc.6

Patch Changes

  • Updated dependencies [e13ca05]
  • Updated dependencies [432b089]
  • Updated dependencies [1e7fa73]
  • Updated dependencies [c7c0ffb]
  • Updated dependencies [a964f03]
  • Updated dependencies [67bf03d]
  • Updated dependencies [aa03f76]
  • Updated dependencies [7d559bf]
  • Updated dependencies [8f26066]
  • Updated dependencies [3c357fb]
  • Updated dependencies [fb5061c]
  • Updated dependencies [6b743c6]
  • Updated dependencies [bbff5e0]
  • Updated dependencies [cdbd584]
  • Updated dependencies [c21b0a4]
  • Updated dependencies [5a1abb3]
  • Updated dependencies [1012859]
  • Updated dependencies [82868c6]
  • Updated dependencies [3e48a75]
  • Updated dependencies [71acf62]
  • Updated dependencies [3e36d6d]
  • Updated dependencies [202ee53]
  • Updated dependencies [e767ebd]
  • Updated dependencies [c42fc3f]
  • Updated dependencies [774aad5]
  • Updated dependencies [c9c16cb]
  • Updated dependencies [3a6836d]
  • Updated dependencies [70a6180]
    • @solidjs/signals@2.0.0-rc.6
    • @solidjs/babel-plugin@2.0.0-rc.6
    • @solidjs/web@2.0.0-rc.6
    • solid-js@2.0.0-rc.6
    • @solidjs/universal@2.0.0-rc.6
    • @solidjs/h@2.0.0-rc.6
    • @solidjs/html@2.0.0-rc.6

@github-actions
github-actions Bot force-pushed the changeset-release/next branch 11 times, most recently from 368fa52 to ac63a48 Compare September 2, 2026 02:33
@github-actions
github-actions Bot force-pushed the changeset-release/next branch from ac63a48 to ba8020b Compare September 2, 2026 02:35
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