Skip to content

Commit 127e4d8

Browse files
masenfclaude
andauthored
Materialize changelogs for reflex v0.9.7 and friends (#6772)
Build the pending news fragments into CHANGELOG.md for the framework and the modified subpackages. Each version is the next dot bump from the package's latest release tag: - reflex 0.9.6.post2 -> 0.9.7 - reflex-base 0.9.6.post2 -> 0.9.7 - reflex-components-core 0.9.6 -> 0.9.7 - reflex-components-radix 0.9.5 -> 0.9.6 - reflex-docgen 0.9.2 -> 0.9.3 Cross-package dependency re-pins are intentionally left for the post-publish wave, matching the established two-wave release flow (see #6679 -> #6680). reflex-components-core and reflex-components-radix now call ArrayVar.map (new in reflex-base 0.9.7 via #6701) but still declare reflex-base >= 0.9.6 / >= 0.9.5; those floors β€” and the root reflex-base floor β€” must be re-pinned to reflex-base >= 0.9.7 only after reflex-base 0.9.7 is published, so the min-deps check (which resolves from PyPI with --no-sources) stays green here. Claude-Session: https://claude.ai/code/session_01KX93fjAHfXYH4UpbSmaSon Co-authored-by: Claude <noreply@anthropic.com>
1 parent 65a2889 commit 127e4d8

28 files changed

Lines changed: 68 additions & 23 deletions

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
## v0.9.7 (2026-07-15)
2+
3+
### Features
4+
5+
- Added `default_color_mode` to `rx.Config` (`"system"`, `"light"`, or `"dark"`, also settable via `REFLEX_DEFAULT_COLOR_MODE`), so apps can set the initial color mode β€” and use the built-in color mode switcher and `rx.color_mode_cond` β€” without pulling in the large Radix themes CSS. The value drives both the compiled `ThemeProvider` default and the pre-hydration preload script, so there is no flash of the wrong theme on first paint. An explicit `rx.theme(appearance=...)` still takes precedence. ([#6716](https://github.com/reflex-dev/reflex/issues/6716))
6+
- `@rx.memo` components now compile with a configurable JS wrapper: React's `memo` remains the default, `wrapper=` swaps in a custom function `Var` whose imports ride along into the generated module, and `wrapper=None` emits the bare function component. ([#6730](https://github.com/reflex-dev/reflex/issues/6730))
7+
- The new `frozen_lockfile` config option is now honored during frontend package installation: when enabled (the default), bun's initial install runs with `--frozen-lockfile` so a lockfile out of sync with `package.json` fails fast. Set `frozen_lockfile=False` to let the lockfile update in place instead. npm has no equivalent install flag today, so the option is a no-op there. ([#6763](https://github.com/reflex-dev/reflex/issues/6763))
8+
9+
### Bug Fixes
10+
11+
- Fix stateful pages being evaluated twice in one process (forked prod workers and same-process export+serve), which created duplicate `ComponentState` classes and broke frontend hydration (`TypeError: d is not a function`). ([#6710](https://github.com/reflex-dev/reflex/issues/6710))
12+
- Reset the disk state manager write queue task after close. ([#6715](https://github.com/reflex-dev/reflex/issues/6715))
13+
- Close the `RedisTokenManager` redis client and cancel its pub/sub background tasks on app shutdown, fixing leaked redis connections (`ResourceWarning: unclosed Connection`) when the server stops. ([#6724](https://github.com/reflex-dev/reflex/issues/6724))
14+
- Event handlers and computed vars inherited from a state mixin now preserve the source function's custom attributes and keyword-only defaults. ([#6725](https://github.com/reflex-dev/reflex/issues/6725))
15+
16+
### Performance
17+
18+
- Run anonymous telemetry collection and delivery on a dedicated single-worker background thread instead of inline on the asyncio event loop. The blocking syscalls, subprocess calls and synchronous HTTP request used to gather and post an event no longer stall the event loop β€” notably when reporting backend errors at a high rate. Delivery is best-effort and any failure is suppressed, so telemetry can never affect the running app. ([#6626](https://github.com/reflex-dev/reflex/issues/6626))
19+
- Event chaining (`yield OtherState.handler(rows)`) no longer deep-copies payload values that are not attached to any state: only state-bound `MutableProxy` subtrees are copied, making proxy-free payloads ~5x faster to chain. ([#6739](https://github.com/reflex-dev/reflex/issues/6739))
20+
- `Var.to()` and `Var.guess_type()` resolve their target Var subclass through cached registry lookups instead of scanning the full registry with `safe_issubclass` on every call. ([#6742](https://github.com/reflex-dev/reflex/issues/6742))
21+
22+
123
## v0.9.6 (2026-06-25)
224

325
### Features

β€Žnews/6626.performance.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6710.bugfix.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6715.bugfix.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6716.feature.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6724.bugfix.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6725.bugfix.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6730.feature.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6739.performance.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6742.performance.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
Β (0)