[Snyk] Upgrade react from 18.3.1 to 19.2.0#15
Conversation
Snyk has created this PR to upgrade react from 18.3.1 to 19.2.0. See this package in npm: react See this project in Snyk: https://app.snyk.io/org/mauriciomenon/project/278fec87-1c65-4e8d-9ab0-e4b1c8d089b8?utm_source=github&utm_medium=referral&page=upgrade-pr
Learn moreAll Green is an AI agent that automatically: ✅ Addresses code review comments ✅ Fixes failing CI checks ✅ Resolves merge conflicts |
|
To generate Unit Tests for this PR, please click here. |
|
Important Review skippedIgnore keyword(s) in the title. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @mauriciomenon, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request, automatically generated by Snyk, updates the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Bito Automatic Review Skipped - Files Excluded |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
This PR upgrades React from 18.3.1 to 19.2.0, which is a major version upgrade that introduces breaking changes. While keeping dependencies up-to-date is important for security, this upgrade requires careful attention to compatibility.
Critical Issue Found:
- React and react-dom versions are mismatched (React 19.2.0 vs react-dom 18.2.0), which will cause runtime errors
Additional Considerations:
- React 19 introduces breaking changes that may require code updates
- TypeScript types (@types/react) should also be updated to match React 19
- Testing library versions may need updates for React 19 compatibility
- Consider updating @vitejs/plugin-react for better React 19 support
Recommendation: Address the react-dom version mismatch before merging, and thoroughly test the application to ensure React 19 compatibility.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
| "react": "^19.2.0", | ||
| "react-dom": "^18.2.0" |
There was a problem hiding this comment.
🛑 Dependency Version Mismatch: Upgrading React to v19.2.0 while keeping react-dom at v18.2.0 creates an incompatible dependency combination that will cause runtime errors. React and react-dom must use matching major versions.
| "react": "^19.2.0", | |
| "react-dom": "^18.2.0" | |
| "react": "^19.2.0", | |
| "react-dom": "^19.2.0" |
There was a problem hiding this comment.
Code Review
This pull request upgrades react to a new major version (19.2.0). This is a good step, but the upgrade is incomplete and will likely break the application as react-dom has not been upgraded to match. I've added a critical comment with a suggestion to upgrade react-dom to ^19.2.0. Additionally, with React 19, the @types/react and @types/react-dom packages are no longer needed and should be removed from devDependencies. You should also verify that other related dependencies, like @vitejs/plugin-react, are compatible with React 19 and upgrade them if necessary. A full test run is highly recommended after applying all these changes.
| "dependencies": { | ||
| "react": "^18.2.0", | ||
| "react": "^19.2.0", | ||
| "react-dom": "^18.2.0" | ||
| }, |
There was a problem hiding this comment.
It's crucial to keep react and react-dom versions in sync. You've upgraded react to version 19, but react-dom is still on version 18. This mismatch will likely cause your application to crash or behave unexpectedly. Please upgrade react-dom to match the react version.
| "dependencies": { | |
| "react": "^18.2.0", | |
| "react": "^19.2.0", | |
| "react-dom": "^18.2.0" | |
| }, | |
| "dependencies": { | |
| "react": "^19.2.0", | |
| "react-dom": "^19.2.0" | |
| }, |
There was a problem hiding this comment.
⚠️ Critical Issue Identified
CRITICAL: Dependency Version Mismatch - This PR has already been reviewed and a critical issue identified that must be addressed before merging.
Issue Summary
The upgrade from React 18.3.1 to 19.2.0 creates a version mismatch between react and react-dom packages:
react: "^19.2.0" (upgraded)react-dom: "^18.2.0" (not upgraded)
Why This Is Critical
React and react-dom must use matching major versions. Using different major versions will cause:
- Runtime errors and crashes
- Component rendering failures
- Unpredictable behavior
Required Fix
Both packages must be upgraded together:
"dependencies": {
"react": "^19.2.0",
"react-dom": "^19.2.0"
}Additional Considerations
- This is a major version upgrade (18→19) with potential breaking changes
- Review React 19 migration guide for any required code changes
- Test thoroughly after dependency alignment
- Consider updating TypeScript types if needed
Status: Existing review comment correctly identifies this issue. Please address the dependency mismatch before merging.
There was a problem hiding this comment.
Pull request overview
This PR upgrades React from version 18.3.1 to 19.2.0, a major version update that includes breaking changes and new features. The upgrade spans 420 versions and was released approximately 3 months ago.
Key Changes:
- Upgrade React core library to version 19.2.0
- Brings new APIs including
<Activity>,useEffectEvent, andcacheSignal - Includes React Server Components enhancements and performance improvements
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "dependencies": { | ||
| "react": "^18.2.0", | ||
| "react": "^19.2.0", | ||
| "react-dom": "^18.2.0" |
There was a problem hiding this comment.
The react-dom version (^18.2.0) is incompatible with the upgraded React version (^19.2.0). Both packages must be on the same major version to work correctly. Update react-dom to ^19.2.0 to match the React version.
| "react-dom": "^18.2.0" | |
| "react-dom": "^19.2.0" |
There was a problem hiding this comment.
AI Code Review by LlamaPReview
🎯 TL;DR & Recommendation
Recommendation: Request Changes
This PR upgrades React to v19.2.0 but leaves react-dom at v18.2.0, creating a critical version mismatch that will cause runtime errors. Additional dependency updates are recommended for full compatibility.
🌟 Strengths
- Addresses potential vulnerabilities by upgrading React to a newer, patched version.
| Priority | File | Category | Impact Summary | Anchors |
|---|---|---|---|---|
| P1 | go_wails_react/.../package.json |
Architecture | Version mismatch causes runtime rendering errors. | path:go_wails_react/frontend/src/main.jsx, path:go_wails_react/frontend/src/main.tsx |
| P2 | go_wails_react/.../package.json |
Testing | Type definitions and testing libs may be outdated. | search:react-dom, path:go_wails_react/frontend/src/main.jsx |
| P2 | go_wails_react/.../package.json |
Architecture | Vite plugin may need update for React 19 features. | path:go_wails_react/frontend/vite.config.js |
| P2 | go_wails_react/.../package.json |
Security | Upgrade addresses potential vulnerabilities. | |
| P2 | go_wails_react/.../package.json |
Testing | Need to run tests to validate compatibility. |
🔍 Notable Themes
- Ensure dependency consistency across the React ecosystem (React, ReactDOM, type definitions, plugins) to prevent runtime issues and maintain compatibility.
💡 Have feedback? We'd love to hear it in our GitHub Discussions.
✨ This review was generated by LlamaPReview Advanced, which is free for all open-source projects. Learn more.
| "dependencies": { | ||
| "react": "^18.2.0", | ||
| "react": "^19.2.0", | ||
| "react-dom": "^18.2.0" | ||
| }, |
There was a problem hiding this comment.
P1 | Confidence: High
The PR upgrades React to v19.2.0 while leaving react-dom at v18.2.0. React 19 requires ReactDOM 19; using incompatible versions will cause runtime errors. The Evidence Anchors show two entry points (main.jsx and main.tsx) that import react-dom/client. This version mismatch violates peer dependency requirements and will break the application's rendering pipeline.
| "dependencies": { | |
| "react": "^18.2.0", | |
| "react": "^19.2.0", | |
| "react-dom": "^18.2.0" | |
| }, | |
| "dependencies": { | |
| "react": "^19.2.0", | |
| "react-dom": "^19.2.0" | |
| }, |
Evidence: path:go_wails_react/frontend/src/main.jsx, path:go_wails_react/frontend/src/main.tsx
| "react": "^19.2.0", | ||
| "react-dom": "^18.2.0" | ||
| }, | ||
| "devDependencies": { |
There was a problem hiding this comment.
P2 | Confidence: High
Speculative: React 19 introduces TypeScript definition changes and may have testing library compatibility requirements. The current dev dependencies are pinned to React 18 versions (@types/react@18, @testing-library/react@16.3.0). While these might work with React 19, they won't provide type safety for new APIs and could cause subtle testing issues. The project has React component files (per Evidence Anchors) that would benefit from accurate type definitions.
Code Suggestion:
"devDependencies": {
"@testing-library/react": "^16.0.0",
"@types/react": "^19.2.0",
"@types/react-dom": "^19.2.0",
}Evidence: search:react-dom, path:go_wails_react/frontend/src/main.jsx
[Contextual Comment]
This comment refers to code near real line 22. Anchored to nearest_changed(17) line 17.
P2 | Confidence: Medium
Speculative: The Vite React plugin (@vitejs/plugin-react) may need updating for optimal React 19 support, particularly for features like React Server Components. While version 2.0.1 might be compatible, React 19's concurrent features and server rendering changes could benefit from plugin updates. The Evidence Anchors show the project uses Vite with this plugin.
Code Suggestion:
"devDependencies": {
"@vitejs/plugin-react": "^5.0.0",
}Evidence: path:go_wails_react/frontend/vite.config.js
| }, | ||
| "dependencies": { | ||
| "react": "^18.2.0", | ||
| "react": "^19.2.0", |
There was a problem hiding this comment.
P2 | Confidence: High
The upgrade addresses potential vulnerabilities in React 18.3.1. While no specific CVEs are mentioned in the PR description, React 19.2.0 includes security patches and improvements from the 420-version gap. This is a positive security maintenance change that follows dependency update best practices.
| @@ -11,7 +11,7 @@ | |||
| "test": "vitest run" | |||
There was a problem hiding this comment.
[Contextual Comment]
This comment refers to code near real line 7. Anchored to nearest_changed(11) line 11.
P2 | Confidence: Medium
Speculative: After upgrading React and related dependencies, comprehensive testing is essential to validate compatibility. The project has a test script using Vitest, but no test files are shown in the context. Consider running the test suite and adding integration tests for React 19-specific features or verifying that existing component behavior remains unchanged.

Snyk has created this PR to upgrade react from 18.3.1 to 19.2.0.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 420 versions ahead of your current version.
The recommended version was released 3 months ago.
Release notes
Package name: react
-
19.2.0 - 2025-10-01
- React Performance tracks appear on the Performance panel’s timeline in your browser developer tools
- Added resume APIs for partial pre-rendering with Web Streams:
- Added resume APIs for partial pre-rendering with Node Streams:
- Updated
- React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming
- Add Node Web Streams (
- Use underscore instead of
- Stringify context as "SomeContext" instead of "SomeContext.Provider" (@ kassens #33507)
- Include stack of cause of React instrumentation errors with
- Fix infinite
- Fix a bug when an initial value was passed to
- Fix a crash when submitting forms with Client Actions (@ sebmarkbage #33055)
- Hide/unhide the content of dehydrated suspense boundaries if they resuspend (@ sebmarkbage #32900)
- Avoid stack overflow on wide trees during Hot Reload (@ sophiebits #34145)
- Improve Owner and Component stacks in various places (@ sebmarkbage, @ eps1lon: #33629, #33724, #32735, #33723)
- Add
- Block on Suspensey Fonts during reveal of server-side-rendered content (@ sebmarkbage #33342)
- Use underscore instead of
- Stop warning when ARIA 1.3 attributes are used (@ Abdul-Omira #34264)
- Allow
- Warn for using a React owned node as a Container if it also has text content (@ sebmarkbage #32774)
- s/HTML/text for for error messages if text hydration mismatches (@ rickhanlonii #32763)
- Fix a bug with
- Enable the
- Fix a bug with deeply nested Suspense inside Suspense fallback when server-side-rendering (@ gnoff #33467)
- Avoid hanging when suspending after aborting while rendering (@ gnoff #34192)
- Add Node Web Streams to server-side-rendering APIs for Node.js (@ sebmarkbage #33475)
- Preload
- Log error if production elements are rendered during development (@ eps1lon #34189)
- Fix a bug when returning a Temporary reference (e.g. a Client Reference) from Server Functions (@ sebmarkbage #34084, @ denk0403 #33761)
- Pass line/column to
- Support Async Modules in Turbopack Server References (@ lubieowoce #34531)
- Add support for .mjs file extension in Webpack (@ jennyscript #33028)
- Fix a wrong missing key warning (@ unstubbable #34350)
- Make console log resolve in predictable order (@ sebmarkbage #33665)
- createContainer and createHydrationContainer had their parameter order adjusted after
- Breaking: Require Node.js 18 or newer. (@ michaelfaith in #32458)
- Breaking: Flat config is now the default
- New Violations: Disallow calling
- New Violations: Disallow calling
- Handle
- Added
-
19.2.0-canary-fa3feba6-20250623 - 2025-06-23
-
19.2.0-canary-f9ae0a4c-20250527 - 2025-05-27
-
19.2.0-canary-f7396427-20250501 - 2025-05-02
-
19.2.0-canary-f508edc8-20250818 - 2025-08-18
-
19.2.0-canary-f3a80361-20250911 - 2025-09-11
-
19.2.0-canary-f1e70b5e-20250811 - 2025-08-11
-
19.2.0-canary-f1222f76-20250812 - 2025-08-13
-
19.2.0-canary-ef8b6fa2-20250702 - 2025-07-03
-
19.2.0-canary-ef889445-20250930 - 2025-09-30
-
19.2.0-canary-edac0dde-20250723 - 2025-07-23
-
19.2.0-canary-eaee5308-20250728 - 2025-07-28
-
19.2.0-canary-ea05b750-20250408 - 2025-04-09
-
19.2.0-canary-e9db3cc2-20250501 - 2025-05-01
-
19.2.0-canary-e9638c33-20250721 - 2025-07-21
-
19.2.0-canary-e6dc25da-20250709 - 2025-07-09
-
19.2.0-canary-e5dd82a7-20250401 - 2025-04-01
-
19.2.0-canary-e2332183-20250924 - 2025-09-24
-
19.2.0-canary-dffacc7b-20250717 - 2025-07-17
-
19.2.0-canary-df38ac9a-20250926 - 2025-09-26
-
19.2.0-canary-de5a1b20-20250905 - 2025-09-05
-
19.2.0-canary-d92056ef-20250627 - 2025-06-27
-
19.2.0-canary-d85f86cf-20250514 - 2025-05-14
-
19.2.0-canary-d85ec5f5-20250716 - 2025-07-16
-
19.2.0-canary-d415fd3e-20250919 - 2025-09-19
-
19.2.0-canary-d15d7fd7-20250929 - 2025-09-29
-
19.2.0-canary-cee7939b-20250625 - 2025-06-25
-
19.2.0-canary-c498bfce-20250426 - 2025-04-28
-
19.2.0-canary-c4676e72-20250520 - 2025-05-20
-
19.2.0-canary-c44e4a25-20250409 - 2025-04-10
-
19.2.0-canary-c260b38d-20250731 - 2025-07-31
-
19.2.0-canary-c129c242-20250505 - 2025-05-05
-
19.2.0-canary-c0464aed-20250523 - 2025-05-26
-
19.2.0-canary-befc1246-20250708 - 2025-07-08
-
19.2.0-canary-be11cb5c-20250804 - 2025-08-04
-
19.2.0-canary-bdb4a96f-20250801 - 2025-08-01
-
19.2.0-canary-bc6184dd-20250417 - 2025-04-18
-
19.2.0-canary-bbc13fa1-20250624 - 2025-06-24
-
19.2.0-canary-bb6f0c8d-20250901 - 2025-09-01
-
19.2.0-canary-b9cfa0d3-20250505 - 2025-05-05
-
19.2.0-canary-b9a04536-20250904 - 2025-09-04
-
19.2.0-canary-b94603b9-20250513 - 2025-05-13
-
19.2.0-canary-b7e2de63-20250611 - 2025-06-11
-
19.2.0-canary-b6c0aa88-20250609 - 2025-06-09
-
19.2.0-canary-b4477d38-20250605 - 2025-06-05
-
19.2.0-canary-b1b0955f-20250901 - 2025-09-01
-
19.2.0-canary-b10cb4c0-20250403 - 2025-04-03
-
19.2.0-canary-b0c1dc01-20250925 - 2025-09-25
-
19.2.0-canary-b07717d8-20250528 - 2025-05-28
-
19.2.0-canary-b04254fd-20250415 - 2025-04-16
-
19.2.0-canary-ac7820a9-20250811 - 2025-08-11
-
19.2.0-canary-ab859e31-20250606 - 2025-06-06
-
19.2.0-canary-aad7c664-20250829 - 2025-08-29
-
19.2.0-canary-a96a0f39-20250815 - 2025-08-15
-
19.2.0-canary-a7a11657-20250708 - 2025-07-08
-
19.2.0-canary-a00ca6f6-20250611 - 2025-06-11
-
19.2.0-canary-9be531cd-20250729 - 2025-07-29
-
19.2.0-canary-99efc627-20250523 - 2025-05-23
-
19.2.0-canary-97cdd5d3-20250710 - 2025-07-11
-
19.2.0-canary-9784cb37-20250730 - 2025-07-30
-
19.2.0-canary-96c61b7f-20250709 - 2025-07-10
-
19.2.0-canary-93d7aa69-20250912 - 2025-09-12
-
19.2.0-canary-914319ae-20250423 - 2025-04-23
-
19.2.0-canary-8e60cb7e-20250902 - 2025-09-02
-
19.2.0-canary-8d7b5e49-20250827 - 2025-08-28
-
19.2.0-canary-8ce15b0f-20250522 - 2025-05-22
-
19.2.0-canary-8bb7241f-20250926 - 2025-09-26
-
19.2.0-canary-8a8e9a7e-20250912 - 2025-09-12
-
19.2.0-canary-89a803fc-20250828 - 2025-08-28
-
19.2.0-canary-886b3d36-20250910 - 2025-09-10
-
19.2.0-canary-873f7112-20250821 - 2025-08-21
-
19.2.0-canary-86181134-20251001 - 2025-10-01
-
19.2.0-canary-84af9085-20250917 - 2025-09-18
-
19.2.0-canary-83c88ad4-20250923 - 2025-09-23
-
19.2.0-canary-7deda941-20250804 - 2025-08-05
-
19.2.0-canary-7a2c7045-20250506 - 2025-05-06
-
19.2.0-canary-79d9aed7-20250620 - 2025-06-20
-
19.2.0-canary-7513996f-20250722 - 2025-07-22
-
19.2.0-canary-73aa744b-20250702 - 2025-07-02
-
19.2.0-canary-7216c0f0-20250630 - 2025-07-01
-
19.2.0-canary-72135096-20250421 - 2025-04-22
-
19.2.0-canary-6eda5347-20250918 - 2025-09-19
-
19.2.0-canary-6de32a5a-20250822 - 2025-08-22
-
19.2.0-canary-6b70072c-20250909 - 2025-09-09
-
19.2.0-canary-6a7650c7-20250405 - 2025-04-05
-
19.2.0-canary-67a44bcd-20250915 - 2025-09-15
-
19.2.0-canary-66f09bd0-20250806 - 2025-08-06
-
19.2.0-canary-65c4decb-20250630 - 2025-06-30
-
19.2.0-canary-63779030-20250328 - 2025-03-31
-
19.2.0-canary-60b5271a-20250709 - 2025-07-09
-
19.2.0-canary-5e0c951b-20250916 - 2025-09-16
-
19.2.0-canary-5dc00d6b-20250428 - 2025-04-28
-
19.2.0-canary-5d87cd22-20250704 - 2025-07-04
-
19.2.0-canary-56408a5b-20250610 - 2025-06-10
-
19.2.0-canary-548235db-20251001 - 2025-10-01
-
19.2.0-canary-540cd652-20250403 - 2025-04-04
-
19.2.0-canary-534bed5f-20250813 - 2025-08-13
-
19.2.0-canary-526dd340-20250602 - 2025-06-02
-
19.2.0-canary-4db4b21c-20250626 - 2025-06-26
-
19.2.0-canary-4a45ba92-20250515 - 2025-05-15
-
19.2.0-canary-4a36d3ea-20250416 - 2025-04-17
-
19.2.0-canary-462d08f9-20250517 - 2025-05-19
-
19.2.0-canary-4448b187-20250515 - 2025-05-16
-
19.2.0-canary-4123f6b7-20250826 - 2025-08-26
-
19.2.0-canary-408d055a-20250430 - 2025-04-30
-
19.2.0-canary-3fbfb9ba-20250409 - 2025-04-09
-
19.2.0-canary-3fb190f7-20250908 - 2025-09-08
-
19.2.0-canary-3d14fcf0-20250724 - 2025-07-24
-
19.2.0-canary-39cad7af-20250411 - 2025-04-14
-
19.2.0-canary-3958d5d8-20250807 - 2025-08-07
-
19.2.0-canary-38ef6550-20250508 - 2025-05-08
-
19.2.0-canary-3820740a-20250509 - 2025-05-12
-
19.2.0-canary-379a083b-20250813 - 2025-08-14
-
19.2.0-canary-37054867-20250604 - 2025-06-04
-
19.2.0-canary-33a1095d-20250827 - 2025-08-27
-
19.2.0-canary-33661467-20250407 - 2025-04-07
-
19.2.0-canary-3302d1f7-20250903 - 2025-09-03
-
19.2.0-canary-2f0e7e57-20250715 - 2025-07-15
-
19.2.0-canary-280ff6fe-20250606 - 2025-06-06
-
19.2.0-canary-2805f0ed-20250903 - 2025-09-03
-
19.2.0-canary-23884812-20250520 - 2025-05-21
-
19.2.0-canary-223f81d8-20250707 - 2025-07-07
-
19.2.0-canary-21fdf308-20250508 - 2025-05-09
-
19.2.0-canary-1eca9a27-20250922 - 2025-09-22
-
19.2.0-canary-1dc3bdea-20250812 - 2025-08-12
-
19.2.0-canary-1d6c8168-20250411 - 2025-04-11
-
19.2.0-canary-1bd1f01f-20251001 - 2025-10-01
-
19.2.0-canary-1ae0a845-20250603 - 2025-06-03
-
19.2.0-canary-19baee81-20250725 - 2025-07-25
-
19.2.0-canary-197d6a04-20250424 - 2025-04-24
-
19.2.0-canary-143d3e1b-20250425 - 2025-04-25
-
19.2.0-canary-14094f80-20250529 - 2025-05-29
-
19.2.0-canary-12bc60f5-20250613 - 2025-06-13
-
19.2.0-canary-128abcfa-20250917 - 2025-09-17
-
19.2.0-canary-0ff1d13b-20250507 - 2025-05-07
-
19.2.0-canary-0bdb9206-20250818 - 2025-08-19
-
19.2.0-canary-06e89951-20250620 - 2025-06-20
-
19.2.0-canary-040f8286-20250402 - 2025-04-02
-
19.2.0-canary-03fda05d-20250820 - 2025-08-20
-
19.2.0-canary-0038c501-20250429 - 2025-04-29
-
19.1.4 - 2025-12-11
- Add extra loop protection to React Server Functions (@ sebmarkbage #35351)
-
19.1.3 - 2025-12-11
- Move
- Patch Promise cycles and toString on Server Functions (@ sebmarkbage, @ unstubbable #35289, #35345)
-
19.1.2 - 2025-12-03
- Bring React Server Component fixes to Server Actions (@ sebmarkbage #35277)
-
19.1.1 - 2025-07-28
-
19.1.0 - 2025-03-28
-
19.1.0-canary-ff628334-20250205 - 2025-02-06
-
19.1.0-canary-fcb4e0f1-20250219 - 2025-02-20
-
19.1.0-canary-fc8a898d-20241226 - 2024-12-27
-
19.1.0-canary-fbcda19a-20250317 - 2025-03-17
-
19.1.0-canary-f9d78089-20250306 - 2025-03-07
-
19.1.0-canary-f83903bf-20250212 - 2025-02-12
-
19.1.0-canary-f457d0b4-20250313 - 2025-03-13
-
19.1.0-canary-f0edf41e-20250115 - 2025-01-14
-
19.1.0-canary-ef979d47-20241218 - 2024-12-18
-
19.1.0-canary-ef4bc8b4-20250328 - 2025-03-28
-
19.1.0-canary-ebc22ef7-20250225 - 2025-02-26
-
19.1.0-canary-e670e72f-20250214 - 2025-02-14
-
19.1.0-canary-e1e74071-20250321 - 2025-03-21
-
19.1.0-canary-e06c72fc-20241215 - 2024-12-16
-
19.1.0-canary-e03ac20f-20250305 - 2025-03-05
-
19.1.0-canary-de82912e-20241220 - 2024-12-20
-
19.1.0-canary-de1eaa26-20250124 - 2025-01-24
-
19.1.0-canary-db7dfe05-20250319 - 2025-03-19
-
19.1.0-canary-d85cf3e5-20250205 - 2025-02-05
-
19.1.0-canary-d55cc79b-20250228 - 2025-02-28
-
19.1.0-canary-d46b04a2-20250117 - 2025-01-17
-
19.1.0-canary-d4287258-20241217 - 2024-12-17
-
19.1.0-canary-d331ba04-20250307 - 2025-03-10
-
19.1.0-canary-cd90a4d8-20250210 - 2025-02-11
-
19.1.0-canary-cbbe8666-20250213 - 2025-02-13
-
19.1.0-canary-cabd8a0e-20250113 - 2025-01-13
-
19.1.0-canary-c69a5fc5-20250318 - 2025-03-18
-
19.1.0-canary-c492f975-20250128 - 2025-01-29
-
19.1.0-canary-c01b8058-20241229 - 2024-12-30
-
19.1.0-canary-bb9a24d9-20250130 - 2025-01-30
-
19.1.0-canary-b3a95caf-20250113 - 2025-01-14
-
19.1.0-canary-b158439a-20250115 - 2025-01-15
-
19.1.0-canary-ae9017ce-20250122 - 2025-01-23
-
19.1.0-canary-a84862db-20250218 - 2025-02-19
-
19.1.0-canary-a4f9bd58-20250319 - 2025-03-20
-
19.1.0-canary-a4b2d0d5-20250203 - 2025-02-03
-
19.1.0-canary-9ff42a87-20250130 - 2025-01-31
-
19.1.0-canary-9eabb373-20250124 - 2025-01-27
-
19.1.0-canary-9b62ee71-20250122 - 2025-01-22
-
19.1.0-canary-97d79495-20241223 - 2024-12-24
-
19.1.0-canary-9463d51e-20241219 - 2024-12-19
-
19.1.0-canary-93b58361-20250209 - 2025-02-10
-
19.1.0-canary-8a7b487e-20250218 - 2025-02-18
-
19.1.0-canary-8759c5c8-20250207 - 2025-02-07
-
19.1.0-canary-7eb8234f-20241218 - 2024-12-18
-
19.1.0-canary-7b402084-20250107 - 2025-01-07
-
19.1.0-canary-74ea0c73-20250109 - 2025-01-09
-
19.1.0-canary-740a4f7a-20250325 - 2025-03-25
-
19.1.0-canary-7130d0c6-20241212 - 2024-12-12
-
19.1.0-canary-6aa8254b-20250312 - 2025-03-12
-
19.1.0-canary-694d3e1a-20241231 - 2025-01-01
-
19.1.0-canary-6907aa2a-20241220 - 2024-12-23
-
19.1.0-canary-662957cc-20250221 - 2025-02-21
-
19.1.0-canary-62208bee-20250102 - 2025-01-02
-
19.1.0-canary-5b51a2b9-20250116 - 2025-01-16
-
19.1.0-canary-540efebc-20250112 - 2025-01-12
-
19.1.0-canary-5398b711-20250314 - 2025-03-14
-
19.1.0-canary-518d06d2-20241219 - 2024-12-19
-
19.1.0-canary-4dff0e62-20241213 - 2024-12-13
-
19.1.0-canary-4632e36a-20250216 - 2025-02-17
-
19.1.0-canary-443b7ff2-20250303 - 2025-03-04
-
19.1.0-canary-4280563b-20250326 - 2025-03-27
-
19.1.0-canary-42687267-20250108 - 2025-01-08
-
19.1.0-canary-3ce77d55-20250106 - 2025-01-06
-
19.1.0-canary-3b009b4c-20250102 - 2025-01-03
-
19.1.0-canary-37906d4d-20250127 - 2025-01-28
-
19.1.0-canary-32b0cad8-20250213 - 2025-02-13
-
19.1.0-canary-313332d1-20250326 - 2025-03-26
-
19.1.0-canary-2980f277-20250301 - 2025-03-03
-
19.1.0-canary-25677265-20250224 - 2025-02-24
-
19.1.0-canary-22e39ea7-20250225 - 2025-02-25
-
19.1.0-canary-18eaf51b-20250118 - 2025-01-20
-
19.1.0-canary-130095f7-20241212 - 2024-12-12
-
19.1.0-canary-0ca3deeb-20250311 - 2025-03-11
-
19.1.0-canary-0a82580b-20250203 - 2025-02-04
-
19.1.0-canary-056073de-20250109 - 2025-01-10
-
19.1.0-canary-029e8bd6-20250306 - 2025-03-06
-
19.0.3 - 2025-12-11
- Add extra loop protection to React Server Functions (@ sebmarkbage #35351)
-
19.0.2 - 2025-12-11
- Patch Promise cycles and toString on Server Functions (@ sebmarkbage, @ unstubbable #35289, #35345)
-
19.0.1 - 2025-12-03
- Bring React Server Component fixes to Server Actions (@ sebmarkbage #35277)
-
19.0.0 - 2024-12-05
-
19.0.0-rc-fb9a90fa48-20240614 - 2024-06-14
-
19.0.0-rc-fa6eab58-20240815 - 2024-08-16
-
19.0.0-rc-f9ebd85a-20240925 - 2024-09-25
-
19.0.0-rc-f994737d14-20240522 - 2024-05-22
-
19.0.0-rc-f90a6bcc-20240827 - 2024-08-27
-
19.0.0-rc-f6cce072-20240723 - 2024-07-23
-
19.0.0-rc-f65ac7bd-20240826 - 2024-08-27
-
19.0.0-rc-f3e09d6328-20240612 - 2024-06-12
-
19.0.0-rc-f38c22b244-20240704 - 2024-07-05
-
19.0.0-rc-f2df5694-20240916 - 2024-09-16
-
19.0.0-rc-ee1a403a-20240916 - 2024-09-16
-
19.0.0-rc-ed966dac-20241007 - 2024-10-08
-
19.0.0-rc-ed15d500-20241110 - 2024-11-11
-
19.0.0-rc-eb3ad065-20240822 - 2024-08-22
-
19.0.0-rc-eb259b5d3b-20240605 - 2024-06-05
-
19.0.0-rc-e948a5ac-20240807 - 2024-08-07
-
19.0.0-rc-e740d4b1-20240919 - 2024-09-19
-
19.0.0-rc-e684ca66ab-20240619 - 2024-06-19
-
19.0.0-rc-e56f4ae3-20240830 - 2024-08-30
-
19.0.0-rc-e4953922-20240919 - 2024-09-20
-
19.0.0-rc-e210d081-20240909 - 2024-09-09
-
19.0.0-rc-e1ef8c95-20241115 - 2024-11-15
-
19.0.0-rc-e02baf6c92-20240627 - 2024-06-27
-
19.0.0-rc-dfd30974ab-20240613 - 2024-06-13
-
19.0.0-rc-df783f9ea1-20240708 - 2024-07-08
-
19.0.0-rc-df5f2736-20240712 - 2024-07-12
-
19.0.0-rc-de68d2f4-20241204 - 2024-12-04
-
19.0.0-rc-d8c90fa4-20241001 - 2024-10-01
-
19.0.0-rc-d6cb4e77-20240911 - 2024-09-11
-
19.0.0-rc-d5bba18b-20241009 - 2024-10-09
-
19.0.0-rc-d49123f7-20241019 - 2024-10-20
-
19.0.0-rc-d48603a5-20240813 - 2024-08-13
-
19.0.0-rc-d3ce0d3ea9-20240520 - 2024-05-20
-
19.0.0-rc-d1afcb43-20240903 - 2024-09-04
-
19.0.0-rc-d025ddd3-20240722 - 2024-07-22
-
19.0.0-rc-cd22717c-20241013 - 2024-10-13
-
19.0.0-rc-cc1ec60d0d-20240607 - 2024-06-07
-
19.0.0-rc-cae764ce-20241025 - 2024-10-25
-
19.0.0-rc-ca587425-20241211 - 2024-12-12
-
19.0.0-rc-c3cdbec0a7-20240708 - 2024-07-09
-
19.0.0-rc-c21bcd627b-20240624 - 2024-06-24
-
19.0.0-rc-c1e1358b-20241020 - 2024-10-20
-
19.0.0-rc-c11c9510-20241120 - 2024-11-21
-
19.0.0-rc-bf7e210c-20241017 - 2024-10-17
-
19.0.0-rc-bf3a29d097-20240603 - 2024-06-04
-
19.0.0-rc-b8ae38f8-20241018 - 2024-10-18
-
19.0.0-rc-b7e21579-20241031 - 2024-11-01
-
19.0.0-rc-b57d2823-20240822 - 2024-08-23
-
19.0.0-rc-b01722d5-20241114 - 2024-11-14
-
19.0.0-rc-ab7c1663-20240730 - 2024-07-30
-
19.0.0-rc-ab2135c7-20240724 - 2024-07-24
-
19.0.0-rc-a99d8e8d-20240916 - 2024-09-17
-
19.0.0-rc-a960b92c-20240819 - 2024-08-20
-
19.0.0-rc-a7d1240c-20240731 - 2024-07-31
-
19.0.0-rc-a532d91d01-20240610 - 2024-06-10
-
19.0.0-rc-a26e3f403e-20240611 - 2024-06-11
-
19.0.0-rc-a19a8ab4-20240829 - 2024-08-29
-
19.0.0-rc-a03254bc-20240905 - 2024-09-06
-
19.0.0-rc-9d4fba0788-20240530 - 2024-05-30
-
19.0.0-rc-9d2da591-20240808 - 2024-08-08
-
19.0.0-rc-9c6806964f-20240703 - 2024-07-03
-
19.0.0-rc-99da76f23a-20240606 - 2024-06-06
-
19.0.0-rc-9598c41a20-20240603 - 2024-06-03
-
19.0.0-rc-94e652d5-20240912 - 2024-09-12
-
19.0.0-rc-941e1b4a-20240729 - 2024-07-29
-
19.0.0-rc-935180c7e0-20240524 - 2024-05-24
-
19.0.0-rc-915b914b3a-20240515 - 2024-05-15
-
19.0.0-rc-91061073-20241121 - 2024-11-22
-
19.0.0-rc-8f3c0525f9-20240521 - 2024-05-21
-
19.0.0-rc-8b08e99e-20240713 - 2024-07-15
-
19.0.0-rc-8971381549-20240625 - 2024-06-25
-
19.0.0-rc-85acf2d195-20240711 - 2024-07-11
-
19.0.0-rc-83825814-20241015 - 2024-10-15
-
19.0.0-rc-827cbea417-20240606 - 2024-06-07
-
19.0.0-rc-8269d55d-20240802 - 2024-08-02
-
19.0.0-rc-81c5ff2e04-20240521 - 2024-05-21
-
19.0.0-rc-7c8e5e7a-20241101 - 2024-11-01
-
19.0.0-rc-7ac8e612-20241113 - 2024-11-13
-
19.0.0-rc-79ddf5b5-20241210 - 2024-12-11
-
19.0.0-rc-77f43893-20241010 - 2024-10-10
-
19.0.0-rc-77b637d6-20241016 - 2024-10-16
-
19.0.0-rc-778e1ed2-20240926 - 2024-09-25
-
19.0.0-rc-7771d3a7-20240827 - 2024-08-28
-
19.0.0-rc-7670501b-20241124 - 2024-11-25
-
19.0.0-rc-76002254-20240724 - 2024-07-25
-
19.0.0-rc-7283a213-20241206 - 2024-12-06
-
19.0.0-rc-70fb1363-20241010 - 2024-10-10
-
19.0.0-rc-6fb39ec9e9-20240621 - 2024-06-21
-
19.0.0-rc-6f23540c7d-20240528 - 2024-05-28
-
19.0.0-rc-6f0dc294-20241119 - 2024-11-19
-
19.0.0-rc-6ebfd5b0-20240818 - 2024-08-19
-
19.0.0-rc-6d3110b4d9-20240531 - 2024-05-31
-
19.0.0-rc-6cf85185-20241014 - 2024-10-14
-
19.0.0-rc-69d4b800-20241021 - 2024-10-21
-
19.0.0-rc-68dbd84b-20240812 - 2024-08-12
-
19.0.0-rc-67fee58b-20240926 - 2024-09-26
-
19.0.0-rc-66855b96-20241106 - 2024-11-06
-
19.0.0-rc-65e06cb7-20241218 - 2024-12-19
-
19.0.0-rc-65a56d0e-20241020 - 2024-10-20
-
19.0.0-rc-65903583-20240805 - 2024-08-05
-
19.0.0-rc-64f89510-20241119 - 2024-11-20
-
19.0.0-rc-6230622a1a-20240610 - 2024-06-10
-
19.0.0-rc-603e6108-20241029 - 2024-10-30
-
19.0.0-rc-5dcb0097-20240918 - 2024-09-18
-
19.0.0-rc-5d19e1c8-20240923 - 2024-09-23
-
19.0.0-rc-5c56b873-20241107 - 2024-11-07
-
19.0.0-rc-5b0ef217-20241202 - 2024-12-02
-
19.0.0-rc-58af67a8f8-20240628 - 2024-06-28
-
19.0.0-rc-57fbe3ba37-20240520 - 2024-05-20
-
19.0.0-rc-512b09b2-20240718 - 2024-07-18
-
19.0.0-rc-4f604941-20240830 - 2024-09-02
-
19.0.0-rc-4d577fd2-20241104 - 2024-11-04
-
19.0.0-rc-4c58fce7-20240904 - 2024-09-05
-
19.0.0-rc-4c2e457c7c-20240522 - 2024-05-23
-
19.0.0-rc-4beb1fd8-20241118 - 2024-11-18
-
19.0.0-rc-4b7d4530-20241218 - 2024-12-18
-
19.0.0-rc-49496d49-20240814 - 2024-08-14
-
19.0.0-rc-47352209-20240912 - 2024-09-12
-
19.0.0-rc-459fd418-20241001 - 2024-10-02
-
19.0.0-rc-45804af1-20241021 - 2024-10-22
-
19.0.0-rc-3f1436cca1-20240516 - 2024-05-17
-
19.0.0-rc-3edc000d-20240926 - 2024-09-27
-
19.0.0-rc-3dfd5d9e-20240910 - 2024-09-10
-
19.0.0-rc-3da26163a3-20240704 - 2024-07-04
-
19.0.0-rc-3ac551e855-20240522 - 2024-05-22
-
19.0.0-rc-38e3b23483-20240529 - 2024-05-29
-
19.0.0-rc-38af456a-20241010 - 2024-10-10
-
19.0.0-rc-380f5d67-20241113 - 2024-11-14
-
19.0.0-rc-378b305958-20240710 - 2024-07-10
-
19.0.0-rc-372ec00c-20241209 - 2024-12-10
-
19.0.0-rc-3563387fe3-20240621 - 2024-06-21
-
19.0.0-rc-34d0c5e357-20240607 - 2024-06-10
-
19.0.0-rc-33c7bd9a-20241104 - 2024-11-05
-
19.0.0-rc-3208e73e-20240730 - 2024-07-30
-
19.0.0-rc-2ec26bc4-20241111 - 2024-11-12
-
19.0.0-rc-2d2cc042-20240809 - 2024-08-09
-
19.0.0-rc-2d16326d-20240930 - 2024-09-30
-
19.0.0-rc-28668d39-20241023 - 2024-10-23
-
19.0.0-rc-20b6f4c0e8-20240607 - 2024-06-10
-
19.0.0-rc-206df66e-20240912 - 2024-09-13
-
19.0.0-rc-204a551e-20240926 - 2024-09-26
-
19.0.0-rc-1eaccd82-20240816 - 2024-08-16
-
19.0.0-rc-1df34bdf62-20240605 - 2024-06-05
-
19.0.0-rc-1d989965-20240821 - 2024-08-21
-
19.0.0-rc-1c9b1387-20241204 - 2024-12-05
-
19.0.0-rc-1b1283ad-20241203 - 2024-12-03
-
19.0.0-rc-19bd26be-20240815 - 2024-08-15
-
19.0.0-rc-187dd6a7-20240806 - 2024-08-06
-
19.0.0-rc-16409d05-20241101 - 2024-11-01
-
19.0.0-rc-163365a0-20240717 - 2024-07-17
-
19.0.0-rc-1631855f-20241023 - 2024-10-23
-
19.0.0-rc-14a4699f-20240725 - 2024-07-25
-
19.0.0-rc-1460d67c-20241003 - 2024-10-04
-
19.0.0-rc-1434af3d22-20240618 - 2024-06-18
-
19.0.0-rc-107a2f8c3e-20240617 - 2024-06-17
-
19.0.0-rc-100dfd7dab-20240701 - 2024-07-01
-
19.0.0-rc-0bc30748-20241028 - 2024-10-29
-
19.0.0-rc-09111202-20241011 - 2024-10-11
-
19.0.0-rc-0751fac7-20241002 - 2024-10-03
-
19.0.0-rc-06d0b89e-20240801 - 2024-08-01
-
19.0.0-rc-04bd67a4-20240924 - 2024-09-24
-
19.0.0-rc-02c0e824-20241028 - 2024-10-28
-
19.0.0-rc-01172397-20240716 - 2024-07-16
-
19.0.0-rc.1 - 2024-11-14
-
19.0.0-rc.0 - 2024-06-03
-
19.0.0-canary-fd0da3eef-20240404 - 2024-04-04
-
19.0.0-canary-e3ebcd54b-20240405 - 2024-04-05
-
19.0.0-canary-db913d8e17-20240422 - 2024-04-22
-
19.0.0-canary-cf5ab8b8b2-20240425 - 2024-04-25
-
19.0.0-canary-cb151849e1-20240424 - 2024-04-24
-
19.0.0-canary-adb717393-20240411 - 2024-04-11
-
19.0.0-canary-a73c3450e-20240329 - 2024-03-29
-
19.0.0-canary-96c584661-20240412 - 2024-04-12
-
19.0.0-canary-95e6f032c-20240401 - 2024-04-01
-
19.0.0-canary-8afa144bd-20240416 - 2024-04-16
-
19.0.0-canary-7a2609eed-20240403 - 2024-04-03
-
19.0.0-canary-657428a9e-20240416 - 2024-04-17
-
19.0.0-canary-4c12339ce-20240408 - 2024-04-08
-
19.0.0-canary-48ec17b86-20240402 - 2024-04-02
-
19.0.0-canary-36e62c603-20240418 - 2024-04-18
-
19.0.0-canary-33a32441e9-20240418 - 2024-04-19
-
19.0.0-canary-2b036d3f1-20240327 - 2024-03-27
-
19.0.0-canary-05797cceb-20240328 - 2024-03-28
-
19.0.0-beta-e7d213dfb0-20240507 - 2024-05-07
-
19.0.0-beta-b498834eab-20240506 - 2024-05-06
-
19.0.0-beta-9d76c954cf-20240510 - 2024-05-13
-
19.0.0-beta-94eed63c49-20240425 - 2024-04-25
-
19.0.0-beta-73bcdfbae5-20240502 - 2024-05-02
-
19.0.0-beta-6946ebe620-20240508 - 2024-05-08
-
19.0.0-beta-5d29478716-20240506 - 2024-05-06
-
19.0.0-beta-4508873393-20240430 - 2024-04-30
-
19.0.0-beta-26f2496093-20240514 - 2024-05-14
-
19.0.0-beta-1beb73de0f-20240503 - 2024-05-03
-
19.0.0-beta-04b058868c-20240508 - 2024-05-09
-
18.3.1 - 2024-04-26
from react GitHub release notesBelow is a list of all new features, APIs, and bug fixes.
Read the React 19.2 release post for more information.
New React Features
<Activity>: A new API to hide and restore the UI and internal state of its children.useEffectEventis a React Hook that lets you extract non-reactive logic into an Effect Event.cacheSignal(for RSCs) lets your know when thecache()lifetime is over.New React DOM Features
resume: to resume a prerender to a stream.resumeAndPrerender: to resume a prerender to HTML.resumeToPipeableStream: to resume a prerender to a stream.resumeAndPrerenderToNodeStream: to resume a prerender to HTML.prerenderAPIs to return apostponedstate that can be passed to theresumeAPIs.Notable changes
<ViewTransition>Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics.prerender,renderToReadableStream) to server-side-rendering APIs for Node.js:IDs generated by useIdAll Changes
React
<Activity />was developed over many years, starting beforeClassComponent.setState(@ acdlite @ sebmarkbage and many others)%oplaceholder (@ eps1lon #34198)useDeferredValueloop in popstate event (@ acdlite #32821)useDeferredValue(@ acdlite #34376)cacheSignal(@ sebmarkbage #33557)React DOM
:for IDs generated byuseId(@ sebmarkbage, @ eps1lon: #32001, #33342#33099, #33422)nonceto be used on hoistable styles (@ Andarist #32461)React.useinsideReact.lazy-ed Component (@ hi-ogawa #33941)progressiveChunkSizeoption for server-side-rendering APIs (@ sebmarkbage #33027)React Server Components
<img>and<link>using hints before they're rendered (@ sebmarkbage #34604)filterStackFrame(@ eps1lon #33707)React Reconciler
on*handlers to account for upcoming experimental APIseslint-plugin-react-hooks@6.1.0
Note: Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
recommendedpreset. Legacy config moved torecommended-legacy. (@ michaelfaith in #32457)usewithin try/catch blocks. (@ poteto in #34040)useEffectEventfunctions in arbitrary closures. (@ jbrown215 in #33544)React.useEffectin addition touseEffectin rules-of-hooks. (@ Ayc0 in #34076)react-hookssettings config option that to acceptadditionalEffectHooksthat are used across exhaustive-deps and rules-of-hooks rules. (@ jbrown215) in #34497React Server Components
React Server Components
react-server-dom-webpack/*.unbundledto privatereact-server-dom-unbundled(@ eps1lon #35290)React Server Components
React Server Components
React Server Components
React Server Components
Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: