Skip to content

Releases: vercel/next.js

v15.5.1-canary.0

20 Aug 19:31
Compare
Choose a tag to compare
v15.5.1-canary.0 Pre-release
Pre-release

Core Changes

  • docs: mention turbopack config codemod: #82183
  • [devtools] Shim overlay on server: #82791
  • Turbopack: pass cache handler path as relative path to Rust: #82780
  • Remove unused code: #82774
  • [perf] only load next config once when start next dev server: #82654
  • [Cache Components] Error for Sync IO in Server Components during Static Prerender: #82500
  • Upgrade React from 0bdb9206-20250818 to 03fda05d-20250820: #82847

Example Changes

  • fix: update @types/node to resolve Vite 7.x peer dependency conflict: #82794

Misc Changes

  • docs: fix typo in Image#priority: #82806
  • [test] update existing passed tests for cache components suite: #82830
  • [test] fix cache components build error in next-form tests: #82841

Credits

Huge thanks to @wbinnssmith, @charpeni, @mischnic, @timneutkens, @huozhi, @Hareesh108, and @gnoff for helping!

v15.5.0

20 Aug 00:34
Compare
Choose a tag to compare

Core Changes

  • Use and enforce exhaustive switch statements for work unit store: #81577
  • Enable @typescript-eslint/switch-exhaustiveness-check rule: #81583
  • [dynamicIO] use RSC dynamicness to control partial vs complete PPR result: #81627
  • [dynamicIO] Do not use React.unstable_postpone(): #81652
  • feat: new detachable panel UI: #81483
  • Turbopack: content-hash PageLoaderAsset: #81450
  • [segment explorer] fix content overflow styling: #81649
  • Improve reliability of owner stacks for async I/O errors: #81501
  • fix(router): Prevent redirect loop on root data requests with basePath: #81096
  • Ensure custom NextServer config is honored: #81681
  • Fix before interactive incorrectly render css: #81146
  • perf: memorize exclude function in webpack config: #81525
  • Also enforce experimental features when there's no next config file: #81679
  • feat(next/image): warn when images.qualities is undefined: #81690
  • feat(build): optimize filterUniqueParamsCombinations to generate sub-combinations: #81321
  • Update NextAdapter type and re-export: #81692
  • upgrade to [email protected]: #80123
  • [metadata] replace for initial body icon case: #81688
  • [segment explorer] remove dev panel ui flag: #81670
  • Simplify running test apps locally with ppr or dynamicIO enabled: #81668
  • [turbopack] Return cached Promise from __turbopack_load_by_url__ : #81663
  • Upgrade React from 97cdd5d3-20250710 to 2f0e7e57-20250715: #81678
  • Delete unused renderToString function: #81707
  • Discard prerendered route handler data from FS cache after revalidation: #81611
  • Upgrade React from 2f0e7e57-20250715 to d85ec5f5-20250716: #81708
  • Ignore pending revalidations during prerendering: #81621
  • [turbopack] Clear chunk cache on HMR instead of creating new next-server VM: #81664
  • fix: rootParams should throw in client when fallbackParams are not present: #81711
  • perf(build): optimize buildAppStaticPaths performance and add helper function: #81386
  • Turbopack: Support string without options for @next/mdx: #81713
  • [Segment Cache] Support dynamic head prefetching: #81677
  • [sourcemaps] Consistent cursor columns: #81375
  • fix: revert client segment route changes for sub shell generation: #81731
  • fix: pages router metadata bugs with React 19: #81733
  • Improve error handling for headers/cookies/draftMode in 'use cache': #81716
  • [devtool] fix duplicate rendered indicator on server: #81729
  • [devtool] enable segment explorer by default: #81737
  • [turbopack] Stop exposing globals from Turbopack runtime: #81727
  • Remove unnecessary await: #81761
  • [chore] bump zod to latest v3: #81757
  • feat(turbopack): Log anonymized internal error (panic) information to telemetry: #81272
  • fix: revert client segment route changes for sub shell generation: #81740
  • bugfix: static resources staleTime should be renewed once refetched: #81771
  • [devtool] move font styling to global.css: #81782
  • [devtool] copy decoded info of error details: #81735
  • fix(build): add sourcePage context for PPR dynamic route lambda creation: #81781
  • refactor: rename experimental.dynamicIO to experimental.cacheComponents: #81562
  • Properly handle hanging promise rejections during prerendering: #81754
  • Upgrade React from d85ec5f5-20250716 to dffacc7b-20250717: #81767
  • Refactor: Get rid of overly generic getExpectedRequestStore function: #81791
  • [devtool] migrate css reset to global.css: #81783
  • [dev-tools] Robust shortcut detection: #81756
  • [segment explorer] hide for pages router: #81813
  • [devtool] fix scrollbar styling: #81814
  • fix(ppr): ensure fallback route params trigger dynamic resume: #81812
  • [devtools] restart server pending state: #80858
  • Turbopack: fix dist dir on Windows: #81758
  • fix: remove boundary sentinel from RSC responses: #81857
  • [sourcemaps] Try VM for retrieving source maps first: #81869
  • [devtools] save user config inside .next/cache: #81807
  • Server: Remove unused code: #81886
  • refactor: encapsulate content type within RenderResult: #81861
  • refactor: handle null RenderResult responses gracefully: #81895
  • Upgrade React from dffacc7b-20250717 to e9638c33-20250721: #81899
  • chore(devtools): sync todos to linear: #81901
  • Introduce 'use cache: private': #81816
  • chore(deps): update browserslist: #81851
  • Remove web-server from edge-ssr-app: #81389
  • Stabilize node middleware support: #81907
  • Add run-turbopack-compiler trace span: #81917
  • fix: support calling onClose multiple times in edge-ssr-app: #81911
  • fix: logging the correct process for listened port: #81903
  • Build: Include rewrites in manifest generation: #81894
  • Routing: Clean up some code: #81932
  • [sourcemaps] Ensure codeframe when calling Client Functions from Server: #81918
  • [segment explorer] missing file suggestion: #81617
  • [turbopack] Always print trace labels in headers: #81728
  • Revert "[metadata] use https protocol for schema urls": #81934
  • Upgrade React from e9638c33-20250721 to 7513996f-20250722: #81940
  • Upgrade to swc v33: #81750
  • Remove extra base-server code: #81944
  • Turbopack: flatten sourceInfo to avoid objects, reorder args, compress node.js entry: #81545
  • Fix dynamicParams false layout case in dev: #81990
  • Initial MCP implementation: #81770
  • Fix: Unresolved param in x-nextjs-rewritten-query: #81991
  • Turbopack: Add an option to use system TLS certificates (fixes #79060, fixes #79059): #81818
  • Turbopack: Remove unused proxy option in turbo-tasks-fetch, lightly document HTTP_PROXY/HTTPS_PROXY environment variables: #81905
  • Upgrade React from 7513996f-20250722 to edac0dde-20250723: #81984
  • [devtools] Cleanup folder structure: #82012
  • [devtools] Fix "open in editor" for locations in stackframes: #82013
  • [Segment Cache] Fix: Key by rewritten search: #81986
  • Upgrade vercel og and remove yoga type patching: #81937
  • [perf] cache load config results: #80570
  • Turbopack: use prototype for turbopack context for better runtime performance: #81547
  • [reactcompiler] Test with latest RC: #82002
  • [devtools] Fix various exhaustive-deps violations: #82010
  • [devtools] Apply React Compiler to Next.js DevTools source: #82004
  • Upgrade React from edac0dde-20250723 to 3d14fcf0-20250724: #82020
  • Adjusted the warning message to be more descriptive: #82054
  • Track fallback params on workUnitStore: #82003
  • Fix API stripping JSON incorrectly: #82061
  • Upgrade React from 3d14fcf0-20250724 to 19baee81-20250725: #82063
  • use FetchStrategy to control prefetching behavior everywhere: #82032
  • [Segment Cache] set fetchStrategy on segments from a dynamic request: #82059
  • Revert "Upgrade vercel og and remove yoga type patching (#81937)": #82066
  • Optimize segment data routes: #82033
  • Turbopack: write tasks doesn't need to be session dependent, as effects will restore: #78727
  • [sourcemaps] Fully sourcemap stacks on the Server: #81904
  • fix(Rspack): use loaderContext.utils.contextify to replace ModuleFilenameHelpers.createFilename: #82104
  • next/root-params: #80255
  • fix(next/image): fix image-optimizer.ts headers: #82114
  • Upgrade React from 19baee81-20250725 to eaee5308-20250728: #82120
  • Fix validateRSCRequestHeaders incorrect redirect: #82119
  • fix(next/image): improve and simplify detect-content-type: #82118
  • [CacheComponents] Use fallback params when validating dynamic routes in dev: #82069
  • Extract getDynamicParam to a shared module: #82137
  • Fix i18n fallback: false collision: #82136
  • [segment explorer] normalize path when running inside monorepo: #82146
  • [segment explorer] windows compatibility: #82147
  • Upgrade React from eaee5308-20250728 to 9be531cd-20250729: #82159
  • Ensure setAssetPrefix updates config instance: #82160
  • Revert "Fix tracing of server actions imported by client components (#78968): #82161
  • Remove useMDXComponents argument: #80871
  • Fix RSC hash validation for middleware external rewrites: #82176
  • @next/codemod: update docs url in README: #82135
  • @next/codemod: Add experimental.turbo to turbopack codemod for Next.js configs: #82134
  • refactor: lowercase app router header values: #82169
  • Strip internals from NextRequest types: #82172
  • allow root params access in private caches: #82125
  • [devtool] bump base-ui to 1.0.0-beta.2: #82206
  • Upgrade @vercel og: #82201
  • Upgrade React from 9be531cd-20250729 to 9784cb37-20250730: #82207
  • Fix: the unexpected clearing of symbolic link directories: #82191
  • [next-dev] Set TURBOPACK env before loading config: #82162
  • fix: display multiple lockfile warn if neither outputFileTracingRoot or turbopack.root option is provided: #82164
  • Revert "Initial MCP implementation (#81770)": #82217
  • Revert "Upgrade @vercel og (#82201)": #82219
  • Fix: Don't bail out of prefetch if head is missing: #82216
  • Upgrade React from 9784cb37-20250730 to c260b38d-20250731: #82247
  • [Cache Components] Runtime prefetching: #81088
  • Parse dynamic params on the client: #82185
  • Mark bun builtin modules as external (fixes #75220): #77616
  • Turbopack: Compact only at the end for short sessions: #82224
  • feat: add fallback root params support for prefetch segment data routes: #82282
  • feat: add route context to prerender error messages: #82283
  • feat: automatically generate route types: #81396
  • [Cache Components] Reset PrerenderStore after generating RSC payload: #82286
  • Include eslint-plugin-react-hooks in React sync: #82294
  • [devtools] Remove unnecessary cascading update: #82295
  • Turbopack: name the module factory function: #73553
  • Update font data: #82292
  • fix: next/root-params erroring when rerendering after action: #82326
  • Remove params from segment path: #82249
  • Upgrade React from c260b38d-20250731 to be11cb5c-20250804: #82339
  • fix: OTel root span should indicate error status on exceptions: #82212
  • [Cache Components] Allow span creation while prerendering: #82350
  • feat(tu...
Read more

v15.4.2-canary.56

19 Aug 23:33
Compare
Choose a tag to compare
v15.4.2-canary.56 Pre-release
Pre-release

Misc Changes

  • fix: remove a few old references to 'next lint': #82800
  • docs: fix TS error in Node.js runtime local assets example: #82672
  • docs: Route props helpers, typegen and next lint deprecation: #82784

Credits

Huge thanks to @bgub, @EAzZY-1wnL, and @icyJoseph for helping!

v15.4.2-canary.55

19 Aug 21:03
Compare
Choose a tag to compare
v15.4.2-canary.55 Pre-release
Pre-release

Core Changes

  • [Cache Components] Fix HMR for nested pages: #82776
  • Upgrade React from a96a0f39-20250815 to f508edc8-20250818: #82747
  • Avoid duplicate WebSocket connection for global error pages: #82788
  • Update linter options: #82266
  • React from f508edc8-20250818 to 0bdb9206-20250818: #82792
  • feat: stabilize experimental.typedRoutes flag: #82762
  • [Cache Components] Faster partial hydration in PPR resumes: #82742
  • Turbopack: Define built-in webpack conditions using an enum and typescript union: #82765
  • Turbopack: Remove beta warning: #82797
  • feat: add a codemod to migrate from the deprecated "next lint" command: #82685
  • fix: don't fail with amp config in JS: #82798
  • fix: possible null access: #82799

Misc Changes

  • Update Rspack production test manifest: #82771

Credits

Huge thanks to @unstubbable, @bgub, @vercel-release-bot, @lubieowoce, and @bgw for helping!

v15.4.2-canary.54

19 Aug 13:56
Compare
Choose a tag to compare
v15.4.2-canary.54 Pre-release
Pre-release

Core Changes

  • [Cache Components] Defer Request Data API resolution to another task in dev when it would suspend when prerendering: #82386
  • [devtool] migrate global inline style tag to css: #82778

Misc Changes

  • [turbopack] Update next docs with information about turbopack known adoption issues: #82560
  • Use jsx extension instead of js in global-error documentation: #82710
  • [sourcemaps] Fix sourcemapping in Redbox on Windows: #82078
  • [test] separate metadata font tests: #82746
  • Turbopack: don't look into fallback import map twice: #82786

Credits

Huge thanks to @lukesandberg, @gnoff, @cypherab01, @eps1lon, @huozhi, and @mischnic for helping!

v15.4.7

18 Aug 22:12
Compare
Choose a tag to compare

Note

This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • fix router handling when setting a location response header #82588

Credits

Huge thanks to @ztanner for helping!

v15.4.2-canary.53

18 Aug 23:36
Compare
Choose a tag to compare
v15.4.2-canary.53 Pre-release
Pre-release

Core Changes

  • chore(test): update sharp api test: #82740
  • [type] dynamic skip generating unused types: #82755

Misc Changes

  • Turbopack: Stop persisting background task correctly on stop: #82727
  • Turbopack: fix race condition in test case: #82728
  • [turbopack] Remove a debug assertions in client references endpoint: #82725
  • Turbopack: use bail instead of panic: #82745
  • Update Rspack production test manifest: #82732
  • fix(turbopack): webpack-loaders failed to resolve relative path: #82720
  • create-next-app: use Turbopack for both dev and build: #82753
  • fix: make sure validator.ts uses relative paths for imports: #82761

Credits

Huge thanks to @sokra, @lukesandberg, @mischnic, @vercel-release-bot, @fireairforce, @wbinnssmith, @styfle, @huozhi, and @bgub for helping!

v14.2.32

18 Aug 22:11
Compare
Choose a tag to compare

Note

This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • fix router handling when setting a location response header #82588

Credits

Huge thanks to @ztanner for helping!

v15.4.2-canary.52

17 Aug 23:51
Compare
Choose a tag to compare
v15.4.2-canary.52 Pre-release
Pre-release

Core Changes

  • Turbopack: show timing event for database compaction: #82369

Credits

Huge thanks to @sokra for helping!

v15.4.2-canary.51

16 Aug 23:34
Compare
Choose a tag to compare
v15.4.2-canary.51 Pre-release
Pre-release

Core Changes

  • fix: return plain text 404 for invalid static asset paths: #75111

Misc Changes

  • Turbopack: refactor idle process queue and fix bugs and race conditions: #82630

Credits

Huge thanks to @sokra and @devjiwonchoi for helping!