v14.0.2
Core Changes
- Fix nested esm package default import resolving mismatch: #57784
- [.next/trace] Serialize trace info across workers to preserve .next/trace with webpackBuildWorker: #57761
- Add @highlight-run/node to externals list: #57783
- perf: change the chunks configuration for server code: #57773
- [.next/trace] Add tags for webpack build worker: #57818
- chore: update otel: #57774
- refactor: remove unnecessary condition: #57835
- chore: remove styfle from
.vercel.approvers
: #57841 - Remove the
actionBrowser
to RSCclient
layering issue: #57842 - Prevent caching page with 304 status: #57737
- Ensure cache soft tags are correct: #57850
- Update React from 0c6348758 to 08a39539f: #57852
- Revert "perf: enable webpack build worker (#57346)": #57854
- Add
serverActions.allowedForwardedHosts
option: #57529 - chore: reword in tree-view: #57884
- Polish logging segments of page route: #57834
- Inherit title and description from metadata into social cards: #57857
- remove legacy handling for suspense option of next/dynamic: #57900
- fix(next-core): externalcjs resolve options: #57645
- ppr: fail static generation if postponed & missing postpone data: #57786
- Reduce FS access for incremental cache: #57902
- suspend in render, not in reducers: #56497
- move static worker IPC server behind experimental flag: #57943
- feat(turbopack): Experimental wasm build: #57906
- Fix client chunk loading encoding for dynamic route: #57960
- misc: fix serverComponentsExternalPackages usage for experimental.bundlePagesExternals: #57954
- Improve grammar of removable Babel config warning: #55088
- Remove throw for unknown messages in hot-reloader-client: #57353
- Improve CSRF protection error in Server Actions: #57980
- fix: updates for resuming postponed in minimal mode: #57375
- fix: ensure that postponed requests can be resumed in minimal mode: #58011
- Use distDir from webpack-config in createWebpackAliases: #57268
- use __NEXT_VERSION compile time replacement: #57512
- fixes a problem with cache invalidation : #58079
- feat: always use SWC Wasm fallback when running in WebContainer: #58081
- update turbopack: #58080
- fix: normalization and invariant fixes for ppr: #58105
- ppr: fix fetch postpone not having correct React version: #58107
- Fix incorrect normalizing in minimal mode: #58116
- put app client modules into a separate layer: #58130
- Revert "Revert "Add retry for fetching subsetted Google Fonts"": #58075
- build: Update
swc_core
tov0.86.40
and update turbopack: #57904 - fix(next-core): correct assets url reference condition: #58101
- build(package): clean up next-swc* pkg properties: #57908
- fix PPR build output logs: #58149
- Update React from 08a39539f to 2983249dd.: #58154
- fix: rsc normalization fixes: #58145
- Fix resume stream handling: #58159
- Forward headers from React to static output and dynamic render: #58162
- refactor(next-core): separate options context for pages/api: #58148
- update turbopack: #58172
- refactor(next-api): remove unused distDir: #57789
- Change allowed forwarded hosts to be allowed origins for Server Actions: #58023
- fail build if not using Next canary with PPR flag: #58203
- Reduce max header length emitted: #58204
- ensure experimental warning shows up when using PPR: #58206
- skip ppr throw for tests: #58208
- interception routes: fix interception for dynamic routes: #58198
- Update React from 2983249dd to 7508dcd5c: #58216
- tweak postpone error copy & fix link: #58219
- Add helpful context to postpone reason if it's caught and logged or escapes: #58222
- Reword PPR caught bail out to avoid "postpone" terminology: #58223
- pass postpone through staticGenerationStore: #58229
- Updated React from 7508dcd5c to 746890329: #58233
- [Docs]: Fix CLI link to server actions size limit docs: #58174
- refactor(next-core): apply correct url rewrite behavior: #58237
- update turbopack: #58243
- parallel routes: fix catch all route support: #58215
- avoid key conflict: #58249
Documentation Changes
- [docs] fix next.config.mjs using commonjs in the example: #57874
- Move link examples to only Pages Router docs.: #57758
- Update 05-mdx.mdx: #57866
- docs: Update MDX docs title.: #57963
- docs: improve non-encrypted HTTP conn to a secure: #57998
- docs: Revert part of sitemap docs change: #58010
- docs: useFormState and useOptimistic are now documented: #58064
- Correct prop name in
server-actions.mdx
: #58108 - typo: changed from next/server to next/og: #58143
- docs: Improve deployment docs on self-hosting.: #58027
- docs: small follow up on deployment docs.: #58158
- docs: remove duplicate ISR page.: #58164
- docs: remove note about generateMetdata: #58192
- docs: mention Middleware on src directory page.: #58193
- docs: fix typo in composition patterns section: #58197
- fix docs link for ISR: #58207
- Add PPR option to
next.config.js
docs: #58161 - docs: update analytics docs for
useReportWebVitals
: #58196 - Update 02-app-router-migration.mdx: #58253
Example Changes
- Remove `experimental: { serverActions: true } from examples as it is stable in next 14.: #57598
- Update
Explore the Next.js 13 playground.
toExplore starter templates for Next.js
: #57799 - Chore: simplify with-supabase example: #57562
- examples: cleanup: #57845
- Chore: refactor to use server actions in with-supabase example: #57858
- chore: cleanup more old examples.: #58066
- Add a self-hosted shared cache example: #58000
Misc Changes
- fix: update Next.js version in create-next-app: #57532
- Automatically update Turbopack test manifest: #57778
- fix(youtube-embed): each child in a list should have a unique "key" prop: #57579
- Update teamname in codeowners: #57775
- Simplify createNextInstall return type: #57760
- cleanup PR labeler config: #57827
- move release undraft step until after canary is fully published: #57324
- refactor: remove duplicated conditions
- Revert "refactor: remove duplicated conditions"
- Fix typo in run-tests.js: #57821
- fix: correctly set
x-forwarded-*
in Middleware: #57815 - chore: remove redundant jest config: #57151
- chore(test): run unit tests on node 18 and 20: #57199
- Move ReactRefreshLogBox-builtins tests to inline snapshots: #57952
- feat(turbo): use turbo gen instead of plop: #53684
- Skip webpack only test: #56929
- tweak stats action to pull in runtime sizes: #58005
- use createNextDescribe for test/development/basic tests: #58031
- Remove setPnpmResolutionMode as default is highest: #57828
- Remove installCommand on streaming-ssr test: #58037
- Remove installCommand on typescript-auto-install and pnpm-support: #58039
- Fix should have correct module not found error test: #57383
- Fix options of createNextInstall: #58036
- Fix update-turbopack-test-manifest.yml workflow: #58097
- Adjust update-turbopack-test-manifest.yml to run once per day: #58104
- Refactor repo-setup.js: #58131
- Update Turbopack test manifest: #58122
- Update turbopack label creation: #58214
- Fix test: #58228
- fix ppr test flake: #58232
Credits
Huge thanks to @huozhi, @mknichel, @Vadman97, @feedthejim, @dnhn, @jridgewell, @vinaykulk621, @RodrigoTomeES, @padmaia, @timneutkens, @ztanner, @sadikkuzu, @styfle, @shuding, @dijonmusters, @leerob, @gffuma, @ijjk, @balazsorban44, @Schniz, @kwonoj, @wyattjoh, @wbinnssmith, @joulev, @Athrun-Judah, @tknickman, @rasvanjaya21, @rashidul0405, @sokra, @d3lm, @nguyenbry, @kdy1, @Mwimwii, @gnoff, @sebmarkbage, @dumb-programmer, @manovotny, @molebox, @better-salmon, and @mrr11k for helping!