Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-07-14 | 95.2 kB | |
v15.4.1 source code.tar.gz | 2025-07-14 | 46.4 MB | |
v15.4.1 source code.zip | 2025-07-14 | 58.0 MB | |
Totals: 3 Items | 104.6 MB | 18 |
[!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/ <Activity>: [#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 <anonymous> 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 PRs: [#78792]
- Revert "De-dupe build_and_deploy run for PRs": [#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 PR 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 PRs 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!