diff --git a/.changeset/pre.json b/.changeset/pre.json index ef011fd0f..510481768 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -25,6 +25,7 @@ }, "changesets": [ "absorb-expressions", + "accept-empty-server-function-posts", "action-done-window-batch-adoption", "action-in-owned-scope-guard", "action-thenable-assimilation-settle", @@ -35,6 +36,8 @@ "add-serialization-subpath", "add-serialize-error-stacks-option", "add-server-functions-subpath", + "add-tsrx-semantic-ir", + "add-tsrx-tooling-mappings", "adopt-claim-scope-wire-id", "adopt-runtime-wire-protocols", "adopted-recall-claim-gate", @@ -52,6 +55,7 @@ "arch-tier2-consolidations", "async-arg-border-typing", "async-slot-args-value-tier", + "async-waterfall-attribution", "attribution-unstable-memo-output", "attribution-wide-write", "audit-driver-family-decline-multi-slot", @@ -81,6 +85,7 @@ "clean-bikes-teach", "client-only-preload-hints", "client-only-sibling-id-drift", + "client-store-hydration-pending", "coalesce-refresh-scheduling", "cold-field-extension-split", "commit-clears-transition-stamp", @@ -92,12 +97,14 @@ "contain-flight-collector-errors", "container-tier-projection-traces", "context-default-less-throws", + "continue-tsrx-semantic-ir", "core-hot-path-shape-alignment", "csr-hydration-seam-trim", "curly-rats-dress", "dedup-hydration-gate-boilerplate", "dedupe-disposal-dep-clearing", "dedupe-dispose-unobserved", + "dedupe-settle-walk-code", "dedupe-strict-read-diagnostics", "demote-boundary-primitives", "deprecate-server-writes", @@ -110,6 +117,7 @@ "dev-warn-unhandled-async", "diagnostic-code-prefix", "diagnostic-console-footers", + "disable-authored-tsrx-lazy-destructuring", "document-action-await-contract", "document-action-mutation-navigation-framing", "document-control-flow-callback-shapes", @@ -128,8 +136,10 @@ "element-foreign-owner-fallback", "eliminate-optimistic-revert-targets", "encode-failure-error-trailer", + "enforce-provide-event-single-invocation", "export-memo-options", "expose-enableExternalSource-loading-on", + "fail-untagged-2xx-responses", "fetch-option-retry-contract", "fill-cleanup-occurrence-scope", "fix-absorbed-compiler-parity", @@ -157,6 +167,7 @@ "fix-buffered-iterable-replay-latest", "fix-buffered-store-replay-claim", "fix-chunk-reader-quadratic-growth", + "fix-class-primitive-consistency", "fix-codec-options-declaration", "fix-composed-header-bounds", "fix-content-length-guard-bypass", @@ -164,15 +175,20 @@ "fix-create-projection-seed-inference", "fix-dead-transition-stamp-revival", "fix-deep-optimistic-store-pending", + "fix-deep-snapshot-held-landing-visibility", "fix-derived-event-locals-sharing", "fix-derived-manual-writes", "fix-derived-optimistic-store-fresh-data", "fix-derived-signal-same-write", "fix-derived-store-action-pending", + "fix-detached-eager-jsx-initial-fill", "fix-disposed-owner-leak-via-sibling-chain", "fix-disposed-read-lifecycle", + "fix-dom-insert-marker-anchors", "fix-dynamic-hydration-key-alignment", + "fix-dynamic-select-multiple", "fix-dynamic-shell-gating", + "fix-dynamic-svg-namespace", "fix-effect-waste-attribution", "fix-element-owner-markers", "fix-element-shadow-delegation", @@ -180,6 +196,7 @@ "fix-errored-derive-memo-parity", "fix-errored-loading-hydration-ids", "fix-flatten-needsunwrap-or", + "fix-flight-owned-transaction", "fix-flow-getter-eval-owner-parity", "fix-flow-hydration-key-alignment", "fix-flush-syncdepth-leak-on-throw", @@ -263,6 +280,7 @@ "fix-projection-store-root-chaining", "fix-projection-streaming-without-loading-boundary", "fix-projection-transition-isolation", + "fix-quiet-refresh-pending-pulse", "fix-reaction-zero-dep-dispose", "fix-reconcile-array-node-sync", "fix-reconcile-array-object-type-mismatch", @@ -294,9 +312,11 @@ "fix-server-effect-pending-read-loop", "fix-server-entry-client-types", "fix-server-fn-transport-correctness", + "fix-server-function-body-lifecycle", "fix-server-function-error-header-and-null-body-statuses", "fix-server-function-failure-signal", "fix-server-function-redirect-status-consistency", + "fix-server-function-stack-default", "fix-server-render-effect-defer", "fix-server-signal-overload-declarations", "fix-server-transparent-memo-id-shift", @@ -324,6 +344,8 @@ "fix-ssr-stream-rejected-fragment-hang", "fix-ssr-sync-memo-child-id-leak", "fix-ssrsource-client-hybrid-hydration", + "fix-stateful-prop-hydration-adoption", + "fix-static-select-value", "fix-storage-types-path", "fix-store-cold-write-batching", "fix-store-fold-scheduling-strand", @@ -334,6 +356,8 @@ "fix-store-symbol-keys-and-truncation-notify", "fix-storepath-prototype-pollution", "fix-strict-read-pending-store", + "fix-style-hydration-adoption", + "fix-superseded-flight-pending-sources", "fix-switch-nullish-match-slot", "fix-switch-settles-at-headers", "fix-sync-rejecting-thenable", @@ -342,6 +366,11 @@ "fix-transition-merge-optimistic-dup", "fix-transparent-insert-alignment", "fix-truth-author-draft-overlay-read", + "fix-tsrx-direct-child-parity", + "fix-tsrx-dynamic-child-style-scoping", + "fix-tsrx-index-loop-mode", + "fix-tsrx-lazy-update-rewrites", + "fix-tsrx-release-expansion-stack", "fix-universal-text-escaping", "fix-usehead-prelude-hydration-walk", "fix-version-skew-label-before-gate", @@ -373,11 +402,14 @@ "head-shell-hold-probe-seam", "hide-internal-type-exports", "hoist-web-protocol-components", + "hot-scope-fanout-aggregation", "html-element-claims", "hydrating-store-engine-seam", "hydration-primitive-wrappers", "identity-keyed-server-function-ids", + "ignore-inherited-dom-properties", "import-solid-signals-monorepo", + "improve-tsrx-lazy-destructuring", "include-web-cookie-declarations", "inv2-active-override-assertion", "ispending-loading-guard", @@ -434,6 +466,7 @@ "optimize-single-pending-node", "optimize-store-utilities", "option-a-mid-transition-observability", + "own-abandoned-server-result-promises", "owned-non-lazy-memo-autodispose", "pass-2-collapse", "patch-channel-pay-for-use", @@ -453,10 +486,12 @@ "pay-for-use-treeshaking-phase-2", "pay-for-use-treeshaking-phase-3", "pending-hold-provenance-and-a20", + "pending-server-store-reads", "per-root-boundary-resume", "per-row-patch-unbinds", "perf-2893-guard-cleanup", "perf-dep-revalidation-and-reconcile", + "perf-footer-attribution-discovery", "perfect-spies-pretend", "phase2-optimistic-code-reduction", "pin-prop-condition-memo-id-parity", @@ -464,6 +499,7 @@ "portal-client-only-island", "portal-marker-cleanup", "predigested-flight-outcome", + "preserve-bound-event-tuples", "preserve-store-symbol-snapshots", "projection-lists-drivable", "projection-root-entity-swap", @@ -478,16 +514,24 @@ "reconcile-symbol-keyed-nodes", "reconcile-walk-guard-hoist", "recover-from-halt-in-dev-workflows", + "recover-tsrx-editor-snapshots", "redesign-refresh-targets", "redirect-carrier-and-shim-removal", "redirect-target-scheme-floor", + "reduce-client-listener-state", + "reduce-server-projection-gating", "refactor-ssr-stream-blocking", "refactor-widen-prop-value-printwidth", "refine-server-boundary-settlement", + "refine-superseded-settle-invariant", "refresh-call-expr-registration", + "refresh-decline-document-shell-modules", "refresh-lifts-stale-manual-write-mask", "refreshable-type-alias", "refusals-commit-event-stub", + "register-settle-walk-diagnostic-code", + "remove-capturing-event-listeners", + "remove-create-effect-single-argument-overload", "remove-derived-initial-values", "remove-dist-exports-and-fix-dual-types", "remove-initial-ssr-source", @@ -512,6 +556,7 @@ "rude-pillows-tell", "rxcore-ssr-async-value", "sanitize-graph-failures", + "scope-deferred-server-function-results", "scope-function-children-holes", "serialization-decode-entry", "server-component-context-barrier", @@ -520,6 +565,7 @@ "server-function-data-address-split", "server-function-extension-surface", "server-function-guard-batch", + "server-function-guard-simplification", "server-function-http-hygiene", "server-function-path-addressing", "server-function-types-not-any", @@ -527,10 +573,14 @@ "server-memo-commit-liveness", "server-memo-scaffold-diet", "server-mock-csp-nonce", + "server-projection-errors", "server-slot-store-and-boundary-trims", "server-store-replacement-optimistic-noop", "setter-row-ops-tentative-lists", "settle-superseded-flight-dependents", + "settle-walk-dev-invariant", + "settle-walk-invariant-completion", + "settle-walk-requires-initialization", "sever-reveal-group-at-boundaries", "shallow-compiled-slot-channel", "shallow-slot-alignment-samevaluezero", @@ -585,19 +635,28 @@ "stream-demand-gate", "strict-untrack-warning", "strictread-untrack-parameter", + "strip-proto-key-at-argument-decode", "support-async-memo-callbacks-ssr", + "support-delegated-event-listener-objects", + "support-tsrx-expression-containers", + "support-tsrx-scoped-styles", + "support-tsrx-server-function-composition", + "support-tsrx-source-maps", "suppress-hydration-owned-scope-warnings", "sync-config-and-flush-nested-drain", "sync-flag-control-flow-memos", "thin-badgers-move", "tighten-show-match-jsx-types", "tiny-lions-jam", + "track-applied-classes", "transparent-devcomponent", "transparent-effect-option-typed", "transport-failure-on-foreign-response", "truncation-sweep-all-registry-refs", + "tsrx-syntax-frontend", "two-weeks-smell", "typed-preload-links", + "universal-renderer-effect-names", "until-flip-entanglement", "until-live-source-ack", "unwrap-status-error-nullish", @@ -616,6 +675,7 @@ "update-signals-0-13-8", "update-signals-bugfix-baseline", "validate-malformed-html-error", + "validate-prepare-request-return", "violet-stingrays-end", "wait-asset-seam", "warm-doors-flow", diff --git a/packages/babel-plugin/CHANGELOG.md b/packages/babel-plugin/CHANGELOG.md index b8219cab3..9e8e0c6ee 100644 --- a/packages/babel-plugin/CHANGELOG.md +++ b/packages/babel-plugin/CHANGELOG.md @@ -1,5 +1,17 @@ # @solidjs/babel-plugin +## 2.0.0-rc.6 + +### 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 (#3182). Hydratable compiled output now routes locked DOM properties through `setProperty`, which skips writes on hydrating nodes and carries the `` 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. +- 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. +- 774aad5: Add compile-time scoped styles, CSS sidecar output, style class maps, and style refs to both 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). + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/babel-plugin/package.json b/packages/babel-plugin/package.json index 74dc26637..6239c23ec 100644 --- a/packages/babel-plugin/package.json +++ b/packages/babel-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/babel-plugin", "description": "Babel compiler plugin for Solid templates", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "repository": { diff --git a/packages/compiler/CHANGELOG.md b/packages/compiler/CHANGELOG.md index cfacf3132..a8a7df6e8 100644 --- a/packages/compiler/CHANGELOG.md +++ b/packages/compiler/CHANGELOG.md @@ -1,5 +1,30 @@ # @solidjs/compiler +## 2.0.0-rc.6 + +### 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. +- bb9dacb: Expose exact authored-to-generated TSRX ranges for editor tooling. +- 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 (#3182). Hydratable compiled output now routes locked DOM properties through `setProperty`, which skips writes on hydrating nodes and carries the `` 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. +- 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. +- 4da3fb4: Refresh pass: modules rendering document-shell elements (``/``/``) now take the `@refresh reload` path (decline + full reload) instead of registering hot-swappable components (#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. +- 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). + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/compiler/npm/darwin-arm64/package.json b/packages/compiler/npm/darwin-arm64/package.json index 59c645a71..b1736ac6c 100644 --- a/packages/compiler/npm/darwin-arm64/package.json +++ b/packages/compiler/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-darwin-arm64", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "cpu": [ "arm64" ], diff --git a/packages/compiler/npm/darwin-x64/package.json b/packages/compiler/npm/darwin-x64/package.json index 160cd431a..25016069f 100644 --- a/packages/compiler/npm/darwin-x64/package.json +++ b/packages/compiler/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-darwin-x64", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "cpu": [ "x64" ], diff --git a/packages/compiler/npm/linux-arm64-gnu/package.json b/packages/compiler/npm/linux-arm64-gnu/package.json index 488d5e9dd..c1f7deb9a 100644 --- a/packages/compiler/npm/linux-arm64-gnu/package.json +++ b/packages/compiler/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-linux-arm64-gnu", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "cpu": [ "arm64" ], diff --git a/packages/compiler/npm/linux-x64-gnu/package.json b/packages/compiler/npm/linux-x64-gnu/package.json index 53ef21bc2..dd84a7dd6 100644 --- a/packages/compiler/npm/linux-x64-gnu/package.json +++ b/packages/compiler/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-linux-x64-gnu", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "cpu": [ "x64" ], diff --git a/packages/compiler/npm/wasm32-wasi/package.json b/packages/compiler/npm/wasm32-wasi/package.json index 1e218f2f4..9ddef70b5 100644 --- a/packages/compiler/npm/wasm32-wasi/package.json +++ b/packages/compiler/npm/wasm32-wasi/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-wasm32-wasi", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "main": "compiler.wasi.cjs", "files": [ "compiler.wasm32-wasi.wasm", diff --git a/packages/compiler/npm/win32-x64-msvc/package.json b/packages/compiler/npm/win32-x64-msvc/package.json index a7b649cf8..ab6c60dbf 100644 --- a/packages/compiler/npm/win32-x64-msvc/package.json +++ b/packages/compiler/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/compiler-win32-x64-msvc", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "cpu": [ "x64" ], diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 3b6e5bc3a..e64d301ee 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/compiler", "description": "Solid's native Oxc JSX compiler", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "repository": { @@ -62,11 +62,11 @@ "emnapi": "^1.11.3" }, "optionalDependencies": { - "@solidjs/compiler-darwin-x64": "2.0.0-rc.5", - "@solidjs/compiler-darwin-arm64": "2.0.0-rc.5", - "@solidjs/compiler-linux-x64-gnu": "2.0.0-rc.5", - "@solidjs/compiler-linux-arm64-gnu": "2.0.0-rc.5", - "@solidjs/compiler-win32-x64-msvc": "2.0.0-rc.5", - "@solidjs/compiler-wasm32-wasi": "2.0.0-rc.5" + "@solidjs/compiler-darwin-x64": "2.0.0-rc.6", + "@solidjs/compiler-darwin-arm64": "2.0.0-rc.6", + "@solidjs/compiler-linux-x64-gnu": "2.0.0-rc.6", + "@solidjs/compiler-linux-arm64-gnu": "2.0.0-rc.6", + "@solidjs/compiler-win32-x64-msvc": "2.0.0-rc.6", + "@solidjs/compiler-wasm32-wasi": "2.0.0-rc.6" } } diff --git a/packages/diagnostics/CHANGELOG.md b/packages/diagnostics/CHANGELOG.md index e76809f03..effc46bf4 100644 --- a/packages/diagnostics/CHANGELOG.md +++ b/packages/diagnostics/CHANGELOG.md @@ -1,5 +1,24 @@ # @solidjs/diagnostics +## 2.0.0-rc.6 + +### Patch Changes + +- Updated dependencies [e13ca05] +- Updated dependencies [432b089] +- Updated dependencies [aa03f76] +- Updated dependencies [fb5061c] +- Updated dependencies [6b743c6] +- Updated dependencies [989579e] +- Updated dependencies [1012859] +- Updated dependencies [bf97b8a] +- Updated dependencies [71acf62] +- Updated dependencies [32bc013] +- Updated dependencies [3e36d6d] +- Updated dependencies [202ee53] +- Updated dependencies [e767ebd] + - @solidjs/signals@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/diagnostics/package.json b/packages/diagnostics/package.json index bab14fbc6..98a0a60b9 100644 --- a/packages/diagnostics/package.json +++ b/packages/diagnostics/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/diagnostics", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "description": "Agent-consumable diagnostics harness for Solid: capture the dev-mode diagnostic and attribution channels as structured artifacts, with assertion helpers for tests and agent loops.", "author": "Ryan Carniato", "license": "MIT", @@ -52,7 +52,7 @@ "test:watch": "vitest watch tests" }, "dependencies": { - "@solidjs/signals": "^2.0.0-rc.5" + "@solidjs/signals": "^2.0.0-rc.6" }, "peerDependencies": { "vitest": ">=2.0.0" diff --git a/packages/element/CHANGELOG.md b/packages/element/CHANGELOG.md index beff04ae5..68cb1935b 100644 --- a/packages/element/CHANGELOG.md +++ b/packages/element/CHANGELOG.md @@ -1,5 +1,39 @@ # solid-element +## 2.0.0-rc.6 + +### Patch Changes + +- Updated dependencies [ee73e05] +- Updated dependencies [a7c6b8e] +- Updated dependencies [c7c0ffb] +- Updated dependencies [a964f03] +- Updated dependencies [67bf03d] +- Updated dependencies [7d559bf] +- Updated dependencies [8f26066] +- Updated dependencies [3c357fb] +- Updated dependencies [e220cfa] +- Updated dependencies [a1a68a7] +- Updated dependencies [bbff5e0] +- Updated dependencies [c21b0a4] +- Updated dependencies [d5fbfa3] +- Updated dependencies [57e3178] +- Updated dependencies [8d1ba82] +- Updated dependencies [3e48a75] +- Updated dependencies [b73635b] +- Updated dependencies [74a11e3] +- Updated dependencies [04b5b7f] +- Updated dependencies [f22d6e7] +- Updated dependencies [0a2fcf0] +- Updated dependencies [f4e490b] +- Updated dependencies [da1f7bf] +- Updated dependencies [c42fc3f] +- Updated dependencies [ca13ed1] +- Updated dependencies [2a6567d] +- Updated dependencies [70a6180] + - @solidjs/web@2.0.0-rc.6 + - solid-js@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/element/package.json b/packages/element/package.json index c22b206af..a8a112fc9 100644 --- a/packages/element/package.json +++ b/packages/element/package.json @@ -3,7 +3,7 @@ "description": "Webcomponents wrapper for Solid", "author": "Ryan Carniato", "license": "MIT", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "homepage": "https://github.com/solidjs/solid/blob/main/packages/element#readme", "repository": { "type": "git", @@ -30,8 +30,8 @@ "component-register": "^0.8.7" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.5", - "@solidjs/web": "^2.0.0-rc.5" + "solid-js": "^2.0.0-rc.6", + "@solidjs/web": "^2.0.0-rc.6" }, "devDependencies": { "solid-js": "workspace:*", diff --git a/packages/h/CHANGELOG.md b/packages/h/CHANGELOG.md index da4a4ab62..1a30372a1 100644 --- a/packages/h/CHANGELOG.md +++ b/packages/h/CHANGELOG.md @@ -1,5 +1,33 @@ # @solidjs/h +## 2.0.0-rc.6 + +### Patch Changes + +- Updated dependencies [ee73e05] +- Updated dependencies [c7c0ffb] +- Updated dependencies [a964f03] +- Updated dependencies [67bf03d] +- Updated dependencies [7d559bf] +- Updated dependencies [8f26066] +- Updated dependencies [3c357fb] +- Updated dependencies [e220cfa] +- Updated dependencies [a1a68a7] +- Updated dependencies [bbff5e0] +- Updated dependencies [c21b0a4] +- Updated dependencies [d5fbfa3] +- Updated dependencies [57e3178] +- Updated dependencies [b73635b] +- Updated dependencies [74a11e3] +- Updated dependencies [f22d6e7] +- Updated dependencies [0a2fcf0] +- Updated dependencies [f4e490b] +- Updated dependencies [c42fc3f] +- Updated dependencies [ca13ed1] +- Updated dependencies [2a6567d] +- Updated dependencies [70a6180] + - @solidjs/web@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/h/package.json b/packages/h/package.json index 5a46913f8..cc7e11913 100644 --- a/packages/h/package.json +++ b/packages/h/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/h", "description": "Hyperscript / h() factory for Solid — write components without compiled JSX.", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -76,7 +76,7 @@ "test": "vitest run" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-rc.5" + "@solidjs/web": "^2.0.0-rc.6" }, "devDependencies": { "@solidjs/web": "workspace:*", diff --git a/packages/html/CHANGELOG.md b/packages/html/CHANGELOG.md index 7445c1363..1bc0a4a3f 100644 --- a/packages/html/CHANGELOG.md +++ b/packages/html/CHANGELOG.md @@ -1,5 +1,33 @@ # @solidjs/html +## 2.0.0-rc.6 + +### Patch Changes + +- Updated dependencies [ee73e05] +- Updated dependencies [c7c0ffb] +- Updated dependencies [a964f03] +- Updated dependencies [67bf03d] +- Updated dependencies [7d559bf] +- Updated dependencies [8f26066] +- Updated dependencies [3c357fb] +- Updated dependencies [e220cfa] +- Updated dependencies [a1a68a7] +- Updated dependencies [bbff5e0] +- Updated dependencies [c21b0a4] +- Updated dependencies [d5fbfa3] +- Updated dependencies [57e3178] +- Updated dependencies [b73635b] +- Updated dependencies [74a11e3] +- Updated dependencies [f22d6e7] +- Updated dependencies [0a2fcf0] +- Updated dependencies [f4e490b] +- Updated dependencies [c42fc3f] +- Updated dependencies [ca13ed1] +- Updated dependencies [2a6567d] +- Updated dependencies [70a6180] + - @solidjs/web@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/html/package.json b/packages/html/package.json index 690230be3..59fcd5d59 100644 --- a/packages/html/package.json +++ b/packages/html/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/html", "description": "Tagged-template-literal templating for Solid — write components with no build step.", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -47,7 +47,7 @@ "test": "vitest run" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-rc.5" + "@solidjs/web": "^2.0.0-rc.6" }, "devDependencies": { "@solidjs/web": "workspace:*", diff --git a/packages/signals/CHANGELOG.md b/packages/signals/CHANGELOG.md index b7eff4087..cdf42bf7f 100644 --- a/packages/signals/CHANGELOG.md +++ b/packages/signals/CHANGELOG.md @@ -1,5 +1,23 @@ # @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 (#3147). deep()/snapshot remain the speculative peek channel (they see ordinary pending staging synchronously), but a transition-HELD landing (#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 (#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 (#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 (#3178). The quiet re-ask classification now survives the landing until the hold commits (the reveal), mirroring the #2990 loading-window treatment, so companion synchronization never classifies the held old value as pending. +- 989579e: Retire stale pending-source ownership when an async computation is superseded and re-parks. +- 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. +- bf97b8a: Keep uninitialized settle diagnostics silent for pending-source ownership transfers. +- 71acf62: Register the SETTLE_WALK_UNINITIALIZED_SOURCE diagnostic code in the DiagnosticCode union (completes the settlePendingSource dev invariant). +- 32bc013: Remove the unsupported single-argument `createEffect` overload so TypeScript requires a separate effect callback while preserving the development runtime diagnostic. +- 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 (#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). + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/signals/package.json b/packages/signals/package.json index 6031b3e14..f9dae40b0 100644 --- a/packages/signals/package.json +++ b/packages/signals/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/signals", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "description": "Solid's reactive primitives: signals, memos, effects, stores, and async-aware computations.", "author": "Ryan Carniato", "license": "MIT", diff --git a/packages/solid/CHANGELOG.md b/packages/solid/CHANGELOG.md index 79a908c02..6c9ae68bf 100644 --- a/packages/solid/CHANGELOG.md +++ b/packages/solid/CHANGELOG.md @@ -1,5 +1,30 @@ # solid-js +## 2.0.0-rc.6 + +### Patch Changes + +- a7c6b8e: Keep client-sourced stores pending during hydration until their first client result unless `seedLoadingValue` exposes the seed as commit zero. +- 8d1ba82: Suspend property, symbol, membership, enumeration, and descriptor reads on pending server projections. +- 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. +- 04b5b7f: Reduce server projection gating code while preserving pending, ready, and rejected reads +- da1f7bf: Keep ordinary property reads on rejected server projections throwing the original error instead + of exposing seed values, while preserving existing reflection and symbol behavior. +- Updated dependencies [e13ca05] +- Updated dependencies [432b089] +- Updated dependencies [aa03f76] +- Updated dependencies [fb5061c] +- Updated dependencies [6b743c6] +- Updated dependencies [989579e] +- Updated dependencies [1012859] +- Updated dependencies [bf97b8a] +- Updated dependencies [71acf62] +- Updated dependencies [32bc013] +- Updated dependencies [3e36d6d] +- Updated dependencies [202ee53] +- Updated dependencies [e767ebd] + - @solidjs/signals@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/solid/package.json b/packages/solid/package.json index 4a1491fa4..a71b59cd0 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -1,7 +1,7 @@ { "name": "solid-js", "description": "Reactive JavaScript library for building user interfaces. Compiles JSX to real DOM with fine-grained signal-based updates — no virtual DOM.", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -140,7 +140,7 @@ "performance" ], "dependencies": { - "@solidjs/signals": "^2.0.0-rc.5", + "@solidjs/signals": "^2.0.0-rc.6", "csstype": "^3.1.0", "seroval": "~1.5.4", "seroval-plugins": "~1.5.4" diff --git a/packages/test-integration/CHANGELOG.md b/packages/test-integration/CHANGELOG.md index 8774a6f3e..73fa2f53a 100644 --- a/packages/test-integration/CHANGELOG.md +++ b/packages/test-integration/CHANGELOG.md @@ -1,5 +1,64 @@ # test-integration +## 2.0.0-rc.6 + +### Patch Changes + +- Updated dependencies [ee73e05] +- Updated dependencies [e13ca05] +- Updated dependencies [a7c6b8e] +- 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 [e220cfa] +- Updated dependencies [a1a68a7] +- Updated dependencies [bbff5e0] +- Updated dependencies [cdbd584] +- Updated dependencies [c21b0a4] +- Updated dependencies [989579e] +- Updated dependencies [5a1abb3] +- Updated dependencies [1012859] +- Updated dependencies [d5fbfa3] +- Updated dependencies [82868c6] +- Updated dependencies [57e3178] +- Updated dependencies [8d1ba82] +- Updated dependencies [3e48a75] +- Updated dependencies [b73635b] +- Updated dependencies [74a11e3] +- Updated dependencies [04b5b7f] +- Updated dependencies [bf97b8a] +- Updated dependencies [71acf62] +- Updated dependencies [f22d6e7] +- Updated dependencies [32bc013] +- Updated dependencies [0a2fcf0] +- Updated dependencies [f4e490b] +- Updated dependencies [da1f7bf] +- Updated dependencies [3e36d6d] +- Updated dependencies [202ee53] +- Updated dependencies [e767ebd] +- Updated dependencies [c42fc3f] +- Updated dependencies [ca13ed1] +- Updated dependencies [774aad5] +- Updated dependencies [2a6567d] +- Updated dependencies [c9c16cb] +- Updated dependencies [3a6836d] +- Updated dependencies [70a6180] + - @solidjs/web@2.0.0-rc.6 + - @solidjs/signals@2.0.0-rc.6 + - solid-js@2.0.0-rc.6 + - @solidjs/babel-plugin@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 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/test-integration/package.json b/packages/test-integration/package.json index 6d97d1117..12df9a453 100644 --- a/packages/test-integration/package.json +++ b/packages/test-integration/package.json @@ -21,5 +21,5 @@ "gitly": "^2.2.1", "shelljs": "^0.8.5" }, - "version": "2.0.0-rc.5" + "version": "2.0.0-rc.6" } diff --git a/packages/universal/CHANGELOG.md b/packages/universal/CHANGELOG.md index 71b674955..3dd9574a8 100644 --- a/packages/universal/CHANGELOG.md +++ b/packages/universal/CHANGELOG.md @@ -1,5 +1,17 @@ # @solidjs/universal +## 2.0.0-rc.6 + +### Patch Changes + +- 3a6836d: Expose diagnostic names for renderer-owned effects (#3063). The public `Renderer` interface now accepts a trailing `RendererEffectOptions` (`{ name?: string }`) on `effect`, `insert`, and `spread` — `spread` 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 [a7c6b8e] +- Updated dependencies [8d1ba82] +- Updated dependencies [3e48a75] +- Updated dependencies [04b5b7f] +- Updated dependencies [da1f7bf] + - solid-js@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/universal/package.json b/packages/universal/package.json index 043b20e32..f7ccdfcc0 100644 --- a/packages/universal/package.json +++ b/packages/universal/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/universal", "description": "Solid's universal runtime for creating custom renderers", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -58,7 +58,7 @@ "test": "vitest run" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.5" + "solid-js": "^2.0.0-rc.6" }, "devDependencies": { "solid-js": "workspace:*" diff --git a/packages/web/CHANGELOG.md b/packages/web/CHANGELOG.md index ec7fb9225..382a9084e 100644 --- a/packages/web/CHANGELOG.md +++ b/packages/web/CHANGELOG.md @@ -1,5 +1,51 @@ # @solidjs/web +## 2.0.0-rc.6 + +### Patch Changes + +- ee73e05: Treat adapter-provided empty POST streams as zero-argument server function calls while continuing to refuse non-empty or invalidly tagged bodies. +- c7c0ffb: `provideEvent`'s invocation contract is enforced at HTTP dispatch (#3172). A hook that invoked the callback twice double-committed a mutation under a 200, and one that never invoked it answered a void success without running the function. A second invocation is now refused before the function body runs again, and both violations fail the request with a sanitized 500 (the hook is named in development), re-checked after the hook returns so a swallowed refusal cannot answer 200. +- a964f03: A 2xx the client transport cannot recognize now fails the call instead of resolving as `undefined` (#3173, revisiting #3087). A captive portal, WAF interstitial, or misrouted SPA index answering 200 with HTML was indistinguishable from a void result; the transport now requires a success response to carry the runtime's body-format tag (stamped on every encoded response, void included) or the verbatim-passthrough marker, and rejects anything else with the status and content-type named. Genuine void results and raw passthroughs are unaffected; the header alone is judge, never the body. +- 67bf03d: Handle primitive class values consistently between static, dynamic, and array forms (#3189). Dynamic numeric class values now stringify like the compiler's static template output on both client and server, and standalone booleans inside class arrays are ignored per clsx-style composition instead of emitting a literal "true" class. +- 7d559bf: Eager JSX evaluated during hydration whose template claim misses (e.g. stored in a variable behind an initially false `` — the server allocated its hydration ids but never rendered it) now materializes its dynamic inserts like a client render, so revealing the detached subtree later produces fully initialized DOM (#3163). Text-node adoption during hydration is restricted to nodes actually being claimed (connected or under a claim root). +- 8f26066: Preserve statically selected options when a dynamic `multiple` expression on `` microtask and input/textarea nullish special cases. +- c21b0a4: Reactive style bindings (`style()` and `setStyleProperty()`) no longer overwrite server-rendered inline styles during the initial hydration pass, consistent with class and attribute bindings (#3180). The first subsequent reactive update applies the client value. +- d5fbfa3: Ignore inherited properties in client-side style objects and JSX spreads, including special children and ref positions, to match SSR output. +- 57e3178: Prevent an abandoned sanitized promise in a server-function result from causing an unhandled rejection when another value fails to encode. +- b73635b: Keep bound handler tuples reusable across non-delegated events by leaving the user-provided tuple unchanged when installing a listener. +- 74a11e3: Reduce collision-safe client event listener bookkeeping while preserving handler identity and removal options +- f22d6e7: Remove replaced non-delegated event listener objects with their original capture option. +- 0a2fcf0: Keep generator bodies, stream pulls, and encoded result getters inside their server-function request event for HTTP dispatch and direct SSR calls. +- f4e490b: Judge decoded arguments, guarded results and navigation targets by what they + are rather than by how they are spelled, and never forward a `Content-Length` + that describes a body the transport replaced. + + Seven defects, five of them introduced by the guards added in #3168, #3170, + #3175 and #3176. Each fix removes a special case rather than adding one: the + argument walk stops for no prototype, the guard shell keeps only the flag that + reaches the wire, the scheme floor asks the URL parser instead of a regex, and + the event is awaited only when it is genuinely a promise. + + Runtime-composed SSR responses now discard stale body-framing headers, and + late streaming redirects emit a client script only for relative or HTTP(S) + targets. + +- c42fc3f: Decoded server-function arguments no longer carry `__proto__` as an own key (#3168). Both decode roads (plain JSON and the codec) preserved the key faithfully, so an ordinary `Object.assign` merge in a handler re-prototyped its result with attacker-supplied data. The key is now stripped recursively at the argument-decode seam, covering plain objects, arrays, and revived Map/Set entries, with cycle protection. +- ca13ed1: Dispatch delegated events to EventListenerObject handlers through their handleEvent method, including after replacing a bound tuple. +- 2a6567d: Update object-valued class bindings after in-place mutations by tracking a separate snapshot of the classes applied to each element. +- 70a6180: `prepareRequest`'s return is validated instead of replacing the request init wholesale (#3174). A hook returning a fresh object — the natural way to write "add an auth header" — silently dropped the argument payload, the abort signal, and every protocol header, and the call still dispatched. A returned init that lost the transport headers (or is not an object) now fails the call at the call site naming the hook; deliberate body/signal replacement over a spread init remains in contract. +- Updated dependencies [a7c6b8e] +- Updated dependencies [8d1ba82] +- Updated dependencies [3e48a75] +- Updated dependencies [04b5b7f] +- Updated dependencies [da1f7bf] + - solid-js@2.0.0-rc.6 + ## 2.0.0-rc.5 ### Patch Changes diff --git a/packages/web/package.json b/packages/web/package.json index fe4ac438a..8adbe1299 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,7 +1,7 @@ { "name": "@solidjs/web", "description": "Solid's web runtime: client rendering, hydration, SSR, and DOM-specific control flow (Portal, Dynamic).", - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -398,7 +398,7 @@ "seroval-plugins": "~1.5.4" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.5" + "solid-js": "^2.0.0-rc.6" }, "devDependencies": { "@codspeed/vitest-plugin": "^5.4.0",