Releases: vercel/next.js
Releases Β· vercel/next.js
v15.3.1-canary.8
Core Changes
- [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
[email protected]
: #78149 - Handle graceful fallback for custom error boundaries: #78121
Misc Changes
- 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
Credits
Huge thanks to @bgw, @Fonger, @huozhi, @ospira, @eps1lon, @kdy1, @gnoff, @styfle, @mischnic, @lubieowoce, and @wbinnssmith for helping!
v15.3.1-canary.7
v15.3.1-canary.6
Core Changes
- Add graceful error fallback for bots requests: #77916
Misc Changes
- 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
Credits
Huge thanks to @Marukome0743, @bgw, @jantimon, @lubieowoce, @mischnic, and @huozhi for helping!
v15.3.1-canary.5
v15.3.1-canary.4
Core Changes
- 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
Misc Changes
- Update Rust toolchain to nightly-2025-04-10: #78039
Credits
Huge thanks to @wbinnssmith, @ztanner, and @acdlite for helping!
v15.3.1-canary.3
Core Changes
- Move unhandled rejection handling to shared path: #77997
Misc Changes
- 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
Credits
Huge thanks to @mischnic, @wbinnssmith, and @acdlite for helping!
v15.3.1-canary.2
Core Changes
- [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
Misc Changes
- [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
Credits
Huge thanks to @eps1lon, @delbaoliveira, @wyattjoh, and @sokra for helping!
v15.3.1-canary.1
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
Example Changes
- [test] Use React 19.1 everywhere: #77895
Misc Changes
- 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
Credits
Huge thanks to @huozhi, @Marukome0743, @sokra, @mischnic, @wbinnssmith, @eps1lon, @razzeee, @delbaoliveira, and @kdy1 for helping!
v15.3.1-canary.0
v15.3.0
Core Changes
- [dev-overlay] Customize
<select>
styling for consistency: #76973 - Upgrade React from
029e8bd6-20250306
to0ca3deeb-20250311
: #76989 - [metadata]: add pinterest meta tag: #76988
- [dev-overlay] ensure stripping overlay bundle in prod build: #76976
- Apply env inlining during generate build mode: #76990
- Turbopack: Implement deploymentId: #76904
- track persistent caching usage: #76996
- [metadata] re-insert icons to head for streamed metadata: #76915
- Upgrade React from
0ca3deeb-20250311
to6aa8254b-20250312
: #77033 - Move static-env imports: #77035
- [dev-overlay] Add
size
setting to preferences: #77027 - Add config for only generating static env: #77038
- chore(HMR clients): Clean up and share code between app and pages router: #76960
- Add dev warning for cross-origin and stabilize allowedDevOrigins: #77044
- unify allowed origin detection handling: #77053
- Handle hash change in all files for static env: #77058
- [dev-overlay] highlight errored code line for runtime errors: #77078
- NFT: Ignore all of Webpack: #77081
- Add experimental build mode flag for env: #77089
- (feat) support client-side instrumentation: #76916
- Fix JSDoc comment for
'seconds'
cache life profile: #77084 - refactor(HMR clients): Encapsulate some of the turbopack state tracking into a shared TurbopackHmr class: #76994
- Slightly improve error handling for unknown server actions: #77135
- Fix output standalone for alternative bundler: #76971
- Add alternate bundler plugin information to
next info
: #77059 - [metadata] remove the default segement check for metadata rendering: #77119
- [dev-overlay] Fix stacking order of highlighted line: #77189
- Upgrade React from
6aa8254b-20250312
to5398b711-20250314
: #77129 - fix(styled-jsx): Pass
useLightningcss
option tostyled-jsx
correctly: #77008 - log the instrumentation-client execution time: #77121
- Turbopack: canary-gate production builds: #77146
- [dev-overlay] remove special handling for missing tag error : #77147
- chore(react-dev-overlay): Remove confusingly underscored variables in
useErrorOverlayReducer
: #77205 - Update middleware request header: #77201
- Update default allowed origins list: #77212
- Ensure deploymentId is used for CSS preloads: #77210
- chore(HMR clients): Fix a bunch of typescript errors by including the appropriate webpack type declarations: #77207
- Update cache handler interface: #76687
- Turbopack: don't include AMP optimizer in NFT: #77242
- Server actions should not read stale data after calling
revalidate*
: #76885 - [dev-overlay] Blur fader for scrollable container: #77196
- Make
revalidate*
work when followed by a redirect in a route handler: #77090 - feat: onNavigate for link: #77209
- fix: pass telemetry plugin rspack tests: #77257
- feat(eslint-plugin): add minimal built-in flat presets: #73873
- [perf] skip loading client manifest for static metadata routes: #77260
- Upgrade React from
5398b711-20250314
toc69a5fc5-20250318
: #77249 - [ppr] Handle failed resume data cache entries: #77258
- Bypass
"use cache"
caches when Draft Mode is enabled: #77141 - chore(HMR clients): Clean up tryApplyUpdates, reduce differences between app/pages versions: #77219
- Upgrade React from
c69a5fc5-20250318
todb7dfe05-20250319
: #77295 - Turbopack: layout segment optimization for Pages: #74815
- [dev-overlay] Make footer sticky without side effects: #77327
- Alternate bundler: show state in app info message: #77259
- Revert "Turbopack: layout segment optimization for Pages": #77339
- [metadata] add Yeti to html limited bots: #77335
- [dev-overlay] Remove unused code from pages: #77325
- [metadata] remove dead code of metadata routes handling: #77336
- Alternate bundler: pass more tests and update to 1.3.0-beta: #77269
- [metadata] fix the metadata route like pages and refactor utils: #77264
- fix: absolute assetPrefix url with path: #77256
- clean up useReducer code re dev indicator: #77354
- test: ensure that router identity stays stable when navigating: #77356
- [dev-overlay] Remove unused fields from hydration error state: #77332
- Turbopack: implement optimized css production chunking: #77284
- only log when instrumentation client takes too long: #77378
- switch development origin verification to be opt-in rather than opt-out: #77395
- remove direct ip/port bypass in dev origin check: #77414
- ensure /__next middleware URLs are included in the origin check: #77416
- exclude images and static media from dev origin check: #77417
- Refactor metadata and viewport preloading: #77400
- [dev-overlay] Remove unused fields from unhandled error action event: #77333
- Turbopack: Add --turbopack for next start: #77442
- Update README: #77464
- Remove unnecessary indirections around dispatch-related methods: #77423
- Lift public router instance to module level : #77426
- directly import param resolver in metadata: #77401
- [metadata] always serve streaming metadata in build: #77437
- directly import search param resolver in metadata: #77402
- Remove forwardRef from Link in App Router: #77471
- Match subrequest handling for edge and node: #77474
- Add deprecation warning for legacyBehavior prop: #77473
- feat: useLinkStatus: #77300
- [dynamicIO] Avoid memory leak warning for hanging promises: #77480
- [dev-overlay] Remove "Unhandled Runtime Error" label: #77484
- Upgrade React from
db7dfe05-20250319
to740a4f7a-20250325
: #77507 - Upgrade React from
740a4f7a-20250325
to313332d1-20250326
: #77527 - Do not call
expireTags
/getExpiration
unnecessarily: #77570 - fix(jest): stricter regex for 'server-only' in default config: #77588
- Fix: RESTORE_ACTION should not be thenable: #77582
- Use
NEXT_PRIVATE_DEBUG_CACHE
env variable for cache handler debug logs: #77585 - fix: make sure body can be read using
nodejs
runtime in middleware: #77553 - Update alternate bundler and pass more tests : #77579
- Refactor build scripts and rewrite pack-next in TypeScript: #77536
- fix isCsrfOriginAllowed handling for localhost: #77594
- Turbopack build: fix deterministic build test: #77618
- Turbopack build: Fix urlencoding test: #77622
- [og] fix vercel og build issue on windows: #77650
- [Segment Cache] Add "client-only" option: #77655
- Remove useSyncExternalStore from useIsDevRendering: #77651
- Track navigation timestamp on CacheNode: #77251
- Upgrade @playwright/test and cleanup internal APIs: #77659
- Refactor: move
"use cache"
revalidation logic out of incremental cache: #77577 - Remove obsolete update of implicit tags expiration after server action: #77595
- Revert "Remove useSyncExternalStore from useIsDevRendering (#77651)": #77672
- Upgrade React from
313332d1-20250326
to63779030-20250328
: #77643 - Turbopack build: Add marker for when a build used Turbopack: #77674
- feat(images): use experimental
isrFlushToDisk
option to prevent writing optimized images to cache: #70645 - doc: instrumentation-client: #77649
- Alternate bundler: use equivalent native plugins for built-in plugins: #77355
- Resolve Viewport separately from Metadata: #77427
- fix(turbopack): Suppress logging for short no-op turbopack HMRs: #76924
- Turbopack build: Fix node-file-trace test: #77641
- Turbopack build: Implement error when using next start without --turbopack: #77678
- legacyBehavior deprecation error should only trigger once: #77687
- Pass only required props to NonIndex: #77685
- Revert "fix: make sure body can be read using
nodejs
runtime in middleware": #77690 - [dev-overlay] Harden types when handling hydration mismatches: #77334
- [dev-overlay] Fix ref warning when Pages Router with React 18 is used: #77726
- add support for cssmodules-pure-no-check to allow global CSS features like View Transitions: #77321
- [dev-overlay] Only warn once per invalid sourcemap: #77444
- [dynamicIO] only abort once per prerender: #77747
- Turbopack build: Move Turbopack marker to SERVER_FILES_MANIFEST: #77711
- Reapply "Turbopack: layout segment optimization for Pages" (#77339): #77696
- feat(next/image): support
new URL()
forimages.remotePatterns
: #77692 - [dev-overlay] remove text wrap for terminal: #76953
- Upgrade React from
63779030-20250328
to040f8286-20250402
: #77742 - Optimize server runtime bundles: #77723
- Turbopack Build: Remove cases of process.env.TURBOPACK: #77757
- [dev-overlay] Fix unactionable
useLayoutEffect
warning if React 18 is used: #77737 - [dev-tools] Fix flashing of disabled state on indicator: #77727
- Webpack build: Add compiled in x seconds in missing places: #77751
- Ignore an existing HMR refresh hash cookie with
next start
: #77714 - Turbopack build: Replace process.env.TURBOPACK usage: #77783
- Client instrumentation: onRouterTransitionStart: #77791
- Turbopack: log telemetry events when
TurbopackInternalError
s occur: #77660 - Rename alternate bundler package name: #77793
- Turbopack: fix
sideEffects
matching for non-relative globs: #77693 - Revert "Upgrade @playwright/test and cleanup internal APIs": #77814
- [next-ts-plugin] fix: language service crashes / metadata plugin not working: #77213
- [dev-overlay] always display bundler name on version info: #77739
- [dev-overlay] sync horizontal scrollbar style: #77769
- [dev-overlay] Read
issueCount
from non-asyncerrors
array: #77821 - [dev-overlay] Fix error dialog resizing logic: #77830
- Turbopack Build: Optimize instrumentation hook generation: #77832
- [next-server] skip setting vary header for basic routes: #77797
- Lazily call
refreshTags
andgetExpiration
: #77779 - Add debug logging to default cache handler and
"use cache"
wrapper: #77827 - [ts-next-plugin] fix: properly exit when failed to initialize: #77842
- Alternate bundler: correctly inject react refresh loader: #77713
- [dynamicIO] Fix dev warmup: #77829
- fix: don't reset the prefetch segment data routes on loop: #77...