Releases: vercel/next.js
v15.2.1-canary.4
Core Changes
- [Segment Cache] Search param fallback handling: #75990
- [Segment Cache] Fix: canonicalURL omits origin: #76444
- fix metadata basePath for manifest: #76681
- Propagate expire time to
cache-control
header and prerender manifest: #76207 - Show revalidate/expire columns in build output: #76343
- Gate alternate bundler behind canary only: #76634
Misc Changes
- [ci] Fix
test-turbopack-integration
not having any shards : #76355 - Update Turbopack development test manifest: #76658
- Update Turbopack production test manifest: #76659
- fix(CI): Upload to areweturboyet immediately after a manifest is updated, not only on a fixed cron schedule: #76688
- Update test snapshots for alternative bundler [4/n]: #76578
Credits
Huge thanks to @eps1lon, @acdlite, @huozhi, @unstubbable, @bgw, and @wbinnssmith for helping!
v15.2.1-canary.3
Core Changes
- report compiler duration for webpack and improve numbers: #76665
- [dev-overlay] fix dark theme missing close bracket: #76672
- Remove
revalidate
property from incremental cachectx
forFETCH
kind: #76500 - [dev-overlay] fix: env name label style was out of sync with error type label: #76668
- Turbopack: avoid celling source maps before minify: #76626
- refactor(CI): Merge all four bundler test manifest scripts into one: #76652
- [metadata] fix duplicate metadata for parallel routes: #76669
- [Segment Cache] Omit from bundle if flag disabled: #76622
- [Segment Cache] Support output: "export" mode: #75671
- [Segment Cache] Refresh on same-page navigation: #76223
- [metadata] re-enable streaming metadata with PPR: #76119
Misc Changes
- Update bundler production test manifest: #76643
- Update bundler development test manifest: #76644
- Turbopack: dedupe middleware-manifest entries: #76621
- Turbopack: Improve edge tests: #76607
- Turbopack: add test test for css order: #76675
- Turbopack: fix order of chunk items in cycles: #76676
Credits
Huge thanks to @mischnic, @timneutkens, @sokra, @devjiwonchoi, @unstubbable, @bgw, @huozhi, and @acdlite for helping!
v15.2.1-canary.2
Core Changes
- [dev-overlay] change css var for terminal: #76590
- [dev-overlay] Discriminate stack frame settled typed: #76517
- Remove obsolete
sourcePackage
references: #76550 - refactor: remove unused variable in externals handling: #76599
- fix: Add popular embedding libraries to serverExternalPackages: #76574
- [Segment Cache] Implement hash-only navigations: #76179
- Webpack: abstract away getting compilation spans: #76579
Misc Changes
- Turbopack: prevent panic in swc issue emitter: #76595
- Unflake
parallel-routes-revalidation
test: #76600 - Fix
octokit.rest.issues.addLabels
call: #76601 - [test] Use new Redbox matchers in app/ error-recovery: #76552
- [test] Use new Redbox matchers in pages/ ReactRefreshLogBox-app-doc: #76551
- Run nightly bundler integration tests also with React 18: #76606
- 15.2: Add version history for
devIndicators
and note on deprecated options: #76611 - 15.2 docs: document missing
htmlLimitedBots
option: #76616 - Update bundler production test manifest: #76584
- Update bundler development test manifest: #76585
- Fix test after CI switched to pnpm 10: #76615
- chore(cna): fix theme extend for tailwind v4: #76583
- [test] Use new Redbox matchers in app/ ReactRefreshLogBoxMisc: #76563
- Donβt use native built-ins for additional bundler: #76577
- Revert "Run nightly bundler integration tests also with React 18": #76640
Credits
Huge thanks to @devjiwonchoi, @mischnic, @unstubbable, @eps1lon, @huozhi, @philipithomas, @delbaoliveira, @samcx, @wbinnssmith, @acdlite, and @bgw for helping!
v15.2.1-canary.1
Core Changes
- Turbopack: Ensure server actions sourcemaps tests pass: #76157
- [dev-overlay] control dark theme in one place: #76528
Misc Changes
- fix(rustdoc): Fix rustdoc warnings, block on rustdoc failures in CI: #76448
- Update more global turbo CLI usage: #76576
- docs: Node.js runtime support for Middleware: #76556
- build: Update
swc_core
tov16.0.0
: #76414
Credits
Huge thanks to @bgw, @ijjk, @molebox, @kdy1, @timneutkens, and @devjiwonchoi for helping!
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
[email protected]
: #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!