Skip to content

Pass lazy response lifecycle capabilities into App rendering - #100395

Merged
kassens merged 4 commits into
canaryfrom
kassens/render-response-lifecycle
Oct 22, 2026
Merged

kassens merged 4 commits into
canaryfrom
kassens/render-response-lifecycle

Conversation

@kassens

@kassens kassens commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Continue decoupling App Router rendering from HTTP responses by binding lazy development response capabilities at the route-module boundary. HMR cancellation, validation scheduling, and worker snapshots use these capabilities instead of accessing originalResponse in the renderer.

Preserves listener registration timing, abort reasons, live completion state, and the response wrapper's preview-cookie synchronization. Adds unit coverage for these behaviors and scoped import restrictions to keep response lifecycle access at the adapter boundary.

Verification

38 test executions passed:

  • Lifecycle and existing response-completion unit tests: 11.
  • test-dev-turbo: HMR cancellation, validation scheduling, and worker source maps: 11; 9 snapshots.
  • __NEXT_CACHE_COMPONENTS=true test-dev-turbo: HMR cancellation and static-shell validation: 8; 1 snapshot.
  • test-dev-webpack: HMR cancellation and validation scheduling: 6.
  • test-start-webpack: standalone Node/Edge bundling: 2.

@kassens
kassens added this pull request to stack #100328 October 19, 2026 13:23
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Failing CI jobs

Commit: a24c2c9 | About building and testing Next.js

@kassens
kassens removed this pull request from stack #100328 October 19, 2026 17:13
@kassens
kassens force-pushed the kassens/render-response-lifecycle branch from fb328a4 to 0814895 Compare October 19, 2026 17:13
Base automatically changed from kassens/render-interception-flag to kassens/render-request-headers October 19, 2026 17:13
@kassens
kassens added this pull request to stack #100411 October 19, 2026 17:16
@kassens
kassens force-pushed the kassens/render-response-lifecycle branch from 0814895 to 2a8864b Compare October 19, 2026 18:08
@kassens
kassens force-pushed the kassens/render-response-lifecycle branch 3 times, most recently from f2f5d22 to a908fb5 Compare October 19, 2026 21:36
@kassens
kassens force-pushed the kassens/render-response-lifecycle branch 3 times, most recently from 3a7f697 to 8a64f9f Compare October 20, 2026 02:16
Base automatically changed from kassens/render-request-headers to canary October 20, 2026 13:04
@kassens
kassens force-pushed the kassens/render-response-lifecycle branch from 8a64f9f to f3bfca9 Compare October 20, 2026 13:04
@kassens
kassens marked this pull request as ready for review October 20, 2026 13:44
@kassens
kassens requested a review from gnoff October 20, 2026 13:44
@kassens
kassens merged commit 676b665 into canary Oct 22, 2026
120 of 121 checks passed
@kassens
kassens deleted the kassens/render-response-lifecycle branch October 22, 2026 16:24
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