next.js
a65c3c86 - Hydrate page loads during instant navigation testing (#91207)

Commit
79 days ago
Hydrate page loads during instant navigation testing (#91207) Previously, MPA page loads (reload, anchor navigation) while the instant navigation lock was held would skip hydration entirely and hard-reload when the lock released. This meant the page was non-interactive during the locked period and tests couldn't assert on the hydrated React tree. Now the page actually hydrates from the static shell. The server injects a script that fetches the static RSC payload, and the client uses createFromFetch with allowPartialStream so React can hydrate without erroring on the incomplete Suspense boundaries. When the lock is released, a soft refresh fetches the dynamic data (falling back to hard reload if the router hasn't initialized yet). Also refactors the cookie protocol to encode the lock state as a JSON array (`[0]` = pending, `[1, null]` = captured MPA, `[1, {}]` = captured SPA) for better integration with the devtools UI. This is somewhat entangled with the hydration changes so they're grouped together, but can be reviewed as atomic commits.
Author
Parents
Loading