Breaking Changes
- Drop support for Python 3.10, which reaches end of life in October 2026. Reflex now requires Python 3.11 or newer. (#7449)
Bug Fixes
AppHarnessnow forgets the states of every module of the app's package when it stops, not only those of the app module, so a state defined elsewhere in the app (for example one usingrx.dynamic) no longer breaks the next app started in the same test process. (#7359)- Deliver changes to client-storage and other state vars made by computed vars during hydration to the browser. (#7460)
- Prevent hydration from persisting client-storage defaults. (#7460)
- Configure per-component defaults in
ComponentState.get_componentwith assignments such ascls.count = 10. Reset restores the last configured default. Defaults are no longer part of the saved-state schema, so changing one keeps state saved by this release or later loadable. Browser storage vars keep their storage settings when a factory is assigned, and declared factories are honored when compiled and reset. (#7461) - Assigning a double-underscore private attribute on a state (
self.__counter = 1) from a mixin, a base, or a class whose name starts with an underscore no longer raisesSetUndefinedStateVarErrorin dev mode. Private names not explicitly declared withrx.field()are plain Python attributes: vars do not update in response to them. (#7465)