Skip to content

Releases: vercel/next.js

v15.3.1-canary.8

14 Apr 23:42
Compare
Choose a tag to compare
v15.3.1-canary.8 Pre-release
Pre-release

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 to v22.3.1: #78129
  • Update Turbopack production test manifest: #78124
  • [test] isolate parallel metadata test: #78134
  • Update Turbopack development test manifest: #78125
  • Update Rspack production test manifest: #78123
  • [test] Add dedicated tsconfig for test utils: #78141
  • Turbopack: load chunks only once: #75143
  • Reenable a few more Turbopack tests: #78153
  • test: remove "@testing-library/jest-dom" from default jest setup: #78157
  • Turbopack: Update toolchain to 2025-04-14 (Reapply #78062): #78167

Credits

Huge thanks to @bgw, @Fonger, @huozhi, @ospira, @eps1lon, @kdy1, @gnoff, @styfle, @mischnic, @lubieowoce, and @wbinnssmith for helping!

v15.3.1-canary.7

12 Apr 23:35
Compare
Choose a tag to compare
v15.3.1-canary.7 Pre-release
Pre-release

Core Changes

  • Upgrade React from c44e4a25-20250409 to 1d6c8168-20250411: #78067

Misc Changes

  • chore(CI): Add lukesandberg to turbopack team: #78074
  • [test] Activity has types and supports react-server: #78066

Credits

Huge thanks to @bgw and @eps1lon for helping!

v15.3.1-canary.6

11 Apr 23:33
Compare
Choose a tag to compare
v15.3.1-canary.6 Pre-release
Pre-release

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

11 Apr 16:06
Compare
Choose a tag to compare
v15.3.1-canary.5 Pre-release
Pre-release

Core Changes

  • Experimental bfcache: Restore state w/ : #77992

Misc Changes

  • [test] separate rsc-basic tests: #78038

Credits

Huge thanks to @huozhi and @acdlite for helping!

v15.3.1-canary.4

10 Apr 23:22
Compare
Choose a tag to compare
v15.3.1-canary.4 Pre-release
Pre-release

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

10 Apr 20:50
Compare
Choose a tag to compare
v15.3.1-canary.3 Pre-release
Pre-release

Core Changes

  • Move unhandled rejection handling to shared path: #77997

Misc Changes

  • Turbopack: bundle only new Worker with new URL: #78010
  • Turbopack: use hashbrown HashMaps instead of now-removed std raw entry api: #78032
  • Turbopack: proper error message for swcPlugins: #77990

Credits

Huge thanks to @mischnic, @wbinnssmith, and @acdlite for helping!

v15.3.1-canary.2

10 Apr 17:40
Compare
Choose a tag to compare
v15.3.1-canary.2 Pre-release
Pre-release

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 to c44e4a25-20250409: #78031

Misc Changes

  • [test] Remove global styled-components install : #77782
  • Cleanup config.experimental.reactOwnerstack: #78021
  • Docs: Improve "use cache" and cacheLife API references: #78024
  • Docs: Update useLinkStatus API reference: #78022
  • Turbopack: add debug assertion to check for duplicate modules: #78025

Credits

Huge thanks to @eps1lon, @delbaoliveira, @wyattjoh, and @sokra for helping!

v15.3.1-canary.1

10 Apr 12:58
Compare
Choose a tag to compare
v15.3.1-canary.1 Pre-release
Pre-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

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

09 Apr 23:35
Compare
Choose a tag to compare
v15.3.1-canary.0 Pre-release
Pre-release

Misc Changes

  • Turbopack: use correct env var for uploading test results: #77988

Credits

Huge thanks to @sokra for helping!

v15.3.0

09 Apr 20:19
Compare
Choose a tag to compare

Core Changes

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