Skip to content

fix(bridge): harden SSR V1 identity and lifecycle boundaries - #3

Merged
cursor[bot] merged 1 commit into
cursor/bridge-app-ssr-e63bfrom
cursor/bridge-ssr-v1-hardening-3573
Jul 18, 2026
Merged

fix(bridge): harden SSR V1 identity and lifecycle boundaries#3
cursor[bot] merged 1 commit into
cursor/bridge-app-ssr-e63bfrom
cursor/bridge-ssr-v1-hardening-3573

Conversation

@tonoizer

@tonoizer tonoizer commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Description

Code review follow-up for #4869.

These hardening commits were also fast-forwarded onto cursor/bridge-app-ssr-e63b, so #4869 already includes them at 2915de32. This PR remains as the stacked review branch.

Fixes:

  • Composite hydration identity keys
  • Empty SSR island hydration
  • React mount-DOM identity cleanup
  • Required hydration registry for references
  • Abort/lifecycle hardening on React + Vue
  • Safer state JSON / trusted-HTML note

Validation

  • Focused Bridge package build+test passed

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have updated the documentation.
Open in Web Open in Cursor 

Key registry state by moduleName+instanceId, hydrate empty SSR islands from
markers, destroy provider roots when mount DOM identity changes, require a
hydration registry for client references, and soft-cancel aborted Vue mounts
so failed or stale renders cannot leak remotes.
@cursor
cursor Bot merged commit 2915de3 into cursor/bridge-app-ssr-e63b Jul 18, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants