Skip to content

fix(plugin-blocker): use a serializable string key for the internal replay marker#740

Merged
ENvironmentSet merged 2 commits into
mainfrom
fix/blocker-replay-marker-serializable
Jul 24, 2026
Merged

fix(plugin-blocker): use a serializable string key for the internal replay marker#740
ENvironmentSet merged 2 commits into
mainfrom
fix/blocker-replay-marker-serializable

Conversation

@ENvironmentSet

@ENvironmentSet ENvironmentSet commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

임시방편

…eplay marker

The blocker replay marker was a `Symbol`, which leaked into the recorded event
log and made a captured `StackSnapshot` unserializable by codecs that reject
symbol keys (e.g. `devalue` throws "Cannot stringify POJOs with symbolic keys").
Replace it with a namespaced string key so captured snapshots stay serializable.
The per-action replay reentrancy behavior (including nested-navigation judgment
during replay) is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HCjG4TSCrw7bLktTnuzVBp
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
stackflow-docs 0b33547 Commit Preview URL Jul 24 2026, 09:57 AM

@changeset-bot

changeset-bot Bot commented Jul 24, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 0b33547

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@stackflow/plugin-blocker Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f3d831b2-7e88-4aa7-8429-724a066748d9

📥 Commits

Reviewing files that changed from the base of the PR and between 2431b41 and 0b33547.

📒 Files selected for processing (2)
  • .changeset/blocker-replay-marker-serializable.md
  • extensions/plugin-blocker/src/blockerPlugin.ts

Disabled knowledge base sources:

  • Jira integration is disabled
  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved compatibility of recorded navigation events and serialized snapshots with serializers that do not support symbol keys.
    • Preserved blocker replay behavior while using a serialization-friendly marker.

Walkthrough

The blocker plugin changes its internal replay marker from a Symbol to the namespaced string @stackflow/plugin-blocker/replay, updates replay checks and tagging, and adds a patch changeset documenting serialization compatibility.

Changes

Blocker replay marker

Layer / File(s) Summary
Replace the replay marker key
extensions/plugin-blocker/src/blockerPlugin.ts, .changeset/blocker-replay-marker-serializable.md
Replay action tagging and duplicate-replay checks now use a namespaced string marker, with a patch changeset documenting the serialization-compatible change.

Estimated code review effort: 2 (Simple) | ~10 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/blocker-replay-marker-serializable

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Jul 24, 2026

Copy link
Copy Markdown
  • @stackflow/demo

    yarn add https://pkg.pr.new/@stackflow/plugin-blocker@740.tgz
    

commit: cf12056

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying stackflow-demo with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0b33547
Status:⚡️  Build in progress...

View logs

Drop the regression test added in the previous commit, per review request.
The string-key fix in blockerPlugin.ts is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HCjG4TSCrw7bLktTnuzVBp
@ENvironmentSet
ENvironmentSet marked this pull request as ready for review July 24, 2026 09:54
@ENvironmentSet
ENvironmentSet enabled auto-merge (squash) July 24, 2026 09:54
@ENvironmentSet
ENvironmentSet merged commit b630fd6 into main Jul 24, 2026
5 of 8 checks passed
@ENvironmentSet
ENvironmentSet deleted the fix/blocker-replay-marker-serializable branch July 24, 2026 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant