Core Changes
- Remove early return that is duplicated in useSearchParams: #58545
- Support passing a relative string to pushState/replaceState: #58438
- [.next/trace] Record start-dev-server trace span: #58469
- Update React from 593ecee66 to 2c338b16f.: #58553
- turbopack: Fix pageExtensions with dots: #58504
- fix: revalidation with file-system-cache: #58508
- fix: fetch() behavior when "dynamic" is "force-dynamic: #58484
- Add cacheNodeSeedData to RSC payload: #58566
- Lift subtree data out of React tree: #58569
- fix(next-core): allow runtime segment option in pages/api: #58409
- Update rust-toolchain to 2023-11-16: #58558
- refactor: Add lightningcss mode for
turbopack-css
: #58471 - fix: avoid race condition when download swc wasm: #58536
- Removed unused route resolver code: #58702
- Add experimental.windowHistorySupport to Turbopack supported options: #58717
- Improve Server Actions compiler: #58391
- Seed CacheNodes immediately after receiving response: #58669
- Turbopack: improve error display: #58734
- fix node externals resolving: #58129
- disable static prefetching behavior for dynamic segments: #58609
- fix: ensure DynamicUsageErrors caught during render bubble up: #58747
- fix image.domains deprecation warning: #58656
- fix waitUntil handling in pipeToNodeResponse: #58744
- Use consistent resolve extensions alias for compiler: #58725
- Turbopack: Use styled issue titles and details: #58743
- route handlers: make req.cookies opt you into dynamic: #58769
- OpenTelemetry: a more reliable way to establish a root context: #58662
- Revert "fix: fetch() behavior when "dynamic" is "force-dynamic": #58735
- [Instrumentation] Don't treat instrumentation hook as pages: #58775
- Fix turboFlag set to false: #58795
- [.next/trace] Track server requests and memory usage: #58690
- place virtual module inside the project directory: #58798
- fix rewrites to edge routes: #58797
- Polish unsupported metadata warning with doc link: #58750
- Enable .mjs extension config in Turbopack: #58825
- Turbopack: align automatic externals code with webpack: #58851
- Upgrade Turbopack: #58859
- OpenTelemetry: propagate context to sandbox: #58791
- fix uniqueness of layers: #58872
- disable flushToDisk during
generateStaticParams
: #58871 - Turbopack: enable some node.js builtin in edge runtime: #58850
- add
NEXT_TRIGGER_URL
env var to show request triggering a compilation: #58762 - Update
swc_core
tov0.86.81
: #58517 - Trace server updates: #58694
- remove duplicate util file for redirect status: #58878
- fix(windows): workaround for intermittent locks on windows when renaming files: #58835
- unify server action detection logic: #58879
- Fix nested fetch logging indentation: #58955
- Delete preloadComponent module: #58741
- Remove
cache
field from action types: #58938 - Add nodejs version check: #58958
- Code refactoring: #58737
- Fix bugs with baseUrl and mdxRs: #58968
- Fix encoding in encryption of Server Actions: #59000
- fix(turbopack): treat .mdx as valid ecma asset: #58985
- dedupe pending revalidation requests: #58990
- fix: Put back type for
NavigateOptions.scroll
: #59001 - Cleanup Render Result: #58782
- fix(turbopack): add list of packages that should never be marked as e…: #59020
- Testmode: provide test info for rewrite requests: #59033
- build(cargo): bump up turbopack: #59032
- fix async action queue behavior: #59038
- start performance profiling after node.js version is checked: #59028
- Fixed stale fetch using when page regenerates: #58926
- Enable PPR tests for test suites: #59030
- Update font data: #59043
- update status codes for
redirect
andpermanentRedirect
in action handlers: #58885 - Ensure stale build fetch data is not unexpectedly used: #59076
- add support for instrumentation: #59070
- use 303 status code for redirects in fetch actions: #59017
- verify action id before parsing body: #58977
- fix interception routes with rewrites: #59094
- Fix next internal is missing in flight manifest: #59085
- Support generating multi-meta tahs for metadata api other prop: #59106
- Turbopack: Align some "Module not found" errors with webpack: #58518
- Fix dynamic usage errors logging unexpectedly: #59133
- Fix: remove deprecated option from standalone server: #59036
- Update font data: #59138
- fix typedRoutes when used with webpackBuildWorker: #59140
- Add NEXT_MANUAL_SIG_HANDLE handling to start-server.ts: #59117
- Support adding CSP nonce with
content-security-policy-report-only
header: #59071 - chore: fix typo in jsDoc: #58224
- fix: add
maxDuration
toPageConfig
type: #55918 - Fix mixed module swc compilation for app router: #58967
- Don't catch ensureMiddleware errors: #59166
- fix behavior when revisiting an intercepted route: #59168
- Turbopack only enable instrumentationHook with experimental flag: #59173
- fix server actions behavior on intercepted routes: #59175
- Fix ssgCacheKey in minimal mode: #59181
- Update to latest version of @vercel/nft: #59183
- Ensure original history is read in effect: #58861
- fix some small turbopack issues: #59171
- fix tsconfig alias cycle: #59232
- Resolve build issues with symlinked files: #57412
- Disable more Turbopack build tests: #59245
- Remove
mutable
field from action types: #59221 - Add process.env.__NEXT_PPR to build config: #59253
- Fix dynamic transform ssr:false case for pages router with ESM: #59246
- Delete unused static prefetch code: #58783
- fix(next-core): adjust edge entry path: #59265
- feat: support outputFileTracing in App Router: #59139
- docs: fix
remotePatterns
link in image-config.ts: #59197 - Testmode: support edge functions inside a sandbox: #59179
- Update font data: #59271
- fix: properly call
normalizeDynamicRouteParams
inNextWebServer.handleCatchAllRenderRequest
: #58949 - add user-level tracing: #59284
- Fix app-dir - logging test in Turbopack: #59261
- update turbopack: #59285
- feat(turbopack): support loading WebAssembly in the edge runtime: #59013
- Fix barrel optimization to ignore layers: #59254
- fix interception routes with dynamic segments: #59273
- Clean up builtin
modularizeImports
configs: #59294 - Enable PPR for
dynamic = "force-dynamic"
: #58779 - remove additional static prefetch code: #59313
- add module tracing for client reference and next/dynamic walking: #59306
- side effects optimization: #58972
- Move App Router client-side constants to separate file: #59239
- reduce function calls in walk: #59332
- update turbopack: #59334
- disable unused next/dynamic walking in app dir: #59338
- fix hmr in multi-zone handling: #59307
- fix edge route catch-all param parsing: #59343
- add
logLevel
support to@next/bundle-analyzer
: #59228 - Fix server output bundling packages module resolving: #59369
- fix inconsistent scroll restoration behavior: #59366
- test: ability to use node debugger: #56277
- fixes the logging by showing full URLs only on demand: #58088
- rm console.log: #59381
Documentation Changes
- docs: Fix grammar in Caching section: #58070
- Update 01-installation.mdx: #58555
- Fix naming: #58539
- docs: clarify route handler caching: #58541
- [Next.js Docs] Adds
useOptimistic
link: #58706 - Docs: Add missing diagram : #59008
- Docs: Update revalidate example: #59002
- docs: patch upgrade guide to pin install version: #58993
- Docs: Delete fast refresh example: #59003
- docs:Add react hydration error case.: #59147
- Correcting the
webpack
function introduction: #58663 - Docs: Fix upgrade guide files: #59249
- docs: fix broken link to learn course: #59288
- docs fix: Server Action js example: #59159
- docs: Remove invalid URL: #58823
- Fix incorrect prop name in client component: #58591
- update: Firebase link to with-firebase example: #58621
- added comma to the props list: #58596
- Update 10-route-handlers.mdx: #59021
- Add documentation note about middleware and runtimes: #58873
- Revert "added comma to the props list": #59314
Example Changes
- Update
cache-handler-redis
example: #58562 - Update & Repair LRUCache importation on NextJS Rate Limit API example: #58060
- examples with-zustand update to app dir #52858: #58042
- examples: fix import statement for lru-cache: #58567
- examples: Remove outdated example: #58568
- feat(examples): add upload file example with Server Actions: #58467
- migrate with-cypress example to app dir: #58053
- fix lint in examples: #58630
- examples: add direct link to Dockerfile: #58793
- Update Electron Typescript Example with Best Practices: #58947
- Enable typechecking on config: #57892
- Updates with-supertokens example app: #58525
Misc Changes
- fix(turbopack):
e2e/404-page-router
test: #58146 - Turbopack: update to turbopack-231122.3: #58784
- make tests more stable: #58765
- chore(CI): improve datadog reporting: #58267
- chore(CI): add action to auto retry tests on canary and report failures after retries: #58774
- ci: unify reset project script: #58829
- ci: disable deployment protection for e2e test project: #58830
- fix(CI): retry-test action can't use env in
if
: #58838 - Update Turbopack test manifest from GitHub Actions artifact: #58394
- Increase default timeout for swc build: #59035
- chore: bump
nissuer
(issue validator): #59060 - fix(test): don't use latest sharp: #59074
- misc: disable automerge: #59077
- Update checkout step: #59079
- ci: don't try to upload to datadog for docs only changes: #59068
- misc: delete kodiak: #59082
- add full PPR e2e tests: #59025
- ci: don't retry or notify on failures from forks: #59118
- skip release if no new commits: #59134
- fix variable name in release workflow: #59135
- Update Turbopack test manifest: #59109
- fix(next-core): do not panic when parsing segment config: #59170
- Correctly skip build test for Turbopack: #59207
- Failing test for 59195: #59210
- ci: report daily turbo integration test results from this repo: #58965
- fix typo in daily turbopack integration test reporting: #59251
- fix missing echo in daily turbopack reporting: #59255
- fix missing checkout in daily turbopack reporting: #59256
- Add app router name to font tests: #59257
- Fix non bundler module resolution in ts for third-parties pkg: #59244
- fix dev parallelism in daily turbopack tests: #59287
- Update Turbopack test manifest: #59326
- Update tests for Turbopack: #59354
- Update Turbopack test manifest: #59356
Credits
Huge thanks to @timneutkens, @mknichel, @gnoff, @jridgewell, @gtjamesa, @mugi-uno, @better-salmon, @kentobento, @vivianyentran, @empflow, @leerob, @samennis1, @mkcy3, @acdlite, @kwonoj, @suhaotian, @wbinnssmith, @imevanc, @ztanner, @kdy1, @d3lm, @wyattjoh, @manovotny, @shuding, @sokra, @feedthejim, @dvoytenko, @ForsakenHarmony, @huozhi, @delbaoliveira, @amannn, @ijjk, @hallatore, @balazsorban44, @LukeSchlangen, @Dylan700, @mpsq, @mdio, @christianvuerings, @A7med3bdulBaset, @karlhorky, @simonhaenisch, @olci34, @zce, @LavaToaster, @rishabhpoddar, @smaeda-ks, @jirihofman, @codercor, @devjiwonchoi, @Willem-Jaap, @JackieLi565, @thoushif, @pkellner, @jpfifer, @quisido, @tomfa, and @raphaelbadia for helping!