diff --git a/.changeset/fep-2357-prepare-outside-react.md b/.changeset/fep-2357-prepare-outside-react.md deleted file mode 100644 index e855cde12..000000000 --- a/.changeset/fep-2357-prepare-outside-react.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@stackflow/react": minor ---- - -Expose `prepare` on the `stackflow()` output to preload an activity's component chunk and data loader from outside the React render tree (e.g. at app bootstrap, before the first render), without depending on React Context. - -```ts -const { Stack, actions, stepActions, prepare } = stackflow({ config, components, plugins }); - -prepare("Article", { articleId: "123" }); // warm chunk + fire data loader -prepare("Article"); // warm chunk only -``` - -The signature matches the existing `usePrepare` hook (omitting params warms the chunk only; passing params also fires the loader), and `usePrepare` is now a thin wrapper over the same implementation, so in-tree callers are unchanged. Failures are delivered as a rejection of the returned promise rather than a synchronous throw. diff --git a/.changeset/plugin-sentry-publish-access.md b/.changeset/plugin-sentry-publish-access.md deleted file mode 100644 index fde438479..000000000 --- a/.changeset/plugin-sentry-publish-access.md +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -`publishConfig: { access: "public" }` 추가는 공개 API/런타임 변경이 없는 릴리스 메타데이터 수정이므로 버전 bump 없이 처리합니다. (PR `changeset status` 게이트 통과용 empty changeset) diff --git a/.changeset/remove-core-step-context-fields.md b/.changeset/remove-core-step-context-fields.md deleted file mode 100644 index 23b623d17..000000000 --- a/.changeset/remove-core-step-context-fields.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@stackflow/core": patch ---- - -Remove the internal optional `stepContext` event fields and `ActivityStep.context` -storage that were added for plugin-history-sync URL preservation. diff --git a/.changeset/withdraw-history-sync-param-coercion.md b/.changeset/withdraw-history-sync-param-coercion.md deleted file mode 100644 index f59f37502..000000000 --- a/.changeset/withdraw-history-sync-param-coercion.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@stackflow/plugin-history-sync": patch ---- - -Withdraw the activity and step param string coercion introduced in `1.11.0`. -Internal navigation now preserves non-string param values at runtime again, while -URL arrivals continue to use decoded URL params as before. diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 447d7c035..4bf84ae10 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -1,5 +1,12 @@ # @stackflow/core +## 2.0.1 + +### Patch Changes + +- 416b65d: Remove the internal optional `stepContext` event fields and `ActivityStep.context` + storage that were added for plugin-history-sync URL preservation. + ## 2.0.0 ### Major Changes diff --git a/core/package.json b/core/package.json index 3ee2fe36f..c411e11a6 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@stackflow/core", - "version": "2.0.0", + "version": "2.0.1", "repository": { "type": "git", "url": "https://github.com/daangn/stackflow.git", diff --git a/docs/components/ChangelogContent.mdx b/docs/components/ChangelogContent.mdx index 258b2e15c..8fd9f37bf 100644 --- a/docs/components/ChangelogContent.mdx +++ b/docs/components/ChangelogContent.mdx @@ -1,3 +1,42 @@ +## 2026.06.08 + +Expose `prepare` on the `stackflow()` output to preload an activity's component chunk and data loader from outside the React render tree (e.g. at app bootstrap, before the first render), without depending on React Context. [`510a287`](https://github.com/daangn/stackflow/commit/510a28705ef44dd153cef895cf88a341eb351ad3) + +```ts +const { Stack, actions, stepActions, prepare } = stackflow({ config, components, plugins }); + +prepare("Article", { articleId: "123" }); // warm chunk + fire data loader +prepare("Article"); // warm chunk only +``` + +The signature matches the existing `usePrepare` hook (omitting params warms the chunk only; passing params also fires the loader), and `usePrepare` is now a thin wrapper over the same implementation, so in-tree callers are unchanged. Failures are delivered as a rejection of the returned promise rather than a synchronous throw. + +Released packages: +- 📦 [@stackflow/react@2.1.0](https://npmjs.com/package/@stackflow/react/v/2.1.0) + +--- + +`publishConfig: { access: "public" }` 추가는 공개 API/런타임 변경이 없는 릴리스 메타데이터 수정이므로 버전 bump 없이 처리합니다. (PR `changeset status` 게이트 통과용 empty changeset) [`78e7b84`](https://github.com/daangn/stackflow/commit/78e7b848a9f9f1d5c6d5065e4a993e792e026866) + +--- + +Remove the internal optional `stepContext` event fields and `ActivityStep.context` [`416b65d`](https://github.com/daangn/stackflow/commit/416b65da5c23bfbbb81c14f1d307898912bf7ca2) +storage that were added for plugin-history-sync URL preservation. + +Released packages: +- 📦 [@stackflow/core@2.0.1](https://npmjs.com/package/@stackflow/core/v/2.0.1) + +--- + +Withdraw the activity and step param string coercion introduced in `1.11.0`. [`416b65d`](https://github.com/daangn/stackflow/commit/416b65da5c23bfbbb81c14f1d307898912bf7ca2) +Internal navigation now preserves non-string param values at runtime again, while +URL arrivals continue to use decoded URL params as before. + +Released packages: +- 📦 [@stackflow/plugin-history-sync@1.11.2](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.11.2) + +--- + ## 2026.06.01 Fix an SSR hydration mismatch that occurred when an activity declared a non-empty `defaultHistory`. [`b7724e9`](https://github.com/daangn/stackflow/commit/b7724e910b24c5cf188b45dc0e58cae1913248fd) diff --git a/extensions/plugin-history-sync/CHANGELOG.md b/extensions/plugin-history-sync/CHANGELOG.md index 49d3828db..371021d8e 100644 --- a/extensions/plugin-history-sync/CHANGELOG.md +++ b/extensions/plugin-history-sync/CHANGELOG.md @@ -1,5 +1,13 @@ # @stackflow/plugin-history-sync +## 1.11.2 + +### Patch Changes + +- 416b65d: Withdraw the activity and step param string coercion introduced in `1.11.0`. + Internal navigation now preserves non-string param values at runtime again, while + URL arrivals continue to use decoded URL params as before. + ## 1.11.1 ### Patch Changes diff --git a/extensions/plugin-history-sync/package.json b/extensions/plugin-history-sync/package.json index 3f1af93c3..78813f24a 100644 --- a/extensions/plugin-history-sync/package.json +++ b/extensions/plugin-history-sync/package.json @@ -1,6 +1,6 @@ { "name": "@stackflow/plugin-history-sync", - "version": "1.11.1", + "version": "1.11.2", "repository": { "type": "git", "url": "https://github.com/daangn/stackflow.git", @@ -63,10 +63,10 @@ "devDependencies": { "@graphql-tools/schema": "^10.0.5", "@stackflow/config": "^2.0.0", - "@stackflow/core": "^2.0.0", + "@stackflow/core": "^2.0.1", "@stackflow/esbuild-config": "^1.0.3", "@stackflow/plugin-renderer-basic": "^1.1.14", - "@stackflow/react": "^2.0.0", + "@stackflow/react": "^2.1.0", "@swc/core": "^1.6.6", "@swc/jest": "^0.2.36", "@testing-library/dom": "^10.4.0", diff --git a/integrations/react/CHANGELOG.md b/integrations/react/CHANGELOG.md index d0389eaf2..fbe7831ae 100644 --- a/integrations/react/CHANGELOG.md +++ b/integrations/react/CHANGELOG.md @@ -1,5 +1,24 @@ # @stackflow/react +## 2.1.0 + +### Minor Changes + +- 510a287: Expose `prepare` on the `stackflow()` output to preload an activity's component chunk and data loader from outside the React render tree (e.g. at app bootstrap, before the first render), without depending on React Context. + + ```ts + const { Stack, actions, stepActions, prepare } = stackflow({ + config, + components, + plugins, + }); + + prepare("Article", { articleId: "123" }); // warm chunk + fire data loader + prepare("Article"); // warm chunk only + ``` + + The signature matches the existing `usePrepare` hook (omitting params warms the chunk only; passing params also fires the loader), and `usePrepare` is now a thin wrapper over the same implementation, so in-tree callers are unchanged. Failures are delivered as a rejection of the returned promise rather than a synchronous throw. + ## 2.0.0 ### Major Changes diff --git a/integrations/react/package.json b/integrations/react/package.json index 3182f181d..d32a0b6c2 100644 --- a/integrations/react/package.json +++ b/integrations/react/package.json @@ -1,6 +1,6 @@ { "name": "@stackflow/react", - "version": "2.0.0", + "version": "2.1.0", "repository": { "type": "git", "url": "https://github.com/daangn/stackflow.git", @@ -35,7 +35,7 @@ }, "devDependencies": { "@stackflow/config": "^2.0.0", - "@stackflow/core": "^2.0.0", + "@stackflow/core": "^2.0.1", "@stackflow/esbuild-config": "^1.0.3", "@types/react": "^18.3.3", "esbuild": "^0.23.0", diff --git a/yarn.lock b/yarn.lock index a9e7e77b7..99d920580 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5612,7 +5612,7 @@ __metadata: languageName: unknown linkType: soft -"@stackflow/core@npm:^2.0.0, @stackflow/core@workspace:core": +"@stackflow/core@npm:^2.0.0, @stackflow/core@npm:^2.0.1, @stackflow/core@workspace:core": version: 0.0.0-use.local resolution: "@stackflow/core@workspace:core" dependencies: @@ -5861,10 +5861,10 @@ __metadata: dependencies: "@graphql-tools/schema": "npm:^10.0.5" "@stackflow/config": "npm:^2.0.0" - "@stackflow/core": "npm:^2.0.0" + "@stackflow/core": "npm:^2.0.1" "@stackflow/esbuild-config": "npm:^1.0.3" "@stackflow/plugin-renderer-basic": "npm:^1.1.14" - "@stackflow/react": "npm:^2.0.0" + "@stackflow/react": "npm:^2.1.0" "@swc/core": "npm:^1.6.6" "@swc/jest": "npm:^0.2.36" "@testing-library/dom": "npm:^10.4.0" @@ -6020,12 +6020,12 @@ __metadata: languageName: unknown linkType: soft -"@stackflow/react@npm:^2.0.0, @stackflow/react@workspace:integrations/react": +"@stackflow/react@npm:^2.0.0, @stackflow/react@npm:^2.1.0, @stackflow/react@workspace:integrations/react": version: 0.0.0-use.local resolution: "@stackflow/react@workspace:integrations/react" dependencies: "@stackflow/config": "npm:^2.0.0" - "@stackflow/core": "npm:^2.0.0" + "@stackflow/core": "npm:^2.0.1" "@stackflow/esbuild-config": "npm:^1.0.3" "@types/react": "npm:^18.3.3" esbuild: "npm:^0.23.0"