From 6f94f0699bcbcfc68b37a877580113a9dad16feb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 04:14:14 +0000 Subject: [PATCH] Version packages (rc) --- .changeset/pre.json | 55 ++++++++++++++++- examples/board/CHANGELOG.md | 40 ++++++++++++ examples/board/package.json | 2 +- examples/server-dbmon/CHANGELOG.md | 41 +++++++++++++ examples/server-dbmon/package.json | 2 +- examples/todos-server/CHANGELOG.md | 40 ++++++++++++ examples/todos-server/package.json | 2 +- packages/babel-plugin/CHANGELOG.md | 7 +++ packages/babel-plugin/package.json | 2 +- packages/compiler/CHANGELOG.md | 10 +++ .../compiler/npm/darwin-arm64/package.json | 2 +- packages/compiler/npm/darwin-x64/package.json | 2 +- .../compiler/npm/linux-arm64-gnu/package.json | 2 +- .../compiler/npm/linux-x64-gnu/package.json | 2 +- .../compiler/npm/wasm32-wasi/package.json | 2 +- .../compiler/npm/win32-x64-msvc/package.json | 2 +- packages/compiler/package.json | 14 ++--- packages/diagnostics/CHANGELOG.md | 58 ++++++++++++++++++ packages/diagnostics/package.json | 8 +-- packages/element/CHANGELOG.md | 40 ++++++++++++ packages/element/package.json | 6 +- packages/h/CHANGELOG.md | 32 ++++++++++ packages/h/package.json | 4 +- packages/html/CHANGELOG.md | 31 ++++++++++ packages/html/package.json | 4 +- packages/signals/CHANGELOG.md | 30 +++++++++ packages/signals/package.json | 2 +- packages/solid/CHANGELOG.md | 43 +++++++++++++ packages/solid/package.json | 4 +- packages/test-integration/CHANGELOG.md | 61 +++++++++++++++++++ packages/test-integration/package.json | 2 +- packages/universal/CHANGELOG.md | 18 ++++++ packages/universal/package.json | 4 +- packages/web/CHANGELOG.md | 46 ++++++++++++++ packages/web/package.json | 4 +- 35 files changed, 587 insertions(+), 37 deletions(-) create mode 100644 examples/server-dbmon/CHANGELOG.md diff --git a/.changeset/pre.json b/.changeset/pre.json index a8a0dc672..6e4dad33f 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -24,7 +24,8 @@ "@solidjs/diagnostics": "2.0.0-rc.2", "effect-example": "0.0.0", "todos-server-example": "0.0.0", - "board-example": "0.0.0" + "board-example": "0.0.0", + "server-dbmon-example": "0.0.0" }, "changesets": [ "a28-writes-visible-at-flush", @@ -54,6 +55,7 @@ "affects-captured-proxy-scope", "affects-single-key", "afraid-queens-divide", + "agent-facing-links-and-text", "ai-readiness-docs-handoff", "ai-readiness-docs-pass-2", "ai-readiness-docs-pass", @@ -86,6 +88,7 @@ "avoid-reconcile-key-recompute", "awaitable-refresh", "babel-plugin-ssr-hoist-props-ts-types", + "babel-source-names-locations", "bare-client-source-suspends-as-final-hole", "behavior-claims-delegate-glue", "behavior-claims-props", @@ -101,6 +104,7 @@ "boundary-accessor-return-types", "boundary-asset-scope-leak", "boundary-fallback-once-per-show", + "boundary-held-mount-u3", "boundary-primitives-internal", "brave-heaps-refuse", "bridge-keeps-shared-references", @@ -118,6 +122,7 @@ "bump-dom-expressions-next-5", "bump-dom-expressions-next-8", "carry-live-get-grant-across-dev-rebind", + "caught-notready-store-reader", "chunk-reader-hardening", "claim-after-initial-attributes-compilers", "claim-after-initial-attributes", @@ -125,6 +130,7 @@ "clean-bikes-teach", "cleanup-unwind-order", "cleanup-use-once-helpers", + "cleanup-write-during-landing", "client-error-hook", "client-only-preload-hints", "client-only-sibling-id-drift", @@ -145,6 +151,7 @@ "compiler-server-components-attribute-slot-positions", "compiler-source-locations", "compiler-source-names-bindings", + "compiler-source-names-locations", "compiler-source-names-option", "compiler-source-names-primitives", "compiler-spread-sources-array", @@ -160,16 +167,20 @@ "context-default-less-throws", "continue-tsrx-semantic-ir", "core-hot-path-shape-alignment", + "create-deferred", + "create-root-dispose-retention", "create-root-ownership-jsdoc", "cross-package-owner-fields", "csr-hydration-seam-trim", "curly-rats-dress", + "data-attribute-types", "dedup-hydration-gate-boilerplate", "dedupe-disposal-dep-clearing", "dedupe-dispose-unobserved", "dedupe-settle-walk-code", "dedupe-single-flight-source-ids", "dedupe-strict-read-diagnostics", + "deferred-retry-claims", "delegated-event-key-namespace", "demote-boundary-primitives", "deprecate-create-tracked-effect", @@ -199,7 +210,12 @@ "diagnostics-engine-release-token", "diagnostics-fanout-repair-projection", "diagnostics-owner-path-console-entry", + "diagnostics-remove-unserved-endpoint-methods", "diagnostics-responsiveness-gate", + "diagnostics-source-locations-diagnostics", + "diagnostics-source-locations-signals", + "diagnostics-source-locations-solid", + "diagnostics-source-locations-web", "direct-control-signal-reporting", "disable-authored-tsrx-lazy-destructuring", "docs-relocation-comment-paths", @@ -216,6 +232,7 @@ "dormant-memo-relink-on-reawaken", "drop-anchor-nav-attributes", "drop-compiler-legacy", + "drop-internal-nonce-helpers", "dynamic-async-iterable-source-type", "dynamic-binding-gate-prev-next", "dynamic-component-solid", @@ -593,6 +610,7 @@ "fold-runtime-wrappers", "for-hydration-id-parity", "format-ssr-hydration-followups", + "fragment-lazy-assets-resume", "fragment-ledger-one-reveal-owner", "fragment-reveal-policy-registry", "fragment-stylesheet-gate", @@ -608,12 +626,15 @@ "frames-address-source", "frames-assets-tier", "frames-attribute-slots", + "frames-bind-tier-single-scan", "frames-bind-tier", "frames-c12-fragment-error-outcome", "frames-c13-sweep-ops-chunk", + "frames-claim-nested-region-links-once", "frames-claim-through-hydrate-window", "frames-client-externalize-wire-layer", "frames-consume-live", + "frames-data-call-hydration", "frames-data-response-scoped", "frames-drop-dead-slot-nodes-writes", "frames-dynamic-handoff", @@ -636,6 +657,7 @@ "frames-residue-1-lean-reask", "frames-residue-3-every-fill-through-insert", "frames-residue-4-sref-table", + "frames-scoped-hole-sync", "frames-server-components-experimental", "frames-showing-refetch-settles-on-apply", "frames-single-flight-wiring", @@ -645,7 +667,9 @@ "frames-tier-mechanism", "frames-trace-update-site-wait", "frames-traces-tier", + "frames-unmarked-plain-frames", "freeze-awaited-render-head", + "fresh-boundary-child-held-u1", "fresh-loading-fallback-in-flush", "fuzzy-queens-retire", "gate-child-companion-walk", @@ -656,6 +680,7 @@ "golf-effect-ownership-flag", "graph-growth-held-navigation", "graph-growth-outlived-navigation", + "graph-growth-session-snapshot", "graph-growth", "graph-size-diagnostics", "guard-error-carried-failure-channels", @@ -668,7 +693,9 @@ "heap-mark-incremental", "held-branch-reads-its-transaction", "held-derivation-not-a-proposal", + "held-error-waits-for-frame", "held-truth-masks-lane-passes-only", + "hello-world-under-10kb", "hide-internal-type-exports", "hoist-web-protocol-components", "hold-consistency-batch-2", @@ -745,8 +772,14 @@ "lean-ssr-owner-runtime", "lemon-mails-lick", "live-address-event-stream-framing", + "live-attr-escalation-address", "live-chaos-reconnect-knob", + "live-for-async-reads", + "live-for-row-ops", "live-hole-baseline-attr-addresses", + "live-hole-for-keeps-rows", + "live-hole-latched-check", + "live-hole-sweep-scopes", "live-holes-server-support", "live-reference-sync-call-type", "live-response-lifetime-per-scope-takeover", @@ -757,6 +790,7 @@ "live-takeover-yields-adopted-value", "loading-errored-composition-escape", "loading-latest-shared-source-3892", + "loading-lazy-sibling-order", "loading-on-follows-frame", "loading-on-keyed-boundary-not-born-held", "loading-on-latest-is-a-capability", @@ -778,11 +812,14 @@ "missing-effect-fn-loud-failure", "mode-specific-control-flow-callbacks", "module-server-exports-register-by-value", + "morph-drops-stale-text", + "morph-skips-identical", "move-loading-wrapper-into-flow", "move-to-beta", "multi-root-pending-boundaries", "multi-source-single-flight", "multisite-server-component-hydration", + "nested-on-reset-boundary-u4", "nested-region-refetch-3894", "nested-stream-demand-gate-teardown", "nohydration-lazy-maparray-deps", @@ -849,6 +886,7 @@ "per-render-serialize-latch", "per-root-boundary-resume", "per-row-patch-unbinds", + "per-setter-written-keys-u8", "perf-2893-guard-cleanup", "perf-dep-revalidation-and-reconcile", "perf-footer-attribution-discovery", @@ -878,6 +916,7 @@ "projection-leaf-companions-die-with-firewall", "projection-leaf-release", "projection-lists-drivable", + "projection-owner-graph-growth", "projection-root-entity-swap", "projection-root-write-overlay", "projection-sync-throw-reaches-readers", @@ -890,6 +929,7 @@ "rc-api-freeze-pass", "reaction-rearm-replaces", "read-every-body-the-transport-tees", + "rearm-boundary-scope-u9", "rebuild-buffered-request-from-parts", "recompute-preserves-disposed", "reconcile-array-object-shape-guard", @@ -954,6 +994,7 @@ "require-client-source-commit-zero", "require-seroval-1-5-4", "require-seroval-1-6", + "respond-bigint-lazy-body", "respond-envelope-is-a-response", "response-head-lifecycle", "responsive-preload-links", @@ -962,6 +1003,7 @@ "reveal-ssr-streaming-support", "reveal-string-ssr-collapsed", "reveal-together-nested", + "revealed-fragment-before-settle", "revert-complete-store-seeds", "revert-dynamic-deferred-creation", "revert-hydrate-wait-for-records", @@ -973,6 +1015,7 @@ "scope-function-children-holes", "scope-nested-deferred-results-without-mutation", "scope-property-read-holes", + "seedless-derived-stores", "select-multiple-async-value", "serialization-decode-entry", "seroval-1-6-8-streams", @@ -981,12 +1024,14 @@ "server-boundary-records", "server-component-context-barrier", "server-component-hydration-installs-from-frames", + "server-component-site-order", "server-dev-build", "server-diagnostics-artifact", "server-diagnostics-channel", "server-error-hook", "server-first-value-lock", "server-fn-undefined-before-string", + "server-function-argument-types-and-nosniff", "server-function-call-observers", "server-function-data-address-split", "server-function-extension-surface", @@ -1014,6 +1059,7 @@ "settle-walk-dev-invariant", "settle-walk-invariant-completion", "settle-walk-requires-initialization", + "settled-document-holes", "sever-reveal-group-at-boundaries", "shallow-compiled-slot-channel", "shallow-slot-alignment-samevaluezero", @@ -1023,6 +1069,7 @@ "shared-cacheable-get-skips-trace", "shared-effect-status-notifier", "shared-read-predicates", + "shell-end-marker-inside-body", "shell-gate-first-apply", "signals-dev-cjs", "signals-disposed-stay-disposed", @@ -1063,12 +1110,15 @@ "snapshot-boundary-assets-serialization", "snapshot-hydration-safety", "snapshot-trailing-holes", + "solid-2-0-agent-primer", "solid-native-frame-protocol-identifiers", "solid-query-gate-packs-compiler", + "solid-ships-diagnostics-json", "source-names-parity", "spec-a33-fallback-hold", "spread-direct-sources", "spread-fewer-nodes", + "spread-ref-factory-ssr", "ssr-boundary-resolve-scope-3414", "ssr-capture-source-locations", "ssr-component-names", @@ -1141,6 +1191,7 @@ "store-treeshakeable-optimism", "store-untracked-born-held", "store-write-floor-narrow", + "stream-abort-cleanup-throw", "stream-demand-gate", "stream-error-drops-settled-children", "strict-untrack-warning", @@ -1178,6 +1229,7 @@ "until-confirmed-derivation", "until-flip-entanglement", "until-live-source-ack", + "until-truth-reads-split", "untracked-async-handler", "untracked-read-after-await", "untracked-verdict-snapshot", @@ -1199,6 +1251,7 @@ "use-head-json-script-escape", "validate-malformed-html-error", "validate-prepare-request-return", + "verdict-memo-under-held-memo-u10", "verdict-mount-first-pass-mainline", "verdict-pull-outside-window", "verdict-reader-first-observer-holds-the-flight", diff --git a/examples/board/CHANGELOG.md b/examples/board/CHANGELOG.md index 9d4dcb614..b0490e9a5 100644 --- a/examples/board/CHANGELOG.md +++ b/examples/board/CHANGELOG.md @@ -1,5 +1,45 @@ # board-example +## 0.0.1-rc.1 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [467ac97] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - solid-js@2.0.0-rc.16 + - @solidjs/web@2.0.0-rc.16 + ## 0.0.1-rc.0 ### Patch Changes diff --git a/examples/board/package.json b/examples/board/package.json index 3cce585e7..917f40d89 100644 --- a/examples/board/package.json +++ b/examples/board/package.json @@ -1,7 +1,7 @@ { "name": "board-example", "description": "A shared board over one live data source: lists of cards that several tabs drag at once, read into an optimistic store, with every write acknowledged on the stream", - "version": "0.0.1-rc.0", + "version": "0.0.1-rc.1", "private": true, "author": "Ryan Carniato", "license": "MIT", diff --git a/examples/server-dbmon/CHANGELOG.md b/examples/server-dbmon/CHANGELOG.md new file mode 100644 index 000000000..0f8d92120 --- /dev/null +++ b/examples/server-dbmon/CHANGELOG.md @@ -0,0 +1,41 @@ +# server-dbmon-example + +## 0.0.1-rc.0 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [467ac97] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - solid-js@2.0.0-rc.16 + - @solidjs/web@2.0.0-rc.16 diff --git a/examples/server-dbmon/package.json b/examples/server-dbmon/package.json index ca15fe37b..01f1a4dae 100644 --- a/examples/server-dbmon/package.json +++ b/examples/server-dbmon/package.json @@ -1,7 +1,7 @@ { "name": "server-dbmon-example", "description": "DBMon as a live server component: a monitoring dashboard whose data lives on the server, rendered there and streamed to every open tab as it changes", - "version": "0.0.0", + "version": "0.0.1-rc.0", "private": true, "author": "Ryan Carniato", "license": "MIT", diff --git a/examples/todos-server/CHANGELOG.md b/examples/todos-server/CHANGELOG.md index f7eee87ad..bb6427f6a 100644 --- a/examples/todos-server/CHANGELOG.md +++ b/examples/todos-server/CHANGELOG.md @@ -1,5 +1,45 @@ # todos-server-example +## 0.0.1-rc.4 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [467ac97] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - solid-js@2.0.0-rc.16 + - @solidjs/web@2.0.0-rc.16 + ## 0.0.1-rc.3 ### Patch Changes diff --git a/examples/todos-server/package.json b/examples/todos-server/package.json index 52855e9e0..ebf3cbfa2 100644 --- a/examples/todos-server/package.json +++ b/examples/todos-server/package.json @@ -1,7 +1,7 @@ { "name": "todos-server-example", "description": "TodoMVC as a Solid Server Component — the list is server markup whose every control is a form that works without JavaScript; with it, binding slots add the optimism a form cannot express (toggle-all, clear-completed, the live count) and typed errors come back through useSubmissions", - "version": "0.0.1-rc.3", + "version": "0.0.1-rc.4", "private": true, "author": "Ryan Carniato", "license": "MIT", diff --git a/packages/babel-plugin/CHANGELOG.md b/packages/babel-plugin/CHANGELOG.md index 25c8b53de..aedc6ed7b 100644 --- a/packages/babel-plugin/CHANGELOG.md +++ b/packages/babel-plugin/CHANGELOG.md @@ -1,5 +1,12 @@ # @solidjs/babel-plugin +## 2.0.0-rc.16 + +### Patch Changes + +- 4a99c84: `sourceNames` gains a `locations` kind (and the plugin a `root` option): component and binding labels carry a `file:line:col` for diagnostics. `createComponent(Home, props, "Home", "src/App.tsx:12:5")` points at the `=2.0.0" }, "peerDependenciesMeta": { diff --git a/packages/element/CHANGELOG.md b/packages/element/CHANGELOG.md index 32e4d0c31..6536287ce 100644 --- a/packages/element/CHANGELOG.md +++ b/packages/element/CHANGELOG.md @@ -1,5 +1,45 @@ # solid-element +## 2.0.0-rc.16 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [467ac97] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - solid-js@2.0.0-rc.16 + - @solidjs/web@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/element/package.json b/packages/element/package.json index 2128f7608..e047222aa 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.15", + "version": "2.0.0-rc.16", "homepage": "https://github.com/solidjs/solid/blob/next/packages/element#readme", "repository": { "type": "git", @@ -30,8 +30,8 @@ "component-register": "^0.8.7" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.15", - "@solidjs/web": "^2.0.0-rc.15" + "solid-js": "^2.0.0-rc.16", + "@solidjs/web": "^2.0.0-rc.16" }, "devDependencies": { "solid-js": "workspace:*", diff --git a/packages/h/CHANGELOG.md b/packages/h/CHANGELOG.md index 30b7b695b..5ee5439e5 100644 --- a/packages/h/CHANGELOG.md +++ b/packages/h/CHANGELOG.md @@ -1,5 +1,37 @@ # @solidjs/h +## 2.0.0-rc.16 + +### Patch Changes + +- 86cf504: `data-*` attributes type-check in props objects (`ComponentProps<"div">`, `JSX.HTMLAttributes`), not only in JSX: a template-literal index signature on `ElementAttributes` (#4082). +- Updated dependencies [3d8a8a9] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [0a49dd8] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - @solidjs/web@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/h/package.json b/packages/h/package.json index 5be980f66..a412b9fdf 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.15", + "version": "2.0.0-rc.16", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -58,7 +58,7 @@ "test": "vitest run" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-rc.15" + "@solidjs/web": "^2.0.0-rc.16" }, "devDependencies": { "@solidjs/web": "workspace:*", diff --git a/packages/html/CHANGELOG.md b/packages/html/CHANGELOG.md index 261584cfd..6761cf22f 100644 --- a/packages/html/CHANGELOG.md +++ b/packages/html/CHANGELOG.md @@ -1,5 +1,36 @@ # @solidjs/html +## 2.0.0-rc.16 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [0a49dd8] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [8e2590e] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [8d4a285] + - @solidjs/web@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/html/package.json b/packages/html/package.json index daae0334c..64b491606 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.15", + "version": "2.0.0-rc.16", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -42,7 +42,7 @@ "test": "vitest run" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-rc.15" + "@solidjs/web": "^2.0.0-rc.16" }, "devDependencies": { "@solidjs/web": "workspace:*", diff --git a/packages/signals/CHANGELOG.md b/packages/signals/CHANGELOG.md index 009b10ef4..918203546 100644 --- a/packages/signals/CHANGELOG.md +++ b/packages/signals/CHANGELOG.md @@ -1,5 +1,35 @@ # @solidjs/signals +## 2.0.0-rc.16 + +### Patch Changes + +- 3d8a8a9: Point JSDoc `@description` links at the 2.0 reference docs (v2.solidjs.com), document `isPending`, point the console footer, diagnostics guide and cheatsheet links at the `next` branch, and replace the stale `onMount` advice in the server-side client-only API error. +- 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 `` 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 ``) is still mainline and shows the fallback while the hold is up. +- 52008d9: An effect or memo that catches the `NotReadyError` from reading an async derived store (`createStore(async fn, seed)`, `createProjection`) now re-runs when the store's flight lands, as it does for an async memo (#4070). +- 0b6765f: A signal write from an `onCleanup` that a transition's landing runs no longer leaves the landed transaction as the next flush's: later transitions commit again instead of parking forever (#4089). +- b8617ec: `createDeferred(fn, options?)`: an async memo that may lag, but never leads. Before its first answer it is an ordinary async memo (readers suspend to ``, or `loadingValue` shows). After it, a refetch holds nothing: readers keep the previous answer until the new one lands, the rest of the screen moves on, and `isPending` reports the refetch on the node and on everything derived from it, store keys included. A refetch that read a held value lands with that hold. A rejection errors like any memo. `refresh(d)` is a quiet re-ask, and `await refresh(d)` and `until` wait for the landing. It is `createMemo` on the server and hydrates like one. + + The rules: F-1 and F-2 are amended for declared lag, and D-40 / S-41 are new. The `affects()` mark core moved to its own module (`affects-marks.ts`), which `createDeferred` shares. A mark on the source of a derived store now covers that store's keys. + +- 3643c5e: A `createRoot` dispose function no longer keeps the root's `init` function (and everything it closes over) alive while it is held (#4095). +- 4a99c84: Diagnostics carry a source location. `NodeOptions.loc` and `StoreOptions.loc` (`file:line:col`, root-relative — written by the compiler's `sourceNames` `locations` kind, not by hand) land in a `_loc` slot beside `_name` on the observe/dev node literals; store property nodes carry their store's. `DiagnosticEvent.loc` is the innermost located node on the subject's chain (its own `loc`, else the first up the owners — a signal through its registering owner), found in `emitDiagnostic` the way `ownerPath` is; a host event that sets it keeps it. `reportDiagnostic` prints it as an `at` line after the `in` line — `at src/App.tsx:18:3`, or in a browser `at http://localhost:5173/src/App.tsx:18:3`, which the devtools link to the Sources panel. `DEV.guideUrl(code)` now returns the code's page on the docs site (`https://v2.solidjs.com/reference/solid-js/diagnostics/`). +- 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. +- a39acdd: `GRAPH_GROWTH` no longer reports long-lived state that the page just left also read. What outlived a navigation was the set of nodes reachable as that one navigation opened, and the walk reaches a module-level source (solid-refresh's per-component registry signal in dev, a global store) only through a page that reads it. So arriving at a route from pages sharing more and more of its components, or of its global state, read as growth with nothing leaked. The nodes met as navigations open now go into one set kept for the session, so such a source counts the same at every settle once met, and only what keeps accumulating climbs. Leaked roots, ownerless effects and per-visit subscriptions still report as before. Fixes #4101. +- 0bda987: An error is an answer: it ends the wait like a value, and it shows when a value would (D-41). A rejection or throw on a node a transaction holds is staged and published with the frame that carries it: until then the screen, an untracked read, `createEffect`'s error arm and `` keep the previous frame, `isPending` is `true`, `latest` throws the proposed error, and `resolve`/`until`/`refresh` reject at the landing. A held recovery keeps the shown error until its own commit, and a recovery equal to the last good value now reaches effects, held or not (it was swallowed by the equality gate). Replaces the separate staged-error publish path. From #3886's audit (GabbeV). +- ccd9948: Smaller floor bundles: the optional engines (lanes, verdicts, boundaries, stores, affects, external sources) install their scheduler hooks as module variables, so an app that never loads them no longer retains their paths in `recompute`, `read` and the settle step; client-only `render` no longer retains hydration text adoption, and the delegated dispatcher drops dead guards. The JSX hello world goes from 10.35 KB to 9.75 KB brotli. +- 347f242: New dev check `SSR_LIVE_HOLE_LATCHED` (#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, #3743) +- d3cddff: Attribution: `createProjection` records the owner in scope as `createStore` does, so a projection's property nodes carry an owner path (#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. +- dfb31ed: Derived stores no longer need a seed (#3194). `createStore(fn)`, `createProjection(fn)` and `createOptimisticStore(fn)` accept a derive that takes no draft and answers a complete value — sync, a promise, or an async iterable whose every yield is a complete snapshot. The root is a plain object (an array keeps its `[]` seed); pass `undefined` for the seed to reach the options, e.g. `createStore(fetchUser, undefined, { key: "email" })`. Until the first answer lands the store is unreadable, as with any seed (A25); `seedLoadingValue` needs a seed and is not offered on the seedless form. + + With the seedless form available, a seed is a complete `T` again (#3258's requirement, reverted then because async stores that needed the options slot had to invent one). A `{}` seed on a return-form derive is now a type error: drop it. A mutating derive that builds its object from an empty seed needs `{} as T`. + +- 3fc5551: `until()` and `refresh()` no longer retain the optimistic lane engine in apps that don't use optimism (−4.8 KB minified). An `until()` predicate reading a memo derived from an unconfirmed optimistic guess now waits for the guess to be confirmed or corrected, instead of seeing the value from before the guess. +- 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, #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 `[, 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. + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/signals/package.json b/packages/signals/package.json index 7d0e8b779..8ba6214a4 100644 --- a/packages/signals/package.json +++ b/packages/signals/package.json @@ -1,6 +1,6 @@ { "name": "@solidjs/signals", - "version": "2.0.0-rc.15", + "version": "2.0.0-rc.16", "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 b18c70605..d4b80cfd1 100644 --- a/packages/solid/CHANGELOG.md +++ b/packages/solid/CHANGELOG.md @@ -1,5 +1,48 @@ # solid-js +## 2.0.0-rc.16 + +### Patch Changes + +- 3d8a8a9: Point JSDoc `@description` links at the 2.0 reference docs (v2.solidjs.com), document `isPending`, point the console footer, diagnostics guide and cheatsheet links at the `next` branch, and replace the stale `onMount` advice in the server-side client-only API error. +- b8617ec: `createDeferred(fn, options?)`: an async memo that may lag, but never leads. Before its first answer it is an ordinary async memo (readers suspend to ``, or `loadingValue` shows). After it, a refetch holds nothing: readers keep the previous answer until the new one lands, the rest of the screen moves on, and `isPending` reports the refetch on the node and on everything derived from it, store keys included. A refetch that read a held value lands with that hold. A rejection errors like any memo. `refresh(d)` is a quiet re-ask, and `await refresh(d)` and `until` wait for the landing. It is `createMemo` on the server and hydrates like one. + + The rules: F-1 and F-2 are amended for declared lag, and D-40 / S-41 are new. The `affects()` mark core moved to its own module (`affects-marks.ts`), which `createDeferred` shares. A mark on the source of a derived store now covers that store's keys. + +- 4a99c84: `createComponent(Comp, props, name?, loc?)` takes the JSX site the compiler emits beside the tag (`"src/App.tsx:12:5"`); the dev and observe component owner carries it on both the client and the server, so a finding raised inside a component reports `at src/App.tsx:12:5` (and `event.loc`) when nothing closer was located. The console footer is now two lines: the code's docs page for a human (`what it means and how to fix it: https://v2.solidjs.com/reference/solid-js/diagnostics/`), then the repair skill for an agent (installed path and GitHub URL, anchored to the code's section). `diagnostics.json` links each code to its docs page, and the `reactivity-diagnostics` skill documents the `at` line. +- 467ac97: Hydration: a streamed `` fragment that is the first to carry a `lazy()` module's assets now loads them before its resume claims the revealed content, instead of rendering nothing while they load and clearing the parent's revealed nodes (#4087). +- 7c36f2b: Server `For` in a live hole: a row that read an async memo or projection besides its item, or whose item was edited in place, now renders again on each sweep instead of reusing stale markup. +- 0a49dd8: Live holes: on a live response, a sweep that changed some rows of a `` sends just those rows (replace, append, truncate by index), and the frames client morphs only their ranges. A client whose range doesn't show what the rows were taken against resumes its live connection, which sends the hole whole. +- 51d005a: Server `` keeps its rows across live-hole sweeps (#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. +- eb4e019: Hydration no longer hydrates a streamed `` fallback when the fragment was already revealed but its `_fr` record hasn't settled yet (an async entry running between the two scripts). The boundary renders nothing and adopts the revealed content once the record settles (#4074). +- dfb31ed: Derived stores no longer need a seed (#3194). `createStore(fn)`, `createProjection(fn)` and `createOptimisticStore(fn)` accept a derive that takes no draft and answers a complete value — sync, a promise, or an async iterable whose every yield is a complete snapshot. The root is a plain object (an array keeps its `[]` seed); pass `undefined` for the seed to reach the options, e.g. `createStore(fetchUser, undefined, { key: "email" })`. Until the first answer lands the store is unreadable, as with any seed (A25); `seedLoadingValue` needs a seed and is not offered on the seedless form. + + With the seedless form available, a seed is a complete `T` again (#3258's requirement, reverted then because async stores that needed the options slot had to invent one). A `{}` seed on a return-form derive is now a type error: drop it. A mutating derive that builds its object from an empty seed needs `{} as T`. + +- 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. +- 3d8a8a9: Ship the Solid 2.0 primer for coding agents as the `solid-2.0` skill, emit `CHEATSHEET.md` as the `solid-2.0-cheatsheet` skill on build, give every shipped skill the `name`/`description` frontmatter the Agent Skills format requires, and add the `tanstack-intent` keyword so skill registries discover them in `node_modules`. +- 3d8a8a9: `solid-js` now ships `diagnostics.json` next to `CHEATSHEET.md`: the machine-readable catalog of every dev diagnostic code — `code`, `kind`, `severity`, `category`, `trigger`, `repair` (the first sentence of the code's section in the `reactivity-diagnostics` skill) and `guideUrl` (that section on GitHub). It is generated from the `DiagnosticCode` union, the RFC's quick-reference table and the skill by `pnpm diagnostics:json`, and a test fails when any of the three (or the committed file) names a different set of codes. The quick-reference table gains its missing `PRIMITIVE_IN_EFFECT_CALLBACK` row. +- Updated dependencies [3d8a8a9] +- Updated dependencies [a7fe050] +- Updated dependencies [52008d9] +- Updated dependencies [0b6765f] +- Updated dependencies [b8617ec] +- Updated dependencies [3643c5e] +- Updated dependencies [4a99c84] +- Updated dependencies [61c4436] +- Updated dependencies [a39acdd] +- Updated dependencies [0bda987] +- Updated dependencies [ccd9948] +- Updated dependencies [347f242] +- Updated dependencies [c12c420] +- Updated dependencies [4bc7969] +- Updated dependencies [d3cddff] +- Updated dependencies [c2513e3] +- Updated dependencies [dfb31ed] +- Updated dependencies [3fc5551] +- Updated dependencies [42c2568] + - @solidjs/signals@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/solid/package.json b/packages/solid/package.json index 54e3bf933..ce96295d8 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.15", + "version": "2.0.0-rc.16", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -134,7 +134,7 @@ "tanstack-intent" ], "dependencies": { - "@solidjs/signals": "^2.0.0-rc.15", + "@solidjs/signals": "^2.0.0-rc.16", "csstype": "^3.1.0", "seroval": "1.6.7", "seroval-plugins": "1.6.7" diff --git a/packages/test-integration/CHANGELOG.md b/packages/test-integration/CHANGELOG.md index e35176cf9..afe7d778c 100644 --- a/packages/test-integration/CHANGELOG.md +++ b/packages/test-integration/CHANGELOG.md @@ -1,5 +1,66 @@ # test-integration +## 2.0.0-rc.16 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [4a99c84] +- Updated dependencies [a7fe050] +- Updated dependencies [52008d9] +- Updated dependencies [0b6765f] +- Updated dependencies [b8617ec] +- Updated dependencies [3643c5e] +- Updated dependencies [86cf504] +- Updated dependencies [f048691] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [4a99c84] +- Updated dependencies [96b615d] +- Updated dependencies [467ac97] +- Updated dependencies [a0991b3] +- Updated dependencies [8092282] +- Updated dependencies [8163bc3] +- Updated dependencies [10b3f55] +- Updated dependencies [1f3b5b4] +- Updated dependencies [61c4436] +- Updated dependencies [a39acdd] +- Updated dependencies [0bda987] +- Updated dependencies [ccd9948] +- Updated dependencies [0e0c043] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [347f242] +- Updated dependencies [b972757] +- Updated dependencies [8e2590e] +- Updated dependencies [8fbadfd] +- Updated dependencies [e1bf2af] +- Updated dependencies [c12c420] +- Updated dependencies [4bc7969] +- Updated dependencies [d3cddff] +- Updated dependencies [c2513e3] +- Updated dependencies [8e2590e] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [8bd7a5b] +- Updated dependencies [3e94215] +- Updated dependencies [a61c929] +- Updated dependencies [36039e2] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] +- Updated dependencies [d0ba31c] +- Updated dependencies [8d4a285] +- Updated dependencies [3fc5551] +- Updated dependencies [42c2568] + - solid-js@2.0.0-rc.16 + - @solidjs/signals@2.0.0-rc.16 + - @solidjs/web@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 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/test-integration/package.json b/packages/test-integration/package.json index aa2d9b972..fc5a44167 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.15" + "version": "2.0.0-rc.16" } diff --git a/packages/universal/CHANGELOG.md b/packages/universal/CHANGELOG.md index da4e93678..5b1abfb59 100644 --- a/packages/universal/CHANGELOG.md +++ b/packages/universal/CHANGELOG.md @@ -1,5 +1,23 @@ # @solidjs/universal +## 2.0.0-rc.16 + +### Patch Changes + +- Updated dependencies [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [4a99c84] +- Updated dependencies [467ac97] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [a61c929] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] + - solid-js@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/universal/package.json b/packages/universal/package.json index f55292433..b260c782d 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.15", + "version": "2.0.0-rc.16", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -51,7 +51,7 @@ "test": "vitest run" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.15" + "solid-js": "^2.0.0-rc.16" }, "devDependencies": { "solid-js": "workspace:*" diff --git a/packages/web/CHANGELOG.md b/packages/web/CHANGELOG.md index 5e20f3f2b..e3333ba43 100644 --- a/packages/web/CHANGELOG.md +++ b/packages/web/CHANGELOG.md @@ -1,5 +1,51 @@ # @solidjs/web +## 2.0.0-rc.16 + +### Patch Changes + +- 3d8a8a9: Point JSDoc `@description` links at the 2.0 reference docs (v2.solidjs.com), document `isPending`, point the console footer, diagnostics guide and cheatsheet links at the `next` branch, and replace the stale `onMount` advice in the server-side client-only API error. +- 86cf504: `data-*` attributes type-check in props objects (`ComponentProps<"div">`, `JSX.HTMLAttributes`), not only in JSX: a template-literal index signature on `ElementAttributes` (#4082). +- 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. +- 4a99c84: `effect` and `insert` take `loc` beside `name` in their options, and `spread` a trailing `loc` after its tag — the source site the compiler emits under `sourceNames` `locations` — so a diagnostic about a compiled binding reports `at src/App.tsx:14:7` and carries `event.loc`. Dev and observe builds keep it on the node; production ignores it. +- 96b615d: Remove the internal `scriptNonce`/`styleNonce` exports from the server build. They stayed exported after #4016 only because `@solidjs/vite-plugin` ≤ 3.0.0-next.49 imported them. 3.0.0-next.50 projects the nonce itself (solidjs/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 (#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. +- 10b3f55: Frames client: a live stream's writes no longer re-walk the whole frame. After every write, the slot sync used to walk all of the frame's content and re-parse every binding marker, and each live-hole apply searched the frame for its marker. Both costs grew with everything the frame showed, which was most of the per-write client time once a chat thread had history. Now only a root morph, a reveal, or an empty write ("re-walk what you hold") walks the whole frame. Any other write reuses the last walk's result and walks only the ranges its live holes morphed. That reuse runs in the lazy bind tier; without the tier, the walk sees only comments. Live-hole markers are cached between applies. When reuse can't be exact (a reveal whose content landed after its flush, an attr patch on a consumer, a hole whose parent element is a consumer), the full walk runs as before. +- 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 +- ccd9948: Smaller floor bundles: the optional engines (lanes, verdicts, boundaries, stores, affects, external sources) install their scheduler hooks as module variables, so an app that never loads them no longer retains their paths in `recompute`, `read` and the settle step; client-only `render` no longer retains hydration text adoption, and the delegated dispatcher drops dead guards. The JSX hello world goes from 10.35 KB to 9.75 KB brotli. +- 0e0c043: Write one `data-lha` address on an element whose attribute was still pending inside a `` in a live server component (#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. +- 0a49dd8: Live holes: on a live response, a sweep that changed some rows of a `` sends just those rows (replace, append, truncate by index), and the frames client morphs only their ranges. A client whose range doesn't show what the rows were taken against resumes its live connection, which sends the hole whole. +- 347f242: New dev check `SSR_LIVE_HOLE_LATCHED` (#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 ``, 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 (#4023). +- 8e2590e: Hydrating a `` whose `lazy()` module lands after hydration starts no longer moves its server-rendered nodes when the boundary has a sibling in the same fragment (#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. +- 8fbadfd: Frames morph: when a text hole empties, the reconcile drops the stale text node instead of relocating the next element in front of it, so the elements after an emptied text hole stay put instead of being re-inserted. +- e1bf2af: Frames morph skips an identical subtree with one native `isEqualNode` compare instead of walking it. +- 8e2590e: `respond(value, init)` accepts every value a plain return does (#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 (#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. +- 3e94215: Server functions: arguments never decode `Response` or `Request` values. The handler decodes client → server argument payloads with the configured plugin list minus the `Response`/`Request` plugins, so a call carrying one — top level, nested, or inside a promise or stream — is refused with `400` before the function runs. `enableRichArguments()` rejects such a call before sending. Results and hydration keep the full plugin set. + + Server-function responses now default to `X-Content-Type-Options: nosniff`; a value the function sets itself is kept. + +- 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 `` instead of being appended after `` when the shell is a whole document (#4030). Async render mode and a stream with nothing pending now end with `` again; a shell without `` (an embedded render) still gets the marker appended. +- 3d8a8a9: Ship the Solid 2.0 primer for coding agents as the `solid-2.0` skill, emit `CHEATSHEET.md` as the `solid-2.0-cheatsheet` skill on build, give every shipped skill the `name`/`description` frontmatter the Agent Skills format requires, and add the `tanstack-intent` keyword so skill registries discover them in `node_modules`. +- 8d4a285: A cleanup that throws while a stream is torn down no longer crashes the server (#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 [3d8a8a9] +- Updated dependencies [b8617ec] +- Updated dependencies [4a99c84] +- Updated dependencies [467ac97] +- Updated dependencies [7c36f2b] +- Updated dependencies [0a49dd8] +- Updated dependencies [51d005a] +- Updated dependencies [eb4e019] +- Updated dependencies [dfb31ed] +- Updated dependencies [a61c929] +- Updated dependencies [3d8a8a9] +- Updated dependencies [3d8a8a9] + - solid-js@2.0.0-rc.16 + ## 2.0.0-rc.15 ### Patch Changes diff --git a/packages/web/package.json b/packages/web/package.json index f43644957..8d7aadfe0 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.15", + "version": "2.0.0-rc.16", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -385,7 +385,7 @@ "seroval-plugins": "1.6.7" }, "peerDependencies": { - "solid-js": "^2.0.0-rc.15" + "solid-js": "^2.0.0-rc.16" }, "devDependencies": { "@codspeed/vitest-plugin": "^5.4.0",