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
[!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
[!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
[!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
[!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
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
ordynamicIO
enabled: #81668 - [turbopack] Return cached Promise from
__turbopack_load_by_url__
: #81663 - Upgrade React from
97cdd5d3-20250710
to2f0e7e57-20250715
: #81678 - Delete unused
renderToString
function: #81707 - Discard prerendered route handler data from FS cache after revalidation: #81611
- Upgrade React from
2f0e7e57-20250715
tod85ec5f5-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
todffacc7b-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
toe9638c33-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
to7513996f-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
toedac0dde-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
to3d14fcf0-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
to19baee81-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
toeaee5308-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
to9be531cd-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
: Addexperimental.turbo
toturbopack
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
to9784cb37-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
orturbopack.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
toc260b38d-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
tobe11cb5c-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'sreq.url
can be overwritten to dynamic param on minimal mode: #82347 - [Pages] fix: use
asPath
for query-only navigation withuseRouter
: #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
to7deda941-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
to3958d5d8-20250807
: #82447 - Delete abandoned segment parsing code: #82458
- Upgrade React from
3958d5d8-20250807
tof1e70b5e-20250811
: #82534 - Upgrade React from
f1e70b5e-20250811
toac7820a9-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
to1dc3bdea-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 fromnext/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
tof1222f76-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
to379a083b-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
toa96a0f39-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 foroutputFileTracingRoot
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 usegetClaims()
: #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 saferwith_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
tonext_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
[!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
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- fix:
_error
page'sreq.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
[!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
[!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
[!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
[!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
[!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
toc44e4a25-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
to1d6c8168-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
to39cad7af-20250411
: #78152 - Turbopack: add test case for persistent caching: #77030
- Upgrade React from
39cad7af-20250411
tob04254fd-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
to4a36d3ea-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
tobc6184dd-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
to914319ae-20250423
: #78468 - Update turbopack to syn2: #78385
- [next-server] ensure prepare is done before preloading entry: #78454
- Upgrade React from
914319ae-20250423
to197d6a04-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
to5dc00d6b-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
to408d055a-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
to197d6a04-20250424
: #78834 - Reland "[Link] Add prefetch="auto" option": #78821
- build: Update
@swc/core
npm package tov1.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
todefine-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
whendynamicIO
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 inpackages/next
without having to build first: #79782 - Run
tsc
in watch mode duringpnpm 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
fromIssue
: #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 ofnext/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 fornext 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
to79d9aed7-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
to06e89951-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
to197d6a04-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
tofa3feba6-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
tocee7939b-20250625
: #80904 - [segment explorer] hover state for open-in-editor color: #80950
- Upgrade React from
cee7939b-20250625
to4db4b21c-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
to65c4decb-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
to7216c0f0-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
to73aa744b-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
toa7a11657-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
toexperimental.dynamicIO
: #81449 - Upgrade React from
a7a11657-20250708
to60b5271a-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
to96c61b7f-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
to97cdd5d3-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"
andcacheLife
API references: #78024 - Docs: Update
useLinkStatus
API reference: #78022 - Turbopack: add debug assertion to check for duplicate modules: #78025
- Turbopack: bundle only
new Worker
withnew 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
tov22.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
anddocs/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, createSelf-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
andgenerateMetadata
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
tov1
: #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
intoturbo-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
afterpnpm build
inbuild_reusable.yml
: #78720 - Update authentication.mdx: #78738
- chore(CI): Use
TEST_CONCURRENCY
by default inrun-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
tov23.2.0
: #78885 - Turbopack: create smaller initial files to reduce memory usage: #78778
- fix CSP docs: #78937
- Revert "build: Update
swc_core
tov23.2.0
": #78935 - fix(CI): Remove e2e test timeout overrides from rspack & turbopack suites: #78934
- Update Turbopack development test manifest: #78953
- Turbopack:
ChunkingType::Parallel
withhoisted
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
tov23.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
tov24.0.0
: #79092 - Revert "build: Update
swc_core
tov24.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
tov24.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
fromnode_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 tojs
: #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
forAutoMap
: #79218 - docs: add missing links and imports to
cacheLife
andcacheTag
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 makeflatten()
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
tov25.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 toBox::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
tov26.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
tov26.0.1
andstyled-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
tov26.0.1
andstyled-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
inrscModuleMapping
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 oflatest
: #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 ofstable
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
tov26.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
forRope#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
tov9.2.2
: #80066 - chore(turbopack): Remove
Lightningcss
prefix for CSS types: #80067 - build(turbopack): Update
swc_core
tov26.3.3
: #80059 - perf(turbopack): Use owned instance of
Code
forminify()
: #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
tov26.4.4
: #80161 - [turbopack] Remove uses of
Value<ClientContextType>
by makingClientContextType
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 makingReferenceType
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 ingenerateMetadata
: #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 justPattern
- [test] Unflake back-forward-cache test: #80250
- perf(turbopack): Decode sourcemap partially: #80177
- [turbopack] Replace uses of
Value<ExecutionEnvironment>
with justExecutionEnvironment
: #80135 - [turbopack] Replace uses of
Value<ContentSourceData>
with justContentSourceData
: #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 fromturbo_tasks::value
and theTypedForInput
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
tov27.0.1
: #80338 - Docs: Clarify how intercepting routes work and update example: #80145
- Require that
turbo_tasks::value_trait
items be annotated withturbo-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 inempty-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
tov27.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
tov27.0.4
: #80467 - Rename
empty-fallback-shells
test suite to justfallback-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 withturbo_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
fromAssetContext::layer
: #80592 - build(turbopack): Update
swc_core
tov27.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
tofallback-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
tov29.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
to29.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
tov29.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
TaskId
s: #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 ofVc<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
tov29.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
andfind_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
forEither
, replaceNextTurboTasks
with a type alias: #80823 - Remove unneccesary step that's making workflow fail: #81164
- Update caching.mdx: #81129
- build(turbopack): Update
swc_core
tov30.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
tov30.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 thebody
: #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, useNone
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
totraverse_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
v15.3.5
[!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
[!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
[!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
[!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
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
Credits
Huge thanks to @kdy1 and @styfle for helping!
v15.3.0
Core Changes
- [dev-overlay] Customize
<select>
styling for consistency: #76973 - Upgrade React from
029e8bd6-20250306
to0ca3deeb-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
to6aa8254b-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
to5398b711-20250314
: #77129 - fix(styled-jsx): Pass
useLightningcss
option tostyled-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
toc69a5fc5-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
todb7dfe05-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
to740a4f7a-20250325
: #77507 - Upgrade React from
740a4f7a-20250325
to313332d1-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
to63779030-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()
forimages.remotePatterns
: #77692 - [dev-overlay] remove text wrap for terminal: #76953
- Upgrade React from
63779030-20250328
to040f8286-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
TurbopackInternalError
s 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-asyncerrors
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
andgetExpiration
: #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 offileExists
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
to33661467-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
tov16.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
tov16.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 lightningcssStyleSheet
: #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 userayon
instead ofchili
: #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
tov16.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
toGuides
: #77722 - build: Update
swc_core
tov19.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 ofswc_emotion
correctly: #71776 - Turbopack: handle removed routes: #77890
- build: Update
swc_core
tov21.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
[!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
[!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
[!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
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
to443b7ff2-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
toe03ac20f-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
to029e8bd6-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 ofwebdriver
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
tov16.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
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 cachectx
forFETCH
kind: #76500 - [dev-overlay] fix: env name label style was out of sync with error type label: #76668
- Turbopack: avoid celling source maps before minify: #76626
- refactor(CI): Merge all four bundler test manifest scripts into one: #76652
- [metadata] fix duplicate metadata for parallel routes: #76669
- [Segment Cache] Omit from bundle if flag disabled: #76622
- [Segment Cache] Support output: "export" mode: #75671
- [Segment Cache] Refresh on same-page navigation: #76223
- [metadata] re-enable streaming metadata with PPR: #76119
- [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
tod55cc79b-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
tov16.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
Core Changes
- Fix
unstable_allowDynamic
when used with pnpm: #73732 - [dynamicIO] use new heuristic to track whether server render is dynamic: #73751
- Fix receiveExpiredTags not always called: #73759
- error-overlay: Rename "Error" to "Issue": #72817
- remove redundant segment collection call: #73773
- Metadata resolvers can be fetched synchronously: #73771
- Turbopack: migrate client references to single-graph-traversal: #73322
- next-codemod: update gitignore file for parity for yarn recommendations: #71963
- feat: error code: #73332
- Detach next-error-code-swc-plugin from workspace: #73806
- [CI] Prominent error message for check_error_codes: #73807
- [Segment Cache] Add PPR header to segment prefetch: #73756
- fix: path escaping issue on windows: #73843
- Rename variables in LayoutRouter for clarity: #73826
- [Segment Cache] Skip prefetched segments on server: #73626
- [Segment Cache] No data on tree prefetch if no PPR: #73767
- Remove segmentPath from RSC payload: #73827
- build: better error if fetching AMP validator fails: #73851
- Escape the '.' in '.json' when making static data routes.: #73850
- fix(next@15): use the asset prefix when loading a CSS in App Router: #72095
- Exclude
.test.
files from using error code plugin: #73868 - Refactor telemetry API: #73865
- Add additional error classes and error codes: #73862
- refactor: collectAppPageSegments: #73908
- cleanup unnecessary map in dev server: #73745
- Retry manifest file loading only in dev mode: #73900
- Turbopack: ignore empty NEXT_TURBOPACK_TRACING var: #73903
- Ignore RSC fetch errors after hard navigation: #73975
- Fix error code check in windows: #73981
- Separate viewport and metadata in rsc and cache: #73867
- Add feature flag for new dev overlay: #73977
- Restore RSC fetch error handling after navigating back: #73985
- refactor: make locales array immutable: #74037
- fix: skip rendering dynamic root segment routes: #74039
- refactor: cache lowercasing all the locales: #74038
- Add SRI support for Node.js Runtime : #73891
- Separate bots detection utils: #74000
- docs: remove a duplicated word in redirect code comment: #74043
- examples: update gitignore files for parity for yarn recommendations: #71956
- chore: update turbopack document path in the warning message: #72597
- Clean up
react-dev-overlay
before fork: #74016 - chore(next/image): improve imgopt api bypass detection for unsupported images: #73909
- [Segment Cache] Add CacheStatus.Empty: #73667
- chore: move static paths utils into own folder: #73928
- Delete unused
GroupedStackFrames.tsx
: #74028 - [Segment Cache] Move cache key creation to client : #73853
- feat: added partial shell generation using root params: #73816
- feat: added error when there's missing root params in generateStaticParams: #73933
- Remove parentRendered argument: #73877
- Generate per-segment responses for any static page: #73945
- feat: added fallback route params to prerender manifest: #74004
- refactor(turbopack): Make various types directly or indirectly included in
State<T>
types into OperationValues and/or NonLocalValues: #74008 - Fork
react-dev-overlay
for new UI: #74017 - fix: added fallback source route to prerender manifest: #74052
- Add storybook for UI testing: #74032
- [Segment Cache] Support for non-PPR projects/pages: #73960
- exclude
.stories.
and.test.
files from taskfile watch and error plugin: #74064 - Upgrade React from
7283a213-20241206
to372ec00c-20241209
: #73749 - fix: aria attribute typo for error overlay: #74074
- fix: set x-deployment-id to every middleware prefetch request: #71193
- Add middleware handler for error code telemetry: #74088
- Create ErrorOverlay component: #74073
- fix(typed-routes): Fix route type fallback: #73271
- Rename
root-layout-missing-tags-error.tsx
to pascal case: #74089 - Turbopack: next/dynamic use transitions instead of AST analysis: #73627
- [Turbopack] fix root and project path usages in a monorepo: #73552
- support
bun.lock
as package manager lockfile: #74056 - Stop sourcemapping function names: #74085
- Move ErrorIndicator to separate file: #74090
- Upgrade React from
372ec00c-20241209
to518d06d2-20241219
: #74155 - used shared worker for lint & typecheck steps: #74154
- chore(turbopack): Ignore no-vc-struct lint in trybuild proc macro tests: #74110
- Use provided waitUntil for pending revalidates: #74164
- Port ErrorPagination: #74097
- Port LeftIcon RightIcon from ErrorPagination: #74098
- Port ToolButtonsGroup: #74099
- [Turbopack] fix import.meta.url in monorepo: #72612
- refactor: rename the react client error callbacks module: #74192
- Use ErrorOverlayLayout in Errors component: #74107
- refactor: remove internal queries, move to request metadata: #74100
- Fix accessing headers in progressively enhanced form actions: #74196
- Use Geist font in Dev Overlay: #74160
- [metadata] Align prefetch head type with head: #74161
- refactor: error boundary rendering in app-render: #74259
- [metadata] Merge the metadata resolve apis into one api: #74191
- [DevOverlay] fix: restore pagination style: #74296
- fix: update broken links in config-shared.d.ts: #74122
- fix: fix typos in errors.json & create-component-tree.tsx: #74471
- Safely retrieve router, improve page reload logic: #74209
- docs: bump year: #74475
- [DevOverlay] Remove Dialog Banner: #74464
- [DevOverlay] Add color palette script: #74465
- Fix: Preserve intentional percent encoding in search param for client nav: #74473
- [DevOverlay] Implement New Overlay Layout with Bottom Stacks: #74466
- [DevOverlay] Add error overlay footer and feedback: #74472
- [DevOverlay] Remove temporary header children: #74490
- fix: server functions x-forwarded-host possible multiple values: #73701
- [DevOverlay] Pass footer message from error containers: #74493
- feat(rsc): allow host or forwarded: #74199
- [DevOverlay] Adjust border style for header and footer: #74480
- feat(next/image): add support for
images.qualities
in next.config: #74257 - Upgrade React from
518d06d2-20241219
to3b009b4c-20250102
: #74492 - fix: add node internals stack frames to ignored list: #73698
- chore: break calls to forEach into for loops: #74523
- [DevOverlay] Add error message: #74541
- [DevOverlay] Add error type label: #74543
- feat: connect error rating buttons to telemetry API: #74496
- [metadata] Move metadata rendering adjacent to page component: #74262
- Delete set-cache-busting-search-param.test.ts: #74561
- fix: enhance a11y, prevent double firing in error rating: #74563
- fix: add aria-hidden to error overlay voting icons: #74568
- Update font data: #74572
- Upgrade React from
3b009b4c-20250102
to3ce77d55-20250106
: #74557 - [metadata] Change the array head to single node in flight data: #74299
- [DevOverlay] Add Toolbar: #74555
- restore deleted comment in next-app-loader: #74597
- Turbopack dev: Remove client to server websocket ping event: #74584
- Fix prerender tags when notFound is called: #74577
- fix: add prerender abort errors to unstable rethrow: #74556
- Upgrade React from
3ce77d55-20250106
to7b402084-20250107
: #74599 - fix: handle optional catchall parameters properly when deployed: #74562
- refactor: generic dev build indicator: #74615
- ensure custom cache handlers are preloaded: #74622
- feat: dev build indicator for App Router: #74618
- fix fetch lock not being consistently released: #74623
- Ensure global cache handlers are used properly: #74626
- Ensure custom Suspense boundaries in layouts resolve if they contain the page: #74552
- test: exclude the ts testing files from tsconfig during local dev in nextjs repo: #74647
- Remove unused dependencyFactory plugin code: #74661
- test: do not log the changes for local dev tsconfig: #74674
- [metadata] initial support of streaming metadata: #74619
- Remove PPR feature check from Segment Cache client: #74669
- [Segment Cache] Add act-inspired internal router testing helper: #74668
- [Segment Cache] Background segment revalidation: #74057
- Upgrade React from
7b402084-20250107
to42687267-20250108
: #74649 - Indicate boolean value for configured experimental features on startup: #74691
- Implement encryption key into turbopack as hash salt: #72933
- Show numerical values for configured experimental features: #74692
- Upgrade React from
42687267-20250108
to74ea0c73-20250109
: #74693 - feat: DevToolsIndicator: #74679
- Fix presentation when onerror receives an event without error: #74643
- refactor: move the global client error code: #74699
- fix: ts language server rule metadata should allow null: #74704
- [DevTools] create error state for indicator: #74717
- [DevOverlay] Add Basic Stories for Error Containers: #74697
- Add experimental flag for View Transitions: #74659
- [DevOverlay] Floating Header and Bottom Stacks: #74581
- [DevOverlay] Add Pagination: #74583
- Fix @vercel/og license SPDX expression: #74745
- [DevOverlay] Add Next.js version staleness indicator: #74601
- Write errors.json fully formatted: #74753
- [DevOverlay] Fix style details and correctly pass version info: #74606
- [DevOverlay] Decouple Dialog component from Error Overlay: #74638
- [DevOverlay] Apply Turbopack Styling: #74636
- [DevOverlay] Add Call Stack: #74658
- [DevOverlay] Add Runtime Error CodeFrame: #74682
- Do not warn during build for supported modules in the Edge runtime: #74752
- Ensure metadata doesn't break scroll-to-top on navigation: #74748
- [Segment Cache] Fix stale time unit conversion: #74759
- [metadata] add option of configuring ua of async metadata: #74594
- SingleModuleGraph: yield edge weights during traversal: #74620
- refactor(turbopack/next-api): Implement NonLocalValue for TracedDiGraph and SingleModuleGraph: #74506
- Always display version indicator: #74774
- Update font data: #74777
- Upgrade React from
74ea0c73-20250109
to056073de-20250109
: #74754 - [DevOverlay] Improve Storybook Structure: #74764
- fix: always show indicator in app router: #74758
- Upgrade React from
056073de-20250109
to540efebc-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
tocabd8a0e-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
tob3a95caf-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
tof0edf41e-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
tob158439a-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
to5b51a2b9-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 fromcssnano
: #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
to9b62ee71-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
toae9017ce-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
tode1eaa26-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
to9eabb373-20250124
: #75367 - tweak static generation retry wait time: #75381
- [Dev Badge] Accessibility improvements to dropdown menu: #75268
- Gate
captureOwnerStack
access onexperimental.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
to37906d4d-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
toc492f975-20250128
: #75434 - Fix console replaying and
React.cache
usage in"use cache"
functions: #75520 - Upgrade React from
c492f975-20250128
toa4b2d0d5-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
to0a82580b-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
tod85cf3e5-20250205
: #75698 - Only disable Prettier for original Turbopack source: #75716
- [dev-overlay] fix: pagination focus ring was invisible: #75790
- test: Exclude
turbo-tasks-macro
fromtest-cargo-unit
: #75776 - Send formatted error to frontend if sourcemapping fails: #75712
- Upgrade React from
d85cf3e5-20250205
toff628334-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"
withoutput: '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
to8759c5c8-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
to93b58361-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
tocd90a4d8-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 fornext build
: #75921 - Turbopack: make tracing easier: #75958
- Upgrade React from
cd90a4d8-20250210
tof83903bf-20250212
: #75967 - Use
compilation.{emitAsset,updateAsset}
api rather than mutatingassets
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
tocbbe8666-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()
incache
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
optionsappIsrStatus
andbuildActivity
: #76067 - [dev-overlay] deprecate
devIndicators.buildActivityPosition
and rename toposition
: #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
toruntimeErrors
: #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
to662957cc-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 acceptReactNode
: #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
to25677265-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
to22e39ea7-20250225
: #76481 - [app i18n]: warn about i18n configuration deprecation in app router: #76346
- [dev-overlay] style: improve error label background color contrast: #76490
- Fork Form implementation for Pages and App Router: #76498
- Webpack: handle file:// urls when finding sourcemaps: #76443
- Ensure middleware layer is bundled: #76466
- [dev-overlay] do not force hide scrollbar: #76504
- [Segment Cache] Hard nav when root layout changes: #76163
- [metadata] clarify the default list behavior: #76450
- [dev-overlay]: generalize ISR status functions for pages/app: #76457
- [dev-overlay]: wire up ISR status for pages router: #76458
- [dev-overlay]: fix inline docs to show correct info for given router: #76461
- [dev-overlay] add title for the dev indicator menu items: #76510
- [dev-overlay] sync suffix
N
of--size-N
withpx
value of base font16px
: #76384 - Add event for webpack plugin customization: #76477
- [dev-overlay] use
rem
for sizes andpx
for spacings: #76385 - [dev-overlay] hide dev indicator for server session or 1 day: #76430
- [dev-overlay] customize scrollbar styling: #76509
- [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: ''
onremotePatterns
: #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
andwith
prefix in themdx
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 allResolvedVc
s andOperationVc
s: #73764 - docs: supporting after for providers: #73743
- [E2E] Fix config file conflict: #73818
- feat: Update
swc_core
tov9.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
anderror handling
: #73844 - Revert "feat: Update
swc_core
tov9.0.0
": #73866 - refactor(turbo-tasks): Derive NonLocalValue by default in value/value_trait macros: #73766
- refactor(turbo-tasks): Implement
NonLocalValue
forState<T>
whereT: NonLocalValue
: #73770 - chore(github): fix typo in close-issue-message: #73878
- Docs: Remove
unstable_expirePath
andunstable_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
andpages.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 usesatisfies
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
ChunkItem
s reference onlyOutputAssets
: #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
andarguments
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
toturbopack-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
tov10.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
ofparams
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
andJsWord
variant ofConstantString
: #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
tov10.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
tov10.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
tov10.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 standardizedendpoint.output()
: #75059 - perf(turbopack): Use
Cow::into_owned
instead of.to_string()
: #75216 - [Turbopack] Memory improvements: #75210
- docs: Update
robots
forgenerateMetadata
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 forstyled-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
onOperationVc
: #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
tov12.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
useAtom
instead ofString
: #75587 - refactor(turbo-tasks): Codemod/migrate all ResolvedVc casting callsites to use the new synchronous APIs: #75547
- perf: Make
cjs_optimizer
useAtom
instead ofString
: #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 withRc<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
useAtom
instead ofString
: #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 ofString
: #75592 - perf: Make RSC pass use
Atom
instead ofString
: #75593 - perf: Make server action pass use
Atom
instead ofString
: #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 ofString
: #75595 - perf: Make page static info use
Atom
instead ofString
: #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
tov13.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
aTaskInput
: #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
tov13.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 changeclone_value
toowned
: #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
withdevIndicators: 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
tov14.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
[!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
[!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
[!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
[!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
[!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
[!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
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Update React from
7283a21
-20241206 to65e06cb
-20241218: https://github.com/vercel/next.js/pull/74117
Credits
Huge thanks to @ztanner for helping!
v15.1.1
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- fix(turbo): sassOptions silenceDeprecations was not overwritten with user options: https://github.com/vercel/next.js/pull/73937
- refactor collectAppPageSegments: https://github.com/vercel/next.js/pull/73908
Credits
Huge thanks to @devjiwonchoi and @ztanner for helping!
v15.1.0
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
to7ac8e612-20241113
: #72768 - Re-use randomly selected dev server port for automatic restarts: #72771
- Emit build error when
"use cache"
is used withoutdynamicIO
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
to380f5d67-20241113
: #72819 - Shorten unsourcemapped absolute locations in terminal stacktraces: #72764
- codemod: replace
revalidate(Tag|Path)
toexpire(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 tob01722d
-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)
toexpire(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
to1b1283ad-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
tode68d2f4-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
to1c9b1387-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
to7283a213-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
ini18n-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 aconfig
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!())
withanyhow::bail!()
: #72487 - Upgrade React from
66855b96-20241106
to5c56b873-20241107
: #72469 - fix(turbopack): Remove self-references from tree shaking results: #72567
- Turbopack: Don't run PostCSS on internal assets: #72579
- Update
swc_core
tov5.0.4
fromv5.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
forturbopack
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
forturbopack-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
, adjustallowFullScreen
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
andFnDecl
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
aroundbrowser.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
toopenRedbox
: #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
andexpireTag
: #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
andarguments
in server functions: #73059 - port turbopack-swc-utils to ResolvedVc: #73086
- port turbopack-mdx to use ResolvedVc: #73080
- feat: Update
lightningcss
tov1.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
, andauthInterrupts
: #73039 - Enable another Turbopack build test: #73166
- CNA: replace
.eslintrc.json
witheslint.config.mjs
: #73162 - Turbopack: don't compute all paths for builds: #73036
- perf(turbopack): Use
ResolvedVc
forturbopack-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
forturbopack-core
: #73065 - perf(turbopack): Use
ResolvedVc
forturbopack
,turbopack-tests
,turbopack-wasm
: #73196 - perf(turbopack): Use
ResolvedVc
forturbopack-nodejs
: #73200 - perf(turbopack): Use
ResolvedVc
forturbopack-env
: #73202 - Getting Started Docs: Add new "Layouts and Pages" page: #73049
- Docs:
forbidden
andunauthorized
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
fornext-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
fornext-api
, part 2: #73235 - docs: update static-tweet to react-tweet: #73253
- docs(fetching):
params
toawait 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
fornext-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
fornext-api
, part 4: #73237 - perf(turbopack): Use
ResolvedVc
forturbopack-browser
: #73198 - perf(turbopack): Use
ResolvedVc
fornext-core
: #73177 - perf(turbopack): Use
ResolvedVc
fornext-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 innext-core
: #73310 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbopack-ecmascript
: #73302 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbopack-css
: #73300 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields innext-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
, anderrors
: #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 inturbopack-core
: #73301 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbo-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
toretry
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 innext-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
towith-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
andunauthorized
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
[!NOTE]
This release is backporting changes. It does not include all pending features/changes on canary.
Core Changes
- Use React 19 stable in Pages Router: https://github.com/vercel/next.js/pull/73564
Credits
Huge thanks to @eps1lon
v15.0.3
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
infindSourceMapURL
: #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
to45804af1-20241021
: #71718 - next-upgrade: do not add
--turbopack
flag when--turbo
exists innext 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
to28668d39-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
to1631855f-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 withfile://...
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 innext dev
: #71820 - fix global-error styles: #71914
- Use
registerClientReference
for ESM client component modules: #71968 - Fix missing
await
ofparams
when metadata is used with an image file: #71871 - Upgrade React from
1631855f-20241023
to02c0e824-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
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
- [ ] If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.