What's Changed
New Features
- Added React-based runtime error overlay for better development experience
Bug Fixes
- Fixed layout segment configuration not being properly applied to pages in App Router
- Fixed routing issues where inherited slot parameters were incorrectly matched against request URL instead of route path
- Fixed parallel slots not being properly mirrored to descendant sub-pages
- Fixed CLI validation to properly reject missing or malformed
--port and --hostname values
- Fixed Google Fonts to be self-hosted in development mode instead of making external requests
- Fixed hydration errors in
next/image component by adding proper error replay handling
- Fixed navigation to properly fall back to hard navigation when render errors tear down the component tree
- Fixed HMR to trigger full page reload when render errors destroy the browser root
- Fixed HMR timing issues by ensuring router state is ready before dispatching RSC updates
- Fixed ISR to properly honor route expiration ceilings
Performance
- Moved private Next.js instrumentation client out of Vite's dependency optimization for faster dev builds
Internal / Chores
- Refactored App RSC request lifecycle into typed handler for better maintainability
- Extracted response finalization logic into dedicated server module
- Extracted request normalization into separate typed server module
- Refactored browser navigation lifecycle controller for better separation of concerns
- Extracted page element building logic into typed helper modules
- Extracted app fallback renderer factory for better code organization
- Moved instrumentation lazy initialization to dedicated server module
- Extracted App Router route graph builder into separate module
- Moved route classification injection behind typed planner interface
- Added code review guidelines for AI agent
- Updated project README
- Added test coverage reporting for integration tests
- Removed obsolete code assertion tests and snapshots
- Fixed various linting issues
Contributors
@NathanDrake2406
@james-elicx
@Divkix