Core Changes
- Fix
unstable_allowDynamic when used with pnpm: #73732
- [dynamicIO] use new heuristic to track whether server render is dynamic: #73751
- Fix receiveExpiredTags not always called: #73759
- error-overlay: Rename "Error" to "Issue": #72817
- remove redundant segment collection call: #73773
- Metadata resolvers can be fetched synchronously: #73771
- Turbopack: migrate client references to single-graph-traversal: #73322
- next-codemod: update gitignore file for parity for yarn recommendations: #71963
- feat: error code: #73332
- Detach next-error-code-swc-plugin from workspace: #73806
- [CI] Prominent error message for check_error_codes: #73807
- [Segment Cache] Add PPR header to segment prefetch: #73756
- fix: path escaping issue on windows: #73843
- Rename variables in LayoutRouter for clarity: #73826
- [Segment Cache] Skip prefetched segments on server: #73626
- [Segment Cache] No data on tree prefetch if no PPR: #73767
- Remove segmentPath from RSC payload: #73827
- build: better error if fetching AMP validator fails: #73851
- Escape the '.' in '.json' when making static data routes.: #73850
- fix(next@15): use the asset prefix when loading a CSS in App Router: #72095
- Exclude
.test. files from using error code plugin: #73868
- Refactor telemetry API: #73865
- Add additional error classes and error codes: #73862
- refactor: collectAppPageSegments: #73908
- cleanup unnecessary map in dev server: #73745
- Retry manifest file loading only in dev mode: #73900
- Turbopack: ignore empty NEXT_TURBOPACK_TRACING var: #73903
- Ignore RSC fetch errors after hard navigation: #73975
- Fix error code check in windows: #73981
- Separate viewport and metadata in rsc and cache: #73867
- Add feature flag for new dev overlay: #73977
- Restore RSC fetch error handling after navigating back: #73985
- refactor: make locales array immutable: #74037
- fix: skip rendering dynamic root segment routes: #74039
- refactor: cache lowercasing all the locales: #74038
- Add SRI support for Node.js Runtime : #73891
- Separate bots detection utils: #74000
- docs: remove a duplicated word in redirect code comment: #74043
- examples: update gitignore files for parity for yarn recommendations: #71956
- chore: update turbopack document path in the warning message: #72597
- Clean up
react-dev-overlay before fork: #74016
- chore(next/image): improve imgopt api bypass detection for unsupported images: #73909
- [Segment Cache] Add CacheStatus.Empty: #73667
- chore: move static paths utils into own folder: #73928
- Delete unused
GroupedStackFrames.tsx: #74028
- [Segment Cache] Move cache key creation to client : #73853
- feat: added partial shell generation using root params: #73816
- feat: added error when there's missing root params in generateStaticParams: #73933
- Remove parentRendered argument: #73877
- Generate per-segment responses for any static page: #73945
- feat: added fallback route params to prerender manifest: #74004
- refactor(turbopack): Make various types directly or indirectly included in
State<T> types into OperationValues and/or NonLocalValues: #74008
- Fork
react-dev-overlay for new UI: #74017
- fix: added fallback source route to prerender manifest: #74052
- Add storybook for UI testing: #74032
- [Segment Cache] Support for non-PPR projects/pages: #73960
- exclude
.stories. and .test. files from taskfile watch and error plugin: #74064
- Upgrade React from
7283a213-20241206 to 372ec00c-20241209: #73749
- fix: aria attribute typo for error overlay: #74074
- fix: set x-deployment-id to every middleware prefetch request: #71193
- Add middleware handler for error code telemetry: #74088
- Create ErrorOverlay component: #74073
- fix(typed-routes): Fix route type fallback: #73271
- Rename
root-layout-missing-tags-error.tsx to pascal case: #74089
- Turbopack: next/dynamic use transitions instead of AST analysis: #73627
- [Turbopack] fix root and project path usages in a monorepo: #73552
- support
bun.lock as package manager lockfile: #74056
- Stop sourcemapping function names: #74085
- Move ErrorIndicator to separate file: #74090
- Upgrade React from
372ec00c-20241209 to 518d06d2-20241219: #74155
- used shared worker for lint & typecheck steps: #74154
- chore(turbopack): Ignore no-vc-struct lint in trybuild proc macro tests: #74110
- Use provided waitUntil for pending revalidates: #74164
- Port ErrorPagination: #74097
- Port LeftIcon RightIcon from ErrorPagination: #74098
- Port ToolButtonsGroup: #74099
- [Turbopack] fix import.meta.url in monorepo: #72612
- refactor: rename the react client error callbacks module: #74192
- Use ErrorOverlayLayout in Errors component: #74107
- refactor: remove internal queries, move to request metadata: #74100
- Fix accessing headers in progressively enhanced form actions: #74196
- Use Geist font in Dev Overlay: #74160
- [metadata] Align prefetch head type with head: #74161
- refactor: error boundary rendering in app-render: #74259
- [metadata] Merge the metadata resolve apis into one api: #74191
- [DevOverlay] fix: restore pagination style: #74296
- fix: update broken links in config-shared.d.ts: #74122
- fix: fix typos in errors.json & create-component-tree.tsx: #74471
- Safely retrieve router, improve page reload logic: #74209
- docs: bump year: #74475
- [DevOverlay] Remove Dialog Banner: #74464
- [DevOverlay] Add color palette script: #74465
- Fix: Preserve intentional percent encoding in search param for client nav: #74473
- [DevOverlay] Implement New Overlay Layout with Bottom Stacks: #74466
- [DevOverlay] Add error overlay footer and feedback: #74472
- [DevOverlay] Remove temporary header children: #74490
- fix: server functions x-forwarded-host possible multiple values: #73701
- [DevOverlay] Pass footer message from error containers: #74493
- feat(rsc): allow host or forwarded: #74199
- [DevOverlay] Adjust border style for header and footer: #74480
- feat(next/image): add support for
images.qualities in next.config: #74257
- Upgrade React from
518d06d2-20241219 to 3b009b4c-20250102: #74492
- fix: add node internals stack frames to ignored list: #73698
- chore: break calls to forEach into for loops: #74523
- [DevOverlay] Add error message: #74541
- [DevOverlay] Add error type label: #74543
- feat: connect error rating buttons to telemetry API: #74496
- [metadata] Move metadata rendering adjacent to page component: #74262
- Delete set-cache-busting-search-param.test.ts: #74561
- fix: enhance a11y, prevent double firing in error rating: #74563
- fix: add aria-hidden to error overlay voting icons: #74568
- Update font data: #74572
- Upgrade React from
3b009b4c-20250102 to 3ce77d55-20250106: #74557
- [metadata] Change the array head to single node in flight data: #74299
- [DevOverlay] Add Toolbar: #74555
- restore deleted comment in next-app-loader: #74597
- Turbopack dev: Remove client to server websocket ping event: #74584
- Fix prerender tags when notFound is called: #74577
- fix: add prerender abort errors to unstable rethrow: #74556
- Upgrade React from
3ce77d55-20250106 to 7b402084-20250107: #74599
- fix: handle optional catchall parameters properly when deployed: #74562
- refactor: generic dev build indicator: #74615
- ensure custom cache handlers are preloaded: #74622
- feat: dev build indicator for App Router: #74618
- fix fetch lock not being consistently released: #74623
- Ensure global cache handlers are used properly: #74626
- Ensure custom Suspense boundaries in layouts resolve if they contain the page: #74552
- test: exclude the ts testing files from tsconfig during local dev in nextjs repo: #74647
- Remove unused dependencyFactory plugin code: #74661
- test: do not log the changes for local dev tsconfig: #74674
- [metadata] initial support of streaming metadata: #74619
- Remove PPR feature check from Segment Cache client: #74669
- [Segment Cache] Add act-inspired internal router testing helper: #74668
- [Segment Cache] Background segment revalidation: #74057
- Upgrade React from
7b402084-20250107 to 42687267-20250108: #74649
- Indicate boolean value for configured experimental features on startup: #74691
- Implement encryption key into turbopack as hash salt: #72933
- Show numerical values for configured experimental features: #74692
- Upgrade React from
42687267-20250108 to 74ea0c73-20250109: #74693
- feat: DevToolsIndicator: #74679
- Fix presentation when onerror receives an event without error: #74643
- refactor: move the global client error code: #74699
- fix: ts language server rule metadata should allow null: #74704
- [DevTools] create error state for indicator: #74717
- [DevOverlay] Add Basic Stories for Error Containers: #74697
- Add experimental flag for View Transitions: #74659
- [DevOverlay] Floating Header and Bottom Stacks: #74581
- [DevOverlay] Add Pagination: #74583
- Fix @vercel/og license SPDX expression: #74745
- [DevOverlay] Add Next.js version staleness indicator: #74601
- Write errors.json fully formatted: #74753
- [DevOverlay] Fix style details and correctly pass version info: #74606
- [DevOverlay] Decouple Dialog component from Error Overlay: #74638
- [DevOverlay] Apply Turbopack Styling: #74636
- [DevOverlay] Add Call Stack: #74658
- [DevOverlay] Add Runtime Error CodeFrame: #74682
- Do not warn during build for supported modules in the Edge runtime: #74752
- Ensure metadata doesn't break scroll-to-top on navigation: #74748
- [Segment Cache] Fix stale time unit conversion: #74759
- [metadata] add option of configuring ua of async metadata: #74594
- SingleModuleGraph: yield edge weights during traversal: #74620
- refactor(turbopack/next-api): Implement NonLocalValue for TracedDiGraph and SingleModuleGraph: #74506
- Always display version indicator: #74774
- Update font data: #74777
- Upgrade React from
74ea0c73-20250109 to 056073de-20250109: #74754
- [DevOverlay] Improve Storybook Structure: #74764
- fix: always show indicator in app router: #74758
- Upgrade React from
056073de-20250109 to 540efebc-20250112: #74805
- [DevOverlay] Fix Style Regression: #74768
- Fix output files warning by Turborepo: #74811
- perf(lint): cache the returned regex result: #74827
- Upgrade React from
540efebc-20250112 to cabd8a0e-20250113: #74828
- feat: added rewrite headers after user-supplied rewrites: #74776
- Add partial support for
"use cache" in metadata route handlers: #74835
- [DevOverlay] Hydration Error Code Frame: #74822
- fix: when metadatabase is set we should not warn: #74840
- [DevOverlay] Sync Terminal component with CodeFrame for Build Error: #74831
- feat: animated dev build/render indicator: #74833
- Fix mojibake in server action inputs (fixes #74843): #74845
- [DevOverlay] Add Turbopack story for Error Containers: #74834
- Add pagination SEO link tags: #74737
- chore: fix local development warnings inside next monorepo: #74863
- fix: eslint rule of using img in metadata routes: #74864
- Upgrade React from
cabd8a0e-20250113 to b3a95caf-20250113: #74868
- [Segment Cache] Support
<Link prefetch={true}>: #74172
- Remove unnecessary re render on link reveal: #74670
- [Segment Cache] Cancel prefetch on viewport exit: #74671
- [Segment Cache] Prioritize hovered links: #74672
- Refine NextLogo Accessibility and Styling: #74869
- Disable failed scroll restoration warning: #74875
- Polish UI for dev indicator popover: #74872
- [DevTools] Add
CMD + . keyboard shortcut to show/hide: #74878
- [DevOverlay] use buttons for interactive indicator row options: #74887
- [DevOverlay] close popover/overlay on Esc: #74889
- Skip client reference manifests for static metadata route handlers: #74876
- Upgrade React from
b3a95caf-20250113 to f0edf41e-20250115: #74890
- fix: moved down segment path handling after cache headers are set: #74893
- [Turbopack] improve task optimization: #74837
- Ensure client reference manifest is traced for global not found page: #74919
- Polish error feedback row: #74880
- fix: static indicator for new overlay decoupled from appIsrStatus: #74933
- [test] Avoid hydration errors in react-compiler tests: #74928
- feat: write the segment path data out from the incremental cache: #74892
- Track dynamic IO feature usage: #74942
- Upgrade React from
f0edf41e-20250115 to b158439a-20250115: #74936
- Turbopack: chunk_group_multiple: #74859
- [DevOverlay] Fix floating header invisble on small screen: #74886
- rest errors queue after passing to handler: #74982
- [DevOverlay] Keep pagination on Build Error: #74905
- [Segment Cache] Evict client cache on revalidate: #74874
- Upgrade React from
b158439a-20250115 to 5b51a2b9-20250116: #74993
- [DevOverlay] Gather Feedback per Error: #74908
- Fix dev server ignores ENOENT error when loading page: #65213
- refactor: updated route regexp handling to simplify: #74996
- [DevOverlay] Rename file names to kebab: #75000
- Fix dhat support for turbo dev: #67166
- Fix missing revalidate with notFound(): #75009
- fix: always ensure element before set to weakmap: #75012
- Fix ping event being sent unintentionally for Pages Router with Turbopack: #75030
- fix: don't memory-leak promises passed to
waitUntil: #75041
- refactor: include new option for including prefixes: #75015
- Disable
colormin feature from cssnano: #53393
- types: improve types in app-index: #75045
- feature(error): capture ssr error in overlay during dev: #74983
- [DevOverlay] Polish new Error Overlay badge: #74975
- [DevOverlay]: hook up issue click handlers in NextLogo: #75069
- error when output: export is used with intercepting routes: #75058
- Display global-error along dev overlay during development: #75101
- [DevOverlay] Decouple Error Overlay with DevTools Indicator: #74999
- [DevOverlay] Open Error Overlay when DevTools Indicator clicked: #75025
- fix: be more defensive in useMergedRef: #75088
- [Dev Badge] Focus states and fluid transitioning between states: #75141
- polish indicator loading behaviour for new dev overlay: #75149
- clean unused stop: #75156
- [Segment Cache] Remove segment access tokens: #75157
- [Segment Cache] Minimize special root key handling: #75159
- [next:dev] fix: console error conflicting public file: #75140
- [Turbopack] allow to disable source maps: #75136
- Allow disabling HTTP request logs in dev server: #74349
- [metadata] Fix streaming metadata was missing in ssr: #75155
- fix(turbopack/napi): Flush optional task cache hit statistics upon completion of build: #75122
- add hostname to default error boundary message: #75151
- [Segment Cache] Predictable fallback param encoding: #75166
- misc: remove authors section in the readme: #75184
- Track
use cache usage: #75007
- Upgrade React from
5b51a2b9-20250116 to 9b62ee71-20250122: #75187
- fix
after export in next-types-plugin: #75190
- fix: Merge
link header from middleware with the ones from React: #73431
- Restore and enhance error handling for hanging inputs in
"use cache": #74652
- Error handling for hanging promises in
"use cache" closures: #74750
- Fix source mapping of generated cache wrapper calls: #74987
- [Turbopack] use new backend by default: #72434
- eslint: allow ts extensions for config: #75222
- Split entrypoint/route handling into separate dev and prod versions: #75169
- [Segment Cache] Prioritize route trees over segments: #75213
- Remove
internal_disableSyncDynamicAPIWarnings flag: #75231
- router.prefetch should not trigger a React update: #75238
- [DevOverlay] Enable reactOwnerStack when newDevOverlay is enabled: #75199
- fix: typeof msg should compare to object: #75221
- [DevOverlay] Align old and new overlay: #74935
- Introduce standalone
experimental.useCache flag: #75240
- [metadata] keep blocking metadata rendered in head: #75227
- Upgrade React from
9b62ee71-20250122 to ae9017ce-20250122: #75233
- Update React types: #75245
- docs:
opengraph-image files work with the node.js runtime: #75274
- Upgrade vercel/og: #75247
- Turbopack: migrate global module ids to single-graph: #73752
- Emit build error when
useCache is enabled and Edge runtime is used: #75279
- Fix
use server diagnostics for type exports: #74256
- Turbopack: don't hardcode
edge-instrumentation.js: #75289
- Upgrade React from
ae9017ce-20250122 to de1eaa26-20250124: #75286
- Update bundler for pre-bundling runtime: #75294
- Ensure mangling is disabled for dev runtime builds: #75297
- Configure correct app dir when building
/_error fallback in dev: #75354
- Upgrade React from
de1eaa26-20250124 to 9eabb373-20250124: #75367
- tweak static generation retry wait time: #75381
- [Dev Badge] Accessibility improvements to dropdown menu: #75268
- Gate
captureOwnerStack access on experimental.reactOwnerStack: #75241
- [DevOverlay] Remove unused props from
errors.tsx and its story: #75392
- feat: slow module detection for webpack: #75368
- UI polish: dev overlay feedback button: #75400
- [DevOverlay] fix: shadow host element affects parent's display: #70676
- [DevOverlay] Display Correct Number of Errors on Indicator: #75395
- [dev-overlay] fix: do not open error overlay when click indicator: #75404
- fix: handle optional catchalls correctly: #75377
- [dev-overlay] do not close overlay when click indicator elements: #75406
- fix: add parser metadata for eslint 9 cache: #74791
- Fixed
null is not an object (evaluating 't.parallelRoutes.get'): #75360
- Turbopack: Move build to separate file: #75390
- Upgrade React from
9eabb373-20250124 to 37906d4d-20250127: #75398
- Turbopack: Implement build worker: #75391
- Revert changing bundler for runtime bundle but keep externals fix: #75412
- Revert "fix: handle optional catchalls correctly": #75442
- [Turbopack] allow to manually mark tasks as root: #75436
- [Turbopack] disable dependency tracking when running build without persistent caching: #75243
- [DevOverlay] fix total error count: #75500
- [DevOverlay] fix total error count: #75500
- fix: incoming requests should use plural: #75582
- Don't warn about Turbopack config if disabled: #75618
- Unfork stack frame utils: #75532
- [use-cache] Exclude warmup render when dynamicIO is off: #75527
- add additional x-middleware-set-cookie filtering: #75561
- [use-cache] use computed size of the ReadableStream for LRU evicting: #75607
- Include HMR refresh hash in
"use cache" cache keys: #75474
- [DevOverlay] cleanup hydration error UI: #75499
- [metadata] Remove deadcode and extract separate test suite: #75528
- refactor: decouple getOriginalStackFrame from endpoint: #75553
- fix: dev overlay style to add wrap + adjust bg width: #75485
- fix: preserve custom Vary headers: #75536
- Clean-up: remove unused errorMessage param in stack frames: #75554
- Upgrade React from
37906d4d-20250127 to c492f975-20250128: #75434
- Fix console replaying and
React.cache usage in "use cache" functions: #75520
- Upgrade React from
c492f975-20250128 to a4b2d0d5-20250203: #75649
- DX: Reduce devtools clutter by batching stack frame requests: #75557
- Add nodejs runtime support for middleware: #75624
- polish hydration errors: #75632
- feat: added support for prefetch segments when deployed: #75202
- [Turbopack] await shutdown before ending pool: #75545
- [Error Overlay] Comprehensive refinement: #75471
- Upgrade React from
a4b2d0d5-20250203 to 0a82580b-20250203: #75660
- Ensure src/middleware handles correctly: #75702
- Unused
searchParams in "use cache" page should not cause dynamic: #75662
rootParams() is now a plain Proimse (not exotic): #75717
- Invalidator: don’t call invalidate at all if there’s nothing to invalidate: #75706
- add script for quickly updating error codes: #75690
- [dev-overlay] fix: color contrast for terminal: #75736
- fix: enable new overlay properly when env var is set: #75747
- fix: work around setTimeout memory leak, improve wrappers: #75727
- [DevOverlay] fix style regression: #75756
- [dev-overlay] fix: proceed to get runtime error when fails to fetch original stack frames: #75743
- [dev-overlay] add and apply merge class names util: #75758
- docs: Update README for experimental testmode: #75722
- fix: middleware not applied to _next/image: #75729
- fix: ensure lint worker errors aren't silenced: #75766
- Ensure node middleware is handled with standalone: #75765
- Fix incorrect error count : #75759
- Upgrade React from
0a82580b-20250203 to d85cf3e5-20250205: #75698
- Only disable Prettier for original Turbopack source: #75716
- [dev-overlay] fix: pagination focus ring was invisible: #75790
- test: Exclude
turbo-tasks-macro from test-cargo-unit: #75776
- Send formatted error to frontend if sourcemapping fails: #75712
- Upgrade React from
d85cf3e5-20250205 to ff628334-20250205: #75757
- [dev-overlay] fix link styling on hydration errors: #75792
- Only reference published
@types/react-dom versions: #75606
- Dedupe cached data from
"use cache" functions in RSC payload: #75786
- Allow
"use cache" with output: 'export': #75794
- [metadata] new metadata insertion API and support PPR: #75366
- Handle invalid sourcemaps: #75713
- [error overlay] fix missing html error is not displayed: #75831
- docs: improve JSDocs for
metadata and <Link>: #75576
- [error overlay] missing html tags error should be blocking: #75839
- Upgrade React from
ff628334-20250205 to 8759c5c8-20250207: #75796
- Use TypeScript to check if a default case is required in
switch: #75854
- Revert "[metadata] new metadata insertion API and support PPR": #75858
- [Error Overlay] Fix bottom stack animation: #75867
- [Error Overlay] New design: #75679
- Upgrade React from
8759c5c8-20250207 to 93b58361-20250209: #75868
- [dev-overlay] HOTFIX: clicking nav escapes the overlay: #75876
- dev error overlay: async boundary for original stack frame call: #75718
- fix(turbopack): Always console.log the "done in" message after receiving a BUILT event: #75730
- Add test to verify that inner caches are excluded from Resume Data Cache: #75883
- Respect
no-store request header for "use cache" entries in dev mode: #75754
- Reland "[metadata] new metadata insertion API and support PPR #75366": #75873
- [metadata] do not rethrow postpone when streaming metadata is not enabled: #75887
- refactor(webpack-config): Pass through jsConfigPath: #75886
- refactor(webpack-config): Disable some options based on bundler version: #75888
- Improve hydration diff view: #75799
- [dev-overlay] Introduce motion to surface new errors: #75734
- Upgrade React from
93b58361-20250209 to cd90a4d8-20250210: #75914
- [DevOverlay]: render indicator in pages router: #75918
- error code should preserve after stitching: #75929
- [error overlay] display different error info individually: #75916
- refactor: minor cleanups in webpack actions code: #75912
- [DevOverlay]: fix missing Error context for build-time errors: #75932
- [error overlay] align data attributes between 2 UIs: #75937
- fix: typos in documentation files: #75816
- [error overlay] fix highlighted lines: #75940
- [error overlay] hornor the original erroring order: #75934
- Restore
--no-mangling CLI option for next build: #75921
- Turbopack: make tracing easier: #75958
- Upgrade React from
cd90a4d8-20250210 to f83903bf-20250212: #75967
- Use
compilation.{emitAsset,updateAsset} api rather than mutating assets object: #75927
- Use resource to detect feature usage in telemetry: #75917
- Create unique source URLs between Client and Server in Pages dir: #75878
- cleanup: remove unused NEXT_RSC_ERR_* error parsing code: #75982
- [error overlay] fix infinite loop when frames are failed to fetch: #75988
- [dev-overlay] fix: call stack silently fails to open editor with 204: #75785
- Cleanup webpack sourcemap middleware source URL handling: #75879
- Upgrade React from
f83903bf-20250212 to cbbe8666-20250213: #76010
- [dev-overlay] sync style diffs with new design: #75949
- [dev-overlay] update overlay toolbar icons: #75998
- webpack: Sourcemap externals when replayed in the browser: #75863
- [DevOverlay]: enable by default: #75882
- [dev-overlay] style: version info staleness click text to learn more: #75768
- [ppr] Improve experimental debugging: #76016
- [metadata] set bypass ua regex string for ppr routes: #75977
- fix: handle parsing destination with patterns in hostname: #75973
- Fix: Build error causes infinite loop on new dev overlay in Turbopack: #75984
- [metadata] disable streaming metadata for ppr deployment: #75978
- [dev-overlay] fix: hydration error style: #76049
- Remove
experimental.reactOwnerStack flag: #76021
- [dev-overlay] style: improve version staleness indicator version unknown: #76061
- [dev-overlay] add aria to disabled docs button: #76055
- [dev-overlay] fix: terminal symbols are longer than text: #76059
- Disallow
rootParams() in cache scope: #75801
- Remove tracestate header from fetch cache key: #76041
- [dev-overlay] remove hide dev tools shortcut: #76066
- [dev-overlay] hide dev overlay when printing: #73489
- Create valid URLs in source map sources with Turbopack: #76075
- [metadata] fix ppr deployment by not disabling ppr: #76087
- [dev-overlay] add error env name label: #76003
- [dev-overlay] deprecate
devIndicators options appIsrStatus and buildActivity: #76067
- [dev-overlay] deprecate
devIndicators.buildActivityPosition and rename to position: #76069
- Fix runtime error in
writeConfigurationDefaults: #76106
- [dev-overlay] change dev indicator position by next config option: #76077
- perf: Do not run react compiler needlessly: #75676
- Handle more known protocols in stackframe locations: #76086
- Bump webpack to 5.98.0: #75847
- fix(edge): run after() if request is cancelled mid-streaming: #76013
- Clean module path if Fast Refresh full reload was caused by files outside project: #76108
- Revalidate
"use cache" caches during on-demand revalidation: #76100
- Fix cache kind validation: #76064
- [dev-overlay] add false option to disable dev indicator: #76079
- Fix on-demand revalidation with
"use cache" in dev mode: #76122
- [dev-overlay] handle ssrd nextjs internal errors in overlay: #76124
- [dev-overlay] fix: overlay is located relatively low when long content: #76113
- [dev-overlay] Fix off-by-one column sourcemapping in Webpack: #76152
- [metadata] handle navigation API in streaming metadata: #76156
- [dev-overlay] refactor to group the middleware response utils: #76199
- [dev-overlay] fix geist font woff2 name: #76201
- [dev-overlay] rename
readyErrors to runtimeErrors: #76208
- [dev-overlay] do not allow dismissing build error for dev indicator: #76209
- [dev-overlay] use stop icon for hide devtools button: #76212
- Add basic profiling plugin for alternative bundler: #76030
- [dev-overlay] font style backward compat with react 18: #76225
- Implement foundations for additional bundler option: #75981
- Remove hmr socket code from prod build: #76232
- fix: overlapping query and param names should not conflict: #76177
- Built-in app loader plugin for additional bundler: #76017
- Built-in flight plugin for additional bundler: #76014
- Built-in swc loader plugin for additional bundler
- misc: remove vendored node-fetch usages: #75741
- Consolidate
next/link error tests: #76214
- fix: NextConfig.rewrites type for fallback: #75784
- [dev-overlay] use absolute font src url: #76229
- [dev-overlay]: remove old CollapseIcon: #76239
- fix: add appDir path to middleware output path: #75923
- [Turbopack] pass inner modules to chunking to match chunking types: #76227
- [dev-overlay] Remove old Dev Overlay: #76256
- [dev-overlay]: make open in editor button a separate click region: #76243
- [dev-overlay] dead code elimination: #76276
- [dev-overlay] use unique font name: #76230
- [dev-overlay] align border color: #76288
- Add canary warning for node middleware: #76292
- fix: top level await in node middleware: #76012
- docs(errors): add failed-to-find-server-action error page: #75678
- Ensure middleware layer is applied for node: #76293
- [metadata] fix streaming metadata triggering error boundaries: #76280
- [errors]: default export error should distinguish between layout/page: #76294
- Remove unused nccd node-fetch: #76241
- [dev-overlay] expandable error message container: #76297
- feat: option to disable next types plugin: #76300
- [dev-overlay] pick up build error message: #76290
- [dev-overlay] fix: line number handling for cursor editor: #76151
- [dev-overlay] restructure dev-overlay project: #76291
- Upgrade React from
32b0cad8-20250213 to 662957cc-20250221: #76333
- Revert null check in mountLinkInstance: #76289
- [dev-overlay] Isolate overlay from user space Components: #76277
- [global-error] fallback to default error when user one fails: #76339
- [misc]: remove unused render worker code: #76345
- [dev-overlay] do not attach hydration info to non hydration errors: #76349
- [dev-overlay] adjust Next.js logo stroke color during dev builds: #76351
- [dev-overlay] fix: restore the missing Cursor editor case in dev-overlay : #76371
- [dev-overlay] remove the experiment config for overlay: #76356
- [dev-overlay] minify css: #76370
- [dev-overlay] remove unused base styles: #76372
- [dev-overlay] use css var for
<a> tag focus ring: #76374
- [dev-overlay] fix: fallback to local machine's Geist Font if applicable: #76377
- [dev-overlay] fix: bottom stack count: #76375
- [next] use
tsconfig.build.json for production build: #76373
- [metadata] only blocking render for html bots in ppr pages: #76379
- [metadata] enable streaming metadata by default: #76221
- [dev-overlay] toggle overlay when clicking
N issues section: #76398
- [dev-overlay]: hiding devtools shouldn't hide errors: #76399
- [dev-overlay] docs: add readme: #76396
- Add test to assert on current build output tree view: #76342
- Flight loader: use
normalModule.type to determine module type: #76338
- update type for next/dynamic
loading option to accept ReactNode: #76402
- [dev-overlay] Link to section explaining opt-in error feedback: #76424
- [dev-overlay] polish component stack mask css: #76434
- [dev-overlay] Disable error feedback in UI if
NEXT_TELEMETRY_DISABLED is set: #76423
- [metadata] promote streaming metadata configs to stable: #76344
- [metadata] update metadat docs for streaming metadata: #76282
- [app] Send errors not handled by explicit error boundaries through
reportError: #76101
- Upgrade React from
662957cc-20250221 to 25677265-20250224: #76437
- [Testing] Update middleware/next-config tests to include search params: #76354
- Add node middleware handling for turbopack: #76360
- Upgrade React from
25677265-20250224 to 22e39ea7-20250225: #76481
- [app i18n]: warn about i18n configuration deprecation in app router: #76346
- [dev-overlay] style: improve error label background color contrast: #76490
- Fork Form implementation for Pages and App Router: #76498
- Webpack: handle file:// urls when finding sourcemaps: #76443
- Ensure middleware layer is bundled: #76466
- [dev-overlay] do not force hide scrollbar: #76504
- [Segment Cache] Hard nav when root layout changes: #76163
- [metadata] clarify the default list behavior: #76450
- [dev-overlay]: generalize ISR status functions for pages/app: #76457
- [dev-overlay]: wire up ISR status for pages router: #76458
- [dev-overlay]: fix inline docs to show correct info for given router: #76461
- [dev-overlay] add title for the dev indicator menu items: #76510
- [dev-overlay] sync suffix
N of --size-N with px value of base font 16px: #76384
- Add event for webpack plugin customization: #76477
- [dev-overlay] use
rem for sizes and px for spacings: #76385
- [dev-overlay] hide dev indicator for server session or 1 day: #76430
- [dev-overlay] customize scrollbar styling: #76509
- [dev-overlay] Add indicator when sourcemapping fails: #76516
- refactor: clean up forked Form implementations: #76495
- [dev-overlay]: fix invalid font in info panels: #76519
- [dev-overlay] upgrade
storybook@8.6.0: #76511
- [dev-overlay]: add preference panel: #76522
- [dev-overlay]: remove background on custom select: #76526
- [dev-overlay]: tweak system icon: #76527
- fix: remove initial-scale=1 from viewport when set to false: #76397
- [dev-overlay] control scrollbar by selected theme: #76553
- [dev-overlay] misc:
Ignored-listed -> Ignore-listed: #76554
- [dev-overlay] add disabled backround-color for toolbar buttons: #76555
- [dev-overlay]: update docs for devIndicators & outdated screenshot: #76463
- [dev-overlay] improve color contrast for terminal: #76525
- [dev-overlay]: use proper labels for preferences: #76558
- Handle duplex automatically for NextRequest: #76531
- [Segment Cache] Implement scroll-to-new-page: #76170
- Do not pass an empty string tag into
receiveExpiredTags: #76561
- [Segment Cache] Re-prefetch links on navigation: #76060
- [dev-overlay] fix: svg icon ids are not unique: #76566
- [dev-overlay] change button to lowercase except leading letter: #76565
- Remove rewrite query params from request URL when deployed to Vercel: #76548
- exclude AppDevOverlayErrorBoundary from prod build: #76568
- [dev-overlay] rephrase docs button title as link to related docs: #76571
- [dev-overlay]: allow disabled state to be dismissable: #76572
Example Changes
- chore(docs): add missing
search: '' on remotePatterns: #73925
- examples: remove
with-tailwindcss example: #73919
- examples: update
next-config-js document path: #73774
- examples: convert @next/third-parties examples from JS to TS: #73602
- updated with-orbit-components example to utilize the App Router.: #73266
- examples: update
with-styled-components README: #73729
- examples: update
with-orbit-components README: #74011
- examples: update
with-mdx-remote example to utilize the App Router: #74067
- Removed duplicated cn function declaration from lib dir: #74065
- Fix linting between lint-check and lint-staged: #74503
- chore(examples): update React in reproduction templates to stable 19: #74499
- chore(examples): updated the example of with-react-jss to utlize the App router: #74440
- chore(examples): updated the example of with-styled-components-rtl to utlize the App router: #74180
- examples: remove
app-dir and with prefix in the mdx directory name: #73458
- examples: add StackBlitz preview to README.md: #73546
- examples: improve DX while copying command to create new project:
Misc Changes
- Add NEXT_PRIVATE_SKIP_CANARY_CHECK env for bench job: #73763
- refactor(turbopack): Add
NonLocalValue derives to types deriving TraceRawVcs: #73714
- Turbopack: support module workers: #72614
- docs: add versions to connection API: #73798
- Increase test retries from 1 to 2: #73795
- refactor(turbo-tasks): Implement
NonLocalValue for all ResolvedVcs and OperationVcs: #73764
- docs: supporting after for providers: #73743
- [E2E] Fix config file conflict: #73818
- feat: Update
swc_core to v9.0.0: #73696
- Turbopack: resolve some to-resolved-in-loop: #73794
- Bump Rust version: #73169
- fix(turbopack): Enable
explicit_resource_management transform: #73802
- docs: fix code block extension on
after and error handling: #73844
- Revert "feat: Update
swc_core to v9.0.0": #73866
- refactor(turbo-tasks): Derive NonLocalValue by default in value/value_trait macros: #73766
- refactor(turbo-tasks): Implement
NonLocalValue for State<T> where T: NonLocalValue: #73770
Credits
Huge thanks to @ijjk, @unstubbable, @bgw, @gnoff, @eps1lon, @ztanner, @mischnic, @Marukome0743, @leerob, @gaojude, @lubieowoce, @acdlite, @kdy1, @JamBalaya56562, @creationix, @noreiller, @samcx, @delbaoliveira, @styfle, @abdonrd, @ollyw, @wyattjoh, @devjiwonchoi, @aymericzip, @davidhu2000, @attilarepka, @devpla, @dydals3440, @huozhi, @wbinnssmith, @suu3, @PapatMayuri, @Sahil4883, @abyii, @molebox, @sokra, @maciej-ka, @abvthecity, @damiensedgwick, @alitas, @RiskyMH, @ytreister, @sommeeeer, @n1ckoates, @yongholeeme, @spidersouris, @gurkerl83, @cassiossantos, @Netail, @tknickman, @eur00t, @cseas, @nnnnoel, @timneutkens, @Manoj-M-S, @lfades, @sebmarkbage, @matmannion, @mikeboensel, @nphmuller, @apostolos, @k15a, @pavelee, @locothedev, @vexcat, @Zach-Jaensch, @decepulis, @gadcam, @lukahartwig, @jsanford8, @RobinMalfait, @raunofreiberg, @mohsen1, @skushagra, @feedthejim, @amannn, @HQidea, @jrandolf, @smit-err, @littledivy, @k35o, @martinsione, @CvX, @msereniti, @Timer, @Iftee97, @chibicode, @RobPruzan, @padmaia, @PlagueFPS, @bjunix, @maximevtush, @michaelven, @sedlukha, @johannpinson, @AxelUser, @Nayeem-XTREME, @IcaroG, @blurrah, @lachlanjc, @ashi009, @conico974, @raphaelcosta, @dulmandakh, @khuezy, @Knoa0405, @wangsijie, @stefanprobst, @wentsul, @loopy-lim, @bratvanov, @hedgeday, @cassian-goode, @artemszelenov, and @saltcod for helping!