Releases: callstackincubator/rozenite
v1.4.0
1.4.0 (2026-03-09)
🚀 Features
- @rozenite/redux-devtools-plugin: Redux DevTools now uses Rozenite CDP/bridge messaging instead of the previous relay-based flow. Better reliability for Redux DevTools controls in the plugin panel, works with Rozenite for Web by enabling the plugin runtime on web targets, supports naming store instances via
rozeniteDevToolsEnhancer({ name })for multi-store apps, and the playground now demonstrates two independent Redux stores and counters for easier validation. (#183) - @rozenite/storage-plugin: Introduce
@rozenite/storage-pluginas a generic storage inspector for React Native devtools. AdduseRozeniteStoragePlugin({ storages })API for registering one or more adapters, support named storages across adapters so multiple independent stores can be inspected in a single plugin panel, provide built-in adapters for MMKV, AsyncStorage (including v2 and v3-style usage), and Expo SecureStore, improve entry workflows in the panel by prefilling the key when an entry is selected, and add official documentation for the new Storage plugin and guide users from MMKV docs toward the generic plugin path. (#184)
❤️ Thank You
- Szymon Chmal @V3RON
v1.3.0
1.3.0 (2026-02-13)
🚀 Features
- @rozenite/chrome-extension: Introduce Rozenite for Web - the option to run Rozenite in React Native projects targeting web. Use the Rozenite Chrome extension and @rozenite/web package to debug web apps from React Native DevTools. Documentation covers setup, supported plugins, and making custom plugins compatible with web. (#179)
- @rozenite/web: Introduce Rozenite for Web - the option to run Rozenite in React Native projects targeting web. Use the Rozenite Chrome extension and @rozenite/web package to debug web apps from React Native DevTools. Documentation covers setup, supported plugins, and making custom plugins compatible with web. (#179)
- rozenite: Plugin templates were updated to use updated dependencies. (#171)
🩹 Fixes
- @rozenite/network-activity-plugin: Converted FormData entries iterator to an array before reduce to avoid 'reduce is not a function' and keep request body parsing stable. (#172)
❤️ Thank You
- Danny @dannyhw
- crockalet @crockalet
v1.2.0
1.2.0 (2026-01-12)
🚀 Features
- @rozenite/expo-atlas-plugin: Unified Metro config mutators system where the order of mutators no longer matters. Transformers can now be composed in any sequence while preserving type safety across different Metro config export patterns. (#162)
- @rozenite/network-activity-plugin: Add boot recording feature to capture network activity during app initialization, before DevTools connects. Call
withOnBootNetworkActivityRecording()at your app entry point to enable queuing of network requests made during boot; these requests are displayed once DevTools is ready. (#143) - @rozenite/overlay-plugin: Introduces the Overlay Plugin, featuring customizable grid overlays and interactive image comparison tools to enhance design implementation and layout debugging in React Native DevTools. (#167)
- @rozenite/redux-devtools-plugin: Add maxAge option to Redux DevTools plugin to configure action history size. This allows developers to control the maximum number of actions retained in DevTools; older actions are automatically removed once the limit is reached (default: 50). (#159)
- @rozenite/redux-devtools-plugin: Unified Metro config mutators system where the order of mutators no longer matters. Transformers can now be composed in any sequence while preserving type safety across different Metro config export patterns. (#162)
- @rozenite/require-profiler-plugin: Unified Metro config mutators system where the order of mutators no longer matters. Transformers can now be composed in any sequence while preserving type safety across different Metro config export patterns. (#162)
- @rozenite/tools: Unified Metro config mutators system where the order of mutators no longer matters. Transformers can now be composed in any sequence while preserving type safety across different Metro config export patterns. (#162)
🩹 Fixes
- @rozenite/performance-monitor-plugin: Fixed incorrect duration display in performance measurements, ensuring durations are properly formatted as milliseconds or seconds based on their actual values. (#168)
❤️ Thank You
- David Prevost @dprevost-LMI
- Szymon Chmal
v1.1.0
1.1.0 (2025-12-01)
🚀 Features
- @rozenite/network-activity-plugin: You can now see the percentage progress of a request in the Status column. Additionally, whenever a timeout occurs, it will be considered a failure. (#147)
- @rozenite/network-activity-plugin: The appearance of the record button was updated to more clearly indicate whether network traffic is being recorded. (#153)
❤️ Thank You
- David Prevost @dprevost-LMI
v1.0.0
1.0.0 (2025-11-14)
Hey folks!
It's been a long time, and the number of issues preventing Rozenite from working has been minimal. That's why it's time to drop the alpha tag 🎉
🚀 Features
- @rozenite/middleware: Include prerelease versions in the React Native version compatibility check. (#136)
- @rozenite/mmkv-plugin: Introduce the necessary updates to support react-native-mmkv v4. Both v3 and v4 are now supported, though a minor change is required in userland code: switching from a storage array to a record, since IDs are no longer accessible. (#133)
- @rozenite/mmkv-plugin: You can now view detailed previews of values, including an interactive JSON preview when the stored string is valid JSON. (#142)
- @rozenite/network-activity-plugin: Users can now adjust how paths are reported in the DevTools UI, choosing between the Chrome-like last-segment style and the full path. (#129)
- @rozenite/redux-devtools-plugin: Fixed a race condition that occurred in certain scenarios by inlining the require call to the redux-devtools/remote package. (#127)
- @rozenite/redux-devtools-plugin: Expose an additional composeWithRozeniteDevTools function, which should be used with certain libraries, such as Rematch, to correctly support their async actions. (#135)
❤️ Thank You
- Andrei Xavier de Oliveira Calazans @AndreiCalazans
- David Prevost @dprevost-LMI
- Szymon Chmal
v1.0.0-alpha.16
1.0.0-alpha.16 (2025-10-28)
🩹 Fixes
- @rozenite/network-activity-plugin: In this version, we're introducing the ability to override and mock network responses, inspired by Chrome DevTools. This feature enables developers to modify response bodies and statuses to observe how their applications react, without making any backend changes. It's a practical way to prototype, test, and validate fixes or enhancements while waiting on backend or third-party updates, helping you maintain momentum and streamline your development workflow. (#116)
- @rozenite/react-navigation-plugin: This version introduces a new Navigation Tree tab to enhance state visualization in the developer tools. Instead of relying on raw JSON data, the navigation state will now be displayed as an interactive stack of screens, navigators, and tab navigators, allowing clearer insight into navigation flows and history. Developers can view how navigation states evolve over time, distinguish between screens and navigators through color coding, and identify the currently selected screen within tab navigators. (#119)
❤️ Thank You
- Ian Luan @IanLuan
- Thomas Renaud @thomasrebam
v1.0.0-alpha.15
1.0.0-alpha.15 (2025-09-29)
🩹 Fixes
- The minimal Node.js version has been downgraded from 22 to 20. This change will allow more projects to benefit from Rozenite without sacrificing any existing features. (#114)
- @rozenite/metro: Metro 0.83.2 no longer supports configs as Promises, so Rozenite must provide a workaround by returning an async function instead of a Promise. This change restores the ability to bundle JavaScript when using React Native 0.81. (#113)
❤️ Thank You
- Szymon Chmal
v1.0.0-alpha.14
v1.0.0-alpha.13
1.0.0-alpha.13 (2025-09-15)
🩹 Fixes
- @rozenite/metro: Rozenite will no longer apply plugins during app bundling initiated by Xcode. (#92)
- @rozenite/metro: Unfortunately, the React Native ecosystem is so diverse that it's difficult to keep up with all the ways Metro is invoked by the React Native CLI and Expo. Instead of constantly chasing edge cases and adding new scripts to the "probably bundling" list, users will now be able to conditionally enable Rozenite in development by providing the enabled option. This option can be set via an environment variable - for example, if ROZENITE_ENABLED is set, the option will be true. This change will significantly reduce maintenance overhead and make Rozenite even more versatile. (#100)
- @rozenite/mmkv-plugin: The table is now vertically scrollable when it's needed. (#94)
- @rozenite/network-activity-plugin: Added "copy as fetch" functionality to the network activity plugin with a unified dropdown interface for copying HTTP requests as both fetch() calls and cURL commands. (#75)
- @rozenite/network-activity-plugin: Add explicit UI handling for multipart FormData and binary request bodies. (#103)
- @rozenite/network-activity-plugin: SSE will no longer throw errors when EventSource is initialized before the plugin. (#104)
- @rozenite/react-navigation-plugin: A new plugin that allows you to inspect the React Navigation state and view navigation actions in real time. (#98)
- @rozenite/repack: Rozenite will now check if a compatible version of Re.Pack is present. (#95)
- rozenite: Rozenite will now modify both Metro and Re.Pack configurations if they are present. (#91)
❤️ Thank You
v1.0.0-alpha.12
1.0.0-alpha.12 (2025-08-25)
🩹 Fixes
-
@rozenite/metro: It's now possible to set the log level of the internal Rozenite logger, which will propagate to all official plugins and be applied whenever it is possible to set the logging level for third-party libraries. (#77)
-
@rozenite/middleware: It's now possible to set the log level of the internal Rozenite logger, which will propagate to all official plugins and be applied whenever it is possible to set the logging level for third-party libraries. (#77)
-
@rozenite/mmkv-plugin: MMKV plugin is now ready to be publicly available. It was updated to support all types of data, including binary blobs. You can also blacklist certain properties, if they for example, contain sensitive data or are huge and may harm performance. (#80)
-
@rozenite/network-activity-plugin: Enhanced request inspection in Network Activity Plugin by displaying query parameters in a section within the Request tab. (#58)
-
@rozenite/network-activity-plugin: Rewrites the cookie parser to properly handle React Native specific header logic and adds support for displaying multiple header values when they are arrays. The cookie parser now correctly parses Set-Cookie headers according to React Native's networking behavior, while the Headers tab can now display multiple values for headers that contain array data, improving the debugging experience for network requests with complex header structures. (#61)
-
@rozenite/network-activity-plugin: Enhanced network activity plugin to properly handle JSON response types for both size calculation and body extraction. Added accurate UTF-8 byte measurements for all text-based responses. (#69)
-
@rozenite/network-activity-plugin: You can now disable specific types of inspectors to ignore certain traffic. For example, if you don't want to monitor WebSockets, you can simply turn off the WebSocket inspector. (#73)
-
@rozenite/network-activity-plugin: You can now view the full request path by hovering over the 'Name' cell. (#80)
-
@rozenite/network-activity-plugin: This change addresses an issue where network responses with malformed or complex Content-Type headers (e.g., "application/json,text/plain,/" or "application/json; charset=utf-8") were not correctly identified as JSON. Previously, the system relied on an exact match for "application/json", leading to these responses being incorrectly displayed as binary content. (#72)
By updating the content type checks to use
.startsWith('application/json')and similar for other types, the plugin can now correctly parse and display JSON content. This change improves the debugging experience for real-world applications that may send non-standard Content-Type headers, bringing the behavior in line with other robust network logging tools like Chrome's network inspector. -
@rozenite/plugin-bridge: The useRozeniteDevToolsClient hook is reinitialized during the hot reload of the host component, and a new client should be created at that point. However, due to the persistent client cache, the previous client was reused instead. The issue arose because the useEffect cleanup function disposes of the client. When the same client was reused, no messages were received. (#73)
-
@rozenite/redux-devtools-plugin: It's now possible to set the log level of the internal Rozenite logger, which will propagate to all official plugins and be applied whenever it is possible to set the logging level for third-party libraries. (#77)
-
@rozenite/repack: It's now possible to set the log level of the internal Rozenite logger, which will propagate to all official plugins and be applied whenever it is possible to set the logging level for third-party libraries. (#77)
-
@rozenite/runtime: Implements saving the currently selected panel in DevTools to automatically switch to the panel when opening DevTools again. (#60)
-
rozenite: The new 'init' command can now be used to bootstrap an existing project by installing the correct package according to the bundler used and making the necessary modifications to the configuration. (#76)
❤️ Thank You
- Aliff Azfar @aliffazfar
- Nepein Andrey @NepeinAV
- Szymon Chmal