Releases: vercel/next.js
v15.2.1-canary.0
v15.2.0
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
to372ec00c-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
to518d06d2-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
to3b009b4c-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
to3ce77d55-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
to7b402084-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
to42687267-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
to74ea0c73-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 `0560...
v15.2.0-canary.77
Core Changes
- [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
Misc Changes
- Move known failed test back into
failed
set in Turbopack manifest: #76542 - Run React 18 tests for automated update PRs: #76544
- Skip globally installing turbo CLI: #76532
- docs(errors): update suppressHydrationWarning section: #76521
Credits
Huge thanks to @ztanner, @unstubbable, @artemszelenov, @huozhi, @devjiwonchoi, @ijjk, @acdlite, @gaojude, @samcx, @PapatMayuri, and @saltcod for helping!
v15.2.0-canary.76
Core Changes
- [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
Misc Changes
- docs: fix typo in route-segment-config: #74403
- Docs: Fix minor typo in
api-reference/functions/cookies.mdx
: #76376 - Correcting typo: #76440
- Update error-recovery test snapshots for alternative bundler [3/n]: #76446
- refactor(CI): Assign tests to groups round-robin instead of sequentially when we don't have timings: #76462
- Update Turbopack development test manifest: #76471
- Update Turbopack production test manifest: #76472
Credits
Huge thanks to @bratvanov, @hedgeday, @cassian-goode, @eps1lon, @wbinnssmith, @bgw, @lubieowoce, @ztanner, and @devjiwonchoi for helping!
v15.2.0-canary.75
Core Changes
- Upgrade React from
25677265-20250224
to22e39ea7-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
withpx
value of base font16px
: #76384 - Add event for webpack plugin customization: #76477
- [dev-overlay] use
rem
for sizes andpx
for spacings: #76385 - [dev-overlay] hide dev indicator for server session or 1 day: #76430
- [dev-overlay] customize scrollbar styling: #76509
Example Changes
- Update with urql example: #76485
Misc Changes
- fix: workaround for TS bug in Object.defineProperty: #75944
- [docs]: add --api option information: #76493
- refactor(CI): Extend areweturboyet integration test jobs for all bundlers: #76361
- [repo] misc: rename
.cursorignore
to.cursorindexingignore
: #76494 - [ci]: PPR tests should run on development/acceptance-app: #76505
- chore(CI): Only update areweturboyet datasets for other bundlers from canary branch results: #76449
Credits
Huge thanks to @lubieowoce, @ztanner, @devjiwonchoi, @bgw, @acdlite, @wbinnssmith, @ijjk, @huozhi, @timneutkens, and @PapatMayuri for helping!
v15.2.0-canary.74
v15.2.0-canary.73
Core Changes
- [Testing] Update middleware/next-config tests to include search params: #76354
- Add node middleware handling for turbopack: #76360
Misc Changes
- [test] fix client navigation error count in react 18: #76442
- docs: add note to language and filename section: #74239
- docs: fix duplicate "scroll" parameter in Link component documentation: #74820
Credits
Huge thanks to @wentsul, @ijjk, @huozhi, @JamBalaya56562, and @loopy-lim for helping!
v15.2.0-canary.72
Core Changes
- Flight loader: use
normalModule.type
to determine module type: #76338 - update type for next/dynamic
loading
option to acceptReactNode
: #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
to25677265-20250224
: #76437
Misc Changes
- fix(turbopack): Fix pure span check in advanced tree shaking: #76406
- Turbopack: fix graph chunk groups: #76383
toDisplayRedbox()
matcher: trim line endings: #76404- Turbopack: rename reverse topological to postorder topological, fix async referenced modules: #76429
- Turbopack: handle removed assets similar to non-existing assets: #76420
- Turbopack: fix duplicate modules due to import context: #76432
- typechecking inputs/outputs in action transform tests: #75935
- [test] Use new Redbox matchers in app/ ReactRefreshLogBox: #76431
Credits
Huge thanks to @wbinnssmith, @kdy1, @sokra, @stefanprobst, @eps1lon, @huozhi, and @lubieowoce for helping!
v15.2.0-canary.71
Core Changes
- [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
Misc Changes
- Turbopack: ChunkGroupType for graph entries: #76235
- Turbopack: accept ChunkGroup in chunking context: #76242
- [test] Use new Redbox matchers in pages/ error-recovery test: #76348
- [test] Use new Redbox matchers in pages/ ReactRefreshLogBox-builtins: #76392
- [test] Use new Redbox matchers in pages/ ReactRefreshLogBox: #76391
- [test] Use new Redbox matchers in app/ ReactRefreshLogBox-builtins: #76394
- docs: update
building.md
to contain descriptive build process: #76393
Credits
Huge thanks to @mischnic, @devjiwonchoi, @eps1lon, @huozhi, @ztanner, and @unstubbable for helping!
v15.2.0-canary.70
Core Changes
- [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
Misc Changes
- test: update snapshot for component stack: #76359
- Update error-recovery test snapshots for alternative bundler: #76299
Credits
Huge thanks to @huozhi, @gaojude, @Knoa0405, @devjiwonchoi, and @wbinnssmith for helping!