Skip to content

chore(deps): update dependency eslint-config-next to v15.5.4

This MR contains the following updates:

Package Type Update Change
eslint-config-next (source) devDependencies minor 15.0.2 -> 15.5.4

Release Notes

vercel/next.js (eslint-config-next)

v15.5.4

Compare Source

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

Core Changes
  • fix: ensure onRequestError is invoked when otel enabled (#​83343)
  • fix: devtools initial position should be from next config (#​83571)
  • [devtool] fix overlay styles are missing (#​83721)
  • Turbopack: don't match dynamic pattern for node_modules packages (#​83176)
  • Turbopack: don't treat metadata routes as RSC (#​82911)
  • [turbopack] Improve handling of symlink resolution errors in track_glob and read_glob (#​83357)
  • Turbopack: throw large static metadata error earlier (#​82939)
  • fix: error overlay not closing when backdrop clicked (#​83981)
  • Turbopack: flush Node.js worker IPC on error (#​84077)
Misc Changes
  • [CNA] use linter preference (#​83194)
  • CI: use KV for test timing data (#​83745)
  • docs: september improvements and fixes (#​83997)
Credits

Huge thanks to @​yiminghe, @​huozhi, @​devjiwonchoi, @​mischnic, @​lukesandberg, @​ztanner, @​icyJoseph, @​leerob, @​fufuShih, @​dwrth, @​aymericzip, @​obendev, @​molebox, @​OoMNoO, @​pontasan, @​styfle, @​HondaYt, @​ryuapp, @​lpalmes, and @​ijjk for helping!

v15.5.3

Compare Source

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

Core Changes
  • fix: validation return types of pages API routes (#​83069)
  • fix: relative paths in dev in validator.ts (#​83073)
  • fix: remove satisfies keyword from type validation to preserve old TS compatibility (#​83071)
Credits

Huge thanks to @​bgub for helping!

v15.5.2

Compare Source

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

Core Changes
  • fix: disable unknownatrules lint rule entirely (#​83059)
  • revert: add ?dpl to fonts in /_next/static/media (#​83062)
Credits

Huge thanks to @​bgub and @​ztanner for helping!

v15.5.1

Compare Source

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

Core Changes
  • fix: aliased navigations should apply scroll handling (#​82900)
  • Turbopack: fix invalid NFT entry with file behind symlink (#​82887)
  • fix: typesafe linking to route handlers and pages API routes (#​82858)
  • fix: change "noUnknownAtRules" to "warn" for Biome (#​82974)
  • fix: add path normalization to getRelativePath for Windows (#​82918)
  • feat: add typesafety with config.typedRoutes to redirect() and permanentRedirect() (#​82860)
  • fix: avoid importing types that will be unused (#​82856)
  • fix: update the config.api.responseLimit type (#​82852)
  • fix: update validation return types (#​82854)
Credits

Huge thanks to @​bgub, @​mischnic, and @​ztanner for helping!

v15.5.0

Compare Source

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 path-to-regexp@6.3.0: #​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(turbopack): improve compile-time define value to support more data types and expr evaluation: #​81042
  • [Pages] fix: _error page's req.url can be overwritten to dynamic param on minimal mode: #​82347
  • [Pages] fix: use asPath for query-only navigation with useRouter: #​82236
  • loader tree: add special segment name to virtual parallel route segments: #​82383
  • fix: add ?dpl to fonts in /_next/static/media: #​82384
  • Upgrade React from be11cb5c-20250804 to 7deda941-20250804: #​82373
  • [devtools] Make state read-only in types: #​82396
  • Add experimental clientParamParsing feature flag: #​82393
  • add unstable_isUnrecognizedActionError: #​78933
  • [Cache Components] give the "seconds" profile a 30s staleTime: #​82332
  • Represent "virtual" segments like route groups: #​82422
  • [Segment Cache]: fix infinite prefetching when staleTime is 0: #​82388
  • Remove param values from static route tree: #​82376
  • [Cache Components] Only validate the shell on SSR render: #​82381
  • fix: static not-found missing in prerender manifest: #​82199
  • Turbopack: Share entrypoint template logic between Turbopack/webpack: #​82385
  • Add path to Image documentation: #​82329
  • [errors] revamp graceful degrade error boundary: #​82474
  • Fix: Do not force BLOCKING_STATIC_RENDER for DOM bots: #​82427
  • Update build-complete for adapter API: #​82452
  • fix: swc tracing: #​82470
  • Upgrade React from 7deda941-20250804 to 3958d5d8-20250807: #​82447
  • Delete abandoned segment parsing code: #​82458
  • Upgrade React from 3958d5d8-20250807 to f1e70b5e-20250811: #​82534
  • Upgrade React from f1e70b5e-20250811 to ac7820a9-20250811: #​82543
  • fix(next/image): use image-size pkg as additional format detector: #​82538
  • fix: add ?dpl to fonts in /_next/static/media part 2: #​82488
  • Fix: Disambiguate Mediapartners-Google user agent: #​82536
  • Fix: Allow dynamic rendering when root layout is wrapped in Suspense: #​82378
  • wrap devtools stories in context providers: #​82345
  • [devtools] Remove unused componentStackFrames field: #​82395
  • [Deprecation Warnings]: add amp deprecation warning: #​82551
  • fix(next/image): handle empty buffer and experimental flag for skipMetadata: #​82569
  • fix: amp deprecation warning should assert on user config: #​82572
  • fix: Prevent duplicate file entries in modulesCode: #​82550
  • feat: Turbopack typed links: #​81528
  • Upgrade React from ac7820a9-20250811 to 1dc3bdea-20250812: #​82575
  • [Runtime prefetch] resolve runtime APIs in a separate task: #​82475
  • Clean up unused code in restart server button: #​82409
  • chore: Update babel types and do some light cleanup of babel loader: #​82486
  • [Cache Components] Avoid cache misses when resuming a cached page: #​82578
  • chore: Remove unused Map support from next/dynamic transform: #​82487
  • [Deprecation Warnings]: add unstable_rootParams deprecation warning: #​82582
  • Turbopack: set window.next.turbopack instead: #​82580
  • fix router handling when setting a location response header: #​82588
  • Fix: Resolve PPR resume mismatch by search params: #​82587
  • Upgrade React from 1dc3bdea-20250812 to f1222f76-20250812: #​82595
  • [devtools] Move ShadowRoot into context: #​82296
  • Remove React 17 logic from Pages Router static generation: #​82604
  • [Segment Cache] Optimistic prefetch for search params: #​82586
  • Handle badged console calls when dimming console output: #​81889
  • run config deprecation checks only on user-provided configuration: #​82613
  • [devtools] Remove unused code: #​82299
  • [turbopack] Update Turbopack build warning message : #​82591
  • [Cache Components] Disallow sync access of cookies & headers at runtime: #​82564
  • feat: type guard file generation: #​81400
  • fix: find root dir on fs root: #​82590
  • fix: use in operator to check dev indicator option when its obj: #​82629
  • Upgrade React from f1222f76-20250812 to 379a083b-20250813: #​82642
  • feat(next/image): warn when images.localPatterns is undefined and src has query: #​82627
  • Turbopack: add turbo_tasks::spawn: #​82634
  • Fix fetch logging after revalidation via server action: #​82643
  • Fix request type in typed route validator: #​82644
  • fix: use .js extension for relative imports: #​82669
  • feat: add RouteContext type for app router route handlers: #​82670
  • Add additional handling for build-complete: #​82671
  • fix: Combine the hrtime tuple to get a better seconds representation: #​82687
  • test: migrate manifest tests to snapshot testing with normalizeManifest utility: #​82675
  • perf(router): replace LRU cache with optimized doubly-linked list implementation: #​82633
  • Turbopack: use a source content regexp for the react compiler: #​82631
  • Upgrade React from 379a083b-20250813 to a96a0f39-20250815: #​82691
  • fix: memory leak from cloneResponse: #​82678
  • Turbopack: Fix logic in HMR logging code that could emit a NaN build time: #​82389
  • fix: use turbopack.root value for outputFileTracingRoot to have consistent tracing root: #​82653
  • fix: return plain text 404 for invalid static asset paths: #​75111
  • Turbopack: show timing event for database compaction: #​82369
  • chore(test): update sharp api test: #​82740
  • [type] dynamic skip generating unused types: #​82755
Example Changes
  • Add Prisma ORM example to Next.js examples: #​75290
  • chore: Update with-supabase example to use getClaims(): #​81383
  • docs: Improve Content Security Policy documentation: #​80580
Misc Changes
  • Update Rspack development test manifest: #​81603
  • Allow beforePageLoad to be async: #​81650
  • Docs: POC: #​81419
  • chore(bot): update comment: #​81672
  • Fix build-native.ts on Windows: #​81673
  • Update Rspack development test manifest: #​81660
  • Update Rspack production test manifest: #​81661
  • Add create release branch workflow: #​81687
  • fix patch-next by adding missing script: #​81430
  • Turbopack: Generalize ImportedBinding effect creation to avoid as much special-casing of SimpleAssignTarget: #​81653
  • docs: Update redirects i18n documentation for App Router: #​81347
  • Include use-cache test suite in the Cache Components tests: #​81610
  • Improve error message for sync server functions: #​81705
  • [lint] keep lint-stage use faster linting: #​81710
  • [test] Fix app-static deploy test: #​81712
  • Fix: createRouterAct "reject" config: #​81720
  • Update Rspack development test manifest: #​81702
  • Update Rspack production test manifest: #​81701
  • Add an e2e test for the css serving issue: #​81683
  • chore: update username from 'nebrelbug' to 'bgub': #​81734
  • Turbopack: consistently name runtime chunk: #​81769
  • Turbopack: include more details in panic: #​81773
  • fix(turbopack) Adjust the way catchall routes are handled when a more specific parallel route exists: #​81634
  • Add trigger for v0 sync workflow: #​81645
  • Update Rspack production test manifest: #​81746
  • Update Rspack development test manifest: #​81747
  • Turbopack: Split DynamicEqHash trait into smaller traits in a separate re-usable crate: #​81741
  • [turbopack] Reuse shared Promise for loaded chunks: #​81755
  • Add VSCode tasks to show TypeScript compilation errors in problems view: #​81799
  • Turbopack: remove unneeded manifests for API routes: #​81536
  • [turbopack] use require to load chunks in our node runtime: #​81738
  • Turbopack: fix unhelpful error message when deleting folder fails: #​81718
  • Remove experimental.strictNextHead: #​81882
  • Remove some random commas: #​81875
  • Turbopack: Add cache for reqwest clients: #​81742
  • Update Rspack development test manifest: #​81878
  • Update Rspack production test manifest: #​81879
  • Turbopack: Track variable usage inside of visit_assign_target_pat: #​81654
  • Turbopack: Replace current_value set/restore mutation pattern with a safer with_pat_value helper: #​81696
  • Docs: Document global-not-found: #​81803
  • [router-act] Fixes related to segment inlining: #​81896
  • [test] Add dedicated test for error when client functions are called from server components: #​81930
  • Fix an issue in how css references are collected under next build --turbopack: #​81704
  • Turbopack: Update notify-rs crate, remove workaround for fixed bug: #​81909
  • Update Rspack development test manifest: #​81913
  • Update Rspack production test manifest: #​81914
  • Turbopack: Use workaround for rustc miscompilation bug on macos intel: #​81950
  • [test] workaround test that needs stylus: #​81965
  • Bump to swc_sourcemap 9.3.3: #​81971
  • fix(Turbopack): Remove the duplicate SlowFilesystem warning: #​81972
  • CI: add workflow_branch data to deploy test failure message: #​81949
  • Update Rspack production test manifest: #​81961
  • Update Rspack development test manifest: #​81960
  • [turbopack] Rename ClientReferenceSet: #​81942
  • Turbopack: fix scope hoisting variable renaming bug: #​81640
  • Revert "[test] workaround test that needs stylus": #​81981
  • [docs] fix rewrites example wording: #​81985
  • Turbopack: improve named spans in tracing: #​81458
  • Turbopack: update mimalloc: #​81993
  • Turbopack: Update bundled webpki-roots: #​81906
  • Allow specifying CLI version for e2e deploy: #​81998
  • Turbopack: Move fs watcher anyhow::Context import inline to fix compilation warnings: #​81997
  • Add link to manually trigger preview builds: #​81977
  • Update Rspack production test manifest: #​82007
  • Update Rspack development test manifest: #​82008
  • Turbopack: Make turbo-tasks-fetch a bit more OOP-like: #​81995
  • Update Rspack development test manifest: #​82038
  • [test] Allow running lint-eslint on a specific directory: #​82009
  • Adjusted the warning message to be more descriptive: #​82052
  • Update Rspack production test manifest: #​82039
  • [turbopack] mark rcstr! allocated Rcstr values as 'static' and stop refcounting them: #​81994
  • Turbopack: only schedule tasks when task becomes active on active counter increase: #​81414
  • docs: Update styling example links : #​82111
  • [turbopack] Documentation fixes for rcstr! and a tiny improvement to hash: #​82084
  • [turbopack] Improve our const compatible hash routine performance: #​82088
  • Update Rspack production test manifest: #​82139
  • Turbopack: Fix accidental doctest in globset module license: #​82127
  • [turbopack] tweak the ui of the module-cost benchmark: #​81817
  • [test] revert config change in hello-world test: #​82173
  • docs: cookies.set encode option is not supported: #​82154
  • docs: change Dashboard component to async for session verification: #​81880
  • Update create-release-branch to disable test-new-tests: #​82182
  • docs: update cacheTag.mdx: #​82051
  • Turbopack: Make the "non-recursive" logic for the fs watcher a runtime flag instead of a build-time one: #​82031
  • Turbopack: Add a flag to the fs watch fuzzer to print missing but expected invalidations: #​82131
  • docs: fix typo in docs: #​82186
  • docs: Add more links to app docs root: #​82126
  • docs: App Router's React version: #​82180
  • Turbopack: Use Path/PathBuf for all of the invalidation logic: #​82132
  • Turbopack: Use a BTreeMap in InvalidatorMap to avoid many O(n) traversals when finding child paths: #​82133
  • Turbopack: Watch the root and every parent directory in non-recursive mode: #​82129
  • Turbopack: Remove unused ignored_subpaths feature from DiskWatcher: #​82210
  • Grammar fix on forms.mdx: #​82209
  • Update Rspack production test manifest: #​82108
  • Update Rspack development test manifest: #​82192
  • Turbopack: implement shutdown for backing storage correct: #​82220
  • Update Rspack development test manifest: #​82227
  • fix: turbopack loader ipc field mapping: #​82112
  • Turbopack: fix dev test manifest: #​82241
  • fix(Turbopack): Fix duplicated layout rendering in edge cases: #​81948
  • [turbopack] Adopt rcstr! more consistently: #​80552
  • Turbopack: use mimalloc v3: #​82221
  • Turbopack: no need to avoid allocations anymore: #​82222
  • Turbopack: ensure max merge segments is respected accros families: #​82223
  • docs: to indicate that redirect can be used in both server and client…: #​82092
  • Turbopack: improve compression dictionary generation: #​80061
  • test: reduce artificial timeouts in runtime prefetch tests: #​82276
  • Turbopack: fix glob with empty alternative branch: #​82275
  • [turbopack] Optimize ESM exports: #​82214
  • [turbopack] Fix a snapshot test: #​82281
  • [turbopack] Avoid calling find_server_entries in the whole_app_module_graph case: #​81943
  • docs: Add Tolgee to app router localization resources: #​81366
  • Update Rspack development test manifest: #​82268
  • Update Rspack production test manifest: #​82267
  • Turbopack: Remove the lazy-regex dependency: #​82288
  • Turbopack: move block offsets from header to footer: #​82047
  • Turbopack: Streaming write of SST files: #​82048
  • [turbopack] Use Arrays instead of objects to bootstrap chunks: #​81877
  • Turbopack: set env in tracing context: #​75254
  • [test] Update snapshots: #​82327
  • chore: fix eslint-typechecked-require with template: #​82328
  • docs: add React Developer Tools section for debugging: #​82320
  • docs: Clarify revalidatePath : #​82142
  • Turbopack: Update jsonc-parser, dedupe with SWC: #​82343
  • [turbopack] vibecode a benchmark runner for module-cost: #​82287
  • Documentation: Removed reference to treeShaking in 08-turbopack.mdx: #​82352
  • Turbopack: run styled-jsx after typescript transform: #​82359
  • Turbopack: pass is_development to next_page_config: #​82363
  • refactor(turbo-tasks-fs): change FS to_sys_path to be synchronous: #​82341
  • Turbopack: clean up some old TODOs: #​82364
  • Docs: Updating guides on PPR and ISR: #​81307
  • fix(Turbopack): Address duplicated metadata image modules when they are impored: #​82367
  • Bump swc to 35: #​82237
  • docs: CSP with SRI corrections: #​82365
  • fix: implications of global-not-found skipping 'normal' rendering: #​82399
  • update rspack-dev-tests-manifest for failing tests: #​82414
  • Docs: Add more info about TW and TW 3 option: #​82203
  • Update Rspack production test manifest: #​82397
  • fix(turbopack): external module shouldn't wrap by esm when type as global: #​82374
  • docs: polyfills usage in app router: #​80447
  • global-error, revalidatePath and PWA headings: #​82408
  • chore(Next.js sync): open draft MRs immediately: #​82424
  • Turbopack: improve loop breaks: #​77964
  • Update Rspack development test manifest: #​82433
  • Turbopack: remove a few clones: #​82435
  • Update Rspack production test manifest: #​82432
  • Update to run rspack tests on release: #​82453
  • Docs/polyfills fix pages only: #​82462
  • Turbopack: enable side effects optimization by default in all test cases: #​82463
  • Turbopack: split basic side effects optimization test: #​82464
  • Turbopack: add more side effects test cases: #​82465
  • Turbopack: refactor side effects optimization: #​82466
  • Devcontainer: Replace Dockerfile with prebuilt image+features: #​82450
  • Update Rspack development test manifest: #​82461
  • docs: update revalidatePath, revalidateTag docs to be more consistent + highlight res.revalidate case: #​82479
  • use correct workflow id for v0: #​82484
  • Turbopack: increase time before persisting: #​82403
  • [turbopack] Fix a small issue in the analyzer where we wouldn't skip assignments to free vars that were just identifiers: #​82392
  • [turbopack] Promote exports and module to factory parameters for cjs: #​82285
  • [turbopack] Fix the build under --features=tokio_tracing: #​81979
  • Turbopack: Restore watchers for children when using non-recursive FS watcher: #​82130
  • Turbopack: fix CSS module references, take 2: #​82448
  • Turbopack: respect productionBrowserSourceMaps: #​78014
  • chore: Ignore compiled folder in ripgrep/ast-grep/ag/etc: #​82482
  • Update Rspack development test manifest: #​82526
  • Update Rspack production test manifest: #​82525
  • Test that there are no server-side CSS chunks: #​82471
  • docs: experimental config browserDebugInfoInTerminal: #​82532
  • Turbopack: Rework watcher data structures, store watched list and watcher behind the same RwLock: #​82258
  • Bump React types: #​82541
  • Turbopack: fix postcss in RSC CSS: #​82554
  • Turbopack: improve Lightning CSS error handling: #​82561
  • [turbopack] Handle relative paths before matching in node file traces: #​82539
  • Turbopack: symlinks and parent globs in outputFileTracingIncludes: #​82528
  • Turbopack: fix module rules for .module.scss: #​82570
  • Turbopack: Watch parent directories before watching children in non_recursive_helpers::start_watching_dir_and_parents: #​82454
  • feat(turbo-tasks-hash): update twox-hash: #​82518
  • Update Rspack development test manifest: #​82558
  • Update Rspack production test manifest: #​82557
  • [turbopack] Fix a crash under turbopackPersistentCaching: #​82592
  • Turbopack: don't block on parsing traced modules: #​82602
  • Docs/feedback round aug: #​82549
  • Turbopack: avoid using rayon in favor of tokio tasks: #​82256
  • Turbopack: support requests with dynamic part in module name: #​82401
  • Cleanup shouldRunTurboDevTest usage: #​82603
  • Update Rspack production test manifest: #​82601
  • Update Rspack development test manifest: #​82600
  • Fix generate-metadata.mdx typo: #​82624
  • docs: fix typos: #​82503
  • Turbopack: fix edge function name: #​82617
  • Turbopack: avoid REEXPORTED_OBJECTS property on Module object: #​82622
  • Turbopack: patch sourcemap crate: #​82641
  • Turbopack: do not run a compaction when opening the db: #​82635
  • Revert "Turbopack: avoid using rayon in favor of tokio tasks (#​82256)": #​82658
  • [turbopack] Fix a bug where our global rewrite could introduce a TDZ issue: #​82659
  • chore: Bump Turborepo: #​82652
  • test: improve tests for typed route validation: #​82660
  • docs: add experimental.typedEnv: #​82647
  • Turbopack: use published sourcemap crate: #​82646
  • chore: set Turborepo version correctly: #​82680
  • Turbopack: run snapshot in normal task instead of blocking task: #​82636
  • docs: fix typo in vitest.mdx: #​82690
  • Update Rspack production test manifest: #​82681
  • Update Rspack development test manifest: #​82682
  • Remove stability disclamer on Node runtime in middleware: #​82181
  • Add metadata to server reference manifest: #​82695
  • Turbopack: refactor idle process queue and fix bugs and race conditions: #​82630
  • 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 @​unstubbable, @​gnoff, @​RobPruzan, @​mischnic, @​huozhi, @​delbaoliveira, @​styfle, @​ankur-arch, @​skt-t1-byungi, @​ijjk, @​Han5991, @​SyMind, @​Anas-github-acc, @​hf, @​bgw, @​wyattjoh, @​ztanner, @​prateekkish, @​eps1lon, @​lubieowoce, @​timneutkens, @​acdlite, @​lukesandberg, @​bgub, @​Cy-Tek, @​padmaia, @​raunofreiberg, @​devjiwonchoi, @​sokra, @​MidnightDesign, @​stephenliang, @​allenzhou101, @​icyJoseph, @​gaojude, @​remcohaszing, @​wesjune, @​wbinnssmith, @​m1abdullahh, @​Sayakie, @​startracex, @​chadfennell, @​dlehmhus, @​Jarred-Sumner, @​candymask0712, @​stepan662, @​PuppyOne, @​huperniketes, @​xusd320, @​MichalMoravik, @​fireairforce, @​kitfoster, @​feedthejim, @​r34son, @​guoci, @​JamBalaya56562, @​adkile, @​snyamathi, and @​kachkaev for helping!

v15.4.7

Compare Source

[!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.6

Compare Source

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

Core Changes
  • fix: _error page's req.url can be overwritten to dynamic param on minimal mode (#​82347)
  • fix: add ?dpl to fonts in /_next/static/media (#​82384)
Credits

Huge thanks to @​devjiwonchoi, @​ijjk, and @​styfle for helping!

v15.4.5

Compare Source

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

Core Changes
  • Fix API stripping JSON incorrectly (#​82062)
  • Fix i18n fallback: false collision (#​82158)
  • Revert "Fix tracing of server actions imported by client components (#​82167)
  • Ensure setAssetPrefix updates config instance (#​82165)
  • Turbopack: update mimalloc (#​82166)
  • fix(next/image): fix image-optimizer.ts headers (#​82175)
  • fix(next/image): improve and simplify detect-content-type (#​82174)
Credits

Huge thanks to @​ijjk, @​sokra, and @​styfle for helping!

v15.4.4

Compare Source

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

Core Changes
  • Fix dynamicParams false layout case in dev (#​82026)
  • Turbopack: fix scope hoisting variable renaming bug (#​81640)
  • Upgrade to swc v33 (#​81750)
  • Revert "[metadata] use https protocol for schema urls" (#​81934)
Credits

Huge thanks to @​bgw @​mischnic @​huozhi @​lukesandberg and @​ijjk for helping!

v15.4.3

Compare Source

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

Core Changes
  • Turbopack: fix dist dir on Windows (#​81758)
Credits

Huge thanks to @​mischnic for helping!

v15.4.2

Compare Source

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

Core Changes
  • pages router metadata bugs with React 19 (#​81733)
  • [metadata] replace for initial body icon case (#​81688)
  • Ensure custom NextServer config is honored (#​81681)
Credits

Huge thanks to @​huozhi, @​ijjk, and @​ztanner for helping!

v15.4.1

Compare Source

[!TIP]
Check out our Next v15.4 Blog Post to learn more about this release.

Core Changes
  • [next-server] fix params duplicate in query after rewrite: #​77939
  • [next-server] preserve rsc query for rsc redirects: #​77963
  • Turbopack: fix a bug where marking a task a completed causes a panic when reading the output: #​77922
  • Turbopack warning spelling fix: #​77999
  • Allow URL schemes that include +, - or .: #​77932
  • [dev-overlay] Remove unused hydration error related code: #​77929
  • [dev-overlay] Unify error deduplication logic: #​78017
  • fix: use the match result after matching using the matched path header: #​77994
  • Upgrade React from 3fbfb9ba-20250409 to c44e4a25-20250409: #​78031
  • Move unhandled rejection handling to shared path: #​77997
  • fix: ensure app router not found works when deployed with pages i18n config: #​77905
  • Uninstall existing uncaughtException listeners to prevent the process from crashing: #​78042
  • Experimental bfcache: Restore state w/ : #​77992
  • Add graceful error fallback for bots requests: #​77916
  • Upgrade React from c44e4a25-20250409 to 1d6c8168-20250411: #​78067
  • [next-server] remove unnecessary query shallow copy: #​78003
  • [dev-overlay] disable copy button when clipboard is not available: #​78101
  • [dev-overlay] Stop stashing React error details on error instances: #​77975
  • [dynamicIO] Model invalid dynamic on empty shells: #​77270
  • fix: bump image-size@1.2.1: #​78149
  • Handle graceful fallback for custom error boundaries: #​78121
  • [dev-overlay] Stop squashing hydration related errors in App Router: #​78140
  • [test] Enable strictNullChecks in test utils: #​78142
  • Document Turbopack trace viewer: #​78184
  • [dev-overlay] Fix error dialog resizing logic: #​78144
  • Include types in published eslint-plugin-next: #​78109
  • [dev-overlay] Stop appending wrong Owner Stacks to SSR-only shell errors: #​77302
  • [dev-overlay] Add dedicated label for recoverable errors: #​78186
  • [chore] remove unused __NEXT_PRIVATE_RUNTIME_TYPE: #​78230
  • Preserve slashes when custom URL schemes are used in redirects: #​78176
  • ignore-list published sources if they have a sourcemap: #​78242
  • Upgrade React from 1d6c8168-20250411 to 39cad7af-20250411: #​78152
  • Turbopack: add test case for persistent caching: #​77030
  • Upgrade React from 39cad7af-20250411 to b04254fd-20250415: #​78253
  • fix: alternate bundler support for dropping client pages in AMP: #​77601
  • [errors] refactor default global-error into a separate file: #​78182
  • [metadata] render streaming metadata on the top level: #​77620
  • [metadata] skip head cache in default slot: #​78206
  • chore: Backport SWC-based RC optimization (#​78260)
  • fix: bump image-size@1.2.1 (#​78164)
  • @next/mdx: Use stable turbopack config options: #​78261
  • Upgrade React from b04254fd-20250415 to 4a36d3ea-20250416: #​78297
  • Add graceful error boundary for bots requests: #​78298
  • make sure eslint-plugin-next is built when running 'pnpm dev': #​78305
  • Migrate pages API routes to handler interface: #​78166
  • Update middleware public/static matching: #​78325
  • Fix dynamic route param encoding: #​78326
  • [Turbopack] refactor persistent caching from log based to cow approach: #​76234
  • Add onInvalidate option to router.prefetch: #​77880
  • Reserve bandwidth for most recently hovered link : #​78362
  • fix: handle incremental PPR with client segment cache: #​78387
  • fix: amphtml-validator WASM errors (for real): #​78379
  • Turbopack: Remove next start --turbopack: #​78384
  • Upgrade React from 4a36d3ea-20250416 to bc6184dd-20250417: #​78322
  • [chore] remove dead code missing required error: #​78403
  • [ts-next-plugin] remove typescript vfs and related metadata plugin: #​78237
  • [ts-next-plugin] auto import metadata type: #​78258
  • [ts-next-plugin] warn to add correct type for metadata exports: #​78254
  • [ts-next-plugin] fix: validate metadata node before checking type: #​78414
  • [errors] fix edge server initial error is not sent via hmr: #​78415
  • misc: use correct capitals for React terms: #​78445
  • Skip empty prefetch request for dynamic routes: #​78436
  • Turbopack: don’t warn about webpack being configured when experimental.turbo is set: #​77998
  • Upgrade React from bc6184dd-20250417 to 914319ae-20250423: #​78468
  • Update turbopack to syn2: #​78385
  • [next-server] ensure prepare is done before preloading entry: #​78454
  • Upgrade React from 914319ae-20250423 to 197d6a04-20250424: #​78516
  • [dev-overlay] Move error.name to label: #​78198
  • [ts-next-plugin] update log for utils: #​78538
  • [ppr] Route Cardinality Updates: #​78476
  • Turbopack: support ignore comments for NFT fs access tracing: #​78460
  • Externalize manifest loading in pages-api: #​78358
  • Update font data: #​78525
  • refactor: skip the prospective render when there's a more specific route to be rendered: #​78555
  • fix: bodySizeLimit error responses + limit for non-multipart actions: #​77746
  • [dynamicIO] Do not skip dynamic validation when metadata is dynamic: #​78574
  • [dynamicIO] log dynamic validation errors consistently in dev: #​78575
  • [ts-next-plugin] clean up unused proxy: #​78539
  • [dynamicIO] Disallow only dynamic metadata: #​78576
  • fix: make webpack handle "use cache" in node_modules : #​78606
  • Use React's prerender function for "use cache" with Dynamic IO: #​78382
  • Use node: prefixed in ESM emit of standalone server.js: #​78624
  • feat: add ravendb library to server-external-packages.json: #​78319
  • docs: fix typo in ppr.ts: #​78590
  • Pre-compile busboy dependency: #​78634
  • Pages API handler interface follow-ups: #​78638
  • Repeat fix in #​78387 for routes without params: #​78568
  • [dev-tools] Fix width transition logic: #​78635
  • [ts-next-plugin] fix: warn only if no type: #​78628
  • [ts-next-plugin] fix: warn only if no type for separate export: #​78629
  • chore: Drop @swc/counter: #​78674
  • Turbopack: use small thread local collector that flushes to global collector: #​78343
  • Upgrade React from 197d6a04-20250424 to 5dc00d6b-20250428: #​78640
  • Fix bad decoding for x-matched-path header: #​78677
  • Fix pages API rewrite case: #​78644
  • chore: update rspack to 1.3.8: #​78485
  • Always apply render preparations after running an action: #​77898
  • Exclude config package from bundling: #​78671
  • Upgrade builtin babel packages: #​78673
  • Upgrade loader-utils v2 to latest patch: #​78707
  • [Link] Add prefetch="auto" option: #​78689
  • [build-sourcemaps] Ensure errors during prerender can be sourcemapped: #​78709
  • Upgrade React from 5dc00d6b-20250428 to 408d055a-20250430: #​78715
  • build: Fix minifier options for webpack builds: #​78717
  • refactor(next-swc): Do not amend minifier options from Rust code: #​78719
  • Change stylistic ESLint TypeScript defaults: #​78679
  • fix: replace original request body after middleware execution: #​77662
  • remove draft.isEnabled setter from exotic draftMode wrappers: #​77972
  • Turbopack: limit compaction merging by size instead of count: #​78669
  • [build-sourcemaps] Include codeframes in prod when sourcemaps are enabled: #​78710
  • feat: build lifecycle hooks - afterProductionCompile: #​77345
  • fix: make sure that the patched fetch cache set promise is properly awaited: #​75971
  • [dev-overlay] Make badge draggable: #​78716
  • Turbopack: fix ESM project in standalone mode: #​78774
  • Revert "[Link] Add prefetch="auto" option": #​78820
  • Downgrade React from 408d055a-20250430 to 197d6a04-20250424: #​78834
  • Reland "[Link] Add prefetch="auto" option": #​78821
  • build: Update @swc/core npm package to v1.11.24: #​77668
  • Turbopack: Implement regex support for matching webpack loaders: #​78733
  • Turbopack: Add support for extension regex in @next/mdx: #​78734
  • backport: fix(turbopack): Store persistence of wrapped task on RawVc::LocalOutput (#​78488) (#​78883)
  • @​next/mdx: Use stable turbopack config options (#​78880)
  • Fix react-compiler: Fix detection of interest (#​78879)
  • Fix turbopack: Backport sourcemap bugfix (#​78881)
  • [next-server] preserve rsc query for rsc redirects (#​78876)
  • Update middleware public/static matching (#​78875)
  • [dev-overlay] Polish mobile view: #​78863
  • [dev-overlay] Consider scrollbar width for drag positioning: #​78865
  • Add handling for setting deployment id via cookie: #​78841
  • Run export child process with runtime's default max-old-space-size: #​78712
  • [dynamicIO] cache tracking for import(): #​74152
  • [dev-overlay] solidate the line number parsing: #​78868
  • Update send to v0.18.0: #​78816
  • Scope runInCleanSnapshot to Work Store: #​78930
  • Removes onNavigate from transition scope: #​78605
  • Add nonce handling from CSP in pages router: #​78936
  • Ensure manual nonce on Script works as expected: #​78939
  • Treat _debugInfo as a wellknown property for sync request data access purposes: #​78942
  • chore(CI): Run rspack tests in build_and_test.yml: #​78757
  • bugfix: Fix a bug that caused conflicting assets when adding a child compiler: #​78011
  • [Fix] Inverse prefetch segment for Pages routes: #​78932
  • Fix tracing of server actions imported by client components: #​78968
  • Revert "fix: alternate bundler support for dropping client page": #​78974
  • Fix --no-mangling for "use cache" functions: #​78993
  • chore: update rspack to 1.3.9: #​78984
  • [not-found] Add global-not-found convention: #​78783
  • [not-found] support metadata exports of global-not-found: #​78961
  • Prevent "use cache" timeout errors from being caught in userland code: #​78998
  • patch react via recast instead of string replacements: #​78916
  • [link] Avoid inlining of LinkProps in emitted declarations: #​78773
  • [next-config-ts] fix: read tsconfig file using TypeScript API: #​79055
  • Replace node:url usage in server-utils: #​79094
  • [build-sourcemaps] Remove unused static workers: #​79107
  • fix: cli test failed when using rspack: #​79081
  • [build-sourcemaps] Allow inspecting prerender worker: #​79098
  • Add initial modifyConfig hook: #​79162
  • Re-land updated bundler for pre-bundling: #​79164
  • [dynamicIO] model pathname access in metadata as async : #​79136
  • Update font data: #​79179
  • bugfix (pages): assetPrefix should not cause hard nav in development: #​79176
  • Reland "Ensure mangling is disabled for dev runtime builds (#​75297)": #​79201
  • docs: add graceful error boundary example: #​77781
  • turbo-tasks: Encode location information into panics: #​78945
  • feat(turbopack): Add basic compilation event support: #​78785
  • chore(dev-overlay): Minor cleanups to useDelayedRender hook: #​79119
  • Update font data: #​79227
  • Rename define-env-plugin.ts to define-env.ts: #​79224
  • Always pass implicit/soft tags into the CacheHandler.get method: #​79213
  • fix(dev-overlay): Ignore right clicks on the indicator draggable: #​79120
  • Fix dangling promise in unstable-cache: #​79248
  • Revert "Partial Fallback Prerendering Route Shells (#​69282)": #​79258
  • [devtool] initial support for segment explorer: #​78858
  • Client router should discard stale prefetch entries for static pages: #​79309
  • [dynamicIO] fix: do not apply import tracking transform in edge: #​79284
  • Turbopack build: Fix type: module with output: standalone: #​79292
  • [TypeScript Plugin] Moved the diagnostics' positions to the prop's type instead of the value for client-boundary warnings: #​79193
  • Use onPostpone to determine if segment prefetch is partial: #​79299
  • Enable ppr when dynamicIO is enabled: #​79302
  • fix: replaceIdentifiersInAst takes an expression, not a string: #​79196
  • Remove DIO w/o PPR branch from app-render.tsx: #​79303
  • Remove prospective fallback prerenders: #​79304
  • Fixed rewrite param parsing for interception routes in Vercel deployments: #​79204
  • [build-sourcemaps] Sourcemap errors during prerender if experimental.enablePrerenderSourceMaps is enabled: #​79109
  • [release] use @changesets/changelog-github for changelog format: #​79040
  • next.config.ts: Implement compiler.defineServer for server-only constants: #​79225
  • Always show warning if fetch cache limit hit: #​79384
  • feat(turbopack) Added sending events to log how long writing entrypoints to disk takes.: #​79256
  • [release] use @changesets/changelog-github for changelog format: #​79040
  • next.config.ts: Implement compiler.defineServer for server-only constants: #​79225
  • Always show warning if fetch cache limit hit: #​79384
  • feat(turbopack) Added sending events to log how long writing entrypoints to disk takes.: #​79256
  • Only share incremental cache for edge in next start (#​79389)
  • [TypeScript Plugin] Match method signature (someFunc(): void) type for client boundary warnings: #​79144
  • Only share incremental cache for edge in next start: #​79386
  • fix: rspack framework and lib cacheGroups: #​79172
  • Make sure bundle analyzer does not trigger warning with turbopack: #​79399
  • [dynamicIO] Avoid timeout errors with dynamic params in "use cache": #​78882
  • Implement initial handler interface for pages routes: #​79260
  • [Segment Cache] Fix: Ensure server references can be prerendered: #​79448
  • [dynamicIO] Avoid timeout errors with dynamic params in "use cache": #​78882
  • Implement initial handler interface for pages routes: #​79260
  • [Segment Cache] Fix: Ensure server references can be prerendered: #​79448
  • [Segment Cache] Fix: Skew during dynamic prefetch: #​79416
  • [dynamicIO] reimplement dynamicIO validation on prerender: #​79414
  • fix: remove redundant performance.measure usage: #​79475
  • [devtools] Add a very minimal API for restarting the dev server: #​79265
  • Model prerender store as separate server and client scopes: #​79429
  • fix: Merge link header from middleware with the ones from React (#​73431)
  • fix(edge): run after() if request is cancelled mid-streaming (#​76013)
  • gate segmentCache branch in base-server (#​79505)
  • Model prerender store as separate server and client scopes: #​79429
  • Use metadata for cache entry status code: #​79512
  • fix(dev-overlay): Better handle edge-case file paths in launchEditor: #​79526
  • [build-sourcemaps] Increase stacktrace limit during prerender: #​79498
  • fix: Rspack not skip .d.ts file: #​79285
  • Revert "[next-server] skip setting vary header for basic routes": #​79426
  • [ppr] Narrow condition for fallback shell generation at runtime: #​79565
  • Turbopack: derive de/serialize for loader config: #​79581
  • Update font data: #​79642
  • Avoid bundling dev overlay in page template: #​79641
  • Enable preview builds for forks: #​79648
  • misc: remove leftover clientInstrumentationHook type: #​79701
  • cleanup(turbopack): Embed Global vs Specific channel type in the Rust type system: #​79291
  • [dev-overlay] Show error overlay on any thrown value in /app: #​79658
  • [dev-overlay] Move error handlers into dispatcher in /app: #​79660
  • Verify cache-busting param during segment prefetch: #​79563
  • update(turbopack): Update the messaging UX for timing writing files to disk: #​79469
  • [dev-overlay] Move Redbox open/close into dispatcher: #​79698
  • chore: update rspack to 1.3.12: #​79428
  • Enable repeated tsc runs in packages/next without having to build first: #​79782
  • Run tsc in watch mode during pnpm dev: #​79785
  • Reinstate vary (#​79939)
  • fix(next-swc): Fix interestingness detection for React Compiler (#​79558)
  • fix(next-swc): Fix react compiler usefulness detector (#​79480)
  • fix(dev-overlay): Better handle edge-case file paths in launchEditor (#​79526)
  • Client router should discard stale prefetch entries for static pages (#​79362)
  • fix: preload fonts in template.js: #​79417
  • feat: using eval source map plugin for Rspack: #​79199
  • feat: using builtin CssChunkingPlugin for rspack: #​79762
  • fix(napi): Update generated types, add alias for RcStr: #​79915
  • [dev-overlay] Fix highlighted line cut off on scroll: #​79930
  • fix(next/font): allow custom font-family in declarations: #​76274
  • Remove subissues from Issue: #​79988
  • [devtools] Add a query parameter to restart endpoint to invalidate the persistent cache: #​79425
  • Implement handler interface for app-page: #​79568
  • Migrate app route to handler interface: #​80008
  • Turbopack Build: Fix underscore path tests: #​79778
  • Fix watchmode for taskr tasks: #​80020
  • Update font data: #​80036
  • Fix defunct ESLint overrides: #​80053
  • [devtools] Add an endpoint to poll for server status: #​80005
  • [dynamicIO] Only report client sync IO errors if they are above a Suspense boundary: #​80026
  • [dev-overlay] Parse stacks in reducer not during dispatch: #​79788
  • Remove obsolete @ts-expect-error: #​80065
  • [dev-tools] Navigation header replaces close button: #​80097
  • [dev-overlay] Inject get*Stack implementation: #​79789
  • [dev-overlay] Fix dark‐mode styling for <option> in Preferences dropdowns: #​80025
  • Use relative sources in require() instead of next/dist/ if possible: #​80054
  • [dev-overlay] Inject isRecoverableError implementation: #​80003
  • [devtool] fix explorer flag consuming and style: #​80110
  • [dev-tools] add restart dev server button to error overlay: #​80060
  • [dev-tools] add restart dev server button on dev-tools indicator preferences: #​80072
  • [chore] remove legacy useEarlyImport flag: #​80112
  • [testmode] Fix types of wrapRequestHandler: #​80055
  • Extend bot list with googleweblight, Storebot-Google, Google-Inspecti…: #​77728
  • [dev-overlay] Inject getSquashedHydrationErrorDetails implementation: #​80046
  • [dev-tools] better description for restart server button: #​80118
  • [dev-tools] style: preferences section title: #​80120
  • [metadata] refactor to remove async metadata: #​78495
  • [dynamicIO] Document client component remediations for sync IO: #​79787
  • [dynamicIO] prioritize preprocessing RSC rows when prerendering: #​80125
  • [dev-overlay] Remove unused onError in /pages: #​79982
  • Remove unused vendored server-inserted-metadata module: #​80143
  • Webpack Build: Use name-contenthash instead of name-chunkhash for dynamic imports: #​80153
  • [dev-overlay] Remove unnecessary code from /pages dev error boundary: #​79983
  • Turbopack Build: Implement helpful error for missing sass package: #​80155
  • [global-not-found] fix shared css imports not being picked: #​80151
  • Add experimental flag for RSC request validation: #​80157
  • [dev-overlay] Remove indirection in app dev error boundary : #​79984
  • Docs: preload entries impact on memory consumption: #​80098
  • [dev-overlay] Move building indicator into Dev Overlay state: #​79985
  • [metadata] only render one metadata outlet: #​80146
  • Add a regions property to the Functions Config Manifest file: #​80104
  • [metadata] fix nonce prop for hoist script: #​80174
  • docs: fix grammar in Code of Conduct section ('them' → 'it') : #​80181
  • [error-overlay] remove footer message: #​80169
  • Turbopack: Log persistent cache store time: #​80149
  • fix(turbopack): Next.js package not found panics in Turbopack: #​79572
  • [turbopack] Compute Import Traces for Issues: #​79351
  • Typecheck require() calls: #​80056
  • Revert "[turbopack] Compute Import Traces for Issues": #​80215
  • remove unique metadata prop from initial RSC payload #​79388
  • Replay redirect if RSC parameter is missing: #​80180
  • [devtool] style the segment explorer as nested view: #​80212
  • Prerender with streaming metadata during revalidation: #​80245
  • fix: invalid middleware configs should fail the build: #​80221
  • [dev-overlay] Render /app Dev Overlay with a separate React instance: #​79699
  • [devtool] display segment explorer as tree view: #​80261
  • [dev-overlay] Use same bundle for Pages and App Router: #​80019
  • Revert "Revert "[turbopack] Compute Import Traces for Issues"": #​80220
  • [dev-overlay] Publish as production bundle: #​80295
  • [metadata] only serve block streaming metadata for html bots: #​80272
  • Update font data: #​80301
  • Update font data: #​80340
  • [dev-overlay] fix duplicate re-render of errors: #​80322
  • [build-sourcemaps] Only compute codeframe once: #​80326
  • [test] Fix Dev Overlay Storybook: #​80288
  • [test] Fix crashes in Dev Overlay Stories: #​80292
  • [metadata] use https protocol for schema urls: #​80356
  • [dev-overlay] Remove positive tab-index: #​80289
  • [devtools] Implement default /.well-known/appspecific/com.chrome.devtools.json endpoint in dev: #​80260
  • [dev-overlay] Fix outstanding a11y issues reported by Axe: #​80290
  • provide declarations for server-only/client-only: #​80361
  • [test] Stop opening browser by default in local Dev Overlay Storybook: #​80291
  • [dev-overlay] Move hot reloader client code out of react-dev-overlay: #​80278
  • [dev-overlay] Remove unused code: #​80279
  • [dev-overlay] Move app/pages related features closers together: #​80280
  • Discard Infinity expiration for implicit tags: #​80387
  • fix(next-swc-wasm): Only enable turbo-rcstr's napi feature when building the next-swc-napi crate/package: #​80390
  • Add response handling inside handlers: #​80189
  • feat(turbopack): Add simple tree shaker: #​78286
  • Fix a couple typos: #​80080
  • [dev-overlay] Move code into new top-level folder in src/next-devtools: #​80281
  • Ensure we normalize .rsc/.prefetch.rsc: #​80409
  • Turbopack Build: Fix /index/index handling: #​80413
  • [segment-explorer] optimize tree view: #​80392
  • Upgrade @​playwright/test and cleanup internal APIs: #​80334
  • Backport config.allowedDevOrigins (#​80410) (Learn More)
  • [segment-explorer] Signal updates to React: #​80316
  • [segment explorer] fix soft navigation case: #​80443
  • Update the warning text for when multiple lockfiles are found: #​80214
  • feat: in Rspack using native fn implemented by us using SWC to replace load module: #​80342
  • chore: fix link to good first issue: #​80478
  • Disable fetch cache size limit for implicit caching during build: #​80480
  • [dynamicIO] Split up static generation into two phases: #​79629
  • fix(turbopack): Fix config caching for turbopack + React Compiler: #​80498
  • [dynamicIO] Use filled Resume Data Cache for final-phase prerenders: #​79743
  • fix: Rspack dev gets stuck after removing a page: #​80555
  • Ensure custom relative distDir resolves properly: #​80569
  • fix: mark file system incremental cache as external so it's memory is shared: #​80586
  • [fix] clone the config module to avoid mutation: #​80573
  • Improve Incremental Cache Locking Algorithm: #​80497
  • [devtools] add feature flag for new panel ui: #​80251
  • [devtools] fork devtools-indicator: #​80456
  • [devtools] fork next-logo: #​80457
  • guarantee cache busting param correctness: #​80381
  • Normalize filepaths when parsing patterns from js values: #​80511
  • [metadata] render streaming metadata on the top level (#​80566)
  • [fix] clone the config module to avoid mutation (#​80573)
  • feat: rspack use swc to warn for edge runtime: #​80485
  • Avoid timeout error when transformed params are passed to "use cache": #​80463
  • Respond with 404 for unknown server actions: #​80613
  • [segment explorer] single row layout segment: #​80576
  • Fix: Rules of Hooks violation in AppRouter: #​80623
  • fix: Add Chrome-ligthouse to htmlLimitedBots: #​80656
  • Turn on clientSegmentCache during PPR CI runs: #​80581
  • [devtools] port overlay backdrop out of overlay: #​80460
  • Revert "(E2E) Log which config file is used for next start": #​80666
  • fix(turbopack): Fix static immutability analysis: #​80646
  • [devtools] add panel ui placeholder under feature flag: #​80354
  • [devtools] add dialog behavior to panel ui: #​80355
  • Add --debug-prerender option for next build: #​80667
  • [devtools] port devtools-indicator position to dispatcher: #​80536
  • fix: mark the shared cache controls as external so it's memory is shared: #​80588
  • [devtools] apply draggable to panel ui: #​80517
  • Apply normalizers for init URL used for handlers: #​80694
  • overwrite redirect SSG meta.status to 200 for RSC requests: #​80391
  • [devtools] panel ui header: #​80509
  • [development-server] Display pid of already-running process that is using port: #​80069
  • [devtools] panel ui footer: #​80515
  • Fix Next DevTools Storybook in recent Node.js versions: #​80713
  • [devtools] set up panel ui tab infra: #​80535
  • [devtools] port devtools scale to dispatcher: #​80537
  • [devtools] panel ui settings tab: #​80538
  • Upgrade React from 197d6a04-20250424 to 79d9aed7-20250620: #​79477
  • fix: rspack code analyzer should only handle javascript module: #​80711
  • [devtools] port call stack: #​80550
  • [devtools] port runtime error handling to hook: #​80567
  • Upgrade React from 79d9aed7-20250620 to 06e89951-20250620: #​80730
  • chore(swc-wasm): Fix and clean up various issues with swc-wasm tests: #​80471
  • Add onBuildComplete adapter hook: #​80446
  • [ppr] RDC for RSCs: #​79638
  • docs: add csp and content disposition type: #​80735
  • omit searchParam data from FlightRouterState before transport: #​80734
  • feat(turbopack): Print a warning about performance when starting with an invalidated cache: #​80631
  • perf(next-swc): Remove needless JSON conversion: #​80671
  • [devtools] Fix Turbopack indicator: #​80753
  • Downgrade React from 79d9aed7-20250620 to 197d6a04-20250424: #​80762
  • devtools: couple restart dev server UI with persistent cache flag: #​80751
  • [devtools] panel ui responsiveness: #​80732
  • [turbopack] Update Napi CLI to the latest 2x release: #​80697
  • Revert "[ppr] RDC for RSCs": #​80794
  • [segment explorer] handle edge and pages router: #​80668
  • [segment explorer] handle builtin not-found: #​80607
  • [devtools] fix: adjust width for responsiveness: #​80777
  • [build] remove obsolete module field alias for barrel optimized pkg: #​80769
  • [segment explorer] handle custom global-error segment: #​80685
  • [devtools] storybook: port utils to be reusable: #​80726
  • [segment explorer] display navigation error boundaries: #​80691
  • [devtools] set up panel ui issues tab infra: #​80727
  • [devtools] add correct scrollbar to dialog body: #​80776
  • [devtools] panel ui issues tab sidebar: #​80728
  • [devtools] panel ui issues tab content: #​80729
  • [devtools] add fullscreen mode: #​80788
  • [devtools] proper draggable for header and footer only: #​80792
  • [segment explorer] handle display loading: #​80698
  • [segment explorer] handle custom error boundary: #​80714
  • [segment explorer] display default page in segment explorer: #​80716
  • Add htmlrewriter to default server externals: #​80819
  • fix to use https urls in meta data images when using experimental-https: #​80276
  • Add a fallback for the mdx-components file: #​59693
  • Revert "Respond with 404 for unknown server actions (#​80613)": #​80662
  • [devtools] segment explorer tab: #​80805
  • [devtools] fix: error overlay closes when footer is clicked: #​80513
  • fix: respond with 404 for unrecognized action ids: #​77012
  • [turbopack] Enable debug assertions in CI: #​80739
  • Turbopack Build: Implement browserslist for CSS / JS: #​80603
  • Fix fallback: true cache-control: #​80865
  • Turbopack: scope hoisting: #​79459
  • [devtools] refactor segment explorer styles: #​80848
  • Turbopack: CSS Global Import Validation for Pages: #​80585
  • [devtools] overlay backdrop visibility hidden when not fullscreen: #​80844
  • Allow intercepting dynamic routes to be partially prerendered: #​80851
  • Turbopack: fix chunking context caching: #​80862
  • [devtools] replace the old error overlay with the issues tab view: #​80814
  • [devtools] fullscreen mode should not be draggable: #​80845
  • Turbopack: add task execution reason to tracing: #​80861
  • [devtools] Allow opting out of environment feature flags: #​80897
  • [devtools] fix: build error should share the issue content layout: #​80850
  • [devtools] increase max-width/height limit: #​80846
  • [devtools] memorize tab in session storage: #​80900
  • Check cache busting search params on all RSC requests: #​80669
  • Perf: Use canonicalUrl from prefetch for dynamic RSC requests: #​80817
  • Fix PPR no fallback case: #​80908
  • Add comment explaining staticPathKey vs ssgCacheKey: #​80911
  • add turbo tasks fuzzing: #​79372
  • [devtools] fix style of issue count label: #​80854
  • [devtools] Remove unused footer buttons: #​80864
  • [devtools] Hide issue count on empty state: #​80898
  • [turbopack] Add user friendly names to trace labels: #​80388
  • Upgrade React from 197d6a04-20250424 to fa3feba6-20250623: #​80804
  • [segment explorer] open in editor: #​80856
  • Roll out validateRSCRequestHeaders: #​80954
  • [refactor] group the built-in conventions: #​80957
  • fix: webpack config context when using rspack: #​80921
  • Turbopack: pass current Node.js version from JS side instead of invoking node: #​80949
  • Turbopack/Webpack Build: Remove dead code: #​80938
  • Upgrade React from fa3feba6-20250623 to cee7939b-20250625: #​80904
  • [segment explorer] hover state for open-in-editor color: #​80950
  • Upgrade React from cee7939b-20250625 to 4db4b21c-20250626: #​80959
  • [devtools] polish icon and label color: #​80976
  • Use proper reexports in entry-base.ts: #​80988
  • [segment-explorer] display the builtin conventions: #​80961
  • [segment explorer] builtin slots style: #​80972
  • [segment explorer] trigger boundary initial support: #​80948
  • [devtools]: width/height adjustments: #​81072
  • [test] fix browser chunk test failure: #​81074
  • [segment explorer] show current route: #​81003
  • [devtools]: move RestartServerButton to panel footer: #​81082
  • Update font data: #​81093
  • Upgrade React from 4db4b21c-20250626 to 65c4decb-20250630: #​81077
  • [node-webstreams] Remove unused App externals from next-server bundler config: #​81039
  • Turbopack: apply browserslist config in dev: #​81075
  • [build] remove the default imports for error boundary: #​81000
  • Turbopack: also inline env vars with undefined value: #​80990
  • [devtools]: default to issues tab when error overlay is programmatically toggled: #​81091
  • [devtool] merge segment explorer flag into panel ui flag: #​81085
  • Revert "[devtool] merge segment explorer flag into panel ui flag (#​81085)": #​81131
  • [segment explorer] reset error and not-found boundary: #​81115
  • [devtool] enable segment explorer when new panel present by default: #​81152
  • [dynamicIO] Don't abort on sync request data access: #​81162
  • [dynamicIO] recognize prerender interrupted errors as well known: #​81160
  • Fix resolvedPathname for middleware rewrite: #​81144
  • [node-webstreams] Exhaustive React aliases in App Router: #​81040
  • [node-webstreams] Use React builds for Node.js: #​81048
  • Upgrade React from 65c4decb-20250630 to 7216c0f0-20250630: #​81133
  • Turbopack: fix and finish immutable tasks: #​80996
  • [segment explorer] custom tooltip: #​80974
  • [segment explorer] refactor boundary trigger with ui primitives: #​81147
  • Migrate usage of web-server in edge-ssr: #​80915
  • Upgrade React from 7216c0f0-20250630 to 73aa744b-20250702: #​81192
  • [segment explorer] fix route path in top navbar: #​81195
  • Reuse resolvedPathname from prepare: #​81194
  • Turbopack: exclude resolve-rewrites if possible: #​80939
  • [devtool] styling fixes: #​81228
  • [devtools] Omit line/col numbers for anonymous sources: #​81223
  • Fix NEXT_CPU_PROF during development: #​81248
  • Turbopack: list assert/strict as external (#​80884)
  • omit searchParam data from FlightRouterState before transport (#​80734)
  • bugfix: propagate staleTime to seeded prefetch entry (#​81263)
  • [Segment Cache] Support third-party redirects in output: "export" mode: #​81247
  • [devtool] css imports and share css variables: #​81236
  • Update matching query and route param handling: #​81209
  • bugfix: propagate staleTime to seeded prefetch entry: #​81263
  • Ensure resolvedPathname normalizes trailing slash: #​81265
  • [sourcemaps] ignore-list Webpack runtime: #​81229
  • Allow pnpm build to be run when offline: #​81273
  • [sourcemaps] Ignore-list sources whose sourcemaps ignore-list everything: #​81231
  • [dynamicIO] Use owner stacks for dynamic validation errors: #​81277
  • [dynamicIO] Don't abort prospective render on sync access during SSR: #​81258
  • [refactor] Move sourcemapping logic to dedicated file: #​81310
  • [sourcemaps] Improve ignore-listing performance: #​81311
  • [devtool] handle click outscope child element: #​81296
  • [build] remove devtool from client chunks in prod: #​81376
  • chore: align css loader in storybook: #​81403
  • feat: make typed routes output deterministic: #​80432
  • [dev-tools] Custom keyboard shortcut to toggle visibility: #​81064
  • chore: update rspack to 1.4.5: #​81216
  • [use-cache] track cache read earlier when encrypting bound args: #​81427
  • Upgrade React from 5d87cd22-20250704 to a7a11657-20250708: #​81428
  • [segment explorer] capture defined boundaries: #​81232
  • [segment explorer] trigger the actual same level boundary: #​81268
  • feat: forward browser errors/logs to terminal: #​80909
  • fix: referencing unavailable __dirname: #​81436
  • Upgrade vercel og to 0.7.2: #​81447
  • [build-sourcemaps] Default experimental.enablePrerenderSourceMaps to experimental.dynamicIO: #​81449
  • Upgrade React from a7a11657-20250708 to 60b5271a-20250709: #​81463
  • Support Uint8Array bodies when generating cache keys for POST requests: #​81465
  • [devtool] dynamically import segment explorer when enabled: #​81473
  • Add @​sparticuz/chromium-min to default server externals: #​81309
  • [devtool] patch base-ui and migrate segment explorer inline styles: #​81474
  • Pass filterStackFrame everywhere: #​81516
  • Upgrade React from 60b5271a-20250709 to 96c61b7f-20250709: #​81505
  • [segment explorer] redesign file pills and boundary trigger: #​81302
  • Update eslint and restore .eslintrc.cli.json being used for CLI/CI-based linting: #​81553
  • [sourcemaps] Properly devirtualize rsc: URLs: #​81554
  • Upgrade React from 96c61b7f-20250709 to 97cdd5d3-20250710: #​81551
  • fix: update useEffect closure when menu is truly mounted: #​81531
  • rename handleSmoothScroll util: #​81546
  • add flag to opt into smooth scroll detection & add warning: #​81563
  • fix: revert focus trap dependency change: #​81571
  • Hide stackframes if sandwiched between two ignore-listed frames: #​81067
  • Dim console logs from prospective prerender in dev: #​81515
  • Augment React types internally instead of overwriting them: #​81561
  • [sourcemaps] Don't check for vendor chunks when Node.js 18 is used: #​81619
  • [Segment Cache] Fix isHeadPartial logic: #​81566
  • [segment explorer] fix route url is missing cases: #​81622
  • [segment explorer] fix boundary trigger state: #​81623
  • fix(next/image): bump sharp to 0.34.3: #​81556
Example Changes
  • [test] Use React 19.1 everywhere: #​77895
  • chore(examples): replace uuid dependency with crypto.randomUUID: #​77901
  • examples: fix readmes: #​78483
  • chore: Update the with-supabase example to use the Supabase Auth block: #​78913
  • refactor(napi): Implement napi traits for RcStr: #​79806
  • remove with-fauna example: #​80440
  • chore: fix typos in rust files: #​81113
  • Add Biome example: #​81334
Misc Changes
  • Turbopack: use correct env var for uploading test results: #​77988
  • chore(cna): use short tailwind classname of font-family: #​77271
  • Fix CSS Data URL test on Turbopack: #​77970
  • Turbopack: fix dynamic request lookup with only a single match: #​77986
  • Update Turbopack production test manifest: #​78007
  • Update Turbopack development test manifest: #​78008
  • [test] Assert on all errors in Redbox matchers: #​77907
  • Turbopack: check css requests in test: #​77285
  • 15.3 Docs: Turbopack for build: #​77730
  • [test] Stop asserting on internal stackframes when features are working as intended: #​78015
  • Turbopack: asset ident instead of chunk item ID in CSS: #​78018
  • fix(turbopack): Consider scoping of var declarations: #​77954
  • [test] Remove global styled-components install : #​77782
  • Cleanup config.experimental.reactOwnerstack: #​78021
  • Docs: Improve "use cache" and cacheLife API references: #​78024
  • Docs: Update useLinkStatus API reference: #​78022
  • Turbopack: add debug assertion to check for duplicate modules: #​78025
  • Turbopack: bundle only new Worker with new URL: #​78010
  • Turbopack: use hashbrown HashMaps instead of now-removed std raw entry api: #​78032
  • Turbopack: proper error message for swcPlugins: #​77990
  • Update Rust toolchain to nightly-2025-04-10: #​78039
  • [test] separate rsc-basic tests: #​78038
  • chore(github): remove redundant markdown body: #​76187
  • chore(CI): Mention Rspack explicitly, use arewerspackyet.com domain: #​77995
  • Update Turbopack production test manifest: #​78053
  • Turbopack: support for CSS Modules in Data URLs: #​78040
  • test: adjust default timeouts for [waitFor]elementByCss: #​78026
  • Revert Rust upgrade to nightly-2025-04-10: #​78062
  • Update Rspack development test manifest: #​78049
  • Update Rspack production test manifest: #​78050
  • chore(CI): Add lukesandberg to turbopack team: #​78074
  • [test] Activity has types and supports react-server: #​78066
  • refactor(turbo-tasks): Check for transient tasks called from persistent tasks in more places: #​77760
  • [font] prefix leading numeric google-font name with underscore: #​78127
  • build: Update swc_core to v22.3.1: #​78129
  • Update Turbopack production test manifest: #​78124
  • [test] isolate parallel metadata test: #​78134
  • Update Turbopack development test manifest: #​78125
  • Update Rspack production test manifest: #​78123
  • [test] Add dedicated tsconfig for test utils: #​78141
  • Turbopack: load chunks only once: #​75143
  • Reenable a few more Turbopack tests: #​78153
  • test: remove "@​testing-library/jest-dom" from default jest setup: #​78157
  • Turbopack: Update toolchain to 2025-04-14 (Reapply #​78062): #​78167
  • [test] Assert on all errors in app/ hydration-error suite: #​78132
  • Skip failing test via manifest instead: #​78161
  • Update Turbopack development test manifest: #​78179
  • Correct require.context relative import keys to match Webpack: #​78148
  • Getting Started Docs: Clean up docs/app and docs/pages pages: #​78151
  • Update Rspack production test manifest: #​78177
  • Update Turbopack production test manifest: #​78180
  • Update Rspack development test manifest: #​78178
  • Turbopack: fix duplicate facade module: #​78191
  • Added @​types/jest in installtion commands.: #​78090
  • Update turbopack.mdx: #​78082
  • docs: improve wording around NextRequest and query params: #​77923
  • Docs IA 2.0: Move version upgrade docs under Guides: #​78189
  • Docs IA 2.0: Move SPA docs under Guides: #​78195
  • Docs IA 2.0: Move migration docs under Guides: #​78193
  • Docs Papercuts: #​78200
  • feat(turbo-tasks): Generate a trace of transient tasks when panicking: #​77600
  • Turbopack: fix duplicate module from internal ref: #​78194
  • Fix externals doc validation: #​78208
  • [docs] Update 03-fonts.mdx: #​77965
  • Turbopack Persistent Caching: Use SmallVec to avoid allocations for small values written to DB: #​78136
  • Turbopack: wait for tracing to be written before exiting: #​78210
  • refactor(turbopack): Prepare removal of fake AST in tree-shaking: #​78172
  • Turbopack: more module ident collisions: #​78207
  • fix(turbo-tasks-fs): Update notify-rs, handle recursive symlinks in realpath implementation, add an e2e test for symlinked files: #​78220
  • Update Turbopack production test manifest: #​78224
  • Update Turbopack development test manifest: #​78225
  • Turbopack: normalize ref type for external tracing: #​78226
  • Update Rspack production test manifest: #​78222
  • Getting Started Docs: Add deploying page: #​77720
  • Docs IA 2.0: Move multi-zones docs to Guides: #​78238
  • Turbopack: Do multiple unit test runs: #​78212
  • Turbopack: fix cell not found bug: #​78246
  • Prevent typescript errors in IDE for newly generated tests: #​78247
  • Turbopack: Support ECMAScript styleregex with negative lookahead in require.context calls: #​78251
  • Docs IA 2.0: Move Production Checklist under Guides: #​78240
  • Docs: Fix nav item lettercasing for multi-zones: #​78250
  • [docs] fix function signature of og image: #​78277
  • Turbopack: dedupe additional traced references: #​78241
  • Update Turbopack development test manifest: #​78274
  • [test] Improve coverage for fetch errors in Edge runtime: #​78257
  • Update Turbopack production test manifest: #​78273
  • Turbopack: fix duplicate unsupported edge import modules: #​78236
  • Turbopack: Include Next.js version in panic handler report: #​78263
  • fix(turbopack): Fix duplicate modules when tree shaking: true: #​78203
  • test: try to fix flakiness in amphtml util: #​78304
  • remove BrowserInterface: #​78308
  • fix(turbo-tasks-fs): Handle filesystem watcher rescan events: #​78045
  • docs: improve userAgent device.type example in userAgent.mdx: #​78368
  • fix(turbo-tasks): Make vc types use repr(transparent): #​78327
  • refactor(turbopack): Remove needless code: #​78331
  • Update Turbopack production test manifest: #​78371
  • fix(turbo-persistence): Fix verify_sst_content feature, improve unit test performance: #​78388
  • Turbopack: Use content for async loader digests, not availability info: #​78386
  • refactor(turbo-tasks): Use ResolvedVc for CollectiblesSource: #​78392
  • Turbopack: add random_change test case to test persistent caching changes: #​78211
  • Update Turbopack development test manifest: #​78399
  • Update Turbopack production test manifest: #​78400
  • Docs IA 2.0: Move Static Exports to guides, create Self-hosting guide: #​78244
  • docs(turbo-tasks): Lots of minor fixes, tweaks, and updates to the docs: #​78329
  • Docs IA 2.0: Move CI build caching page under guides, and create equivalent /app guide: #​78416
  • Docs IA 2.0: Move authentication page under guides: #​78412
  • docs: fix the path of the program attribute in debugging page: #​78268
  • test: log html output for a flaky test to debug it: #​78424
  • fix bad next.browser() arguments in socket.io test: #​78309
  • docs: update React Compiler docs: #​78427
  • [ts-next-plugin] test: add metadata and generateMetadata fixtures: #​78409
  • Turbopack: fix data-url CSS Module client references: #​78428
  • Update Turbopack production test manifest: #​78441
  • Turbopack: Use single write to loader ipc socket: #​78423
  • Update Turbopack development test manifest: #​78442
  • test: flake debugging - avoid logs being eaten by jest: #​78449
  • test: ignore streaming metadata in toBeEmpty assertions: #​78456
  • build: Update mdxjs-rs to v1: #​78469
  • fix(turbopack): Fix sourcemap path on windows: #​78453
  • fix(turbo-tasks): Add a few more transient-from-persistent task assertions: #​78301
  • fix(CI): Reduce Rspack test retries from 2 to 0 to reduce timeouts: #​78390
  • test: attempt to de-flake graceful shutdown test: #​78464
  • Fix potential race condition in createRouterAct: #​78473
  • feat(turbopack): Implement side-effect optimization: #​78047
  • Docs IA 2.0: Move testing guides: #​78418
  • Update Turbopack production test manifest: #​78491
  • Turbopack: add app-dir alias for next/* subpackages: #​78447
  • Docs IA 2.0: Move pages from Config section into guides: #​78496
  • Docs IA 2.0: Move src folder page to API reference: #​78499
  • Docs: fix reference to experimental.turbo: #​78507
  • docs: added a few legacy version tags: #​78506
  • Turbopack: Add react refresh runtime stubs to workers: #​78433
  • Docs IA 2.0: Move optimizing pages to guides: #​78500
  • Docs IA 2.0: Delete config page in app docs: #​78521
  • fix(turbo-tasks): Store persistence of wrapped task on RawVc::LocalOutput: #​78488
  • docs: update redirected link: #​78527
  • Docs IA 2.0: Create public folder API reference: #​78531
  • Update Turbopack development test manifest: #​78535
  • Docs IA 2.0: Move Sass and CSS-in-JS pages to guides: #​78536
  • Turbopack: prevent hanging due to content hashing: #​78545
  • Docs IA 2.0: Move caching page to deep dive: #​78537
  • Batch ipc info messages to improve performance.: #​78522
  • docs: remove Vercel mentions and improve deployment page: #​78557
  • Clarify documentation on to_resolved. s/strongly/statically/: #​78560
  • Updating to AWS Amplify Hosting: #​78564
  • docs: add better-auth auth provider: #​74075
  • Turbopack: handle webpack loader event backpressure: #​78462
  • Turbopack: parallel search_index in trace server: #​78357
  • Update Turbopack development test manifest: #​78614
  • Update Turbopack production test manifest: #​78613
  • Turbopack: fix unused import on mac: #​78341
  • Update MDX documentation to use next-mdx-remote-client: #​78347
  • perf(turbopack): Remove ImportBinding fragments: #​78470
  • Turbopack: fix search_index merging in trace server: #​78625
  • docs: Add missing deprecation notice for legacyBehavior in Link component: #​78405
  • Turbopack: don't resolve traced references in dev: #​78623
  • Turbopack: Support passing binary data to Webpack loaders: #​75056
  • docs: link the Cloudflare adapter for Workers: #​78610
  • perf(turbo-tasks): Filter out self arguments: #​78554
  • refactor(turbo-tasks): Tighten up id factory overflow checks, tweak API to make construction easier: #​78486
  • refactor(turbo-tasks): Use an execution id instead of the parent task id to prevent local Vc escapes: #​78487
  • refactor(turbo-tasks): Remove task id from RawVc::LocalOutput: #​78561
  • Turbopack: avoid compation on initial write: #​78342
  • Turbopack: Extract EsRegex into turbo-esregex crate: #​78639
  • nit(turbo-tasks): Reorder the fields in RawVc::LocalOutput, add more documentation: #​78562
  • Update Turbopack development test manifest: #​78660
  • Turbopack: write a LOG file for the database: #​78650
  • Turbopack: Fix sizes=any with icon.svg metadata file: #​78663
  • Turbopack: commit compaction only when there are updates: #​78651
  • docs: improve "use server" inline example: #​78653
  • Update Nissuer to alert for vulnerability reports: #​78417
  • Enable prettier for turbopack: #​78559
  • fix: broken deploy test from #​77898: #​78692
  • Fix timings data for deploy tests: #​78681
  • Turbopack: refactor codegen of module fragments: #​78642
  • Update Turbopack development test manifest: #​78698
  • Update Turbopack production test manifest: #​78697
  • test: migrate svgo webpack test: #​78704
  • fix(turbopack): Provide full path to SWC Wasm plugins: #​78637
  • Revert "[next-lint] test: remove eslint config snapshot testing": #​77824
  • Turbopack: initially shard SST files: #​78652
  • Turbopack: reduce max coverage for compaction: #​78649
  • chore(turbopack): Bump rustc-hash from 2.1.0 to 2.1.1: #​78721
  • Turbopack: make_task_dirty only needs meta data: #​78699
  • chore(CI): Line-wrap afterBuild blocks in build_and_test.yml: #​78718
  • chore(CI): Re-run pnpm install after pnpm build in build_reusable.yml: #​78720
  • Update authentication.mdx: #​78738
  • chore(CI): Use TEST_CONCURRENCY by default in run-tests.js: #​78731
  • Update test new tests for deploy mode: #​78737
  • Update Turbopack development test manifest: #​78741
  • Turbopack: assign a high aggregation number to session dependent tasks: #​78668
  • Turbopack: Use separate meta and data modified flags: #​78724
  • Turbopack: add concurrency limit to effects: #​78725
  • Turbopack: refactor codegen: #​78685
  • Turbopack: correctly reference injected variable for Wasm on Edge: #​78771
  • Docs IA 2.0: Improve landing page, add intro to Getting Started page: #​78765
  • Stabilize back-forward-cache test cases: #​78735
  • De-dupe build_and_deploy run for MRs: #​78792
  • Revert "De-dupe build_and_deploy run for MRs": #​78809
  • Update flakey app-action test: #​78797
  • Update anyhow to 1.0.98: #​78827
  • Update Turbopack production test manifest: #​78830
  • [test] Repro for dropped ignoreList by Turbopack in browser sourcemaps: #​78822
  • Update multi-zones.mdx: #​78812
  • chore(CI): Remove unused environment variables from build_and_test.yml: #​78732
  • Turbopack: avoid tracking a modification when adding an already existing item: #​78726
  • Turbopack: reduce the amount of task modifications caused by recomputation: #​78728
  • Turbopack: avoid depending on the Project: #​78730
  • Turbopack: use unstable sort for better performance: #​78764
  • chore(CI): Break pages-dir client-navigation dev tests into smaller parallelizable files/suites: #​78787
  • Turbopack: avoid storing task data and task cache concurrenctly: #​78775
  • Add a new fs method to track a glob.: #​78686
  • Add tests for normalize_path: #​78840
  • Turbopack: flush key spaces when done with them: #​78776
  • fix: error build if fixture typechecking fails: #​78839
  • doc: add build lifecycle hooks documentation: #​78842
  • Share logic across our two transforms: #​78680
  • Turbopack: add tracing to turbo-persistence: #​78777
  • Turbopack: fix task data category: #​78873
  • fix(react-compiler): Fix detection of interest: #​78874
  • Update Turbopack production test manifest: #​78900
  • Update Turbopack development test manifest: #​78901
  • Docs IA 2.0: Fonts: #​78899
  • Docs IA 2.0: Metadata: #​78905
  • Docs IA 2.0: Create tailwind guide: #​78908
  • feat(next-swc): Add a fast path to RC detector: #​78920
  • Turbopack: defer sourcemaps processing to codegen: #​78855
  • build: Update swc_core to v23.2.0: #​78885
  • Turbopack: create smaller initial files to reduce memory usage: #​78778
  • fix CSP docs: #​78937
  • Revert "build: Update swc_core to v23.2.0": #​78935
  • fix(CI): Remove e2e test timeout overrides from rspack & turbopack suites: #​78934
  • Update Turbopack development test manifest: #​78953
  • Turbopack: ChunkingType::Parallel with hoisted bool: #​78922
  • Update Turbopack production test manifest: #​78952
  • fix(CI): Avoid rebuilding native code in jobs that don't depend on native code: #​78944
  • Docs IA 2.0: Images: #​78769
  • chore(test/e2e): Remove stale TODO comment from webpack persistent caching test: #​78946
  • Docs: Fix headings in Getting Started: #​78965
  • Docs IA 2.0: Delete empty optimizing folder: #​78966
  • chore(CI): Split trailing-slashes suite cases into smaller suites, port to more modern e2e framework: #​78890
  • Turbopack: properly replace __dirname and __filename: #​78843
  • perf(turbopack): Remove needless clone of sourcemap: #​78972
  • build: Update swc_core to v23.1.0 again with macos build fix: #​78940
  • Turbopack: cache directory creation: #​78729
  • Update Turbopack production test manifest: #​78988
  • Update Turbopack development test manifest: #​78989
  • fix(CI): Wait for lock when running apt-get: #​78979
  • chore(CI): Add a few more turbopack paths to labeler config: #​78980
  • chore(CI): Add Rspack labeler config: #​79004
  • perf(turbopack): Remove needless clone of SWC AST: #​79007
  • chore(CI): Split next-form tests into smaller suites/files that can be run more-in-parallel: #​78891
  • fix(CI): Remove comments from labeler config: #​79015
  • Turbopack next/font: Use a custom enum instead of Result for failed local font files: #​78941
  • Update middleware prefetch test: #​79025
  • Docs IA 2.0: CSS: #​78996
  • Update Rspack production test manifest: #​79072
  • docs: Fix grammar on Update static-exports.mdx: #​79091
  • Update Rspack development test manifest: #​79071
  • perf(turbopack): Update modularize_imports: #​79012
  • build: Update swc_core to v24.0.0: #​79092
  • Revert "build: Update swc_core to v24.0.0": #​79102
  • chore(CI): Add back test retries (again) to arewerspackyet tests: #​79014
  • Turbopack: hash next/font filename to shorten it: #​79089
  • Upgrade lightningcss: #​79096
  • Turbopack: refactor into traverse_edges_fixed_point: #​79078
  • [test] Move test selectors as close to the actual value as possible: #​78931
  • test: split basic HMR test into multiple files: #​79064
  • test: split full reload HMR test into multiple files: #​79065
  • Update rust toolchain to 2025-05-12: #​79099
  • Rust: Update safe crates to 2024 Edition: #​79104
  • build(next-swc): Drop swc_bundler: #​79113
  • chore(CI): Split basepath test suite into smaller and more parallel test suites: #​78892
  • test: split error recovery HMR test into multiple files: #​79066
  • test: split hot module reload HMR test into multiple files: #​79067
  • test: remove unnecessary conditionals in error recovery tests: #​73625
  • Revert toolchain update to 2025-05-12: #​79117
  • test: replace duplicate test utils to next instance: #​73624
  • chore(CI): Split i18n-data-fetching-redirect test suite into smaller and more parallel test suites: #​78893
  • fix: pnp test cases failed when using rspack: #​79084
  • Turbopack: Make turbopack-core Rust 2024: #​79131
  • Docs: Add PPR page to getting started section: #​79076
  • Update Turbopack production test manifest: #​79139
  • Update Turbopack development test manifest: #​79140
  • Update Rspack production test manifest: #​79138
  • Fix false-positive "use cache" misplacement error: #​79151
  • docs: use single quote for 'use client' directive: #​79114
  • docs: improve 'use client' directive and client components: #​79115
  • Turbopack: remove unused EcmascriptInputTransform::CommonJs: #​79148
  • [test] Add debug-brk package script: #​79097
  • perf(turbopack): Optimize next_page_static_info: #​79009
  • Reference the workUnitStore when determining bailout to CSR: #​79118
  • Revert "Fix false-positive "use cache" misplacement error": #​79160
  • build: Update swc_core to v24.0.0: #​79103
  • docs: Fix grammar in vitest.mdx (How to set up Vitest with Next.js): #​78654
  • [release] enable changesets: #​79035
  • Remove uses of read_glob from node_native_bindings: #​79154
  • chore(turbopack): Add a span for sourcemap generation: #​79170
  • Add rustc-ice files to gitignore: #​79167
  • Update Rspack development test manifest: #​79174
  • Update Rspack production test manifest: #​79185
  • Update Turbopack production test manifest: #​79186
  • Update Rspack development test manifest: #​79184
  • Docs: Change mjs codeblocks to js : #​79163
  • chore: Update DevEx team changes in labeler: #​79191
  • Docs: Visual nits: #​79198
  • Docs IA 2.0: Move Edge Runtime information to API reference: #​79152
  • Prettier ignore changeset's format: #​79203
  • perf(turbopack): Do not inline synthesized content for sourcemaps: #​79173
  • Revert "Update mappings in launch.json to improve debugging in VSCode (#​76559)": #​79206
  • perf(turbopack): Use Byte::from_static when possible: #​79215
  • Add recent Turbopack reformats to blame-ignore: #​79187
  • perf(turbopack): Drop AST node before generating source maps: #​79219
  • [turbopack] Delete the read_glob function: #​79166
  • [ts-next-plugin] test: add client-boundary test: #​79194
  • Reland: Fix false-positive "use cache" misplacement error: #​79222
  • Turbopack: Allow fully dynamic import() in node_modules: #​79153
  • Update Turbopack development test manifest: #​79233
  • Docs: Fix page order in Getting Started: #​79240
  • Docs IA 2.0: Server and Client Components: #​79143
  • Docs IA 2.0: Delete rendering section: #​79244
  • Docs: Fix syntax highlighting, add missing js code blocks: #​79246
  • perf(turbopack): Implement ShrinkToFit for AutoMap: #​79218
  • docs: add missing links and imports to cacheLife and cacheTag for prerender-missing-suspense error: #​79247
  • test: fix snapshots in failing tests: #​79254
  • fix(turbopack): prepend a question mark in AssetIdent display: #​78977
  • Update Turbopack development test manifest: #​79278
  • Update Turbopack production test manifest: #​79277
  • Update Rspack production test manifest: #​79275
  • Turbopack: remove dead code: #​79280
  • perf(turbopack): Use rayon threadpool for minify(): #​79261
  • Revert "perf(turbopack): Use rayon threadpool for minify()": #​79296
  • perf(turbopack): Update sourcemap to make flatten() faster: #​79297
  • docs: streaming responses with pages API routes: #​79269
  • feat: --rspack flag for create next app: #​79077
  • Do not run CI for modifying changeset related files: #​79315
  • build(next-swc): Update swc_core to v25.0.0: #​79319
  • Disable dynamicIO in global default cache handler test: #​79300
  • Enable PPR in Dynamic IO tests: #​79301
  • Turbopack build: Add test skip that is also skipped for dev: #​79241
  • Add missing / to deploying link
  • [test] Use unique error messages in server-source-maps: #​79108
  • refactor(turbopack-resolver): rename filed plugins to after_resolve_plugins: #​79286
  • Update Rspack development test manifest: #​79356
  • Update Rspack production test manifest: #​79357
  • Docs: Experimental taint option in next.config.js: #​79293
  • docs: --verbose option in dev mode is not yet supported: #​79366
  • Update Turbopack development test manifest: #​79358
  • docs: Fix flag for taint: #​79370
  • test: fix more Runtime/Recoverable Error flakiness in HMR: #​79371
  • Remove obsolete ppr configs from Dynamic IO tests: #​79305
  • Turbopack: don't emit unnecessary block: #​79361
  • perf(turbopack): Spawn only one thread for one write file effect: #​79318
  • [release] add new ci to use changesets/action for stable release: #​79037
  • fix(doc): fix typo: #​79369
  • [release] couple next and @next/swc versions: #​79036
  • [release] use changesets/action for canary release: #​79038
  • [release] create empty changeset for next when no changeset found during canary release: #​79049
  • [release] couple next and @next/swc versions: #​79036
  • [release] use changesets/action for canary release: #​79038
  • [release] create empty changeset for next when no changeset found during canary release: #​79049
  • Unroll recursion in RuleCondition::matches This trades allocations due to Box::pin calls during recursion for an explicit stack and a tiny interpreter loop.: #​79310
  • Update Turbopack production test manifest: #​79359
  • Update Rspack development test manifest: #​79392
  • Update Rspack production test manifest: #​79393
  • Update Turbopack production test manifest: #​79395
  • Update Turbopack development test manifest: #​79396
  • Turbopack Build: Fix next/dynamic test: #​79407
  • [release] fix: use correct step id when publishing: #​79408
  • Turbopack build: Fix NODE_ENV test: #​79377
  • Turbopack build: Fix production-browser-sourcemaps test: #​79374
  • Fork the globset strategy for turbopack: #​79333
  • build: Update swc_core to v26.0.0: #​79411
  • docs: fix spacing in installation instructions: #​79257
  • Turbopack build: Skip test that is not relevant for Turbopack: #​79376
  • Update test E2E deploy workflow to accept version: #​79420
  • Turbopack Build: Add comment explaining reason for skipped test: #​79418
  • Docs IA 2.0: Move ISR page to guides: #​79283
  • Update Turbopack production test manifest: #​79435
  • Update Turbopack development test manifest: #​79436
  • Turbopack build: Skip test that is not relevant for Turbopack: #​79376
  • Update test E2E deploy workflow to accept version: #​79420
  • Turbopack Build: Add comment explaining reason for skipped test: #​79418
  • Docs IA 2.0: Move ISR page to guides: #​79283
  • Update Turbopack production test manifest: #​79435
  • Update Turbopack development test manifest: #​79436
  • Turbopack Build: Fix css-modules test: #​79441
  • docs: htmlLimitedBots config value should be a RegExp: #​79454
  • Docs IA 2.0: Review fetching page and move examples: #​79200
  • Docs IA 2.0: Add i18n guides: #​79391
  • Docs: Fix broken link: #​79456
  • Turbopack: add webpack scope-hoisting tests: #​79457
  • [test] Use NEXT_TEST_CI when forking test in CI: #​79354
  • Docs: Remove non breaking space: #​79468
  • [sync-react] Base MR on target ref of workflow: #​79466
  • disallow unstable_rootParams in client components: #​79471
  • Update Rspack production test manifest: #​79432
  • Turbopack: avoid negative uppers and follower and use retry loop instead: #​79451
  • build: Update swc_core to v26.0.1 and styled-jsx: #​79464
  • fix(next-swc): Fix react compiler usefulness detector: #​79479
  • fix(test/e2e): Increase timeout of flaky basepath test: #​79481
  • build: Update swc_core to v26.0.1 and styled-jsx: #​79464
  • fix(next-swc): Fix react compiler usefulness detector: #​79479
  • fix(test/e2e): Increase timeout of flaky basepath test: #​79481
  • Docs IA 2.0: Reorder PPR page and fix some nits: #​79282
  • Docs: Align with react docs server functions: #​79442
  • Turbopack Build: Fix _error loading test: #​79455
  • Turbopack Build: Fix dynamic-missing-gsp test: #​79472
  • Turbopack: remove unused ModuleWithDirection from Node runtime: #​79458
  • Turbopack Build: Fix next/font test: #​79502
  • perf(turbopack): Use sourcemap with perf patches: #​79501
  • [turbopack] Fix a buggy serializer: #​79520
  • chore(turbopack): Remove unused macro definition: #​79521
  • Update Rspack production test manifest: #​79484
  • Update Rspack development test manifest: #​79485
  • Update Turbopack production test manifest: #​79487
  • Update Turbopack development test manifest: #​79488
  • docs: Rename CSS snippet to blog.module.css: #​79507
  • add feature flag to verify aggregation graph: #​78964
  • Turbopack: leave chunks in rscModuleMapping empty: #​79511
  • [release] use changesets/action for release-candidate: #​79039
  • [release] notify release status via slack: #​79409
  • refactor(turbopack): Refactor usage of visitors: #​79525
  • [turbopack] Fix the stubbed out implementation of signature so that it works in a web worker.: #​79509
  • fix(next-swc): Fix interestingness detection for React Compiler: #​79499
  • perf(turbopack): Remove extra indirection: #​79553
  • refactor(turbopack): Remove PassFactory: #​79555
  • Fix build and deploy workflow: #​79569
  • Add final build job to validate: #​79570
  • de-flake ReactRefreshLogBox (app): #​79573
  • Disable "use cache" deploy tests: #​79586
  • report build-and-deploy failures only after retries: #​79574
  • [release-legacy] fix: set stable dist tag for backport releases instead of latest: #​79596
  • docs (data fetching): fix typo in startTransition call: #​79578
  • Fix --tag argument in publish-release: #​79599
  • Ensure scripts are included in root tsconfig: #​79600
  • [release] fix: GITHUB_TOKEN is needed to open release pr: #​79609
  • [release-old] use backport NPM dist tag instead of stable for backports: #​79612
  • Turbopack: use unsigned values for follower and upper edges: #​79489
  • [release] fix: correctly set tag during publish: #​79548
  • [release] use backport NPM dist tag for backports: #​79538
  • [release-new] fix: release pr commit contains (#number) at last: #​79611
  • Unflake Undefined default export test: #​79632
  • [release-new] move "add label to pr" workflow from publish to trigger: #​79619
  • chore(turbo-tasks): Remove old and unused turbo-tasks-memory backend: #​79560
  • Update Turbopack development test manifest: #​79603
  • Enforce consistency between packages in preview builds: #​79610
  • Turbopack: improve error handling when DB read/deserialization fails: #​79545
  • Docs IA 2.0: Create Forms guide: #​79288
  • Docs IA 2.0: Create intercepting and parallel routes API reference: #​79405
  • Docs IA 2.0: Add examples to layout.js: #​79453
  • Docs IA 2.0: Update template.js API reference: #​79490
  • Docs IA 2.0: Create Dynamic Segments API reference, add example to getting started. : #​79439
  • Turbopack: avoid panics due to eventual consistency: #​79242
  • Next IA 2.0: Create Route Groups API reference, simplifying wording: #​79444
  • Update Turbopack production test manifest: #​79647
  • Docs IA 2.0: Move Redirects page to guides: #​79447
  • Docs IA 2.0: Add Caching and Revalidating page: #​79493
  • Docs: scrub html in ld+json script: #​79627
  • Turbopack Build: Fix edge _document test: #​79628
  • Turbopack Build: Fix conflicting page error: #​79634
  • Turbopack Build: Fix runtime value test: #​79654
  • Docs IA 2.0: Delete Error Handling page: #​79495
  • Turbopack Build: Skip edge stacktrace test: #​79661
  • Fix name tracking for closures in server actions transform: #​79657
  • Turbopack Build: Fix middleware rewrite test: #​79697
  • Update flakey empty-project test: #​79734
  • Update Rspack production test manifest: #​79645
  • Update Turbopack development test manifest: #​79646
  • Update Rspack development test manifest: #​79644
  • perf(turbopack): Remove indent in intermediate string: #​79754
  • fix(turbopack): Use comments instead of AST nodes for unreachables: #​79703
  • Docs: Fix headings: #​79777
  • Turbopack Build: Fix metadata test: #​79776
  • chore(turbopack): Update swc_core to v26.2.2: #​79756
  • re-enable vary header deploy test: #​79753
  • refactor(turbopack): Preserve indents in dev mode codegen: #​79786
  • Docs: force-static w/ revalidate, revalidatePath, and revalidateTag: #​79780
  • Turbopack: split meta data and AQMF into separate files: #​79659
  • Update script location used in pnpm unpack-next: #​79626
  • chore(ci): Configure automated benchmark for turbopack: #​79791
  • [turbopack] Reduce the size of module graph datastructures: #​79706
  • chore(ci): Add large benchmark: #​79793
  • Update Turbopack development test manifest: #​79774
  • Update Turbopack production test manifest: #​79773
  • fix(next-swc): Fix specificity issue of styled-jsx in lightningcss mode: #​79802
  • Update Rspack development test manifest: #​79772
  • chore(turbo-tasks-backend): Fix build with --features turbo-tasks-backend/lmdb: #​79530
  • Turbopack: persist and compare errors and panics: #​77935
  • Turbopack: add test for reexport cycles: #​79792
  • [release-new] fix: slack notification only if is a publish workflow: #​79933
  • Update Rspack production test manifest: #​79923
  • chore(ci): Configure small benchmark for builds: #​79796
  • [turbopack] Fix URL fragment and query handling in Turbopack: #​79993
  • chore(turbopack): Cleanup benchmark code: #​79943
  • chore(ci): Run turbopack benchmark from custom runners: #​79979
  • fix: update rspack production build output snapshot: #​79766
  • [turbopack] Create a macro rcstr! for constructing RcStr from string literals.: #​79759
  • Turbopack: add print_cache_item_size feature flag to print cache size per task: #​80043
  • Turbopack: remove verbose output: #​80044
  • docs: Reference to statically imported images: #​80048
  • Docs: Drop innacurate override information for dynamicParams: #​79966
  • chore: Use same function references in useReportWebVitals examples: #​79963
  • refactor(turbopack): Do not use Result for Rope#read: #​80004
  • Turbopack Build: Fix next-font test: #​80049
  • chore(ci): Disable flaky turbopack benchmarks: #​80058
  • Turbopack Build: Implement locale:false middleware matcher: #​80057
  • [turbopack] Simplify the definition of AssetIdent: #​79805
  • Update Rspack production test manifest: #​80038
  • Update Turbopack production test manifest: #​80040
  • Update Rspack development test manifest: #​80039
  • chore(turbopack): Update rust-sourcemap to v9.2.2: #​80066
  • chore(turbopack): Remove Lightningcss prefix for CSS types: #​80067
  • build(turbopack): Update swc_core to v26.3.3: #​80059
  • perf(turbopack): Use owned instance of Code for minify(): #​79991
  • Update Turbopack development test manifest: #​80041
  • docs: Manual calls to action should we wrapped in startTransition: #​80101
  • [dev-tools] Re-focus previous item after closing sub menu: #​80099
  • perf(turbopack/rcstr): Precompute hash for equality bailout: #​78943
  • perf(turbopack/rcstr): Use precomputed hash: #​80074
  • Docs: Improve Turbopack webpack loader documentation: #​79523
  • fix(turbopack): Allow google font fetch errors to propagate when in production: #​79999
  • chore(turbopack): Fix building local crates with --all-features: #​80117
  • fix React 18 test failures: #​80119
  • chore(turbopack): Remove unused dependencies reported by cargo-shear: #​80121
  • [turbopack] Eliminate many calls to into and from and cell involving RcStr: #​80076
  • fix(turbo-persistence): Atomically mark old versioned directories for deletion before deleting them: #​80082
  • Turbopack: Improve errors when opening SST files: #​80106
  • chore(turbopack): Use label for large benchmark: #​80114
  • [test] add custom timeout for start server: #​80160
  • Turbopack: Fix sst filter handling and order for meta files: #​80147
  • Turbopack Build: Fix metadata dynamic force-dynamic: #​80167
  • [turbopack] Remove turbo_tasks::value attribute from NativeFunction
  • Turbopack: add tool to print DB structure: #​80148
  • Update Rspack production test manifest: #​80136
  • small typo fix: #​80171
  • build(turbopack): Update swc_core to v26.4.4: #​80161
  • [turbopack] Remove uses of Value<ClientContextType> by making ClientContextType a TaskInput: #​80127
  • Update Turbopack development test manifest: #​80196
  • Update Rspack production test manifest: #​80192
  • Update Rspack development test manifest: #​80193
  • Update Turbopack production test manifest: #​80195
  • [turbopack] Remove uses of Value<ReferenceType> by making ReferenceType a TaskInput: #​80130
  • Upgrade rust version to 2025-06-04: #​80200
  • Fix race condition in types-and-precompiled: #​80162
  • Turbopack: ignore module ids config in dev: #​80204
  • Remove forks to switch back to upstream crates: #​80198
  • Add a test to show that 'use cache' works in generateMetadata: #​80172
  • [test] Add test for dev rendering indicator: #​80205
  • docs: add Docker development performance guidance for Mac/Windows: #​80002
  • [test] fix flaky test of basepath navigation: #​80213
  • [turbopack] Remove Value::new wrapper for Availabilityinfo parameters: #​80132
  • [turbopack] Remove Value::new wrapper for ServerContextType parameters: #​80133
  • Turbopack: fix export collection: #​80203
  • Docs: Linking and Navigating Page: #​80103
  • Turbopack Build: docs for unsupported composes handling: #​80238
  • Turbopack Build: Update manifest for #​80238: #​80244
  • [test] More robust extraction off CSS sources in Flight chunks: #​80243
  • [turbopack] Replace uses of Value<Pattern> with just Pattern
  • [test] Unflake back-forward-cache test: #​80250
  • perf(turbopack): Decode sourcemap partially: #​80177
  • [turbopack] Replace uses of Value<ExecutionEnvironment> with just ExecutionEnvironment: #​80135
  • [turbopack] Replace uses of Value<ContentSourceData> with just ContentSourceData: #​80140
  • Revert "[test] fix flaky test of basepath navigation": #​80259
  • Turbopack: really fix export collection: #​80240
  • fix typo: #​80282
  • [turbopack] Remove uses of Value<..> instead make the payloads impl Taskinput: #​80141
  • [turbopack] Remove uses of Value<..> instead make the payloads impl Taskinput
  • [turbopack] Remove the final uses of Value<..> and delete the type: #​80144
  • [turbopack] Remove the _for_input options from turbo_tasks::value and the TypedForInput trait.: #​80185
  • Docs: Add rspack community collab: #​80217
  • chore(turbopack/ci): Make codspeed stable: #​80323
  • [test] separate tracing error test from action test suite: #​80324
  • chore(next-swc-napi): Update tracing-chrome crate to 0.7.2: #​80331
  • [turbopack] optimize the TurboMalloc threadlocals: #​80265
  • [test] Only run build_and_deploy once for MRs from upstream: #​80329
  • chore(turbo-tasks-fetch): Port tests from httpmock to mockito: #​80341
  • feat(turbopack): Invalidate the persistent cache upon panic: #​80225
  • perf(turbopack): Optimize Rope correctly: #​80335
  • fix(turbopack): Restore sources field in the source map: #​80337
  • Update Rspack development test manifest: #​80349
  • Update Rspack production test manifest: #​80348
  • Update Turbopack development test manifest: #​80351
  • Update Turbopack production test manifest: #​80350
  • docs: Incremental cache is not used for cache-control: no-cache requests: #​80352
  • Docs: Add Data Security Guide: #​80249
  • Docs IA 2.0: Move examples to route.js API reference: #​80360
  • Docs IA 2.0: Move examples to middleware.js API reference: #​80363
  • Docs: Add prefetching guide: #​80152
  • [test] add rspack flaky test to build manifest: #​80366
  • Docs: broken links in caching: #​80369
  • docs: Middleware fetching is not cached: #​80378
  • Turbopack: include obsolete entries in computation: #​80362
  • build(turbopack): Update swc_core to v27.0.1: #​80338
  • Docs: Clarify how intercepting routes work and update example: #​80145
  • Require that turbo_tasks::value_trait items be annotated with turbo-tasks::function: #​79178
  • Update Turbopack production test manifest: #​80400
  • Update Rspack production test manifest: #​80398
  • Update Rspack development test manifest: #​80397
  • Update Turbopack development test manifest: #​80399
  • Use new browserWithResponse() method in empty-fallback-shells tests: #​80406
  • [test] unflake turbopack dev navigation test case: #​80407
  • Docs: Getting Started feedback: #​80401
  • docs: server-only/client-only in Next.js: #​80408
  • Docs: Polish Getting Started section: #​80402
  • build(turbopack): Update swc_core to v27.0.2: #​80412
  • refactor(turbopack): remove lazy_static dependency: #​80226
  • [test] Move test selectors as close to the actual value as possible (Part 2): #​80416
  • Turbopack: fix persistent caching bit number typo: #​80431
  • chore: Remove useActionState from auto wrapping list: #​80420
  • Update Turbopack development test manifest: #​80437
  • Update Rspack development test manifest: #​80435
  • test(turbopack): Configure HMR benchmark: #​80219
  • refactor(turbopack): Make invalidator flag explicit: #​80414
  • fix(next-swc): Update styled-jsx SWC plugin: #​80459
  • test(turbopack): Remove flaky benchmark: #​80465
  • Revert "refactor(turbopack): Make invalidator flag explicit": #​80466
  • fix(turbopack): Improve error message for PURE selector error: #​80068
  • build(turbopack): Update swc_core to v27.0.4: #​80467
  • Rename empty-fallback-shells test suite to just fallback-shells: #​80461
  • Turbopack: don't revisit nodes: #​80455
  • Update Turbopack development test manifest: #​80476
  • Update Rspack development test manifest: #​80474
  • Update Rspack production test manifest: #​80473
  • Update Turbopack production test manifest: #​80475
  • Update from-create-react-app.mdx: #​80451
  • Fix variable assignment in docs example: #​80418
  • perf(turbopack): Remove needless alloc for AQMF: #​80468
  • [turbopack] Allow value_trait items to not be annotated with turbo_tasks::function: #​79217
  • refactor(turbopack): Make invalidator flag explicit: #​80487
  • test(turbopack): Make HMR benchmark less flaky: #​80488
  • perf(turbopack): Introduce static analysis for immutable tasks: #​80415
  • docs: fix typo: #​80549
  • Fix small grammar error in searchParams section: #​80548
  • docs: fix a typo in static-exports.mdx: #​80541
  • docs: fix typos: #​80503
  • docs: fix typo: #​80500
  • docs: fix typo: #​80501
  • Docs IA 2.0: Delete routing section, add BFF guide, polish getting started: #​80365
  • Turbopack Build: Refactor browserslist CSS test to not use .next folder: #​80571
  • Explain how to use searchParams prop: #​80579
  • Update Turbopack development test manifest: #​80563
  • [turbopack] Simplify Request::parse(Pattern) the recursive portion doesn't need to be async: #​80510
  • Update Rspack development test manifest: #​80560
  • Update Rspack production test manifest: #​80561
  • Update Turbopack production test manifest: #​80562
  • perf(turbopack): Introduce runtime analysis for immutable tasks: #​80422
  • perf(turbopack): Do not allocate vectors if we are not going to use it: #​80504
  • test: fix failures caused by format discrepancies between rspack and other bundlers: #​80314
  • perf(turbopack): Detect more immutable tasks: #​80423
  • docs: streaming metadata, dynamic pages and generateMetadata: #​80453
  • Turbopack: correct export usage in EcmascriptModulePartReference: #​80526
  • Turbopack: make another callback return a result: #​80608
  • Remove turbo_tasks::function from AssetContext::layer: #​80592
  • build(turbopack): Update swc_core to v27.0.6: #​80626
  • Update Rspack production test manifest: #​80598
  • Update Turbopack production test manifest: #​80600
  • Update Turbopack development test manifest: #​80599
  • Update Rspack development test manifest: #​80597
  • Turbopack: resolve sourceMap.file: #​80625
  • perf(turbopack): Mark async fns without await as non-async: #​80628
  • [turbopack] Merge identical match cases: #​80630
  • perf(turbopack): Load is_immutable flag dynamically: #​80506
  • chore(turbo-tasks): Remove unused deprecated methods from manager: #​80594
  • chore(turbopack): Dedupe rustls dependencies by updating reqwest: #​80632
  • Add test cases without generateStaticParams to fallback-shells suite: #​80462
  • feat(turbopack): externalType support global: #​80542
  • Docs: Remove reference to deleted experimental turbotrace feature: #​80572
  • Docs: Update code snippets in linking and navigating guide: #​80652
  • Update Turbopack development test manifest: #​80647
  • Update Rspack development test manifest: #​80644
  • Prevent typescript errors in IDE for newly generated tests (part 2): #​80664
  • Update Turbopack development test manifest: #​80679
  • Show string values for configured experimental features: #​80686
  • fix: server actions should fetch from the router canonicalUrl: #​80690
  • test: improve action test reliability: #​80587
  • [turbopack] Simplify the implementations of TaskOutput::try_from_raw_vc: #​80689
  • refactor(turbopack): Refactor turbo-tasks-fs to take &self instead: #​80633
  • [test] Reduce flakiness of instrumentation-order: #​80712
  • [test] Add repro for SSR bug when large chunks are deferred in Flight: #​80661
  • add git merge driver for errors.json: #​80722
  • Update Rspack development test manifest: #​80705
  • Update Rspack production test manifest: #​80704
  • Update Turbopack development test manifest: #​80707
  • Update Turbopack production test manifest: #​80706
  • Turbopack: Allow distdir in project directory, outside of the application: #​80683
  • [turbopack] Reduce indirection in turbo-tasks dispatching: #​80695
  • [turbopack] Reorganize the fields in LocalTaskType to avoid an allocation: #​80738
  • fix(turbopack): Do not run inject_helpers pass multiple times: #​80755
  • fix: fixed merge driver output, does not expect debugging messages to output on stdout: #​80736
  • Update Turbopack production test manifest: #​80785
  • Update Turbopack development test manifest: #​80786
  • Turbopack: Don't convert script to module when using preset-env: #​80724
  • [segment-explorer] Fix segment alignment: #​80797
  • chore: Dynamic error does not change dynamicParams: #​80796
  • fix(turbopack): Fix usage of HELPERS of SWC: #​80791
  • Turbopack: use correct mark for swc: #​80789
  • build(turbopack): Update swc_core to v29.1.2: #​80659
  • Update Turbopack production test manifest: #​80836
  • Turbopack Build: Fix metadata-edge test: #​80842
  • [test] separate hmr env test: #​80802
  • Turbopack Build: Fix edge-config-validation test: #​80847
  • [turbopack] Delete FunctionId: #​80809
  • Turbopack Build: Update manifest: #​80859
  • build(turbopack): Update swc_core to 29.1.4: #​80872
  • perf(turbopack): Mark more async fns without await as sync: #​80642
  • Switch back to upstream lightningcss: #​80863
  • Turbopack: list assert/strict as external: #​80884
  • Update Turbopack production test manifest: #​80888
  • Update Turbopack development test manifest: #​80887
  • Fix preview builds for forks: #​80833
  • [test] Account for React's usage of eval in dev: #​80857
  • Turbopack: fix this when accessing named properties of namespace: #​80896
  • docs: add explanation of --disable-git command: #​80882
  • refactor(turbo-tasks-backend): Use ringmap crate instead of custom DequeSet type for aggregation updates: #​80867
  • fix(test/integration): Check the right thing when resetting the server-side-dev-errors tests: #​80873
  • Update Rspack production test manifest: #​80886
  • Update Rspack development test manifest: #​80885
  • fix(turbo-tasks): Temporarily disable immutable task optimizations: #​80914
  • Turbopack Build: Implement outputFileTracingIgnores and outputFileTracingIncludes: #​80890
  • test(turbopack): Use mimalloc for codspeed to make it realistic: #​80877
  • [turbopack] Add execution tests to demonstrate a bug: #​80918
  • build(turbopack): Update swc_core to v29.2.0: #​80919
  • test(codspeed): Make codspeed concurrent on canary branch: #​80928
  • Turbopack: respect PURE comments for minification: #​80893
  • Update Turbopack production test manifest: #​80932
  • Update Turbopack development test manifest: #​80933
  • Turbopack: slightly more correct ModuleId type: #​80605
  • docs: Use phosphor icons import perf optimization: #​80811
  • docs: Add a link to what opts into dynamic rendering: #​80910
  • Docs/fetching data deduping: #​80806
  • Turbopack: Improve unreachable code error message: #​80934
  • chore: add self to labelers: #​80924
  • cleanup(turbopack): Added documentation comments and small optimizations to CSS import validations: #​80901
  • Reenable debug assertions for dependencies in dev: #​80958
  • docs: link api reference pages/app router divergence: #​80955
  • Docs/feedback june batch: #​80651
  • Update backend-for-frontend.mdx: #​80942
  • fix(turbopack): Fix a panic when the generated hash is too short when radix formatting a string.: #​80966
  • [tests]: add failing deploy test to manifest: #​80973
  • [tubopack] Compile time replace top level this expressions to fix a subtle esm bug and simplify the client side runtime: #​80925
  • chore(turbopack): Add swc_ecma_minifier to turbopack trace target: #​80977
  • chore(turbopack): Add instrumentation to Code::generate_source_map: #​80978
  • perf(turbopack): Remove needless allocation: #​80980
  • perf(turbopack): Apply small-vector optimization for TaskIds: #​80830
  • Turbopack: improve unit tests: #​80940
  • [Segment Cache] Enable deploy tests: #​80947
  • Turbopack: Add PURE comments for FreeVarReference::EcmaScriptModule: #​80902
  • Turbopack: fix codegen of directives : #​80895
  • Use snapshots to verify error stack traces for dynamic validation errors: #​80946
  • Turbopack: fix sourcemaps of scopehoisted comments: #​80987
  • Use snapshots to verify dynamic validation errors in dev mode: #​80992
  • Don't start next server unnecessarily to assert build output: #​80994
  • [tests]: fix failing searchparams test: #​81013
  • feat(turbopack): externalType support script: #​80768
  • Ignore JSON.parse <anonymous> (0:0) stack frames in test snapshots: #​81044
  • Stop installing test apps that are skipped anyways: #​81043
  • chore(turbopack): Fix typo: #​80983
  • refactor(turbopack): Make create_visitor rustfmt-able: #​81053
  • Turbopack: move tests to backend: #​80995
  • Turbopack: @​next/mdx extension option is supported: #​81058
  • docs(fetch): update wording on conflicting cache and revalidate options: #​80591
  • perf(turbopack): Drop tokio::fs usages: #​80674
  • perf(turbopack/rcstr): Add serialization-time optimization: #​78645
  • refactor(turbopack): Use FileSystemPath instead of Vc<T>: #​80634
  • [test] Add case for import conditions in Pages Router API routes: #​81036
  • chore: .ts ext is most commonly used for middleware and routes: #​81059
  • Turbopack: correctly apply generate_source_map with scope hoisting: #​81060
  • Turbopack: inline typeof window in node_modules for server: #​80945
  • [turbopack[ Fix a bug in top level this analysis: #​81076
  • Turbopack: cleanup NextConfig derives: #​81071
  • Turbopack: fix exposed modules in scope hoisting: #​81073
  • [turbopack] Make internal functions private and use rcstr! macro: #​81041
  • build(turbopack): Update swc_core to v29.4.0: #​81092
  • Turbopack: Improve compaction in Persistent Caching: #​80860
  • Turbopack: guard against more eventual consistency: #​81080
  • Turbopack: instrument scope hoisting with tracing spans: #​81078
  • [node-webstreams] Remove unused PagesApi matching condition when setting react-server: #​81037
  • docs: fix grammatical error in upgrading to v15 guide: #​81038
  • perf(turbopack): Disable concurrent of the SWC minifier.: #​80981
  • Revert "perf(turbopack/rcstr): Add serialization-time optimization (#​78645)": #​81112
  • Docs: paper cuts July 1st : #​81109
  • Turbopack: scope hoist tree shaking modules as well: #​80527
  • Fix flakey devtools test: #​81127
  • [turbopack] Defend against json cyles in our execution tests: #​81079
  • [turbopack] Implement Issue::source on more Issue subtypes: #​80874
  • Fix flakey devtools test: #​81127
  • [turbopack] Defend against json cyles in our execution tests: #​81079
  • [turbopack] Implement Issue::source on more Issue subtypes: #​80874
  • Update workflows for nextjs-bot: #​81134
  • Update nextjs-bot config: #​81138
  • [turbopack] Remove some unnecessary awaits now that FileSystemPath is synchronously available.: #​81090
  • Run front-sync after deployment tests finish : #​81023
  • Docs: moved table for Unsupported Metadata to the correct location: #​80979
  • fix(next-swc): Apply SWC minifier bugfixes: #​81098
  • Update Rspack development test manifest: #​81103
  • Update Rspack production test manifest: #​81102
  • Update Turbopack production test manifest: #​81105
  • Update Turbopack development test manifest: #​81104
  • Add more test cases to the dynamicIO sync IO access test suite: #​81045
  • chore(turbo-tasks-backend): Remove unused support for nested database operations: #​80816
  • Turbopack: simplify ReducedGraphs and find_server_entries: #​81118
  • [turbopack] Remove an unnecessary clone: #​81153
  • [turbopack] Move static type ID variables into getters: #​81150
  • refactor(turbo-tasks-backend): Remove ExecuteContextImpl::lower_read_transaction: #​80822
  • refactor(turbopack): Implement BackingStorage for Either, replace NextTurboTasks with a type alias: #​80823
  • Remove unneccesary step that's making workflow fail: #​81164
  • Update caching.mdx: #​81129
  • build(turbopack): Update swc_core to v30.0.1: #​81179
  • Turbopack: rename simple tree shaking: #​81181
  • Disable Turbopack manifest: #​81170
  • perf(turbopack): let some Clone be conditional in insert_alias_option: #​81175
  • [turbopack] Move global names onto the NativeFunction object: #​81143
  • Turbopack: Rewrite IntervalMap using a BTreeMap: #​81095
  • Bump lightningcss to not include browserslist-rs twice: #​81184
  • Turbopack: lazily create syntax contexts for scope hoisting: #​81193
  • feat(turbopack): turbo-esregex support captures method: #​81119
  • cleanup(turbopack) Show users an error message when Webpack loaders have a glob in only the extension: #​81084
  • Only retry deploy tests for canary: #​81207
  • Skip alert as well for non-canary e2e deploy: #​81210
  • Fix if condition in retry workflow: #​81211
  • Format Turbopack NFT tests: #​81199
  • Turbopack: add EcmascriptExports::Unknown: #​81214
  • Sync NFT test suite from upstream: #​81189
  • docs: Getting started pages and search params: #​80616
  • Fix future Rust warnings: #​81217
  • Turbopack: fix source map panic: #​81212
  • chore(turbopack): Remove unused dependencies reported by cargo-shear: #​81221
  • Docs/after function mdx fix: #​81174
  • Docs: include effect in docs for default optimized libraries: #​81203
  • Update caching.mdx: #​81185
  • perf(next-napi): optimize output assets collection using flat_map: #​81222
  • [turbopack] Add FileSystemPath.has_extension and optimize module graph operations: #​81205
  • Turbopack: move write_version feature to env var: #​81250
  • document turbopack trace viewer (#​78184)
  • Turbopack: codegen modules without module graph: #​81238
  • Turbopack: delete module_context.remove_unused_exports: #​81239
  • Ensure default run name is correct for deploy tests: #​81255
  • Turbopack: prevent ParseResult recomputation: #​81244
  • [turbopack] Remove a vec clone from primary_chunkable_referenced_modules : #​81206
  • Update Rspack development test manifest: #​81219
  • [turbopack] Remove unused no_move_vec code: #​81141
  • Add regression test for conflicting search and route params: #​81249
  • build: Update swc_core to v30.1.1: #​81276
  • [test] Keep Playwright stackframes out of tests: #​81240
  • perf(turbopack): Make File => json faster: #​81279
  • Turbopack: sourceMappingURL for Node.js runtime chunk: #​81300
  • Turbopack: fix instrumentation-edge layer name: #​81304
  • Current behavior for module evaluation sourcemapping: #​73737
  • fix typo: #​81336
  • fix(docs): correct section count from 4 to 3 in intro: #​81323
  • Remove incorrect PostCSS config type: #​81338
  • Remove duplicate CSS properties: #​81333
  • [test] Dedicate suite for React's Server Request performance track: #​81312
  • reverts test copy change in dynamicIO tests: #​81358
  • fix(CI): Update llvm when building native musl targets: #​81392
  • fix(turbopack): external script should under async module: #​81362
  • Update Rspack production test manifest: #​81364
  • Turbopack: don't emit blurDataURL: null: #​81387
  • Turbopack: fix incorrect graph state bug: #​81202
  • [test] Avoid flaky assertions due to dynamic metadata: #​81373
  • fix(turbopack) Adjust tree loader to respect parent module overrides: #​81139
  • Turbopack: remove unused code: #​81411
  • Turbopack: improve var names, add some unit tests: #​81412
  • Fix auth preflight check when triggering Front sync: #​81166
  • [turbopack] Install late loaded script and link tags at the end of the head instead of the end of the body: #​81425
  • refactor(turbopack/napi): Add a NextTurbopackContext type, rename VcArc to DetachedVc: #​80881
  • [test] Skip flaky cdn-cache-busting test: #​81429
  • Unflake segment cache (CDN cache busting) redirect test: #​80967
  • Check if target workflow is enabled before triggering front sync: #​81432
  • Revert "[test] Skip flaky cdn-cache-busting test": #​81433
  • refactor(turbopack): Rewrite EsRegex::captures to return an iterator, use None for unmatched capture groups: #​81200
  • update: add nebrelbug to labeler.json: #​81437
  • Update Rspack development test manifest: #​81398
  • Turbopack: fix hanging problem due to stale tasks: #​81413
  • Turbopack: filter NftJsonAsset entries earlier: #​81446
  • Allow server functions to be used as client component props in 'use cache': #​81431
  • Turbopack: fix duplicate externals modules: #​81306
  • Turbopack: fix unused export removal with mixed reexport and locals: #​81422
  • Turbopack: handle all side effects and improve pattern: #​81455
  • Fail task if one of the parallel ones fails: #​81464
  • Consolidate dynamic IO errors test suites into a single fixture: #​81451
  • Update image.mdx: #​81454
  • Turbopack: reduce temp allocation during compute_blocks: #​81459
  • fix(CI): On musl/alpine builds, pin llvm to llvm20, add llvm bin directory to path: #​81519
  • Turbopack: refactor ReadRef deref + clone to the intended pattern: #​81537
  • Turbopack: remove clone_value again: #​81539
  • docs: root layout + opengraph-image + cna-eslit vs next lint bootstrap: #​81542
  • Turbopack: add module cost benchmark: #​81530
  • Turbopack: fix @opentelemetry/api resolve fallback: #​81541
  • [test] Use same pnpm in temporary repo directory: #​81540
  • Turbopack: only emit *.single.css chunks in dev: #​81490
  • Update rust-cache action to v1.0.9: #​81555
  • docs: update Page example to use Promise-based params in 05-server-and-client-components.mdx: #​81557
  • Temporarily disable failing fallback-shells deploy test: #​81593
  • Update help link for inlined use server in client components: #​81495
  • Turbopack: fix hanging problem with reexport cycles: #​81620
  • [test] improve segment explorer tests snapshot: #​81616
  • 15.4 Docs: Minor feature updates: #​81618
  • docs: onInvalidate router.prefetch: #​81609
  • Turbopack: Fix turbopack-swc-ast-explorer with multi-line inputs: #​81635
  • Turbopack: Clean up some of the logic in visit_assign_expr: #​81636
  • [turbopack] Rename traverse_edges_from_entries_topological to traverse_edges_from_entries_dfs: #​81481
Credits

Huge thanks to @​sokra, @​huozhi, @​Marukome0743, @​mischnic, @​wbinnssmith, @​eps1lon, @​razzeee, @​delbaoliveira, @​kdy1, @​wyattjoh, @​acdlite, @​ztanner, @​bgw, @​jantimon, @​lubieowoce, @​Fonger, @​ospira, @​gnoff, @​styfle, @​Cy-Tek, @​timneutkens, @​raunofreiberg, @​devchaudhary24k, @​Neschadin, @​OreQr, @​drewlong314, @​ijjk, @​praizjosh, @​unstubbable, @​lukesandberg, @​ScriptedAlchemy, @​sqidermad, @​Juneezee, @​devjiwonchoi, @​Kamitenshi, @​feedthejim, @​leerob, @​mauerbac, @​miki-tebe, @​gaearon, @​mrbadri, @​luwes, @​lucacasonato, @​M4xymm, @​jirihofman, @​vicb, @​jackwilson323, @​SyMind, @​kevva, @​xyf7, @​gaojude, @​dario-piotrowicz, @​mastoj, @​nicole0707, @​lourd, @​Karibash, @​chipit24, @​icyJoseph, @​xusd320, @​fireairforce, @​GenhaoLi, @​igas, @​Macw07, @​amannn, @​bcdipesh, @​r34son, @​ivasilov, @​lpalmes, @​imskyleen, @​teamleaderleo, @​vitaliemiron, @​agadzik, @​chdeskur, @​nakanoh, @​luiscobot, @​GameRoMan, @​dferber90, @​maurobonfietti, @​navandstokes, @​sajadtorkamani, @​bobziroll, @​lumirlumir, @​KkOoSsTtAa, @​msabramo, @​sommeeeer, @​schoenwaldnils, @​remcohaszing, @​HerringtonDarkholme, @​nebrelbug, @​RobPruzan, @​lmammino, @​MohammedYehia, @​extoci, @​padmaia, @​aacosta11, @​vercel-release-bot, @​maral, @​ethanniser, @​MichalMoravik, @​rajrawat37, @​kidonng, @​dnhn, @​kristian240, @​rachnac-emeritus, @​rortan134, and @​nick20name17 for helping!

v15.4.0

Compare Source

v15.3.5

Compare Source

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

Core Changes
  • Turbopack: list assert/strict as external (#​80884)
  • omit searchParam data from FlightRouterState before transport (#​80734)
  • bugfix: propagate staleTime to seeded prefetch entry (#​81263)
Misc Changes
  • document turbopack trace viewer (#​78184)
Credits

Huge thanks to @​ztanner, @​mischnic, and @​bgw for helping!

v15.3.4

Compare Source

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

Core Changes
  • [metadata] render streaming metadata on the top level (#​80566)
  • [fix] clone the config module to avoid mutation (#​80573)
Credits

Huge thanks to @​huozhi for helping!

v15.3.3

Compare Source

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

Core Changes
  • Reinstate vary (#​79939)
  • fix(next-swc): Fix interestingness detection for React Compiler (#​79558)
  • fix(next-swc): Fix react compiler usefulness detector (#​79480)
  • fix(dev-overlay): Better handle edge-case file paths in launchEditor (#​79526)
  • Client router should discard stale prefetch entries for static pages (#​79362)
Credits

Huge thanks to @​gaojude, @​kdy1, @​bgw, and @​unstubbable for helping!

v15.3.2

Compare Source

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

Core Changes
  • backport: fix(turbopack): Store persistence of wrapped task on RawVc::LocalOutput (#​78488) (#​78883)
  • @​next/mdx: Use stable turbopack config options (#​78880)
  • Fix react-compiler: Fix detection of interest (#​78879)
  • Fix turbopack: Backport sourcemap bugfix (#​78881)
  • [next-server] preserve rsc query for rsc redirects (#​78876)
  • Update middleware public/static matching (#​78875)
Credits

Huge thanks to @​ijjk, @​huozhi, @​kdy1, @​wbinnssmith, and @​bgw for helping!

v15.3.1

Compare Source

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

Core Changes
  • chore: Backport SWC-based RC optimization (#​78260)
  • fix: bump image-size@1.2.1 (#​78164)
Credits

Huge thanks to @​kdy1 and @​styfle for helping!

v15.3.0

Compare Source

Core Changes
  • [dev-overlay] Customize <select> styling for consistency: #​76973
  • Upgrade React from 029e8bd6-20250306 to 0ca3deeb-20250311: #​76989
  • [metadata]: add pinterest meta tag: #​76988
  • [dev-overlay] ensure stripping overlay bundle in prod build: #​76976
  • Apply env inlining during generate build mode: #​76990
  • Turbopack: Implement deploymentId: #​76904
  • track persistent caching usage: #​76996
  • [metadata] re-insert icons to head for streamed metadata: #​76915
  • Upgrade React from 0ca3deeb-20250311 to 6aa8254b-20250312: #​77033
  • Move static-env imports: #​77035
  • [dev-overlay] Add size setting to preferences: #​77027
  • Add config for only generating static env: #​77038
  • chore(HMR clients): Clean up and share code between app and pages router: #​76960
  • Add dev warning for cross-origin and stabilize allowedDevOrigins: #​77044
  • unify allowed origin detection handling: #​77053
  • Handle hash change in all files for static env: #​77058
  • [dev-overlay] highlight errored code line for runtime errors: #​77078
  • NFT: Ignore all of Webpack: #​77081
  • Add experimental build mode flag for env: #​77089
  • (feat) support client-side instrumentation: #​76916
  • Fix JSDoc comment for 'seconds' cache life profile: #​77084
  • refactor(HMR clients): Encapsulate some of the turbopack state tracking into a shared TurbopackHmr class: #​76994
  • Slightly improve error handling for unknown server actions: #​77135
  • Fix output standalone for alternative bundler: #​76971
  • Add alternate bundler plugin information to next info: #​77059
  • [metadata] remove the default segement check for metadata rendering: #​77119
  • [dev-overlay] Fix stacking order of highlighted line: #​77189
  • Upgrade React from 6aa8254b-20250312 to 5398b711-20250314: #​77129
  • fix(styled-jsx): Pass useLightningcss option to styled-jsx correctly: #​77008
  • log the instrumentation-client execution time: #​77121
  • Turbopack: canary-gate production builds: #​77146
  • [dev-overlay] remove special handling for missing tag error : #​77147
  • chore(react-dev-overlay): Remove confusingly underscored variables in useErrorOverlayReducer: #​77205
  • Update middleware request header: #​77201
  • Update default allowed origins list: #​77212
  • Ensure deploymentId is used for CSS preloads: #​77210
  • chore(HMR clients): Fix a bunch of typescript errors by including the appropriate webpack type declarations: #​77207
  • Update cache handler interface: #​76687
  • Turbopack: don't include AMP optimizer in NFT: #​77242
  • Server actions should not read stale data after calling revalidate*: #​76885
  • [dev-overlay] Blur fader for scrollable container: #​77196
  • Make revalidate* work when followed by a redirect in a route handler: #​77090
  • feat: onNavigate for link: #​77209
  • fix: pass telemetry plugin rspack tests: #​77257
  • feat(eslint-plugin): add minimal built-in flat presets: #​73873
  • [perf] skip loading client manifest for static metadata routes: #​77260
  • Upgrade React from 5398b711-20250314 to c69a5fc5-20250318: #​77249
  • [ppr] Handle failed resume data cache entries: #​77258
  • Bypass "use cache" caches when Draft Mode is enabled: #​77141
  • chore(HMR clients): Clean up tryApplyUpdates, reduce differences between app/pages versions: #​77219
  • Upgrade React from c69a5fc5-20250318 to db7dfe05-20250319: #​77295
  • Turbopack: layout segment optimization for Pages: #​74815
  • [dev-overlay] Make footer sticky without side effects: #​77327
  • Alternate bundler: show state in app info message: #​77259
  • Revert "Turbopack: layout segment optimization for Pages": #​77339
  • [metadata] add Yeti to html limited bots: #​77335
  • [dev-overlay] Remove unused code from pages: #​77325
  • [metadata] remove dead code of metadata routes handling: #​77336
  • Alternate bundler: pass more tests and update to 1.3.0-beta: #​77269
  • [metadata] fix the metadata route like pages and refactor utils: #​77264
  • fix: absolute assetPrefix url with path: #​77256
  • clean up useReducer code re dev indicator: #​77354
  • test: ensure that router identity stays stable when navigating: #​77356
  • [dev-overlay] Remove unused fields from hydration error state: #​77332
  • Turbopack: implement optimized css production chunking: #​77284
  • only log when instrumentation client takes too long: #​77378
  • switch development origin verification to be opt-in rather than opt-out: #​77395
  • remove direct ip/port bypass in dev origin check: #​77414
  • ensure /__next middleware URLs are included in the origin check: #​77416
  • exclude images and static media from dev origin check: #​77417
  • Refactor metadata and viewport preloading: #​77400
  • [dev-overlay] Remove unused fields from unhandled error action event: #​77333
  • Turbopack: Add --turbopack for next start: #​77442
  • Update README: #​77464
  • Remove unnecessary indirections around dispatch-related methods: #​77423
  • Lift public router instance to module level : #​77426
  • directly import param resolver in metadata: #​77401
  • [metadata] always serve streaming metadata in build: #​77437
  • directly import search param resolver in metadata: #​77402
  • Remove forwardRef from Link in App Router: #​77471
  • Match subrequest handling for edge and node: #​77474
  • Add deprecation warning for legacyBehavior prop: #​77473
  • feat: useLinkStatus: #​77300
  • [dynamicIO] Avoid memory leak warning for hanging promises: #​77480
  • [dev-overlay] Remove "Unhandled Runtime Error" label: #​77484
  • Upgrade React from db7dfe05-20250319 to 740a4f7a-20250325: #​77507
  • Upgrade React from 740a4f7a-20250325 to 313332d1-20250326: #​77527
  • Do not call expireTags/getExpiration unnecessarily: #​77570
  • fix(jest): stricter regex for 'server-only' in default config: #​77588
  • Fix: RESTORE_ACTION should not be thenable: #​77582
  • Use NEXT_PRIVATE_DEBUG_CACHE env variable for cache handler debug logs: #​77585
  • fix: make sure body can be read using nodejs runtime in middleware: #​77553
  • Update alternate bundler and pass more tests : #​77579
  • Refactor build scripts and rewrite pack-next in TypeScript: #​77536
  • fix isCsrfOriginAllowed handling for localhost: #​77594
  • Turbopack build: fix deterministic build test: #​77618
  • Turbopack build: Fix urlencoding test: #​77622
  • [og] fix vercel og build issue on windows: #​77650
  • [Segment Cache] Add "client-only" option: #​77655
  • Remove useSyncExternalStore from useIsDevRendering: #​77651
  • Track navigation timestamp on CacheNode: #​77251
  • Upgrade @​playwright/test and cleanup internal APIs: #​77659
  • Refactor: move "use cache" revalidation logic out of incremental cache: #​77577
  • Remove obsolete update of implicit tags expiration after server action: #​77595
  • Revert "Remove useSyncExternalStore from useIsDevRendering (#​77651)": #​77672
  • Upgrade React from 313332d1-20250326 to 63779030-20250328: #​77643
  • Turbopack build: Add marker for when a build used Turbopack: #​77674
  • feat(images): use experimental isrFlushToDisk option to prevent writing optimized images to cache: #​70645
  • doc: instrumentation-client: #​77649
  • Alternate bundler: use equivalent native plugins for built-in plugins: #​77355
  • Resolve Viewport separately from Metadata: #​77427
  • fix(turbopack): Suppress logging for short no-op turbopack HMRs: #​76924
  • Turbopack build: Fix node-file-trace test: #​77641
  • Turbopack build: Implement error when using next start without --turbopack: #​77678
  • legacyBehavior deprecation error should only trigger once: #​77687
  • Pass only required props to NonIndex: #​77685
  • Revert "fix: make sure body can be read using nodejs runtime in middleware": #​77690
  • [dev-overlay] Harden types when handling hydration mismatches: #​77334
  • [dev-overlay] Fix ref warning when Pages Router with React 18 is used: #​77726
  • add support for cssmodules-pure-no-check to allow global CSS features like View Transitions: #​77321
  • [dev-overlay] Only warn once per invalid sourcemap: #​77444
  • [dynamicIO] only abort once per prerender: #​77747
  • Turbopack build: Move Turbopack marker to SERVER_FILES_MANIFEST: #​77711
  • Reapply "Turbopack: layout segment optimization for Pages" (#​77339): #​77696
  • feat(next/image): support new URL() for images.remotePatterns: #​77692
  • [dev-overlay] remove text wrap for terminal: #​76953
  • Upgrade React from 63779030-20250328 to 040f8286-20250402: #​77742
  • Optimize server runtime bundles: #​77723
  • Turbopack Build: Remove cases of process.env.TURBOPACK: #​77757
  • [dev-overlay] Fix unactionable useLayoutEffect warning if React 18 is used: #​77737
  • [dev-tools] Fix flashing of disabled state on indicator: #​77727
  • Webpack build: Add compiled in x seconds in missing places: #​77751
  • Ignore an existing HMR refresh hash cookie with next start: #​77714
  • Turbopack build: Replace process.env.TURBOPACK usage: #​77783
  • Client instrumentation: onRouterTransitionStart: #​77791
  • Turbopack: log telemetry events when TurbopackInternalErrors occur: #​77660
  • Rename alternate bundler package name: #​77793
  • Turbopack: fix sideEffects matching for non-relative globs: #​77693
  • Revert "Upgrade @​playwright/test and cleanup internal APIs": #​77814
  • [next-ts-plugin] fix: language service crashes / metadata plugin not working: #​77213
  • [dev-overlay] always display bundler name on version info: #​77739
  • [dev-overlay] sync horizontal scrollbar style: #​77769
  • [dev-overlay] Read issueCount from non-async errors array: #​77821
  • [dev-overlay] Fix error dialog resizing logic: #​77830
  • Turbopack Build: Optimize instrumentation hook generation: #​77832
  • [next-server] skip setting vary header for basic routes: #​77797
  • Lazily call refreshTags and getExpiration: #​77779
  • Add debug logging to default cache handler and "use cache" wrapper: #​77827
  • [ts-next-plugin] fix: properly exit when failed to initialize: #​77842
  • Alternate bundler: correctly inject react refresh loader: #​77713
  • [dynamicIO] Fix dev warmup: #​77829
  • fix: don't reset the prefetch segment data routes on loop: #​77845
  • Ensure searchParams access in "use cache" triggers error when caught: #​77838
  • Revert "[dev-overlay] Fix error dialog resizing logic": #​77849
  • fix: add cache tags to segment prefetch responses: #​77846
  • Avoid microtaskiness when lazily fetching from cache handlers: #​77843
  • [Experiment] : #​77866
  • [dev-overlay] disable font ligatures: #​77865
  • Enable process.env.TURBOPACK when process.env.IS_TURBOPACK_TEST is set: #​77894
  • [ts-next-plugin] fix: use getSourceFile instead of fileExists to check file existence: #​77863
  • fix: only set request phase to "action" when actually running an action: #​76993
  • Alternate bundler: fix react refresh and adjust sourcemap: #​77875
  • Upgrade React from 040f8286-20250402 to 33661467-20250407: #​77899
  • refactor: rename isAction to isPossibleServerAction: #​77011
  • [logging] improve logging of port retry: #​77868
  • Remove canary-gate and add experimental warning for alternate bundler: #​77806
  • fix(next/image): bump sharp@0.34.1: #​77839
  • Turbopack builds: Remove canary-gate and add experimental warning: #​77808
  • feat: Disable char frequency analysis for mangler: #​77887
  • Set Turbopack env var for internal modules: #​77902
  • Don't externalize various new next/* entrypoints: #​77844
  • Revert "Fix: RESTORE_ACTION should not be thenable": #​77909
  • Fix resolve alternate bundler in monorepo: #​77913
  • Output server.mjs for standalone with type: module: #​77944
Example Changes
  • with-polyfills example: only link to specific browsers: #​77211
  • Add example for alternate bundler: #​77057
  • chore(examples): remove examples that can be v0'd: #​77349
  • Alternate bundler example: use canary version: #​77754
  • Fix Wasm example: #​77924
Misc Changes
  • [test] consolidate hmr test for react 18.3: #​76975
  • docs: update API example: #​76987
  • docs: add Pinterest Rich Pins metadata example: #​77025
  • fix(CI): Correctly call test/update-bundler-manifest.js script: #​77000
  • Update bundler development test manifest: #​77040
  • Update bundler production test manifest: #​77043
  • Update Turbopack development test manifest: #​77041
  • chore(github): remove /examples from contribution guidelines, remove examples issue template: #​77050
  • Turbopack: when reading a non yet existing cell from a in progress tasks, wait for the computation to finish: #​77029
  • Turbopack: wait before reading cells when the task is scheduled: #​77031
  • Turbopack: don't call individual() again: #​77048
  • Turbopack: create module graph strongly consistent: #​77051
  • Turbopack: Vc stability of ModuleGraph: #​77052
  • Turbopack: fix corrected time calcuation for trace server: #​77080
  • Turbopack: fewer manifests for static metadata: #​77087
  • Update Turbopack development test manifest: #​77071
  • Update bundler production test manifest: #​77069
  • Update bundler development test manifest: #​77068
  • Revert "Update rust toolchain to 2025-03-12": #​77103
  • perf(turbopack): Merge nodes with same starting point: #​76938
  • refactor(actions): Remove turbopack magic comments: #​77063
  • Update Turbopack development test manifest: #​77108
  • Turbopack: move must_use to actually have an effect: #​77111
  • Turbopack: align chunking with graph entries: #​76441
  • Turbopack: ChunkGroup in evaluated_chunk_group: #​76593
  • Turbopack: charset=utf-8 in data-url source maps: #​77112
  • Update bundler production test manifest: #​77107
  • Update bundler development test manifest: #​77106
  • Update Turbopack production test manifest: #​77109
  • docs(scripts): update Script -> beforeInteractive docs: #​77136
  • Add doc for instrumentation client hook: #​77134
  • docs(scripts): missing 'soon': #​77137
  • doc: diff between instrumentation vs instrumentation-client: #​77143
  • Alternate bundler: add index.d.ts types to plugin: #​77144
  • Alternate bundler: Add react-refresh as a dependency of plugin: #​77142
  • build: Update swc_core to v16.6.0: #​77155
  • Allow building node-pty in tests: #​77187
  • Don't mark ppr-errors Turbopack dev tests as failed: #​76951
  • Bump lightningcss: #​77132
  • Update Turbopack production test manifest: #​77183
  • Turbopack: fix graph layout segment optimization: #​77094
  • Turbopack: split up server actions modules for better treeshaking: #​76877
  • Turbopack: conditional parse in apply_module_type: #​77191
  • build: Update swc_core to v16.6.2: #​77194
  • Turbopack: more tracing: #​75351
  • Update bundler development test manifest: #​77180
  • Better failure tracking for middleware-custom-matchers-i18n: #​76974
  • Update bundler production test manifest: #​77179
  • fix(test/e2e/prerender): Remove race condition in test: #​77222
  • Update Turbopack production test manifest: #​77228
  • Update Turbopack development test manifest: #​77227
  • [Turbopack] basic production chunking for CSS: #​75049
  • docs: optimizing local dev: #​77140
  • Update bundler production test manifest: #​77225
  • devlow-bench: wait for complete ready for server startup event: #​77217
  • fix(CI): Re-enable retries for bundler integration tests: #​77265
  • Turbopack: handle non chunkable modules in module batches: #​77282
  • Update Turbopack development test manifest: #​77276
  • Update Turbopack production test manifest: #​77275
  • Turbopack: avoid single css chunks when there is only a single chunk item: #​77283
  • Update bundler development test manifest: #​77272
  • Update bundler production test manifest: #​77273
  • Turbopack: compute ordered entries in module batches: #​77294
  • Update Turbopack production test manifest: #​77316
  • Update Turbopack development test manifest: #​77317
  • Update bundler production test manifest: #​77314
  • fix(turbopack): Call .minify() of lightningcss StyleSheet: #​77313
  • fix(CI build_and_deploy): Use a larger fetch-depth for build-native job: #​77307
  • chore(turbopack): Fix a few syntactic nits: #​77310
  • Update bundler development test manifest: #​77315
  • Turbopack: refactor CssEmbed to avoid creating a chunk item: #​77303
  • fix: Update swc_core and use rayon instead of chili: #​77338
  • Fix chakra link: #​77280
  • Update Turbopack production test manifest: #​77366
  • Update Turbopack development test manifest: #​77365
  • Turbopack: ignore static asset imports for Edge: #​77382
  • Update bundler development test manifest: #​77364
  • docs: clarify middleware use cases: #​77438
  • fix(turbopack-bench): Limit copy_dir concurrency to avoid running out of file descriptors: #​77468
  • docs: fix typo: #​77483
  • Update swc_core to v16.10.0: #​77489
  • fix(turbopack): Use strongly consistent reads for sourcemaps in napi FFI boundary: #​77511
  • Update mappings in launch.json to improve debugging in VSCode: #​76559
  • chore(ci): Configure codspeed: #​76884
  • Update bundler production test manifest: #​77602
  • Update bundler development test manifest: #​77603
  • Update Turbopack development test manifest: #​77605
  • Update Turbopack production test manifest: #​77604
  • Turbopack build: Fix symbolic-file-links test: #​77615
  • Update pnpm swc-build-native's file path: #​77623
  • fix: Use standard PostCSS configuration in create-next-app format for ecosystem compatibility: #​77376
  • Turbopack build: Fix basepath test: #​77630
  • Turbopack: disable pages dir css test cases: #​77380
  • Update bundler development test manifest: #​77627
  • Update Turbopack development test manifest: #​77628
  • Update bundler production test manifest: #​77626
  • refactor(turbo-tasks): Make TraceRawVcs a supertrait of TaskInput: #​77397
  • refactor(turbo-tasks): Make TraceRawVcs a supertrait of MagicAny: #​77596
  • fix(turbopack): Recognize urls starting with // as external: #​77526
  • Update CI build caching docs to include bun and other package manager: #​77633
  • fix(turbopack): Fix panic while tree shaking optimization: #​77492
  • fix(turbopack): Prevent duplicate in tree shaking: #​77491
  • Turbopack: Skip ssr processing when next/dynamic ssr: false: #​77636
  • Turbopack Build: CSR bailout test skip check for file path: #​77639
  • Turbopack: fix side effects optimization bug: #​77640
  • Turbopack: add tracing for fetch calls: #​77673
  • [test] Update stale snapshots: #​77680
  • Turbopack: fix bug in handling of module batches: #​77638
  • pack-next: use default --js-build as option instead of --no-js-build: #​77686
  • Turbopack: Allow overriding tsconfig path via next-config: #​77563
  • Scripts: migrate unpack-next to TypeScript: #​77538
  • chore(turbopack): Make TaskInputs use ResolvedVc: #​77700
  • Getting Started Docs: Add Metadata and OG images page: #​74077
  • Getting Started Docs: Add Upgrade page: #​77717
  • Docs IA 2.0: Rename Examples to Guides: #​77722
  • build: Update swc_core to v19.0.0: #​77669
  • Add Josh to Turbopack team for created-by label: #​77738
  • Turbopack: use better ident for worker chunk group: #​77731
  • chore(turbo-tasks): Remove redundant ast-grep lint rule: #​77701
  • fix(docs): update error type in notFound function description: #​77503
  • Update bundler development test manifest: #​77706
  • Update Turbopack production test manifest: #​77709
  • Turbopack: refactor resolve_url_reference to avoid chunk_path: #​77732
  • Update Turbopack development test manifest: #​77708
  • Port "app-document" test to e2e: #​77748
  • [ci]: skip build-windows job for docs only change: #​77743
  • Update bundler production test manifest: #​77707
  • chore(turbo-tasks): Audit all remaining uses of Vc in a struct: #​77756
  • docs: instrumentation-client follow up: #​77752
  • [test] Get rid of unrelated "Invalid hook call" error from tests using styled-components: #​77736
  • Turbopack: keep side-effect-full imports: #​76545
  • Docs: Recommend inline use server and update examples: #​77770
  • Revert "Docs: Recommend inline use server and update examples": #​77771
  • doc: useLinkStatus: #​77648
  • Update Turbopack production test manifest: #​77767
  • Update bundler development test manifest: #​77765
  • [docs] fix lint issue in use link status doc: #​77785
  • doc: onNavigate: #​77647
  • Update bundler production test manifest: #​77764
  • doc: useLinkStatus doc follow-up: #​77790
  • Update Turbopack development test manifest: #​77766
  • [ci] remove needs build-native for lint job: #​77787
  • test(examples): update turbopack manifest: #​75092
  • [test] fix bad test fixuture for perf test: #​77804
  • [test] fix react 19.1 related tests: #​77809
  • doc: onNavigate follow-up: #​77805
  • fix(turbopack): Apply hygiene if mangling is disabled: #​77815
  • Turbopack: omit empty source map when code starts with a new line: #​77734
  • [next-lint] test: remove eslint config snapshot testing: #​77818
  • Turbopack: avoid deriving css source map path from generated code path: #​77735
  • Turbopack: pass asset to chunk_path to allow to use content hash later: #​77772
  • Docs IA 2.0: Add Deep Dive section placeholder: #​77724
  • Turbopack: use document.currentScript instead of chunk path literal: #​77773
  • Turbopack: don't include client-fs assets in NFT: #​77799
  • Turbopack: enable content hashing in production: #​77775
  • Turbopack: correctly track await import("path") in static analysis: #​77811
  • fix(turbopack-cli): Make turbopack_cli::dev::source a persistent (non-transient) task: #​77798
  • [test] temporarily disable flaky test for react 18: #​77848
  • Update Turbopack production test manifest: #​77872
  • Rename process.env.TURBOPACK to process.env.IS_TURBOPACK_TEST for tests: #​77892
  • [test] consolidate missing tag dev test: #​77896
  • fix(Turbopack): Intermittent CapacityExceeded Error in Persistent Caching: #​77691
  • fix: flaky test detection needs to use new turbopack flag: #​77908
  • fix: apply Geist fonts correctly on default cna template: #​77237
  • Update bundler development test manifest: #​77884
  • Update bundler production test manifest: #​77885
  • Update Turbopack development test manifest: #​77886
  • Update bundler production test manifest: #​77914
  • Update bundler development test manifest: #​77915
  • fix(turbopack): Apply import_map option of swc_emotion correctly: #​71776
  • Turbopack: handle removed routes: #​77890
  • build: Update swc_core to v21.0.1: #​77918
  • IA 2.0: Review Getting Started Section: #​77921
  • test: attempt to de-flake rsc-basic: #​77934
  • docs: revert image 15.3 change until live: #​77941
  • Turbopack: remove CSS comments when minifying: #​77940
Credits

Huge thanks to @​raunofreiberg, @​huozhi, @​ijjk, @​timneutkens, @​gaojude, @​leerob, @​mezotv, @​bgw, @​samcx, @​ztanner, @​sokra, @​mischnic, @​wbinnssmith, @​kdy1, @​unstubbable, @​ahabhgk, @​ScriptedAlchemy, @​SukkaW, @​wyattjoh, @​eps1lon, @​Amirroid, @​Netail, @​lubieowoce, @​gnoff, @​jackwilson323, @​acdlite, @​sbougerel, @​kevva, @​kasperpeulen, @​Cy-Tek, @​dvoytenko, @​husseinraoouf, @​isBatak, @​iamkd, @​delbaoliveira, @​jantimon, @​padmaia, @​Bernardoow, @​styfle, @​devjiwonchoi, @​JamBalaya56562, and @​Marukome0743 for helping!

v15.2.5

Compare Source

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

Core Changes
  • Update swc_core and use rayon instead of chili (#​77338)
  • Update swc_core to v16.6.2 (#​77194)
  • Update swc_core to v16.6.0 (#​77155)
  • [og] fix vercel og build issue on windows (#​77650)
  • clean up useReducer code re dev indicator (#​77354)
  • [dev-overlay] ensure stripping overlay bundle in prod build (#​76976)
Credits

Huge thanks to @​huozhi, @​gaojude and @​kdy1 for helping!

v15.2.4

Compare Source

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

Core Changes
  • Match subrequest handling for edge and node (#​77474)
  • exclude images and static media from dev origin check (#​77417)
  • ensure /__next middleware URLs are included in the origin check (#​77416)
  • remove direct ip/port bypass in dev origin check (#​77414)
  • switch development origin verification to be opt-in rather than opt-out (#​77395)
Credits

Huge thanks to @​ijjk and @​ztanner for helping!

v15.2.3

Compare Source

[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary. This release contains a security patch for CVE-2025-29927.

Core Changes
  • Update default allowed origins list (#​77212)
  • unify allowed origin detection handling (#​77053)
  • Add dev warning for cross-origin and stabilize allowedDevOrigins (#​77044)
  • Ensure deploymentId is used for CSS preloads (#​77210)
  • Update middleware request header (#​77201)
  • [metadata] remove the default segement check for metadata rendering (#​77119)
  • [ts-hint] fix vscode type hint plugin enabling (#​77099)
  • [metadata] re-insert icons to head for streamed metadata (#​76915)
Credits

Huge thanks to @​ijjk, @​ztanner, and @​huozhi for helping!

v15.2.2

Compare Source

Core Changes
  • [dev-overlay] fix styling on overflow error messages, add button hover state: #​76771
  • Fix: respond 405 status code on OPTIONS request to SSG page: #​76767
  • [dev-overlay] Always show relative paths: #​76742
  • [metadata] remove the duplicate metadata in the error boundary: #​76791
  • Upgrade React from d55cc79b-20250228 to 443b7ff2-20250303: #​76804
  • [dev-overlay] Ignore animations on page load: #​76834
  • fix: remove useless set-cookie in action-handler: #​76839
  • Turbopack: handle task cancelation: #​76831
  • Upgrade React from 443b7ff2-20250303 to e03ac20f-20250305: #​76842
  • add types for __next_app__ module loading functions: #​74566
  • fix duplicated noindex when server action is triggered: #​76847
  • fix: don't drop queued actions when navigating: #​75362
  • [dev-overlay]: remove dependency on platform for focus trapping: #​76849
  • Turbopack: Add turbopack_load_by_url: #​76814
  • Add handling of origin in dev mode: #​76880
  • [dev-overlay] Stop grouping callstack frames into ignored vs. not ignored: #​76861
  • Upgrade React from e03ac20f-20250305 to 029e8bd6-20250306: #​76870
  • [dev-overlay] Increase padding if no x button present: #​76898
  • fix: prevent incorrect searchParams being applied on certain navs: #​76914
  • [dev-overlay] Dim ignore-listed callstack frames when shown: #​76862
Example Changes
  • chore(cna): update tailwind styles to be closer to non-tw cna: #​76647
Misc Changes
  • Fix canary only warning for devlow-bench: #​76772
  • [test] Add special placeholder if stackframes point into dist dir: #​76741
  • [test] Use new Redbox matchers in pages/ service-side-dev-errors: #​76779
  • [test] Use new Redbox matchers in app/ dynamic-error-trace: #​76783
  • [test] Use new Redbox matchers in app/ owner-stack-invalid-element-type: #​76786
  • [test] Use new Redbox matchers in app/ hook-functuon-names: #​76785
  • [test] Use new Redbox matchers in app/ undefined-default-export: #​76781
  • [test] Use new Redbox matchers in server-navigation-error: #​76787
  • [test] Fix flaky error-recovery test: #​76789
  • [test] Use new Redbox matchers in pages/ gssp-ssr-change-reloading: #​76788
  • [docs] update Tailwind CSS installation and configuration instructions: #​76259
  • docs: Tailwind v4: #​76801
  • chore(docs): update minimumCacheTTL example to 31 days: #​76796
  • Turbopack: improve sectioned source maps: #​76627
  • [test] Use new Redbox matchers in pages/ middleware-errors: #​76797
  • doc: use redirect in client components: #​76332
  • [docs] document experimental viewTransition flag: #​76832
  • docs(errors): remove confusing good-to-know since global-errors.tsx also show in dev as of 15.2: #​76825
  • Turbopack: don't use HashMap in manifests: #​76833
  • Update labeler.json: #​76828
  • Fix missing turbo command for rust-check: #​76851
  • fix(turbopack): Use correct SyntaxContext for __turbopack_esm__: #​73544
  • Cleanup pure span handling: #​76846
  • Turbopack: remove unused IncludeModulesModule: #​76868
  • Update test snapshots for alternative bundler [5/n]: #​76617
  • Update test snapshots for alternative bundler [6/n]: #​76768
  • [test] Use next.browser instead of webdriver in pages/ client-navigation: #​76867
  • fix(turbopack): Use vergen-git2 instead of shadow-rs for napi and next-api crates to fix stale git lock files: #​76773
  • Revert "fix(turbopack): Use vergen-git2 instead of shadow-rs for napi and next-api crates to fix stale git lock files": #​76879
  • build: Update swc_core to v16.4.0: #​76596
  • docs: update Turbopack docs: #​76799
  • build: Update lightningcss to v1.0.0-alpha.64: #​76856
  • build: Fix warning: #​76890
  • Turbopack: fix __dirname: #​76902
  • Turbopack: deterministic server action order: #​76905
  • docs: reword the docs of veiw transition flag: #​76841
  • fix(turbopack): Use vergen-gitcl instead of shadow-rs (or vergen-git2) for napi and next-api crates to fix stale git lock files: #​76889
  • Turbopack: ensure default layout is provided in default not-found entrypoint: #​76912
  • chore(github): add moar labels: #​76922
  • [test] Use new Redbox matchers in pages/ client-navigation/rendering: #​76798
  • docs: fix create-next-app cli title: #​76908
Credits

Huge thanks to @​pranathip, @​gaojude, @​ijjk, @​eps1lon, @​Nayeem-XTREME, @​leerob, @​styfle, @​samcx, @​sokra, @​huozhi, @​raunofreiberg, @​mischnic, @​lubieowoce, @​unstubbable, @​ztanner, @​kdy1, @​timneutkens, @​wbinnssmith, @​bgw, and @​oscr for helping!

v15.2.1

Compare Source

Core Changes
  • Unify Link and Form prefetching: #​76184
  • Turbopack: Ensure server actions sourcemaps tests pass: #​76157
  • [dev-overlay] control dark theme in one place: #​76528
  • [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
  • report compiler duration for webpack and improve numbers: #​76665
  • [dev-overlay] fix dark theme missing close bracket: #​76672
  • Remove revalidate property from incremental cache ctx for FETCH 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
  • [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
  • [dynamicIO] routes with dynamic segments should be able to be static in dev: #​76691
  • [repo] upgrade ts 5.8.2: #​76709
  • [metadata]: ensure metadata boundary is only rendered once on client nav: #​76692
  • [metadata] clean up redudant options: #​76712
  • Fix uniqueness detection for generateStaticParams: #​76713
  • Upgrade React from 22e39ea7-20250225 to d55cc79b-20250228: #​76680
  • [Turbopack] Compute module batches and use them for chunking: #​76133
  • [Dev Tools] Improve keyboard interactions for menu & overlays: #​76754
  • Keep server code out of browser chunks: #​76660
  • Turbopack: inline minify into code generation and make it a plain function instead of a turbo tasks function: #​76628
  • fix edge runtime asset fetch in pages api: #​76750
  • Update use-cache-unknown-cache-kind.test.ts snapshot for alternate bundler: #​76682
Example Changes
  • docs: fix reading params code blocks: #​76705
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 to v16.0.0: #​76414
  • 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
  • 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
  • [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
  • fix(turbopack): Fix analysis of private properties: #​76654
  • Turbopack: Simplify emitDecoratorMetadata test: #​76678
  • [test] Use new Redbox matchers in pages/ ReactRefreshRegression: #​76743
  • [test] Remove describeVariants helper: #​76631
  • [test] Fix flaky error-recovery test: #​76753
  • [test] Use new Redbox matchers in app/ dynamic-error: #​76744
  • [test] Use new Redbox matchers in app/ rsc-runtime-errors: #​76745
  • Turbopack: avoid panic in module batches: #​76757
  • Revert "test: temporarily disable after deploy test": #​74990
  • toDisplayRedbox(): replace all occurrences of testDir: #​76618
  • Fix: missing close brace in demo code: #​76549
  • Disable flaky Turbopack tests: #​76760
  • feat(CI): Revalidate vercel data cache on areweturboyet after uploading data to KV store: #​76693
  • chore(github): move top prs and feature requests to different Slack channel: #​76764
  • Fix flaky Bun test: #​76763
Credits

Huge thanks to @​acdlite, @​bgw, @​ijjk, @​molebox, @​kdy1, @​timneutkens, @​devjiwonchoi, @​mischnic, @​unstubbable, @​eps1lon, @​huozhi, @​philipithomas, @​delbaoliveira, @​samcx, @​wbinnssmith, @​sokra, @​gnoff, @​leerob, @​ztanner, @​raunofreiberg, @​lubieowoce, and @​LihaoWang for helping!

v15.2.0

Compare Source

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 to 372ec00c-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 to 518d06d2-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 to 3b009b4c-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 to 3ce77d55-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 to 7b402084-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 to 42687267-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 to 74ea0c73-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 056073de-20250109: #​74754
  • [DevOverlay] Improve Storybook Structure: #​74764
  • fix: always show indicator in app router: #​74758
  • Upgrade React from 056073de-20250109 to 540efebc-20250112: #​74805
  • [DevOverlay] Fix Style Regression: #​74768
  • Fix output files warning by Turborepo: #​74811
  • perf(lint): cache the returned regex result: #​74827
  • Upgrade React from 540efebc-20250112 to cabd8a0e-20250113: #​74828
  • feat: added rewrite headers after user-supplied rewrites: #​74776
  • Add partial support for "use cache" in metadata route handlers: #​74835
  • [DevOverlay] Hydration Error Code Frame: #​74822
  • fix: when metadatabase is set we should not warn: #​74840
  • [DevOverlay] Sync Terminal component with CodeFrame for Build Error: #​74831
  • feat: animated dev build/render indicator: #​74833
  • Fix mojibake in server action inputs (fixes #​74843): #​74845
  • [DevOverlay] Add Turbopack story for Error Containers: #​74834
  • Add pagination SEO link tags: #​74737
  • chore: fix local development warnings inside next monorepo: #​74863
  • fix: eslint rule of using img in metadata routes: #​74864
  • Upgrade React from cabd8a0e-20250113 to b3a95caf-20250113: #​74868
  • [Segment Cache] Support <Link prefetch={true}>: #​74172
  • Remove unnecessary re render on link reveal: #​74670
  • [Segment Cache] Cancel prefetch on viewport exit: #​74671
  • [Segment Cache] Prioritize hovered links: #​74672
  • Refine NextLogo Accessibility and Styling: #​74869
  • Disable failed scroll restoration warning: #​74875
  • Polish UI for dev indicator popover: #​74872
  • [DevTools] Add CMD + . keyboard shortcut to show/hide: #​74878
  • [DevOverlay] use buttons for interactive indicator row options: #​74887
  • [DevOverlay] close popover/overlay on Esc: #​74889
  • Skip client reference manifests for static metadata route handlers: #​74876
  • Upgrade React from b3a95caf-20250113 to f0edf41e-20250115: #​74890
  • fix: moved down segment path handling after cache headers are set: #​74893
  • [Turbopack] improve task optimization: #​74837
  • Ensure client reference manifest is traced for global not found page: #​74919
  • Polish error feedback row: #​74880
  • fix: static indicator for new overlay decoupled from appIsrStatus: #​74933
  • [test] Avoid hydration errors in react-compiler tests: #​74928
  • feat: write the segment path data out from the incremental cache: #​74892
  • Track dynamic IO feature usage: #​74942
  • Upgrade React from f0edf41e-20250115 to b158439a-20250115: #​74936
  • Turbopack: chunk_group_multiple: #​74859
  • [DevOverlay] Fix floating header invisble on small screen: #​74886
  • rest errors queue after passing to handler: #​74982
  • [DevOverlay] Keep pagination on Build Error: #​74905
  • [Segment Cache] Evict client cache on revalidate: #​74874
  • Upgrade React from b158439a-20250115 to 5b51a2b9-20250116: #​74993
  • [DevOverlay] Gather Feedback per Error: #​74908
  • Fix dev server ignores ENOENT error when loading page: #​65213
  • refactor: updated route regexp handling to simplify: #​74996
  • [DevOverlay] Rename file names to kebab: #​75000
  • Fix dhat support for turbo dev: #​67166
  • Fix missing revalidate with notFound(): #​75009
  • fix: always ensure element before set to weakmap: #​75012
  • Fix ping event being sent unintentionally for Pages Router with Turbopack: #​75030
  • fix: don't memory-leak promises passed to waitUntil: #​75041
  • refactor: include new option for including prefixes: #​75015
  • Disable colormin feature from cssnano: #​53393
  • types: improve types in app-index: #​75045
  • feature(error): capture ssr error in overlay during dev: #​74983
  • [DevOverlay] Polish new Error Overlay badge: #​74975
  • [DevOverlay]: hook up issue click handlers in NextLogo: #​75069
  • error when output: export is used with intercepting routes: #​75058
  • Display global-error along dev overlay during development: #​75101
  • [DevOverlay] Decouple Error Overlay with DevTools Indicator: #​74999
  • [DevOverlay] Open Error Overlay when DevTools Indicator clicked: #​75025
  • fix: be more defensive in useMergedRef: #​75088
  • [Dev Badge] Focus states and fluid transitioning between states: #​75141
  • polish indicator loading behaviour for new dev overlay: #​75149
  • clean unused stop: #​75156
  • [Segment Cache] Remove segment access tokens: #​75157
  • [Segment Cache] Minimize special root key handling: #​75159
  • [next:dev] fix: console error conflicting public file: #​75140
  • [Turbopack] allow to disable source maps: #​75136
  • Allow disabling HTTP request logs in dev server: #​74349
  • [metadata] Fix streaming metadata was missing in ssr: #​75155
  • fix(turbopack/napi): Flush optional task cache hit statistics upon completion of build: #​75122
  • add hostname to default error boundary message: #​75151
  • [Segment Cache] Predictable fallback param encoding: #​75166
  • misc: remove authors section in the readme: #​75184
  • Track use cache usage: #​75007
  • Upgrade React from 5b51a2b9-20250116 to 9b62ee71-20250122: #​75187
  • fix after export in next-types-plugin: #​75190
  • fix: Merge link header from middleware with the ones from React: #​73431
  • Restore and enhance error handling for hanging inputs in "use cache": #​74652
  • Error handling for hanging promises in "use cache" closures: #​74750
  • Fix source mapping of generated cache wrapper calls: #​74987
  • [Turbopack] use new backend by default: #​72434
  • eslint: allow ts extensions for config: #​75222
  • Split entrypoint/route handling into separate dev and prod versions: #​75169
  • [Segment Cache] Prioritize route trees over segments: #​75213
  • Remove internal_disableSyncDynamicAPIWarnings flag: #​75231
  • router.prefetch should not trigger a React update: #​75238
  • [DevOverlay] Enable reactOwnerStack when newDevOverlay is enabled: #​75199
  • fix: typeof msg should compare to object: #​75221
  • [DevOverlay] Align old and new overlay: #​74935
  • Introduce standalone experimental.useCache flag: #​75240
  • [metadata] keep blocking metadata rendered in head: #​75227
  • Upgrade React from 9b62ee71-20250122 to ae9017ce-20250122: #​75233
  • Update React types: #​75245
  • docs: opengraph-image files work with the node.js runtime: #​75274
  • Upgrade vercel/og: #​75247
  • Turbopack: migrate global module ids to single-graph: #​73752
  • Emit build error when useCache is enabled and Edge runtime is used: #​75279
  • Fix use server diagnostics for type exports: #​74256
  • Turbopack: don't hardcode edge-instrumentation.js: #​75289
  • Upgrade React from ae9017ce-20250122 to de1eaa26-20250124: #​75286
  • Update bundler for pre-bundling runtime: #​75294
  • Ensure mangling is disabled for dev runtime builds: #​75297
  • Configure correct app dir when building /_error fallback in dev: #​75354
  • Upgrade React from de1eaa26-20250124 to 9eabb373-20250124: #​75367
  • tweak static generation retry wait time: #​75381
  • [Dev Badge] Accessibility improvements to dropdown menu: #​75268
  • Gate captureOwnerStack access on experimental.reactOwnerStack: #​75241
  • [DevOverlay] Remove unused props from errors.tsx and its story: #​75392
  • feat: slow module detection for webpack: #​75368
  • UI polish: dev overlay feedback button: #​75400
  • [DevOverlay] fix: shadow host element affects parent's display: #​70676
  • [DevOverlay] Display Correct Number of Errors on Indicator: #​75395
  • [dev-overlay] fix: do not open error overlay when click indicator: #​75404
  • fix: handle optional catchalls correctly: #​75377
  • [dev-overlay] do not close overlay when click indicator elements: #​75406
  • fix: add parser metadata for eslint 9 cache: #​74791
  • Fixed null is not an object (evaluating 't.parallelRoutes.get'): #​75360
  • Turbopack: Move build to separate file: #​75390
  • Upgrade React from 9eabb373-20250124 to 37906d4d-20250127: #​75398
  • Turbopack: Implement build worker: #​75391
  • Revert changing bundler for runtime bundle but keep externals fix: #​75412
  • Revert "fix: handle optional catchalls correctly": #​75442
  • [Turbopack] allow to manually mark tasks as root: #​75436
  • [Turbopack] disable dependency tracking when running build without persistent caching: #​75243
  • [DevOverlay] fix total error count: #​75500
  • [DevOverlay] fix total error count: #​75500
  • fix: incoming requests should use plural: #​75582
  • Don't warn about Turbopack config if disabled: #​75618
  • Unfork stack frame utils: #​75532
  • [use-cache] Exclude warmup render when dynamicIO is off: #​75527
  • add additional x-middleware-set-cookie filtering: #​75561
  • [use-cache] use computed size of the ReadableStream for LRU evicting: #​75607
  • Include HMR refresh hash in "use cache" cache keys: #​75474
  • [DevOverlay] cleanup hydration error UI: #​75499
  • [metadata] Remove deadcode and extract separate test suite: #​75528
  • refactor: decouple getOriginalStackFrame from endpoint: #​75553
  • fix: dev overlay style to add wrap + adjust bg width: #​75485
  • fix: preserve custom Vary headers: #​75536
  • Clean-up: remove unused errorMessage param in stack frames: #​75554
  • Upgrade React from 37906d4d-20250127 to c492f975-20250128: #​75434
  • Fix console replaying and React.cache usage in "use cache" functions: #​75520
  • Upgrade React from c492f975-20250128 to a4b2d0d5-20250203: #​75649
  • DX: Reduce devtools clutter by batching stack frame requests: #​75557
  • Add nodejs runtime support for middleware: #​75624
  • polish hydration errors: #​75632
  • feat: added support for prefetch segments when deployed: #​75202
  • [Turbopack] await shutdown before ending pool: #​75545
  • [Error Overlay] Comprehensive refinement: #​75471
  • Upgrade React from a4b2d0d5-20250203 to 0a82580b-20250203: #​75660
  • Ensure src/middleware handles correctly: #​75702
  • Unused searchParams in "use cache" page should not cause dynamic: #​75662
  • rootParams() is now a plain Proimse (not exotic): #​75717
  • Invalidator: don’t call invalidate at all if there’s nothing to invalidate: #​75706
  • add script for quickly updating error codes: #​75690
  • [dev-overlay] fix: color contrast for terminal: #​75736
  • fix: enable new overlay properly when env var is set: #​75747
  • fix: work around setTimeout memory leak, improve wrappers: #​75727
  • [DevOverlay] fix style regression: #​75756
  • [dev-overlay] fix: proceed to get runtime error when fails to fetch original stack frames: #​75743
  • [dev-overlay] add and apply merge class names util: #​75758
  • docs: Update README for experimental testmode: #​75722
  • fix: middleware not applied to _next/image: #​75729
  • fix: ensure lint worker errors aren't silenced: #​75766
  • Ensure node middleware is handled with standalone: #​75765
  • Fix incorrect error count : #​75759
  • Upgrade React from 0a82580b-20250203 to d85cf3e5-20250205: #​75698
  • Only disable Prettier for original Turbopack source: #​75716
  • [dev-overlay] fix: pagination focus ring was invisible: #​75790
  • test: Exclude turbo-tasks-macro from test-cargo-unit: #​75776
  • Send formatted error to frontend if sourcemapping fails: #​75712
  • Upgrade React from d85cf3e5-20250205 to ff628334-20250205: #​75757
  • [dev-overlay] fix link styling on hydration errors: #​75792
  • Only reference published @types/react-dom versions: #​75606
  • Dedupe cached data from "use cache" functions in RSC payload: #​75786
  • Allow "use cache" with output: 'export': #​75794
  • [metadata] new metadata insertion API and support PPR: #​75366
  • Handle invalid sourcemaps: #​75713
  • [error overlay] fix missing html error is not displayed: #​75831
  • docs: improve JSDocs for metadata and <Link>: #​75576
  • [error overlay] missing html tags error should be blocking: #​75839
  • Upgrade React from ff628334-20250205 to 8759c5c8-20250207: #​75796
  • Use TypeScript to check if a default case is required in switch: #​75854
  • Revert "[metadata] new metadata insertion API and support PPR": #​75858
  • [Error Overlay] Fix bottom stack animation: #​75867
  • [Error Overlay] New design: #​75679
  • Upgrade React from 8759c5c8-20250207 to 93b58361-20250209: #​75868
  • [dev-overlay] HOTFIX: clicking nav escapes the overlay: #​75876
  • dev error overlay: async boundary for original stack frame call: #​75718
  • fix(turbopack): Always console.log the "done in" message after receiving a BUILT event: #​75730
  • Add test to verify that inner caches are excluded from Resume Data Cache: #​75883
  • Respect no-store request header for "use cache" entries in dev mode: #​75754
  • Reland "[metadata] new metadata insertion API and support PPR #​75366": #​75873
  • [metadata] do not rethrow postpone when streaming metadata is not enabled: #​75887
  • refactor(webpack-config): Pass through jsConfigPath: #​75886
  • refactor(webpack-config): Disable some options based on bundler version: #​75888
  • Improve hydration diff view: #​75799
  • [dev-overlay] Introduce motion to surface new errors: #​75734
  • Upgrade React from 93b58361-20250209 to cd90a4d8-20250210: #​75914
  • [DevOverlay]: render indicator in pages router: #​75918
  • error code should preserve after stitching: #​75929
  • [error overlay] display different error info individually: #​75916
  • refactor: minor cleanups in webpack actions code: #​75912
  • [DevOverlay]: fix missing Error context for build-time errors: #​75932
  • [error overlay] align data attributes between 2 UIs: #​75937
  • fix: typos in documentation files: #​75816
  • [error overlay] fix highlighted lines: #​75940
  • [error overlay] hornor the original erroring order: #​75934
  • Restore --no-mangling CLI option for next build: #​75921
  • Turbopack: make tracing easier: #​75958
  • Upgrade React from cd90a4d8-20250210 to f83903bf-20250212: #​75967
  • Use compilation.{emitAsset,updateAsset} api rather than mutating assets object: #​75927
  • Use resource to detect feature usage in telemetry: #​75917
  • Create unique source URLs between Client and Server in Pages dir: #​75878
  • cleanup: remove unused NEXT_RSC_ERR_* error parsing code: #​75982
  • [error overlay] fix infinite loop when frames are failed to fetch: #​75988
  • [dev-overlay] fix: call stack silently fails to open editor with 204: #​75785
  • Cleanup webpack sourcemap middleware source URL handling: #​75879
  • Upgrade React from f83903bf-20250212 to cbbe8666-20250213: #​76010
  • [dev-overlay] sync style diffs with new design: #​75949
  • [dev-overlay] update overlay toolbar icons: #​75998
  • webpack: Sourcemap externals when replayed in the browser: #​75863
  • [DevOverlay]: enable by default: #​75882
  • [dev-overlay] style: version info staleness click text to learn more: #​75768
  • [ppr] Improve experimental debugging: #​76016
  • [metadata] set bypass ua regex string for ppr routes: #​75977
  • fix: handle parsing destination with patterns in hostname: #​75973
  • Fix: Build error causes infinite loop on new dev overlay in Turbopack: #​75984
  • [metadata] disable streaming metadata for ppr deployment: #​75978
  • [dev-overlay] fix: hydration error style: #​76049
  • Remove experimental.reactOwnerStack flag: #​76021
  • [dev-overlay] style: improve version staleness indicator version unknown: #​76061
  • [dev-overlay] add aria to disabled docs button: #​76055
  • [dev-overlay] fix: terminal symbols are longer than text: #​76059
  • Disallow rootParams() in cache scope: #​75801
  • Remove tracestate header from fetch cache key: #​76041
  • [dev-overlay] remove hide dev tools shortcut: #​76066
  • [dev-overlay] hide dev overlay when printing: #​73489
  • Create valid URLs in source map sources with Turbopack: #​76075
  • [metadata] fix ppr deployment by not disabling ppr: #​76087
  • [dev-overlay] add error env name label: #​76003
  • [dev-overlay] deprecate devIndicators options appIsrStatus and buildActivity: #​76067
  • [dev-overlay] deprecate devIndicators.buildActivityPosition and rename to position: #​76069
  • Fix runtime error in writeConfigurationDefaults: #​76106
  • [dev-overlay] change dev indicator position by next config option: #​76077
  • perf: Do not run react compiler needlessly: #​75676
  • Handle more known protocols in stackframe locations: #​76086
  • Bump webpack to 5.98.0: #​75847
  • fix(edge): run after() if request is cancelled mid-streaming: #​76013
  • Clean module path if Fast Refresh full reload was caused by files outside project: #​76108
  • Revalidate "use cache" caches during on-demand revalidation: #​76100
  • Fix cache kind validation: #​76064
  • [dev-overlay] add false option to disable dev indicator: #​76079
  • Fix on-demand revalidation with "use cache" in dev mode: #​76122
  • [dev-overlay] handle ssrd nextjs internal errors in overlay: #​76124
  • [dev-overlay] fix: overlay is located relatively low when long content: #​76113
  • [dev-overlay] Fix off-by-one column sourcemapping in Webpack: #​76152
  • [metadata] handle navigation API in streaming metadata: #​76156
  • [dev-overlay] refactor to group the middleware response utils: #​76199
  • [dev-overlay] fix geist font woff2 name: #​76201
  • [dev-overlay] rename readyErrors to runtimeErrors: #​76208
  • [dev-overlay] do not allow dismissing build error for dev indicator: #​76209
  • [dev-overlay] use stop icon for hide devtools button: #​76212
  • Add basic profiling plugin for alternative bundler: #​76030
  • [dev-overlay] font style backward compat with react 18: #​76225
  • Implement foundations for additional bundler option: #​75981
  • Remove hmr socket code from prod build: #​76232
  • fix: overlapping query and param names should not conflict: #​76177
  • Built-in app loader plugin for additional bundler: #​76017
  • Built-in flight plugin for additional bundler: #​76014
  • Built-in swc loader plugin for additional bundler
  • misc: remove vendored node-fetch usages: #​75741
  • Consolidate next/link error tests: #​76214
  • fix: NextConfig.rewrites type for fallback: #​75784
  • [dev-overlay] use absolute font src url: #​76229
  • [dev-overlay]: remove old CollapseIcon: #​76239
  • fix: add appDir path to middleware output path: #​75923
  • [Turbopack] pass inner modules to chunking to match chunking types: #​76227
  • [dev-overlay] Remove old Dev Overlay: #​76256
  • [dev-overlay]: make open in editor button a separate click region: #​76243
  • [dev-overlay] dead code elimination: #​76276
  • [dev-overlay] use unique font name: #​76230
  • [dev-overlay] align border color: #​76288
  • Add canary warning for node middleware: #​76292
  • fix: top level await in node middleware: #​76012
  • docs(errors): add failed-to-find-server-action error page: #​75678
  • Ensure middleware layer is applied for node: #​76293
  • [metadata] fix streaming metadata triggering error boundaries: #​76280
  • [errors]: default export error should distinguish between layout/page: #​76294
  • Remove unused nccd node-fetch: #​76241
  • [dev-overlay] expandable error message container: #​76297
  • feat: option to disable next types plugin: #​76300
  • [dev-overlay] pick up build error message: #​76290
  • [dev-overlay] fix: line number handling for cursor editor: #​76151
  • [dev-overlay] restructure dev-overlay project: #​76291
  • Upgrade React from 32b0cad8-20250213 to 662957cc-20250221: #​76333
  • Revert null check in mountLinkInstance: #​76289
  • [dev-overlay] Isolate overlay from user space Components: #​76277
  • [global-error] fallback to default error when user one fails: #​76339
  • [misc]: remove unused render worker code: #​76345
  • [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
  • [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
  • Flight loader: use normalModule.type to determine module type: #​76338
  • update type for next/dynamic loading option to accept ReactNode: #​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 to 25677265-20250224: #​76437
  • [Testing] Update middleware/next-config tests to include search params: #​76354
  • Add node middleware handling for turbopack: #​76360
  • Upgrade React from 25677265-20250224 to 22e39ea7-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 with px value of base font 16px: #​76384
  • Add event for webpack plugin customization: #​76477
  • [dev-overlay] use rem for sizes and px for spacings: #​76385
  • [dev-overlay] hide dev indicator for server session or 1 day: #​76430
  • [dev-overlay] customize scrollbar styling: #​76509
  • [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
  • [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
  • chore(docs): add missing search: '' on remotePatterns: #​73925
  • examples: remove with-tailwindcss example: #​73919
  • examples: update next-config-js document path: #​73774
  • examples: convert @​next/third-parties examples from JS to TS: #​73602
  • updated with-orbit-components example to utilize the App Router.: #​73266
  • examples: update with-styled-components README: #​73729
  • examples: update with-orbit-components README: #​74011
  • examples: update with-mdx-remote example to utilize the App Router: #​74067
  • Removed duplicated cn function declaration from lib dir: #​74065
  • Fix linting between lint-check and lint-staged: #​74503
  • chore(examples): update React in reproduction templates to stable 19: #​74499
  • chore(examples): updated the example of with-react-jss to utlize the App router: #​74440
  • chore(examples): updated the example of with-styled-components-rtl to utlize the App router: #​74180
  • examples: remove app-dir and with prefix in the mdx directory name: #​73458
  • examples: add StackBlitz preview to README.md: #​73546
  • examples: improve DX while copying command to create new project: #​73463
  • examples: fix with-zones repository name in the deploy link: #​74852
  • with-mux-video: recommend environment variables instead of secrets: #​74879
  • with-mux-video: updates for next 15 compat: #​74881
  • Update readme for with-mux-video: #​74966
  • docs: recommend webp over avif: #​75966
  • examples: fix search usage: #​75972
  • example: add next config to hello-world app: #​76022
  • Fix cms-plasmic example: #​75750
  • examples: Fix prettier issue: #​76027
  • Update with urql example: #​76485
  • Updated remove-console example to utilize the app router.: #​76543
  • Fix createclient: #​76567
Misc Changes
  • Add NEXT_PRIVATE_SKIP_CANARY_CHECK env for bench job: #​73763
  • refactor(turbopack): Add NonLocalValue derives to types deriving TraceRawVcs: #​73714
  • Turbopack: support module workers: #​72614
  • docs: add versions to connection API: #​73798
  • Increase test retries from 1 to 2: #​73795
  • refactor(turbo-tasks): Implement NonLocalValue for all ResolvedVcs and OperationVcs: #​73764
  • docs: supporting after for providers: #​73743
  • [E2E] Fix config file conflict: #​73818
  • feat: Update swc_core to v9.0.0: #​73696
  • Turbopack: resolve some to-resolved-in-loop: #​73794
  • Bump Rust version: #​73169
  • fix(turbopack): Enable explicit_resource_management transform: #​73802
  • docs: fix code block extension on after and error handling: #​73844
  • Revert "feat: Update swc_core to v9.0.0": #​73866
  • refactor(turbo-tasks): Derive NonLocalValue by default in value/value_trait macros: #​73766
  • refactor(turbo-tasks): Implement NonLocalValue for State<T> where T: NonLocalValue: #​73770
  • chore(github): fix typo in close-issue-message: #​73878
  • Docs: Remove unstable_expirePath and unstable_expireTag docs: #​73856
  • Docs: Create Examples section: #​73858
  • Docs clean up: Merge and delete content from routing/index.mdx: #​73859
  • Docs clean up: delete defining-routes.mdx and pages.mdx: #​73863
  • Turbopack: store ChunkingType in single-module-graph: #​73837
  • chore(turbopack-browser): Pedantically fix minor typos in comments about TraitRef: #​73772
  • chore(docs): update version history of next/image: #​73923
  • docs: update WebVitals component: #​73869
  • Correct typo in Update 04-images-and-fonts.mdx: #​73790
  • chore(github): add issue_wrong_template workflow: #​73882
  • docs(mdx): add a dynamic imports section for App Router: #​73466
  • chore: increase test sharding: #​73852
  • fix(turbo): sassOptions silenceDeprecations was not overwritten with user options: #​73937
  • Docs: fix typo in examples page: #​73907
  • docs: add next.config.ts code switcher to Redirecting docs: #​73848
  • docs: add tsx switcher to linking and navigation: #​73846
  • docs: update file structure on contribution guide: #​73778
  • docs: add next-intlayer into i18n solution list: #​73750
  • docs: minor typos and fixes: #​73955
  • docs: fix sitemap changelog table formatting: #​73760
  • fix(docs): vitest manual setup: #​73754
  • docs: fix file extension and missing export: #​73842
  • docs: update tailwind.config.ts to use satisfies operator: #​73924
  • docs: Fix MDX syntax error: #​73970
  • chore(next-custom-transforms): Mark fixture outputs as generated: #​73918
  • docs(use-cache): add missing jsx switcher example and types: #​73473
  • docs(internalization): add typescript examples and fix params as promise: #​73240
  • docs: add missing quotation marks in exmaple code: #​73720
  • chore(turbo-tasks-macros): Remove use of associated items for NativeFunction construction: #​73929
  • refactor(turbo-tasks-macros): Strip (already hidden) doc attributes from inline function signatures: #​73931
  • chore(github): fix wrong-issue-template body: #​74003
  • chore(turbopack): Fix build error when CI environment variable is not supplied: #​74041
  • Make ChunkItems reference only OutputAssets: #​73824
  • Install Vercel CLI at start of E2E deploy tests: #​74047
  • Fixed small typo in the doc: #​73971
  • docs: fixed regex for parsing base64String, and updated subscribeToPush function.: #​73940
  • exclude some modules from auto-import: #​74020
  • [Docs]: Clarify redirects in next.config to negate potential infinite redirects: #​74019
  • Update Turbopack development test manifest: #​74013
  • Turbopack: use old client reference collection implementation: #​74029
  • Create Jest project for Turbopack: #​73769
  • [Turbopack] move git version info to top-level crate to fix caching issues: #​74015
  • docs(redirect): add typescript example and fix params as promise: #​73963
  • docs: Fix filename for Turbopack traces: #​74066
  • Fix flakey deploy test assertion: #​74060
  • Specify PPR test dimension via environment variable only: #​74031
  • Name default Jest project according to used env variables: #​74084
  • test: assert that app exited without signal: #​74087
  • sync-react: Handle version bumps across SemVer minors and release channels: #​74091
  • Turbopack: change COMMON_CHUNKING_TYPE: #​74080
  • Turbopack: only inherit visited modules from parent layouts: #​74072
  • fix: improve types in turbopack runtime: #​74119
  • Fix merge conflicts: #​74157
  • refactor(turbopack/next-core): Migrate app_page_loader_tree structs to ResolvedVc: #​74114
  • refactor(turbo-tasks): Remove public OperationVc constructor, introduce a macro annotation for creating OperationVc types: #​72871
  • refactor(turbo-tasks): Make State require OperationValue: #​73876
  • chore(turbopack): Remove or improve a few uses of .to_resolved().await inside a loop: #​74112
  • refactor(turbopack): Rewrite CollectiblesSource callsites to use OperationVc (part 1/3): #​74051
  • chore(turbopack): Delete to-resolved-in-loop lint (too low signal): #​74113
  • Allow usage of this and arguments in nested function expression: #​74179
  • docs: update ISR self-hosting example code: #​74211
  • ci: use consistent playwright-chromium version: #​74251
  • Fixed typo in documentation: #​74254
  • docs: fix typo in self-host after() details: #​74243
  • chore(github): update comments stale period: #​74291
  • Fix typo in generateViewport docs: #​74288
  • docs: remove catch-all for opengraph-image: #​74338
  • docs(generate-static-params): add typescript example and missing jsx switcher: #​73962
  • docs(fetching-data-and-streaming): add missing types to example: #​74081
  • docs(use-cache): add missing switcher code blocks and types in examples: #​74083
  • refactor(next-core): Remove local annotations from structs in next-core/src/app_structure.rs: #​74200
  • test: add missing await for hydration test: #​74542
  • Getting Started Docs: Add Mutating Data page: #​74018
  • Getting Started docs: Add Error Handling page: #​74069
  • test: update test for async client component with snapshot: #​74550
  • test utils: Include origin of failed browser.* in stack: #​74553
  • fix react being incorrectly mentioned as extending fetch API: #​74278
  • docs: pin react version to 18 in Next.js 14 upgrade guide: #​74222
  • chore(github): update issue_stale token to release bot token: #​74575
  • chore(ci): Ensure all 6 shards are used equally in deploy tests: #​74574
  • fix: force module format for virtual client-proxy file: #​74162
  • [Turbopack] fix shadow-rs build caching: #​74579
  • Relocate SingleModuleGraph to turbopack-core: #​74571
  • misc: add .stories.tsx to vscode file nesting: #​74593
  • ci(eslint): remove unecessary react/self-closing-comp: #​74120
  • docs(images): update distinction between priority and fetchPriority: #​74650
  • docs: SPAs: #​74605
  • docs: fix typo: #​74657
  • Use prefer offline flag for CI: #​74663
  • perf(rcstr): Support inline string: #​74482
  • refactor(turbopack-ecmascript) Use ResolvedVc in EsmExport type: #​74508
  • test: assert the logs has updated after revaluate js value: #​74686
  • Recommend styled-components VSCode extension to get CSS autocomplete in Dev Overlay: #​74688
  • fix(turbopack): Stop analyzer if IIFE is recursive: #​74628
  • refactor(turbo-tasks): Add NonLocalValue marker trait implementation for TransientState: #​74509
  • build(scripts/pack-next): Add support for compressing debuginfo with zlib: #​74662
  • refactor(turbopack-core): Use ResolvedVc in IntrospectableChildren: #​74510
  • refactor(turbopack-core): Use ResolvedVc in ProcessResult and ModuleResolveResultItem: #​74511
  • Update lightningcss: #​74695
  • refactor(turbopack-core): Use ResolvedVc for IntrospectableModule and IntrospectableSource: #​74512
  • Turbopack: add flag to switch between envs: #​74135
  • Upgrade Turborepo to v2.3.3: #​74736
  • build: Update swc_core to v10.1.0: #​74580
  • Improve memory usage of the new backend: #​74740
  • test: add feature of overriding files: #​74716
  • Update 09-error-handling.mdx: #​74656
  • misc: add .cursorignore: #​74763
  • chore(github): update how we handle stale issues: #​73488
  • chore(github): ignore MRs in for stale issue bot: #​74767
  • Turbopack chunking: use ChunkableModules in chunk_content, not ChunkItems: #​74040
  • chore(turbopack): Delete some dead code that was using unresolved Vcs: #​74705
  • refactor(turbopack-core): Remove remaining "local" value type opt-outs in turbopack-core: #​74706
  • refactor(turbopack-dev-server): Remove unresolved Vc from DevHtmlEntry, use a named struct: #​74707
  • Update incorrect comment: #​74687
  • Typo in nextjs-compiler.mdx: #​74645
  • Fix small bug in getting started docs: #​74744
  • docs update: Remove public access modifier from resetRequestCache method in CacheHandler class, it's not available in js file (only in typescript): #​74788
  • docs: unstable_cache clarify usage: #​74802
  • fix: unauthorized.mdx: #​74799
  • [Turbopack] make the single module graph a root task: #​74778
  • docs: mark app router dynamic example as client component: #​74806
  • docs: disclaimer for only canary version available for ppr: #​74813
  • refactor(turbopack-dev-server): Use ResolvedVc/NonLocalValue in RewriteType, remove all "local" opt-outs from structs: #​74708
  • refactor(turbopack-ecmascript): Use ResolvedVc in CodeGen type: #​74709
  • refactor(turbopack/next-core): Use ResolvedVc in VisitClientReferenceNodeState: #​74710
  • refactor(turbopack-core): Use ResolvedVc in ContextCondition: #​74711
  • refactor(turbopack/next-core): Use ResolvedVc in PackagesGlobs: #​74712
  • docs: mention special case for trailing slash: #​74839
  • refactor(turbopack): Remove last known (non-test) usages of unresolved vcs in turbo_tasks::value (!!!): #​74713
  • docs: fix typos in 08-mutating-data.mdx: #​74856
  • [Turbopack] add count method to storage: #​74830
  • [Turbopack] add tracing to task execution: #​74770
  • [Turbopack] improve task aggregation update: #​74771
  • [Turbopack] add active_counter to keep tasks active: #​74772
  • Update CI config for Windows runner: #​74850
  • fix(turbopack): Fix tree shaking with import * as R: #​74725
  • ci: ensure fnm is installed in build_reusable: #​74891
  • feat(turbopack): Add a compile-time feature to turbopack to enable tokio-console support: #​74675
  • [Turbopack] fix task optimization by removing children count: #​74907
  • fix(turbopack-swc-utils): Don't panic if issues aren't emitted, use #[must_use] annotation: #​74906
  • Create synchronous snapshots of recursive AvailableModuleInfo struct: #​74894
  • fix persisent caching restore bug: #​74917
  • Fix missing await of params when metadata with an image file pt2: #​74193
  • Turbopack: capture all references in module graph: #​74873
  • Add reference library that supports React Server and uses React Compiler: #​74923
  • [Turbopack] refactor to pass ModuleGraph to chunk_group: #​74937
  • [Turbopack] fix unemit collectible: #​74932
  • refactor(turbo-tasks): Convert local Vcs to non-local Vcs when returning from task functions: #​74714
  • perf(turbo-tasks): Add a synchronous try_sidecast method to ResolvedVc: #​74844
  • perf(turbopack): Reduce size of ConstantValue: #​74965
  • Turbopack: singular EcmascriptClientReferenceModule: #​74946
  • refactor(turbopack): Merge Atom and JsWord variant of ConstantString: #​74967
  • Turbopack: add server actions loader to module graph: #​74951
  • perf(turbopack): Box ConstantValue::Regex: #​74968
  • perf(turbopack): Reduce size of Effect: #​74969
  • test: temporarily disable after deploy test: #​74989
  • test: add turbopack hmr flaky test: #​74995
  • Turbopack error logging: check NEXT_TEST_CI to use verbose behavior: #​75001
  • Turbopack: compute chunk group info: #​74947
  • build: Update swc_core to v10.2.5: #​75002
  • Re-enable app-dir logging test: #​75003
  • chore(github): use Issue Types: #​75006
  • chore(github): remove documentation label from area dropdown: #​75008
  • refactor(turbopack/next-api): Make VcArc use OperationVc: #​74479
  • Add next-custom-transforms tests to verify source maps: #​75005
  • build: Update swc_core to v10.3.0: #​75018
  • put dirty task tracing behind a feature flag: #​75022
  • Turbopack: fix layout segment optimization: #​75026
  • fix layout segment optimization: #​75035
  • Turbopack: don't search for layout segments in routes: #​73847
  • Turbopack: resolve arguments to EsmAssetReference::new: #​75040
  • perf(turbo-tasks): Optionally schedule ResolveNative/ResolveTrait tasks as local tasks: #​69126
  • hopefully fix infinite recursion in optimize: #​75043
  • [Turbopack] implement chunking based on the module graph: #​74979
  • [Turbopack] avoid crashing on e.g. .DS_Store: #​75050
  • perf(turbo-tasks): Use the type information we already have for all ResolvedVc casts, expose synchronous versions of functions: #​75055
  • docs: update Next.js 15 versions in upgrade guide: #​74960
  • [Turbopack] Production Chunking: #​75010
  • Include CI runner labels in Turborepo hashes: #​75099
  • [Turbopack] try to avoid too small chunks size when optimizing for production: #​75048
  • perf(turbopack): Reduce size of EffectArg: #​74973
  • build: Update swc_core to v10.5.0: #​75098
  • perf(turbopack): Use u32 for the total node count: #​75100
  • test: add dynamic api usage test case for streaming metadata: #​75109
  • Turbopack: optimize NftJsonAsset: #​75105
  • [Turbopack] Low hanging fixes and improvement on module graph: #​75106
  • Turbopack: don't create span for parallel chunking type: #​75094
  • refactor(turbopack): Only perform strongly consistent reads/resolves on VcOperation: #​75016
  • fix: remove unnecessary parentheses in draft mode API: #​75153
  • perf(turbo-tasks): Turn on local_resolution feature by default: #​75051
  • [Turbopack] allocation improvements for SingleModuleGraph: #​75145
  • [Turbopack] pass sourceMap flag to webpack loaders and postcss: #​75144
  • Update 06-data-fetching-and-streaming.mdx (Removed duplicate word): #​74810
  • add test case for intercepting route + catchall + generateStaticParams: #​75167
  • [Turbopack] remove verbose new backend tracing: #​75165
  • optimize read matches to reduce FileSystemPath calls: #​75164
  • chore(turbo-tasks): Remove the ability to opt-out of NonLocalValue for VcValueType and VcValueTrait: #​75053
  • chore(turbopack): Mark ResolvedVc::resolve as deprecated to prevent resolving an already-resolved ResolvedVc: #​75168
  • Turbopack: don't generate CSS for Node.js: #​75117
  • chore(tests): Remove linguist-generated git attribute from test snapshot data/fixtures: #​75194
  • chore(github): remove Developer Experience area: #​75198
  • [Turbopack] fix invalidation and counting with collectibles: #​75195
  • chore(github): add CSS area/label: #​75201
  • Remove endpoint.write_to_disk() in favor of standardized endpoint.output(): #​75059
  • perf(turbopack): Use Cow::into_owned instead of .to_string(): #​75216
  • [Turbopack] Memory improvements: #​75210
  • docs: Update robots for generateMetadata spec: #​75229
  • refactor(turbo-tasks): Use Return Position Impl Traits (RPIT) to reimplement GraphTraversal: #​74896
  • chore(turbo-tasks): Delete non_local_return support from #[turbo_tasks::function]: #​75209
  • perf(turbopack): Update SWC plugins (styled-jsx, emotion): #​75236
  • refactor(turbopack): Remove ReadRawVcFuture.turbo_task: #​75217
  • test: Move should not cause error when removing loading.js to flaky manifest: #​75239
  • test: skip dev/deploy testing for test/e2e/app-dir/segment-cache/revalidation/segment-cache-revalidation.test.ts: #​75249
  • misc: add Rauno to CI approved: #​75269
  • [Turbopack] include async loaders in chunking instead of separating it: #​75052
  • perf(turbopack): Use Pass API for styled-jsx SWC plugin: #​75271
  • perf(turbopack): Reduce needless allocations for SWC plugins: #​75275
  • Add test fixtures demonstrating export statement validation bugs: #​75277
  • Fix export statement validations for app router pages: #​75278
  • change turbopack-cli to new backend: #​75242
  • chore(turbo-tasks): Remove argument resolution from backends, only allow local-task-based argument resolution: #​75214
  • refactor(turbo-tasks): Merge dynamic_call/native_call with dynamic_this_call/native_this_call: #​75253
  • chore(turbo-tasks): Clean up consistency/untracked APIs around local outputs and cells: #​75171
  • fix(turbo-tasks): Implement is_transient on OperationVc: #​75291
  • [Turbopack] box InnerStorage to avoid overallocation: #​75287
  • [Turbopack] Inline commonly used storages: #​75284
  • perf(turbo-tasks): Add a 'local' option to #[turbo_tasks::function(..)]: #​75259
  • [Turbopack] avoid some allocations: #​75285
  • chore(turbo-tasks): Loosen some type bounds on ShrinkToFit for IndexMap, update indexmap crate: #​75193
  • perf: Update SWC plugins: #​75324
  • Getting Started docs: Consistent casing and naming: #​74637
  • Turbopack: CLI / perf improvements: #​75373
  • docs: fixed typo to auth.ts: #​75345
  • fix(create-next-app): use web standard error check for URL: #​71473
  • docs: remove infinite looping redirect: #​75376
  • chore(github): update more labels: #​75382
  • docs: let searchParams be Promise in <Form> example.: #​75386
  • [Turbopack] cleanup tracing spans and names: #​75385
  • Convert remaining sync (search)params access: #​75389
  • Turbopack: use type alias: #​75300
  • [cna] upgrade templates tailwind to v4: #​75407
  • chore(github): update more labels: #​75409
  • create-next-app: default to ESLint disabled: #​73864
  • Turbopack: Use from_utf8_unchecked for minify output: #​75422
  • docs: add optimizations for navigating between App/Pages router: #​75427
  • Add temporary CI workflows for testing: #​75432
  • [Turbopack] fix is_empty implementation: #​75426
  • docs: specify encryption for custom actions key: #​75425
  • chore(github): update more labels: #​75444
  • [Turbopack] only the first task read need to be strongly consistent: #​75435
  • perf(turbo-tasks): Filter out and do not cache unused arguments: #​75261
  • build: Update swc_core to v12.0.0: #​75327
  • chore(github): update github labels: #​75452
  • fix rustflags for musl targets: #​75599
  • Fix rewrite-headers test: #​75602
  • Turbopack CI: Update test results artifact: #​75429
  • Add package.json script for building turbopack-cli: #​75031
  • [Turbopack] update event_listener to fix hanging bug: #​75481
  • Turbopack: add dedicated TracedAsset: #​75510
  • Turbopack: generate shorter variable idents: #​75611
  • [Turbopack] connect children in a batch when task is about to finish: #​74773
  • Update test-junit-report path: #​75612
  • [Turbopack] add more options for production chunking: #​75544
  • Turbopack: Skip Traced chunking type in module graph: #​75608
  • fix(turbo-tasks): Fix building with --features=turbo-tasks/hanging_detection: #​75584
  • Turbopack: Disable react_refresh code in production: #​75535
  • chore: remove global-error in hello-world example: #​75509
  • [Turbopack] limit the number of concurrent fs operations: #​75480
  • Fix rustflags in *-musl builds: #​75614
  • Update test-junit-report path: #​75612
  • [Turbopack] add more options for production chunking: #​75544
  • Turbopack: Skip Traced chunking type in module graph: #​75608
  • fix(turbo-tasks): Fix building with --features=turbo-tasks/hanging_detection: #​75584
  • Turbopack: Disable react_refresh code in production: #​75535
  • chore: remove global-error in hello-world example: #​75509
  • [Turbopack] limit the number of concurrent fs operations: #​75480
  • Fix rustflags in *-musl builds: #​75614
  • Ensure junit-report is uploaded: #​75615
  • refactor(turbo-tasks): Port task statistics to the new backend: #​75303
  • Bring back rust bindings path: #​75620
  • Turbopack: short module ids in cli: #​75357
  • perf(turbo-rcstr): Fix the fast codepath for RcStr::into_owned(): #​75504
  • Fix corepack keys in deploy e2e tests: #​75622
  • chore(turbo-tasks): Add test for argument filtering: #​75585
  • perf: Make next-page-static-info use Atom instead of String: #​75587
  • refactor(turbo-tasks): Codemod/migrate all ResolvedVc casting callsites to use the new synchronous APIs: #​75547
  • perf: Make cjs_optimizer use Atom instead of String: #​75588
  • perf(turbo-tasks-fs): Call shrink_to_fit when building an immutable Rope: #​75505
  • chore(turbopack): Remove unmaintained fxhash crate, use rustc-hash instead: #​75530
  • chore(github): add conditional to triage workflow: #​75524
  • chore(github): update stale bot: #​75630
  • perf(turbopack): Update rustc-hash from 1.1.0 to 2.1.0: #​75531
  • perf(next-custom-transforms): Replace non-Sync Rc<DashMap<_, _>> usage with Rc<RefCell<FxHashMap<_, _>>>: #​75534
  • refactor(turbopack): Define and use an FxDashMap alias everywhere: #​75538
  • perf(turbopack): Migrate as many data structures to FxHash as possible: #​75546
  • Disable rewrite-headers tests that are dependent on Vercel site config: #​75647
  • docs: remove unused imports: #​75653
  • Run build-nextjs for Turbopack test runs on metal machines instead of GitHub hosted runner: #​75654
  • perf: Make next_ssg use Atom instead of String: #​75591
  • Remove github runner specific step: #​75655
  • [Turbopack] fix dependencies on own task: #​75658
  • Turbopack: OutputAsset::path(): #​75659
  • [Turbopack] use Timestamp type, allow spans less than 1µs: #​75479
  • Turbopack: generate less JS before minification: #​75358
  • [Turbopack] correctly apply defines: #​75643
  • Turbopack: don't cell CodeGen-s: #​75513
  • perf: Make barrel optimizer use Atom instead of String: #​75592
  • perf: Make RSC pass use Atom instead of String: #​75593
  • perf: Make server action pass use Atom instead of String: #​75594
  • [Turbopack] sort spans by start date in tracing: #​75642
  • [Turbopack] setup aggregation number before connecting children: #​74910
  • perf: Make page exports stripper use Atom instead of String: #​75595
  • perf: Make page static info use Atom instead of String: #​75596
  • [Turbopack] reduce the number of spans created in task completion: #​75437
  • [Turbopack] wait for output instead of waiting for task completion: #​75438
  • perf: Remove needless Arc: #​75601
  • Turbopack: make IssueSource a TaskInput: #​75542
  • Unflake cookies/headers/draftMode in "use cache" test: #​75675
  • Turbopack: don't watch output FS: #​75680
  • Turbopack: uncell RequireContextValue: #​75683
  • Turbopack: cache variables in linker: #​75440
  • Turbopack: disambiguate TaskInput::resolve: #​75661
  • Turbopack: remove last stray lint ignore comments: #​75519
  • Update swc_core to v13.0.4: #​75684
  • test: fix eslint plugin test: #​75687
  • Add regression test for previously hanging compilation with Turbopack: #​75507
  • chore(turbo-tasks): Remove support for local_cells (a specific mode of local tasks we ended up not using): #​75672
  • docs: fix example for multiple tags in cacheTag usage: #​75693
  • Turbopack: lazily evaluate obj for member replacements: #​75453
  • Fix lint for cacheTag doc: #​75703
  • [Turbopack] disable dependency tracking for next build: #​75704
  • Add test to verify which pages are prerendered in use-cache test suite: #​75681
  • chore(next-swc-napi): Remove unused(?) rlib target: #​75707
  • Turbopack: add test for local tasks in traits: #​75708
  • Revert "chore(next-swc-napi): Remove unused(?) rlib target": #​75745
  • [Turbopack] use new backend in next-build-test: #​75724
  • [Turbopack] Reduce memory: #​75723
  • Report build-and-deploy failures: #​75749
  • Turbopack: uncell AstPath: #​75695
  • Turbopack: switch some deps back to upstream: #​75752
  • Turbopack: less tasks in with_modules: #​75700
  • chore(turbopack): Remove legacy next.js HMR compat code: #​75725
  • Turbopack: make ModulePart a TaskInput: #​75364
  • Turbopack: remove SWC CSS sourcemap variant: #​75753
  • docs: follow up fix: #​75760
  • chore(github): add labels-to-add-when-unstale label -> not stale: #​75721
  • docs(route-segment-config): remove line in force-dynamic mentioning it's like getServerSideProps: #​75773
  • Return null if Redbox has no component stack: #​75744
  • unsupported should be supported in docs: #​75772
  • build: Update swc_core to v13.1.0: #​75771
  • chore(github): skip nissuer when Documentation issue template is used: #​75802
  • refactor: Use shrink-to-fit crate instead: #​75777
  • Delete expirePath and expireTag pages (again): #​75691
  • docs: add Chrome debugging port configuration steps: #​75845
  • [test] More accurate stack assertions in terminal: #​75355
  • refactor(tests): Refactor environment reload HMR test: #​75875
  • [Turbopack] fix recompute invalidation: #​75850
  • [Turbopack] allow to configure last successful parse cache state: #​75851
  • [Turbopack] remove asset context and layer from static files: #​75892
  • [Turbopack] fix hanging bug caused by incorrect active counter handling on stale tasks: #​75732
  • [Turbopack] prefer to use the node.js process where we invested the most time: #​75894
  • Turbopack: remove unused code: #​75897
  • [Turbopack] allow to disable active tracking in turbo-tasks: #​75899
  • [Turbopack] add fast path for increase active count: #​75900
  • test: align existing testing util: #​75844
  • [Turbopack] Add final_read_hint API and change clone_value to owned: #​75852
  • Turbopack: use result instead of panic: #​75903
  • fix(turbopack): Update Cargo.toml/package.json license field for turbopack-related crates: #​75889
  • Turbopack: source locations as u32: #​75705
  • test: Write files before install: #​75906
  • docs(css-in-js): update warning about using css-in-js with server components: #​75931
  • docs: update CRA guide: #​75939
  • docs: fix typo in use-cache.mdx: #​75848
  • Update 01-installation.mdx: #​75788
  • fix typo in 07-updating-data.mdx: #​75711
  • docs: fixed wrong import for unauthorized: #​75420
  • docs: incorrect anchor on searchParams link: #​75266
  • Fixed link to stale-while-revalidate article: #​74949
  • Stop using deprecated TURBO_REMOTE_ONLY: #​75832
  • Turbopack: store serialized sourcemaps instead: #​75791
  • Add test for missing sourcemap loader support of ignoreList: #​75907
  • Update sourcemap tests due to recent Turbopack changes: #​75954
  • [Turbopack] scale down process pool when module graph is finished: #​75896
  • Fix flaky error-recovery test: #​75948
  • [Turbopack] disable session dependent tasks when dependency tracking is disabled: #​75965
  • docs: fix use pattern: #​75529
  • docs: fix prettier error: #​75968
  • Add (failing) test for module based feature telemetry in App Router: #​75952
  • [docs] update tailwind installation instruction to v4: #​75739
  • fix: compiler error when next/cache is used in a client module: #​75979
  • Update toolchain to nightly-2025-02-12: #​75983
  • fix(CI): Initialize non-existent bundler manifests: #​75987
  • [Turbopack] improve race condition handling of scheduling: #​75748
  • Check for visibility not just existence of Redbox: #​75846
  • ci: fix version-staleness test: #​76020
  • fix(turbopack CI): Pin corepack version for production tests manifest update action: #​75986
  • Fix unisolated tests: #​76018
  • [Turbopack] fix hanging and flaky issues: #​76032
  • [Turbopack] only invalidate fs writes with a different content: #​75936
  • [Turbopack] fix tree shake ident on code generation: #​75970
  • [Turbopack] avoid allocating on AggregationUpdateQueue::new: #​76034
  • [Turbopack] add tracing to turbopack-tests: #​76033
  • [Turbopack] avoid creating many ModuleOptions: #​76035
  • fix recomputation when reading gc'ed cells from in progress tasks: #​75969
  • [Turbopack] try to avoid cloning AST during code generation, pass final_read_hint: #​75853
  • [Turbopack] make make_chunks a non-turbo-tasks-function: #​76042
  • Turbopack: less CodeGenerateable for references: #​75963
  • Turbopack: refactor how EsmAssetReferences are added: #​76011
  • Turbopack: codegen EsmAssetReference without turbo tasks: #​76024
  • Fix stale snapshots: #​76116
  • Turbopack: Fix static generation test: #​76125
  • Cleanup experimental.reactOwnerStack: #​76123
  • Turbopack: Fix middleware test: #​76126
  • Current behavior for reportError: #​76115
  • test: replace explicit padding-bottom with devIndicators: false for scroll position testing: #​76105
  • Turbopack: less turbo tasks for chunk_item.id(): #​76110
  • Turbopack: Add passing test to manifest: #​76143
  • Improve server actions sourcemap test: #​76129
  • build: Update swc_core to v14.0.0: #​76135
  • refactor(turbopack): Simplify minify(): #​76139
  • feat(turboyet): Upload test data for both bundlers: #​76090
  • chore(github): add Error Overlay area: #​76167
  • Put flaky use-cache-unknown-cache-kind dev tests in sandboxes: #​76171
  • Turbopack: compute async info from module graph: #​76118
  • Report tests to Datadog from Job that executed them: #​73180
  • Align Redbox test helpers: #​76213
  • Fix stale snapshots: #​76237
  • Ensure datadog upload is skipped for forks: #​76238
  • docs: Fix link on UPGRADING.md: #​75761
  • [Turbopack] add many pages bench: #​76244
  • [Turbopack] remove ChunkingType::Passthrough: #​76217
  • [Turbopack] add concept of ChunkGroups: #​76218
  • [Turbopack] increase hash length to avoid hash conflict: #​76245
  • [Turbopack] add ChunkingType::Shared: #​76228
  • Turbopack: Fix 500 handling in edge with pages router: #​76155
  • Turbopack: Update app-dir tests: #​76145
  • Turbopack panic handler: link to bug report issue template: #​76226
  • Disable turbo daemon by default: #​76248
  • Unflake ppr-full tests: #​76271
  • docs(errors): minor update to failed-to-find-server-action error page: #​76296
  • docs(cookies): update good-to-know for cookie.delete: #​76303
  • Turbopack: ignore invalid sourcemaps for now: #​76215
  • Update outdated snapshots: #​76318
  • [Turbopack] smarter merging of small chunks in production chunking: #​76319
  • [ci]: skip use-cache deployment test: #​76334
  • [Turbopack] merged chunks need to have min overlap of 2 merge remainers into chunk: #​76320
  • test: disable metadata streaming deployment tests: #​76335
  • [Turbopack] allow to merge into big enough chunk candidate when 100% overlap: #​76321
  • [Turbopack] compute expected benefit of merging chunks and use that as factor: #​76331
  • Update datadog job to use pnpm dlx: #​76337
  • docs: add Logto auth library: #​75176
  • [test] Use new Redbox matchers in pages/ hydration-error test: #​76350
  • test: update snapshot for component stack: #​76359
  • Update error-recovery test snapshots for alternative bundler: #​76299
  • 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
  • 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
  • [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
  • refactor(CI): Convert daily turbopack (areweturboyet) integration tests into reusable workflows: #​76251
  • 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
  • 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
  • Move known failed test back into failed set in Turbopack manifest: #​76542
  • Run React 18 tests for automated update MRs: #​76544
  • Skip globally installing turbo CLI: #​76532
  • docs(errors): update suppressHydrationWarning section: #​76521
Credits

Huge thanks to @​ijjk, @​unstubbable, @​bgw, @​gnoff, @​eps1lon, @​ztanner, @​mischnic, @​Marukome0743, @​leerob, @​gaojude, @​lubieowoce, @​acdlite, @​kdy1, @​JamBalaya56562, @​creationix, @​noreiller, @​samcx, @​delbaoliveira, @​styfle, @​abdonrd, @​ollyw, @​wyattjoh, @​devjiwonchoi, @​aymericzip, @​davidhu2000, @​attilarepka, @​devpla, @​dydals3440, @​huozhi, @​wbinnssmith, @​suu3, @​PapatMayuri, @​Sahil4883, @​abyii, @​molebox, @​sokra, @​maciej-ka, @​abvthecity, @​damiensedgwick, @​alitas, @​RiskyMH, @​ytreister, @​sommeeeer, @​n1ckoates, @​yongholeeme, @​spidersouris, @​gurkerl83, @​cassiossantos, @​Netail, @​tknickman, @​eur00t, @​cseas, @​nnnnoel, @​timneutkens, @​Manoj-M-S, @​lfades, @​sebmarkbage, @​matmannion, @​mikeboensel, @​nphmuller, @​apostolos, @​k15a, @​pavelee, @​locothedev, @​vexcat, @​Zach-Jaensch, @​decepulis, @​gadcam, @​lukahartwig, @​jsanford8, @​RobinMalfait, @​raunofreiberg, @​mohsen1, @​skushagra, @​feedthejim, @​amannn, @​HQidea, @​jrandolf, @​smit-err, @​littledivy, @​k35o, @​martinsione, @​CvX, @​msereniti, @​Timer, @​Iftee97, @​chibicode, @​RobPruzan, @​padmaia, @​PlagueFPS, @​bjunix, @​maximevtush, @​michaelven, @​sedlukha, @​johannpinson, @​AxelUser, @​Nayeem-XTREME, @​IcaroG, @​blurrah, @​lachlanjc, @​ashi009, @​conico974, @​raphaelcosta, @​dulmandakh, @​khuezy, @​Knoa0405, @​wangsijie, @​stefanprobst, @​wentsul, @​loopy-lim, @​bratvanov, @​hedgeday, @​cassian-goode, @​artemszelenov, and @​saltcod for helping!

v15.1.8

Compare Source

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

Core Changes
  • fix: Merge link header from middleware with the ones from React (#​73431)
  • fix(edge): run after() if request is cancelled mid-streaming (#​76013)
  • gate segmentCache branch in base-server (#​79505)
Credits

Huge thanks to @​amannn, @​lubieowoce, and @​ztanner for helping!

v15.1.7

Compare Source

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

Core Changes
  • fix: work around setTimeout memory leak, improve wrappers (#​75727)
  • add additional x-middleware-set-cookie filtering (#​75869)
  • fix: ensure lint worker errors aren't silenced (#​75766)
Credits

Huge thanks to @​lubieowoce and @​ztanner for helping!

v15.1.6

Compare Source

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

Core Changes
  • fix: don't memory-leak promises passed to waitUntil (#​75041)
  • backport: fix prerender issue with intercepting routes + generateStaticParams (#​75170)
Credits

Huge thanks to @​lubieowoce and @​ztanner for helping!

v15.1.5

Compare Source

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

Core Changes
  • Fix missing revalidate with notFound() (#​75009)
  • fix: when metadatabase is set we should not warn (#​74840)
  • Fix @​vercel/og license SPDX expression (#​74745)
  • fix: ts language server rule metadata should allow null (#​74704)
  • fix: eslint rule of using img in metadata routes (#​74864)
  • Fix presentation when onerror receives an event without error (#​74643)
  • fix fetch lock not being consistently released #​74623 (#​75028)
Credits

Huge thanks to @​ijjk, @​huozhi, @​matmannion and @​ztanner for helping!

v15.1.4

Compare Source

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

Core Changes
  • backport: force module format for virtual client-proxy (#​74608)
  • Fix prerender tags when notFound is called (#​74607)
  • Use provided waitUntil for pending revalidates (#​74604)
  • Feature: next/image: add support for images.qualities in next.config (#​74588)
  • Chore: docs: add missing search: '' on remotePatterns (#​74587)
  • Chore: docs: update version history of next/image (#​73923) (#​74570)
  • Chore: next/image: improve imgopt api bypass detection for unsupported images (#​74569)
Credits

Huge thanks to @​ and @​ for helping!

v15.1.3

Compare Source

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

Core Changes
  • Retry manifest file loading only in dev mode: #​73900
  • Use shared worker for lint & typecheck steps: #​74154
Credits

Huge thanks to @​unstubbable and @​ztanner for helping!

v15.1.2

Compare Source

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

Core Changes
Credits

Huge thanks to @​ztanner for helping!

v15.1.1

Compare Source

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

Core Changes
Credits

Huge thanks to @​devjiwonchoi and @​ztanner for helping!

v15.1.0

Compare Source

Core Changes
  • fix: decrypt bound args before generating a cache key: #​72463
  • Fix the path to the next/experimental/testing/server export: #​72527
  • Expand server-source-maps scenarios to cover Edge runtime: #​72288
  • Ensure logged errors in Edge runtime include the stack: #​72394
  • fix: added cache control headers for static app routes: #​72521
  • capture console issues as console errors: #​72468
  • Add expireTag and expirePath APIs: #​72485
  • fix: try/catch access to localStorage within __NEXT_APP_ISR_INDICATOR useEffect: #​72362
  • Move client build ID to a global variable: #​72592
  • refactor(turbopack): Remove swc_css: #​72602
  • Bypass source map dev middleware for client chunks: #​72581
  • chore: remove rc from URL: #​72599
  • improve no-img-element lint error message: #​72410
  • Combine bound "use cache" closure args into a single parameter: #​72587
  • [Turbopack] add BackendOptions and allow to disable dependencies, children and storage: #​72426
  • Omit unused args when calling "use cache" functions: #​72506
  • Add experimental clientSegmentCache flag: #​72626
  • Add compiler.define option: #​71802
  • Fix static indicator with dynamicIO: #​72631
  • Allow usage of Node.js prereleases: #​72635
  • improved network url in (dev) cli: #​72634
  • chore: update getting-started/react-essentials path: #​72250
  • Fix static indicator for pure IO case: #​72639
  • Bump the monorepo packages TypeScript to 5.6.3: #​72625
  • Bump @capsizecss/metrics to 3.4.0 for Geist Google Font: #​72746
  • refactor: remove unused asNotFound property: #​72585
  • Remove unused enabled config from server actions transforms: #​72755
  • Ensure Next.js is ignore-listed when used as external: #​72498
  • Bump eslint-plugin-react to 7.37.0: #​72759
  • upgrade amphtml-validator to 1.0.38: #​72645
  • fix multi-level redirect in server actions: #​72770
  • refactor: rename error boundary not-found to http-error-fallback: #​72586
  • Upgrade React from 5c56b873-20241107 to 7ac8e612-20241113: #​72768
  • Re-use randomly selected dev server port for automatic restarts: #​72771
  • Emit build error when "use cache" is used without dynamicIO enabled: #​72781
  • fix: not found bounary prop: #​72784
  • silence sass legacy-js-api warning: #​72632
  • [Segment Prefetch] Move access token to route tree: #​72775
  • Add internal affordances to show ignore-listed stackframes in terminal: #​72763
  • chore(turbopack): Centralize reqwest TLS feature configs in turbo-tasks-fetch: #​72526
  • Upgrade React from 7ac8e612-20241113 to 380f5d67-20241113: #​72819
  • Shorten unsourcemapped absolute locations in terminal stacktraces: #​72764
  • codemod: replace revalidate(Tag|Path) to expire(Tag|Path): #​72826
  • "Fix": Lift type check out of loop: #​72840
  • hide stack trace in CanaryOnlyError: #​72859
  • Allow missing CacheNodeSeedData during prefetch: #​72857
  • Add Segment Cache feature check to prefetch API: #​72861
  • Extract shared fetchFromServerResponse logic to separate functions: #​72865
  • [Segment Cache] Implement behavior on cache miss : #​72841
  • Emit build error for unknown cache kinds: #​72832
  • Resolve mdx plugins string format: #​72802
  • MDX: Only set experimental.turbo if enabled: #​72856
  • [Turbopack] change persistent caching option to a boolean: #​72458
  • refactor: generalize next route error helpers: #​72774
  • Ensure host is in allowed headers: #​72867
  • refactor: types for collected cache info in route modules: #​71434
  • feat(turbopack): Enable tree shaking for modules with dynamic imports: #​71692
  • Fix unhandled rejection in proxy-request: #​72530
  • chore(build): remove injecting fast refresh to custom loader logs: #​72870
  • ensure webpack worker exits bubble to parent process: #​72921
  • Fix sourcemaps for internal client boundaries: #​72922
  • Turbopack: thread tracing through to resolve results: #​72314
  • Upgrade vercel og: #​72954
  • Turbopack NFT: trace manifests and externals: #​72316
  • Turbopack: NFT followups: #​72517
  • Support custom servers with minimal node modules: #​72966
  • Add support for ignore-listing sources in index maps: #​72913
  • Turbopack: fix loading of externals on Edge: #​72349
  • Bump SWC used for transpiling Next.js sources: #​72993
  • fix: ensure HTML validity for the next-size-adjust meta tag: #​72994
  • Revert "Support custom servers with minimal node modules": #​73003
  • Allow CacheNode.loading to be a promise: #​72872
  • Properly encode dynamic access in segment prefetch: #​72874
  • [Segment Cache] Send during route prefetch: #​72890
  • fix(next/image): improve svg heuristic for unoptimized: #​72970
  • [Segment Cache] Initial implementation: #​72875
  • Turbopack: Change edge wrapper to proxy exports : #​72502
  • experimental: css inlining: #​72195
  • Display where the env was loaded from when enabled typedEnv: #​70951
  • create forked impl for Link component: #​73019
  • remove unnecessary handling in forked Link components: #​73020
  • Pass down ignored field to error overlay: #​72925
  • remove locale from app link: #​73052
  • fix: server action redirects between multiple root layouts: #​73063
  • Add forbidden and unauthorized APIs: #​72785
  • chore: rename modules for better meaning and searching: #​73067
  • fix(next/image): reduce avif sharp effort from 4 to 3 for faster encoding: #​73030
  • (E2E) Log which config file is used for next start: #​73105
  • Remove extra space in envionment log: #​73108
  • remove inheritance from NextCustomServer: #​73005
  • Align navigation digest with message: #​73074
  • refactor: move redirect helpers into separate module: #​73118
  • Update font data: #​73115
  • Current behavior for fallbacks with async metadata and prefetching: #​73106
  • Revert "ensure webpack worker exits bubble to parent process (#​72921)": #​73136
  • Reapply "ensure webpack worker exits bubble to parent process (#​72921)": #​73138
  • Upgrade React from 380f5d6-20241113 to b01722d-20241114: #​73107
  • Implement metadata types support for exactOptionalPropertyTypes: #​72936
  • Reenable otel test for Turbopack: #​73093
  • Omit unnecessary cache wrapper import: #​73160
  • Increase max cache tags to 128: #​73124
  • Do not inline CSS in RSC payload for dynamic client nav: #​73182
  • fix(next/image): dpl query string should only be used for local images, not remote images: #​73184
  • feat(after): unflag unstable_after internals: #​73190
  • feat(after): allow using unstable_after in generateStaticParams: #​73217
  • Error on navigation API usage in pages router and middleware: #​73100
  • Undeprecate revalidate APIs and rename expire APIs: #​73193
  • Revert "codemod: replace revalidate(Tag|Path) to expire(Tag|Path)": #​73269
  • feat(after): wait for after-callbacks before server shutdown: #​72590
  • Fixed interception on a catch-all route: #​72902
  • add option to disable experimental CssChunkingPlugin: #​73286
  • rename cssChunkPlugin experimental options: #​73291
  • Replace the group frames with button for ignored frames: #​72964
  • handle pages router ignored frames: #​73280
  • fix(after): no request APIs in force-static: #​73321
  • fix(after): allow reading draftMode status in after: #​73324
  • [Turbopack] reland refactor filesystem writes to an effect based system: #​73294
  • fix(pages): dynamic css missing style after client navigation: #​72959
  • Make notFound() work in "use cache" page: #​73210
  • refactor(after): remove unnecessary conditionals: #​73447
  • Bump @swc/core to 1.9.3: #​73420
  • fix: running cleanup before server is initialized: #​73476
  • [edge-runtime] drop node16: #​73432
  • feat(after): allow request APIs in after (actions/handlers): #​73345
  • Sourcemap errors logged in Edge runtime: #​73438
  • refactor: rename ALS instances to prevent bad auto imports: #​73480
  • Show a proper error if a server function's bound args cannot be serialized: #​73471
  • remove unnecessary internal middleware header from response: #​73482
  • Ensure Issue Overlay sourcemaps externals in Turbopack: #​73439
  • Fix missing error message in terminal for bound args serialization error: #​73508
  • fix: memory leak from warnOnce(): #​73483
  • Upgrade React from b01722d5-20241114 to 1b1283ad-20241203: #​73506
  • Fix: Importing an ESM file from next/dist/client/.js fails: #​73485
  • fix: fixed dedupe response cloning: #​73274
  • Upgrade React from 1b1283ad-20241203 to de68d2f4-20241204: #​73525
  • fix(after): improve error message if promise arg rejects: #​73524
  • feat: added compression to resume data cache using deflate: #​73227
  • Use React 19 stable in Pages Router: #​73562
  • Use stable @types/react: #​73563
  • Cache the bound args encryption result for inline server functions: #​73521
  • chore: remove non-existent hash fragments from URLs: #​73165
  • next-upgrade: Ensure highest versions are used not latest: #​73566
  • Upgrade React from de68d2f4-20241204 to 1c9b1387-20241204: #​73565
  • Use consistent error formatting in terminal: #​71909
  • [Segment Cache] Interception routes: #​73434
  • Upgrade to typescript 5.7: #​73594
  • [Segment Cache] Use LRU to manage cache data : #​73486
  • [Segment Cache] Add isPartial to segment prefetch : #​73528
  • Fix missing client reference manifest error when using route groups: #​73606
  • feat(after): stabilize unstable_after: #​73605
  • [Segment Cache] Add isHeadPartial: #​73530
  • fix: do not add suffix for sitemap under group routes: #​73570
  • Dynamic IO: Improve error handling: #​73607
  • fix: Update @​swc/helpers: #​73666
  • Upgrade React from 1c9b1387-20241204 to 7283a213-20241206: #​73608
  • next-codemod(upgrade): handle absence of scripts in package.json: #​73688
  • Add inlineCss trade-offs/gotchas and remove canary check: #​73609
  • Ignore-list stack frames in node_modules even if not explicitly ignore-listed by their sourcemaps: #​73689
  • Remove ignore for anonymous stack frame: #​73610
  • test: move HMR Error Recovery test to a separate file: #​73592
  • test: move HMR basic test to a separate file: #​73612
  • fixes webpack persistent caching in development and add test case for persistent caching: #​73697
  • fix: empty generateStaticParams should still create an ISR route: #​73358
  • Limit the number of concurrently open file watchers on macos: #​73741
  • fix: warnOnce() lru: #​73742
  • [Segment Cache] Respond with 204 on cache miss: #​73649
  • [Segment Cache] Skip dynamic request if possible: #​73540
Example Changes
  • example: add more files to playwright .gitignore: #​72447
  • examples: update app-dir-i18n-routing to v15: #​72636
  • chore(example): add example for image optimization with secure compute: #​72641
  • examples: update app-dir-i18n-routing to v15: #​72642
  • examples: polish some README.md: #​72117
  • examples(with-supabase): fix action type error: #​72783
  • use explicit resource management for sandbox: #​72780
  • update: remove unnecessary in Dockerfile: #​72534
  • Fix Mongoose example failed build due to env variable not found: #​72918
  • (example) using await params when dynamic routing: #​72896
  • Updated the example of with-styled-jsx-scss to utilize the App Router.: #​70567
  • Updated the example of with-styled-jsx-plugins to utilize the App Router: #​70663
  • Updated the example of with-unstated to utilize the App Router.: #​73211
  • updated with-react-foundation example to utilize the App router.: #​73243
  • updated with-plausible example to utilize the app router.: #​73255
  • updated with-cssed example to utilize the app router.: #​73348
  • updated with-babel-macros example to utilize the app router.: #​73347
  • updated image-legacy-component example to utilize the app router.: #​73344
  • updated with-styletron example to utilize the app router.: #​73252
  • updated with-context-api example to utilize the App Router.: #​73316
  • updated with-mqtt-js example to utilize the App Router.: #​73303
  • chore(examples): update api-routes-cors: #​73408
  • chore: release turbopack npm packages: #​73443
  • examples: remove app-dir in i18n-routing directory name: #​73453
  • examples: move Postgres example: #​73531
  • Bump examples/** Eslint to v9: #​73560
  • Update with next sass example: #​73548
  • examples: remove next-env.d.ts files: #​73673
  • examples: update with-sass README.md: #​73668
  • examples: remove next-offline example: #​73675
  • examples: remove the old files from with-postgres: #​73587
  • examples: remove with-emotion-* directories: #​73674
  • updated with-ionic-typescript example to utilize the App Router.: #​73418
  • examples: update with-styletron README.md: #​73411
  • examples: update with-babel-macros README.md: #​73410
  • examples: update with-plausible README: #​73305
  • examples: unify related CMS examples in README: #​73247
  • examples: fix view source pathname at image-legacy-component: #​73414
  • examples: remove with-styled-components-babel: #​73229
  • examples: replaced GTM component with GA in Google Analytics example: #​73597
  • examples: introduce LaunchPad in strapi: #​73244
  • examples: remove with-storybook-styled-jsx-scss: #​73228
Misc Changes
  • Revert "[Turbopack] add rocksdb": #​72505
  • [Docs]: Remove try catch and link to error handling docs: #​72500
  • [Turbopack] improve performance of the trace server: #​71661
  • Docs: Move next.config.js API pages under a config folder, fix headings in TS and ESLint config pages: #​72465
  • Skip canary checks during internal development with VSCode: #​72504
  • Devlow snowflake backend: use milliseconds instead of seconds for event time: #​72490
  • [Turbopack] add TODO comment: #​72510
  • docs: unify the header deps by removing #: #​72451
  • fix: remove unnecessary fragment: #​72492
  • Fix grammatical error: remove unnecessary 'a' in 03-server-actions-and-mutations.mdx: #​72496
  • docs: fix broken link: #​72169
  • codemod(turbopack): Replace return Err(anyhow!()) with anyhow::bail!(): #​72487
  • Upgrade React from 66855b96-20241106 to 5c56b873-20241107: #​72469
  • fix(turbopack): Remove self-references from tree shaking results: #​72567
  • Turbopack: Don't run PostCSS on internal assets: #​72579
  • Update swc_core to v5.0.4 from v5.0.1: #​72604
  • (e2e) module-level patchFileDelay flag: #​72439
  • docs: remove unstable_after from Dynamic APIs: #​72595
  • chore: release turbopack npm packages: #​72491
  • Include bound args param in server reference information byte arg mask: #​72588
  • [Turbopack] fix bug where task was not recomputed when stale: #​72509
  • CNA: prompt enable turbopack value to true: #​72616
  • docs(use-cache): add missing function to page component examples: #​72620
  • docs(data-fetching): fix static params as promise examples : #​72565
  • Re-enable fetch logging test - HMR: #​72640
  • [Turbopack] migrate benchmark to new backend: #​72457
  • test: add wait for the error page navigation: #​72760
  • CNA: use eslint 9: #​72762
  • CNA: replace geist font from local to google: #​72618
  • fix(turbopack): Depend on side effect from import binding: #​72601
  • chore: keep create-next-app messages and docs the same: #​72444
  • ci: flake detection should run in both bundlers: #​72773
  • [Turbopack] reduce nesting: #​72747
  • docs: update file structure: #​72748
  • chore(cna): switch to .mjs tailwind config: #​72124
  • [Turbopack] fix collectibles counting and aggregation: #​72609
  • [Turbopack] implement dispose root task: #​72611
  • feat(turbopack): Merge single-pointer nodes in reverse direction: #​72571
  • test: fix hydration error on not-found test texture: #​72818
  • docs(turbo-tasks): Improve RcStr docs: #​72825
  • fix(turbopack): type error when "dynamic_embed_contents" is on: #​72828
  • [Turbopack] make issue ordering stable: #​72751
  • refactor(turbopack): Use ResolvedVc for turbopack crate: #​72791
  • refactor(turbo-tasks): Simplify most type bounds on Vc and related types: #​72823
  • fix(turbopack): Fix CSS Module renaming behavior for @container: #​72607
  • refactor(turbopack): Cleanup tree shaking graph logic: #​72836
  • [Turbopack] fix hanging waiting on in progress cells: #​72758
  • [Turbopack] avoid writing manifests in data/rsc variant of page: #​72767
  • Consolidate server actions transform errors into emit_error function: #​72811
  • refactor(turbo-rcstr): Move turbo_tasks::RcStr into it's own crate: #​72858
  • Add explicit section about type overriding for v15: #​72866
  • refactor(turbopack): Use ResolvedVc for turbopack-ecmascript: #​72564
  • refactor(turbopack): Use graph for server action workaround: #​72812
  • [Turbopack] refactor filesystem writes to an effect based system: #​72847
  • Fix sourcemaps for async Turbopack chunks: #​72827
  • docs(turbopack): Document build dependency on clang for rocksdb: #​72493
  • Clarify how MDX plugins are supported in Turbopack: #​72917
  • Turbopack: Don't replace constant conditions with sideeffects: #​72608
  • [Turbopack] fix effects tracing: #​72928
  • docs: fix code block language in redirecting docs: #​72944
  • docs: fix code block language in error pages: #​72943
  • docs: update "Migrate to async Dynamic APIs" docs: #​72852
  • Fix broken link to the rootDir doc: #​72893
  • docs: use relative urls: #​72941
  • docs: add the section titles to error page: #​72942
  • simplify vapid key generation docs: #​72916
  • docs: add and unify notes to error pages: #​72838
  • feat(turbopack): Implement module walking for side effect optimization: #​71241
  • docs: remove deprecated frameborder, adjust allowFullScreen and update the demo: #​72644
  • docs: fix code block language: #​72839
  • Docs: Changing information about data fetching cache: #​72301
  • Turbopack: apply effects in tests: #​72952
  • doc: remove internal customServer flag from custom server docs: #​72962
  • codemod(turbopack): Some more script-generated migrations to ResolvedVc: #​72889
  • Consolidate FnExpr and FnDecl server function transforms: #​72960
  • Allow method properties to be server functions: #​72969
  • Include debug script in test directories: #​72992
  • docs(sitemap): remove extra 's': #​73023
  • chore(turbopack-core): Delete dead all_modules_and_affecting_sources helper function: #​73016
  • [Turbopack] concurrent write batches and little endian encoding: #​72929
  • Remove unused retry around browser.eval: #​72999
  • [Turbopack] Invalidation and Persisting fixes: #​72950
  • docs: missing await when using params: #​73044
  • docs: incorrect params.id: #​73045
  • Remove hardcoded timeouts in Redbox test helpers: #​73000
  • perf(turbopack): Enable merging of export fragments: #​72813
  • Turbopack build: Add bench for Turbopack cache: #​73040
  • 🍪 Understanding Cookie Behavior in Server Components: #​73001
  • docs: add Fleek's Next.js template: #​72988
  • docs(fetch): clarify default fetch behavior: #​72982
  • docs: update staleTimes.mdx: #​72967
  • docs: Redirecting fix route handler path: #​72617
  • Rename waitForAndOpenRuntimeError to openRedbox: #​72996
  • Revert "docs: add Fleek's Next.js template": #​73054
  • fix benchmark directory: #​73057
  • hmr-test waits for compile signal: #​73064
  • docs(next-config): add experimental inline css docs: #​73070
  • docs: update tags when upgrading from 13 to 14: #​73071
  • docs: fix static params as promise examples: #​72553
  • fix: missing await, missing type Promise: #​73088
  • Disallow multiple server directives at the same level (file or function): #​73018
  • Docs: Add canary tags to expirePath and expireTag: #​73096
  • docs: update pages automatic static optimization rendering page: #​72545
  • docs(authentication): fix typescript code example: #​72533
  • docs: add details on React Compiler annotations with "use memo": #​73053
  • docs: fix code block language on redirecting docs: #​73073
  • docs(routing): update params type to be async (v15): #​73111
  • docs: clarify Switching to Dynamic Rendering section: #​73113
  • Method/function props of exported objects are not server functions: #​73058
  • Forbid this and arguments in server functions: #​73059
  • port turbopack-swc-utils to ResolvedVc: #​73086
  • port turbopack-mdx to use ResolvedVc: #​73080
  • feat: Update lightningcss to v1.0.0-alpha.61: #​73161
  • port turbopack-resolve to ResolvedVc: #​73083
  • move turbopack-image to ResolvedVc: #​73079
  • Turbopack: more tracing spans: #​73010
  • Handle server function directives in class methods: #​73060
  • 15.1 docs: forbidden, unauthorized, and authInterrupts: #​73039
  • Enable another Turbopack build test: #​73166
  • CNA: replace .eslintrc.json with eslint.config.mjs: #​73162
  • Turbopack: don't compute all paths for builds: #​73036
  • perf(turbopack): Use ResolvedVc for turbopack-css: #​73172
  • Revert change to ReactRefreshRequire test: #​73186
  • chore(CI): Remove sysroot override for macos arm64: #​73188
  • docs: Improve Accuracy and Type Safety on Data Fetching Examples: #​73122
  • docs: eslint flat config: #​73167
  • perf(turbopack): Use ResolvedVc for turbopack-core: #​73065
  • perf(turbopack): Use ResolvedVc for turbopack, turbopack-tests, turbopack-wasm: #​73196
  • perf(turbopack): Use ResolvedVc for turbopack-nodejs: #​73200
  • perf(turbopack): Use ResolvedVc for turbopack-env: #​73202
  • Getting Started Docs: Add new "Layouts and Pages" page: #​73049
  • Docs: forbidden and unauthorized nits: #​73213
  • Turbopack: make client references actual references: #​73174
  • Docs: Update turbopack API Reference: #​73215
  • Update authentication docs to use useActionState: #​72503
  • Don't hoist a server function if a compile error was emitted: #​73189
  • Forbid super in static class methods with server function directives: #​73061
  • port turbopack-node to ResolvedVc: #​73082
  • port turbopack-static to ResolvedVc: #​73084
  • perf(turbopack): Use ResolvedVc for next-api, part 1: #​73234
  • Pin undici in tests: #​73263
  • Turbopack: use try_join instead of future::try_join_all: #​73261
  • docs(server-actions): add missing formData type: #​73257
  • perf(turbopack): Use ResolvedVc for next-api, part 2: #​73235
  • docs: update static-tweet to react-tweet: #​73253
  • docs(fetching): params to await params: #​73254
  • convert let keyword to const keyword to data fetching and caching example: #​73251
  • [Turbopack] instead of depending on all env vars, track them via Proxy in webpack loaders: #​73112
  • docs: update the demo link of kontent.ai: #​73250
  • Docs: Fix headings in Layouts and Pages: #​73268
  • remove ResolvedVc from trait functions: #​73270
  • perf(turbopack): Use ResolvedVc for next-api, part 3: #​73236
  • [Turbopack] Revert "refactor filesystem writes to an effect based system": #​73287
  • Devlow: exit with non-zero code on failure: #​73276
  • perf(turbopack): Use ResolvedVc for next-api, part 4: #​73237
  • perf(turbopack): Use ResolvedVc for turbopack-browser: #​73198
  • perf(turbopack): Use ResolvedVc for next-core: #​73177
  • perf(turbopack): Use ResolvedVc for next-api, part 5: #​73238
  • test: reduce number of rendering loop causing flakiness: #​73277
  • Turbopack build: Fix css-minify test: #​72990
  • chore(turbo-tasks): Add a lint for Vc<T> in turbo-tasks types: #​73298
  • docs: add await before headers() and cookies() calls: #​73315
  • port turbopack-ecmascript to ResolvedVc: #​73226
  • test: fix canary test with 18.3.1: #​73327
  • Pin version of nwsapi (revert later): #​73351
  • fix Turbopack devlow bench: #​73278
  • Revert "Pin version of nwsapi (revert later)": #​73353
  • [Turbopack] Performance improvements for Persistent Caching: #​73265
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in next-core: #​73310
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in turbopack-ecmascript: #​73302
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in turbopack-css: #​73300
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in next-api, part 1: #​73366
  • docs: add missing default to page component examples: #​73233
  • Documentation Fix: Typo and URL Correction: #​73397
  • [Turbopack] Custom persistence layer: #​73029
  • chore(cna): add .pnpm-debug.log* to all cna gitignore: #​73446
  • cna: update .gitignore to ignore all .env files: #​73415
  • chore(turbo-tasks): improve ast-grep lint time: #​73440
  • [Turbopack] fix mmap advise on windows: #​73462
  • Getting Started docs: Images and Fonts: #​73340
  • Add mention of changing debugWithEdge to debugWithChrome.: #​73409
  • docs: Add note about remove of the swcMinify flag: #​73281
  • docs(typo): fix typos in file conventions, functions, and errors: #​73376
  • add more ResolvedVc best-practices lints: #​73331
  • docs: sort and update CMS examples: #​73295
  • Allow passing a nonce to google tag manager related script: #​73370
  • Getting Started Docs: CSS: #​73341
  • Getting Started docs: Fetching and Streaming: #​73352
  • Getting Started Docs: Images and Fonts feedback: #​73470
  • prevent accidentally re-creating ResolvedVc via deref by using a deprecated fn: #​73428
  • refactor(turbopack): Disable tree shaking by default: #​73421
  • [Turbopack] fix race condition in database compaction: #​73495
  • fix unnecessary to_resolved calls in test cases: #​73501
  • [Turbopack] small minor performance improvements for dirtyness tracking and scheduling: #​73494
  • turbopack-cli: Use correct fs and env for builds: #​73487
  • fix some trivial cases of to_resolved being used in a loop: #​73435
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in turbopack-core: #​73301
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in turbo-tasks: #​73371
  • refactor(turbopack): Use ResolvedVc<T> for trivial struct fields: #​73372
  • test: Enable tree shaking tests: #​73541
  • [Turbopack] fix incorrect task access for Persistent Caching: #​73549
  • [Turbopack] more debugging options for Persistent Cache: #​73550
  • sync-react: Add affordance to stop syncing Pages Router: #​73533
  • Remove unused React 17 install: #​73534
  • create-next-app: Use stable React 19 types: #​73569
  • Fix PostCSS dependency message handling: #​73529
  • docs: update the outdated generate sitemaps doc with versioned changes: #​73547
  • [Turbopack] add telemetry for persistent caching usage: #​73554
  • docs: fix forbidden file paths: #​73575
  • docs(composition-patterns): add missing React.ReactNode type in layout.tsx example: #​73577
  • test: replace check to retry in hmr.test.ts: #​73590
  • chore(docs): mention uses for unoptimized: #​73604
  • test: fix next-sass test: #​73633
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in extra crates: #​73451
  • refactor(turbopack): Use ResolvedVc<T> for struct fields in next-api, final part: #​73367
  • docs: Fix image component API reference parsing: #​73658
  • docs: fix code block language in images-and-fonts docs: #​73492
  • fix(turbopack): Fix deprecation warnings from unnecessary .to_resolved() calls: #​73631
  • [Turbopack] replace EnvLayer with a faster filter: #​73614
  • [Turbopack] fix invalid source maps on HMR: #​72328
  • [Turbopack] include task name in dirty cause of output change: #​72574
  • 15.1 docs: React 19: #​73510
  • Docs: Add canary page to upgrade guides: #​73518
  • [Turbopack] change emit collectible to require ResolvedVc: #​73684
  • Fix failing tests: #​73707
  • test: move HMR Full Reload test to a separate file: #​73591
  • test: change with-next-sass to with-sass: #​73670
  • test: move HMR main test to a separate file: #​73611
  • [Turbopack] Introduce OperationVc that wraps operations: #​70242
  • chore(github): update stale issue periods: #​73709
  • test: update turbopack-dev-examples-manifest: #​73230
  • [Turbopack] use thread local trace collecting: #​73615
  • Skip build_and_deploy on docs-only changes: #​73659
  • 15.1 docs: request APIs in after: #​73692
  • [Turbopack] fix lmdb feature: #​73728
  • [Turbopack] cleanup and documentation: #​73496
  • Turbopack: Single-graph-traversal and migrate next/dynamic: #​73222
  • Docs: Getting Started Nits: #​73596
  • 15.1 docs: Add experimental tags to forbidden and unauthorized APIs: #​73513
  • 15.1 docs: stable after: #​73038
  • Turbopack: migrate server actions to single-graph-traversal: #​73260
  • re-enable middleware deploy tests: #​73744
  • docs(turbopack): Better document the Vc type, with references to ResolvedVc and VcOperation: #​72524
  • test: fix type error in segment-cache-basic test: #​73755
Credits

Huge thanks to @​sokra, @​molebox, @​delbaoliveira, @​eps1lon, @​wbinnssmith, @​JamBalaya56562, @​hyungjikim, @​adrian-faustino, @​mottox2, @​lubieowoce, @​bgw, @​mknichel, @​wyattjoh, @​huozhi, @​kdy1, @​mischnic, @​ijjk, @​icyJoseph, @​acdlite, @​unstubbable, @​gaojude, @​devjiwonchoi, @​cena-ko, @​lforst, @​devpla, @​samcx, @​styfle, @​ztanner, @​Marukome0743, @​timneutkens, @​JeremieDoctrine, @​ductnn, @​karlhorky, @​reynaldichernando, @​chogyejin, @​y-yagi, @​philparzer, @​alfawal, @​Rhynden, @​arlyon, @​MJez29, @​Goodosky, @​themattmayfield, @​tobySolutions, @​kevinmitch14, @​leerob, @​emmanuelgautier, @​mrhrifat, @​lid0a, @​boar-is, @​nisabmohd, @​PapatMayuri, @​ovogmap, @​Reflex2468, @​LioRael, @​betterthanhajin, @​HerringtonDarkholme, @​bpb54321, @​ahmoin, @​Kikobeats, @​abdelrahmanAbouelkheir, @​lumirlumir, @​yeeed711, @​petter, and @​suu3 for helping!

v15.0.4

Compare Source

[!NOTE]
This release is backporting changes. It does not include all pending features/changes on canary.

Core Changes
Credits

Huge thanks to @​eps1lon

v15.0.3

Compare Source

Core Changes
  • Read page name from work store in server module map proxy: #​71669
  • codemod: should not transform when param is not used: #​71664
  • [dynamicIO] complete refactor to prerender: #​71687
  • fix: metadata image route normalize path posix for windows: #​71673
  • next-codemod(upgrade): optional catch when missing dev script: #​71598
  • Avoid server action function indirection in Turbopack: #​71628
  • fix: exclude basePath in findSourceMapURL: #​71719
  • fix: stack frame text color in dark mode: #​71656
  • Fix: revert the bad node binary handling: #​71723
  • next-codemod: add empty pnpm-workspace.yaml to test fixtures to bypass PNPM workspace checks: #​71726
  • warn on sync access if dynamicIO is not enabled: #​71696
  • Update React from 69d4b800-20241021 to 45804af1-20241021: #​71718
  • next-upgrade: do not add --turbopack flag when --turbo exists in next dev: #​71730
  • feat: stitch errors with react owner stack: #​70393
  • [dynamicIO] update data access error and documentation: #​71738
  • Test cached form action with revalidate: #​71591
  • Upgrade React from 45804af1-20241021 to 28668d39-20241023: #​71745
  • Fix race condition when setting client reference manifests: #​71741
  • Fix fetch with no-store inside of use cache: #​71754
  • Remove the bottom collapse button in dev overlay: #​71658
  • [dynamicIO] unify cache filling and lazy-module warming: #​71749
  • Don't filter out source location frames through RSC: #​71752
  • fix undefined default export error msg: #​71762
  • Upgrade React from 28668d39-20241023 to 1631855f-20241023: #​71769
  • Enable owner stack in experimental build: #​71716
  • feat: add experiment for sharpjs cpu flags: #​71733
  • fix: handle server component replay error in error overlay: #​71772
  • Don't error asking for prebuilt bundles: #​71778
  • Replace turbopack://[project]/... sourcemap uris with file://... in development: #​71489
  • misc: update source map paths for bundled Next.js runtime: #​71779
  • [dynamicIO] refine error message and docs: #​71781
  • next-upgrade: change --turbo to --turbopack if applicable: #​71737
  • Show all diff when uncollapse: #​71792
  • Sourcemap errors in terminal by default : #​71444
  • Fully enable custom error callbacks for app router: #​71794
  • Simplify Server Action Webpack plugin: #​71721
  • ensure DIO development segment errors are cleared after correcting: #​71811
  • Include sourceframe in errors logged in the terminal during development: #​71803
  • [dynamicIO] update prerender cache scoping and cache warming for validation: #​71822
  • only force stack frame color in tty: #​71860
  • Add test for fetch with auth in use cache: #​71768
  • Fix race with hot-reloader-client clearing overlay errors: #​71771
  • Fix dynamic tracking in dev: #​71867
  • Revert "Sourcemap errors in terminal by default (#​71444)": #​71868
  • Fix fetch caching inside of "use cache": #​71793
  • Trace upload: only send traces for current session: #​71838
  • Reland "Sourcemap errors in terminal by default": #​71877
  • Implement information byte in Server Reference ID and other optimizations: #​71463
  • fix: webpack build error on Windows: #​71943
  • Run with --enable-source-maps by default in next dev: #​71820
  • fix global-error styles: #​71914
  • Use registerClientReference for ESM client component modules: #​71968
  • Fix missing await of params when metadata is used with an image file: #​71871
  • Upgrade React from 1631855f-20241023 to 02c0e824-20241028: #​71979
  • Populate sourcemap ignoreList when Webpack is used: #​71821
  • [dynamicIO] unify server and client prerender for non-ppr pathway: #​71764
  • codemod: add separator to the parenthenese expr: #​71993
  • Respect sourcemap's ignore list when printing errors in the terminal: #​71908
  • fix console color to be compatible in chrome devtools: #​71939
  • Delete obsolete codemod next-dynamic-access-named-export: #​72016
  • fix: log the error instance modified extra location info: #​71930
  • Compare error stack to dedupe error: #​71798
Example Changes
  • experimental.instrumentationHook is not necessary anymore: #​71808
  • Add Jude to nextjs team: #​71936
Misc Changes
  • docs: fix broken link in Architecture/Turbopack documentation: #​71412
  • test: migrate rest async api usage in tests: #​71663
  • fix: docs for dynamic routing in next 15: #​71531
  • Remove the 'new' keyword from the GET function sample code.: #​71671
  • chore: fix wrong path of comments: #​71682
  • docs(next-config): remove mention of appIsrStatus is on canary: #​71695
  • react-sync: Ignore update notices from npm: #​71717
  • Docs: Update default marker for fetch cache option: #​71728
  • [docs] Fix page.tsx parameter types: #​71680
  • [docs] Fix table.js containing TS code: #​71677
  • docs(ppr): update note about ppr: #​71697
  • docs lint: #​71748
  • fixes error message asserts and lints: #​71747
  • Fix docs for configuring Turbopack: #​71755
  • docs(turbo): add experimental icon to turbo config section: #​71761
  • feat(turbopack): Add __turbopack_original__ while tree shaking: #​71547
  • test: re-enable test with note: #​71789
  • Docs: Remove beta marker from Turbopack docs: #​71796
  • Update docs 1: #​71812
  • docs lint fixes: #​71813
  • docs: remove "use cache" on before code snippet: #​71815
  • Next docs broken links: #​71823
  • [Turbopack] add optimization based on upper count: #​71606
  • chore(turbo-tasks-backend): Use let instead of match for macro bindings: #​71756
  • chore(turbo-tasks-backend): Remove collapsible-if lints: #​71758
  • removing extra reference: #​71853
  • codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 3): #​71665
  • Update sync-dynamic-apis.mdx: #​71907
  • codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 4): #​71804
  • test: remove duplicated flaky test: #​71967
  • docs: Fix typo in cacheLife configs in use-cache docs: #​71921
  • Fix use cache example line highlights: #​71883
  • Allow breakpoints to be set in packages/next/src/compiled: #​71986
  • updated upgrade to v15 command in docs: #​71643
  • codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 5): #​71861
  • Clarify that streaming is blocked on generateMetadata for initial load: #​71985
  • Docs: Add legacy tags: #​71964
  • Docs: Fix broken link: #​72021
  • (docs) use cache: Add text code formatting: #​71999
  • docs: update file structure: #​71951
  • Documentation Fix: Correct cacheTag Function Usage: #​71912
  • correct expire calc & and Nested usage import in use-cache docs: #​71899
  • Docs: Address internal use cache comments : #​71981
  • Fix swc version mismatch when checking out an older version: #​71978
Credits

Huge thanks to @​ytori, @​unstubbable, @​huozhi, @​SebassNoob, @​tatsuteb, @​Marukome0743, @​gnoff, @​samcx, @​devjiwonchoi, @​imprakharshukla, @​migueldamota, @​eps1lon, @​ztanner, @​timneutkens, @​cantemizyurek, @​sebmarkbage, @​padmaia, @​ijjk, @​styfle, @​wbinnssmith, @​feedthejim, @​kdy1, @​shuding, @​molebox, @​ismaelrumzan, @​sokra, @​bgw, @​timeyoutakeit, @​AdonisAgelis, @​chicoxyzzy, @​gaojude, @​elitalpa, @​t3dotgg, @​gaearon, @​nisabmohd, @​gadcam, @​delbaoliveira, @​bennettdams, @​wiscaksono, and @​Developerayo for helping!


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by renovate

Merge request reports

Loading