Skip to content

fix(core): bound vnode tracking across rerenders - #630

Merged
JoviDeCroock merged 1 commit into
mainfrom
JoviDeCroock/prefresh-issue-629
Aug 27, 2026
Merged

fix(core): bound vnode tracking across rerenders#630
JoviDeCroock merged 1 commit into
mainfrom
JoviDeCroock/prefresh-issue-629

Conversation

@JoviDeCroock

Copy link
Copy Markdown
Member

Bounds the @prefresh/core lastSeen map by evicting the previous vnode for each component instance and clearing entries on unmount. Adds a browser garbage-collection regression for both Vite fixture variants plus a patch changeset. Verified with the build, targeted lint and formatting checks, direct bookkeeping assertions, and all 11 Vite/Oxc integration tests. The full pnpm test run also passed all 15 non-Babel tests, while the 15 Babel fixtures fail before rendering on current main because the optional Babel dependencies cannot be resolved. Closes #629.

@changeset-bot

changeset-bot Bot commented Aug 27, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 06dedfd

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

This PR includes changesets to release 5 packages
Name Type
@prefresh/core Patch
@prefresh/nollup Patch
@prefresh/vite Patch
@prefresh/web-dev-server Patch
@prefresh/webpack 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

@JoviDeCroock
JoviDeCroock merged commit b390f28 into main Aug 27, 2026
1 check passed
@JoviDeCroock
JoviDeCroock deleted the JoviDeCroock/prefresh-issue-629 branch August 27, 2026 13:04
@github-actions github-actions Bot mentioned this pull request Aug 18, 2026
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.

lastSeen Map in @prefresh/core retains every rendered vnode (unbounded heap growth in dev)

1 participant