Fix Preact 11 support - #522
Merged
Merged
Conversation
JoviDeCroock
marked this pull request as ready for review
August 21, 2026 04:41
upupming
approved these changes
Aug 21, 2026
upupming
left a comment
Contributor
There was a problem hiding this comment.
Looks promising, Thanks!
marvinhagemeister
approved these changes
Aug 21, 2026
upupming
added a commit
to lynx-family/lynx-stack
that referenced
this pull request
Aug 21, 2026
Points the @lynx-js/preact-devtools override at the lynx-family/ preact-devtools#20 preview (upstream preactjs/preact-devtools#522 merged: released Preact 11 routes through the shared VNode adapter). Verified on the Android emulator via lynx-devtool CLI: component tree, find, and hooks inspection all work against a Preact 11 bundle.
upupming
added a commit
to lynx-family/preact-devtools
that referenced
this pull request
Aug 21, 2026
* fix: detect context providers without private fields * fix: support current Preact 11 internals * fix: isolate Preact 11 portal bindings * ci: forward retries to Playwright * fix: exclude experimental Preact 11 renderer * test: cover Preact 11 Suspense Co-authored-by: Jovi De Croock <decroockjovi@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Internalnode modelWhy
The existing Preact 11 adapter targets the 2022 experimental reconciler. It expects separate internal nodes, node-type flags and
_internallifecycle hooks. Current Preact 11 uses the same VNode shape and options hooks as Preact 10, so those assumptions cause most nodes to be classified as text and prevent profiling and owner tracking from working.Sharing the working VNode adapter is both smaller and closer to Preact's current implementation than refreshing the obsolete adapter field by field.
Before this change, the Preact 11 E2E run on this branch reported 88 failures, 14 passes and 7 skips. After the change, both supported majors pass the complete suite, including restored Signals coverage and a new core portal regression test.
Validation
npm run format:checknpm run lintnpm run type-checknpm run test— 164 passed, 1 skippednpm run test:e2e:10— 109 passed, 3 skippednpm run test:e2e:11— 109 passed, 3 skipped