Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/blocker-replay-marker-serializable.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/bright-guards-enter.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/calm-stacks-persist.md

This file was deleted.

17 changes: 0 additions & 17 deletions .changeset/fep-2590-core-peer-compat.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2598-react-loader-core-v3.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2609-create-metadata-stack.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2612-parse-metadata.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2635-observe-prevented-actions.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2635-skip-prevented-loader-work.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fep-2636-resume-without-queued-events.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/shaggy-foxes-compose.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/wrap-record-save-error.md

This file was deleted.

10 changes: 10 additions & 0 deletions core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @stackflow/core

## 3.1.0

### Minor Changes

- 8ce8866: Expose the live, action-local `actions.isPrevented()` state to every pre-effect hook without stopping the remaining hooks.

### Patch Changes

- 9535716: Fix `resume()` leaving a Stack paused when no navigation event was queued after `pause()`.

## 3.0.0

### Major Changes
Expand Down
2 changes: 1 addition & 1 deletion core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/core",
"version": "3.0.0",
"version": "3.1.0",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down
98 changes: 98 additions & 0 deletions docs/components/ChangelogContent.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,101 @@
## 2026.07.26

Use a namespaced string key instead of a `Symbol` for the internal replay marker. A `Symbol`-keyed property leaked into the recorded event log, so a captured `StackSnapshot` containing a blocked-then-proceeded navigation could not be serialized by codecs that reject symbol keys (e.g. `devalue` throws `Cannot stringify POJOs with symbolic keys`). The marker is now a plain, serializable key. [`b630fd6`](https://github.com/daangn/stackflow/commit/b630fd6ca6f0ec4e2b3b897eadc473891a282614)

Released packages:
- 📦 [@stackflow/plugin-blocker@0.1.3](https://npmjs.com/package/@stackflow/plugin-blocker/v/0.1.3)

---

Package initial release; Allow programmers to restrict activity entrances via predicates called 'guards'. [`d915c5f`](https://github.com/daangn/stackflow/commit/d915c5fb0ceab7d49882b5a7b8b4f0e739efa281)

Released packages:
- 📦 [@stackflow/plugin-activity-guard@1.0.0](https://npmjs.com/package/@stackflow/plugin-activity-guard/v/1.0.0)

---

Package initial release; Persist and restore complete Stackflow navigation snapshots with optional metadata reuse strategies and explicit load/save error handling. [`0072c62`](https://github.com/daangn/stackflow/commit/0072c628a8128524efe85e8f9f9ef71dd661b5c2)

Released packages:
- 📦 [@stackflow/plugin-stack-persistence@1.0.0](https://npmjs.com/package/@stackflow/plugin-stack-persistence/v/1.0.0)

---

Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3. [`aaf2d03`](https://github.com/daangn/stackflow/commit/aaf2d0354231d8342f70d6652c46fc27bc3f8b63)

Released packages:
- 📦 [@stackflow/link@2.0.2](https://npmjs.com/package/@stackflow/link/v/2.0.2)
- 📦 [@stackflow/plugin-basic-ui@1.18.4](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.18.4)
- 📦 [@stackflow/plugin-blocker@0.1.3](https://npmjs.com/package/@stackflow/plugin-blocker/v/0.1.3)
- 📦 [@stackflow/plugin-devtools@0.1.14](https://npmjs.com/package/@stackflow/plugin-devtools/v/0.1.14)
- 📦 [@stackflow/plugin-google-analytics-4@1.1.18](https://npmjs.com/package/@stackflow/plugin-google-analytics-4/v/1.1.18)
- 📦 [@stackflow/plugin-history-sync@1.12.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.12.1)
- 📦 [@stackflow/plugin-lifecycle@0.1.3](https://npmjs.com/package/@stackflow/plugin-lifecycle/v/0.1.3)
- 📦 [@stackflow/plugin-renderer-basic@1.1.16](https://npmjs.com/package/@stackflow/plugin-renderer-basic/v/1.1.16)
- 📦 [@stackflow/plugin-renderer-web@1.1.16](https://npmjs.com/package/@stackflow/plugin-renderer-web/v/1.1.16)
- 📦 [@stackflow/plugin-sentry@0.1.3](https://npmjs.com/package/@stackflow/plugin-sentry/v/0.1.3)
- 📦 [@stackflow/plugin-stack-depth-change@1.1.8](https://npmjs.com/package/@stackflow/plugin-stack-depth-change/v/1.1.8)
- 📦 [@stackflow/react@2.1.3](https://npmjs.com/package/@stackflow/react/v/2.1.3)
- 📦 [@stackflow/react-ui-core@1.3.7](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.7)

---

fix: Refresh loader data for renderable activities restored from core v3 snapshots. [`f0987d1`](https://github.com/daangn/stackflow/commit/f0987d1959e25b2dcc2627a9e66986426a5aae0e)

Released packages:
- 📦 [@stackflow/react@2.1.3](https://npmjs.com/package/@stackflow/react/v/2.1.3)

---

Pass the current `Stack` to `StackSnapshotStrategy.createMetadata`, so metadata can be derived from the same stack state that the snapshot is captured from. [`f52b5f4`](https://github.com/daangn/stackflow/commit/f52b5f408c313a7e546fd3a93f7f4347b2cbabc1)

Released packages:
- 📦 [@stackflow/plugin-stack-persistence@1.0.0](https://npmjs.com/package/@stackflow/plugin-stack-persistence/v/1.0.0)

---

`StackSnapshotStrategy` now exposes `metadata.create` and `metadata.parse`, storage loads unknown metadata, and composed strategies persist and validate schema/version envelopes. Metadata parse failures can include details and are reported directly through `onRecordLoadError`. [`2431b41`](https://github.com/daangn/stackflow/commit/2431b416ed9f927a09aa1f7675a010d18804adf3)

Released packages:
- 📦 [@stackflow/plugin-stack-persistence@1.0.0](https://npmjs.com/package/@stackflow/plugin-stack-persistence/v/1.0.0)

---

Expose the live, action-local `actions.isPrevented()` state to every pre-effect hook without stopping the remaining hooks. [`8ce8866`](https://github.com/daangn/stackflow/commit/8ce88666e3e8d969d6fbbd29ebd0b34142844d61)

Released packages:
- 📦 [@stackflow/core@3.1.0](https://npmjs.com/package/@stackflow/core/v/3.1.0)

---

Require `@stackflow/core` v3 and skip loader, preload, and pause work for prevented push and replace actions. [`8ce8866`](https://github.com/daangn/stackflow/commit/8ce88666e3e8d969d6fbbd29ebd0b34142844d61)

Released packages:
- 📦 [@stackflow/react@2.1.3](https://npmjs.com/package/@stackflow/react/v/2.1.3)

---

Fix `resume()` leaving a Stack paused when no navigation event was queued after `pause()`. [`9535716`](https://github.com/daangn/stackflow/commit/953571614962f6ebe719ce78938ec3ac5d29cbee)

Released packages:
- 📦 [@stackflow/core@3.1.0](https://npmjs.com/package/@stackflow/core/v/3.1.0)

---

Add `composeStrategies` to combine multiple strategies into one. [`42639c0`](https://github.com/daangn/stackflow/commit/42639c03cda98217bd5d4ea68644b87ea0f2c8ec)

Released packages:
- 📦 [@stackflow/plugin-stack-persistence@1.0.0](https://npmjs.com/package/@stackflow/plugin-stack-persistence/v/1.0.0)

---

Wrap storage save failures in `StackSnapshotRecordSaveError` before invoking `onRecordSaveError` or rethrowing, matching the declared handler signature and the load-path behavior. [`bf5daae`](https://github.com/daangn/stackflow/commit/bf5daae0a9583affa55c5c87d15645a61581ff82)

Released packages:
- 📦 [@stackflow/plugin-stack-persistence@1.0.0](https://npmjs.com/package/@stackflow/plugin-stack-persistence/v/1.0.0)

---

## 2026.07.11

Distinguish how a stack is initialized — created fresh (`create`) or restored from a snapshot (`load`) — and add the surface a snapshot round-trip needs: `StackSnapshot`, `actions.captureSnapshot()`, the `provideSnapshot` / `onLoadError` plugin hooks, and `initInfo` on `onInit`. Runtime behavior is unchanged when no snapshot is provided; the breaks are type-level only — the `StackflowPluginHook` → `StackflowPluginInitHook` rename, plus new required members on `StackflowActions` and on the `onInit` / `overrideInitialEvents` hook signatures — hence the major. [`f0fc1fb`](https://github.com/daangn/stackflow/commit/f0fc1fbdda3b23f7c1400f9659e45a970be1647d)
Expand Down
6 changes: 6 additions & 0 deletions extensions/link/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @stackflow/link

## 2.0.2

### Patch Changes

- aaf2d03: Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3.

## 2.0.1

### Patch Changes
Expand Down
8 changes: 4 additions & 4 deletions extensions/link/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/link",
"version": "2.0.1",
"version": "2.0.2",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down Expand Up @@ -32,10 +32,10 @@
},
"devDependencies": {
"@stackflow/config": "^2.0.0",
"@stackflow/core": "^3.0.0",
"@stackflow/core": "^3.1.0",
"@stackflow/esbuild-config": "^1.0.3",
"@stackflow/plugin-history-sync": "^1.12.0",
"@stackflow/react": "^2.1.2",
"@stackflow/plugin-history-sync": "^1.12.1",
"@stackflow/react": "^2.1.3",
"@types/react": "^18.3.3",
"esbuild": "^0.23.0",
"esbuild-plugin-file-path-extensions": "^2.1.3",
Expand Down
7 changes: 7 additions & 0 deletions extensions/plugin-activity-guard/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# @stackflow/plugin-activity-guard

## 1.0.0

### Major Changes

- d915c5f: Package initial release; Allow programmers to restrict activity entrances via predicates called 'guards'.
4 changes: 2 additions & 2 deletions extensions/plugin-activity-guard/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/plugin-activity-guard",
"version": "0.0.0",
"version": "1.0.0",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down Expand Up @@ -31,7 +31,7 @@
},
"devDependencies": {
"@stackflow/config": "^2.0.0",
"@stackflow/core": "^3.0.0",
"@stackflow/core": "^3.1.0",
"@stackflow/esbuild-config": "^1.0.3",
"@types/node": "^20.14.9",
"esbuild": "^0.27.3",
Expand Down
8 changes: 8 additions & 0 deletions extensions/plugin-basic-ui/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @stackflow/plugin-basic-ui

## 1.18.4

### Patch Changes

- aaf2d03: Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3.
- Updated dependencies [aaf2d03]
- @stackflow/react-ui-core@1.3.7

## 1.18.3

### Patch Changes
Expand Down
8 changes: 4 additions & 4 deletions extensions/plugin-basic-ui/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/plugin-basic-ui",
"version": "1.18.3",
"version": "1.18.4",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down Expand Up @@ -32,17 +32,17 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@stackflow/react-ui-core": "^1.3.6",
"@stackflow/react-ui-core": "^1.3.7",
"@vanilla-extract/css": "^1.15.3",
"@vanilla-extract/dynamic": "^2.1.1",
"@vanilla-extract/private": "^1.0.5",
"@vanilla-extract/recipes": "^0.5.3",
"clsx": "^2.1.1"
},
"devDependencies": {
"@stackflow/core": "^3.0.0",
"@stackflow/core": "^3.1.0",
"@stackflow/esbuild-config": "^1.0.3",
"@stackflow/react": "^2.1.2",
"@stackflow/react": "^2.1.3",
"@types/react": "^18.3.3",
"esbuild": "^0.23.0",
"react": "^18.3.1",
Expand Down
7 changes: 7 additions & 0 deletions extensions/plugin-blocker/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @stackflow/plugin-blocker

## 0.1.3

### Patch Changes

- b630fd6: Use a namespaced string key instead of a `Symbol` for the internal replay marker. A `Symbol`-keyed property leaked into the recorded event log, so a captured `StackSnapshot` containing a blocked-then-proceeded navigation could not be serialized by codecs that reject symbol keys (e.g. `devalue` throws `Cannot stringify POJOs with symbolic keys`). The marker is now a plain, serializable key.
- aaf2d03: Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3.

## 0.1.2

### Patch Changes
Expand Down
8 changes: 4 additions & 4 deletions extensions/plugin-blocker/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/plugin-blocker",
"version": "0.1.2",
"version": "0.1.3",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down Expand Up @@ -42,10 +42,10 @@
},
"devDependencies": {
"@stackflow/config": "^2.0.0",
"@stackflow/core": "^3.0.0",
"@stackflow/core": "^3.1.0",
"@stackflow/esbuild-config": "^1.0.3",
"@stackflow/plugin-renderer-basic": "^1.1.15",
"@stackflow/react": "^2.1.2",
"@stackflow/plugin-renderer-basic": "^1.1.16",
"@stackflow/react": "^2.1.3",
"@swc/core": "^1.6.6",
"@swc/jest": "^0.2.36",
"@testing-library/dom": "^10.4.0",
Expand Down
6 changes: 6 additions & 0 deletions extensions/plugin-devtools/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @stackflow/plugin-devtools

## 0.1.14

### Patch Changes

- aaf2d03: Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3.

## 0.1.13

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions extensions/plugin-devtools/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackflow/plugin-devtools",
"version": "0.1.13",
"version": "0.1.14",
"repository": {
"type": "git",
"url": "https://github.com/daangn/stackflow.git",
Expand Down Expand Up @@ -30,7 +30,7 @@
"dev": "yarn build:js --watch && yarn build:dts --watch"
},
"devDependencies": {
"@stackflow/core": "^3.0.0",
"@stackflow/core": "^3.1.0",
"@stackflow/esbuild-config": "^1.0.3",
"@types/node": "^20.14.9",
"esbuild": "^0.23.0",
Expand Down
6 changes: 6 additions & 0 deletions extensions/plugin-google-analytics-4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @stackflow/plugin-google-analytics-4

## 1.1.18

### Patch Changes

- aaf2d03: Expand the supported `@stackflow/core` peer dependency range to include both v2 and v3.

## 1.1.17

### Patch Changes
Expand Down
Loading
Loading