Latest Results
migrate all time env vars to timedelta (#7138)
* migrate all time env vars to timedelta
* add news fragments for the duration env var migration
* round a sub-millisecond oplock hold time up instead of onto the unset default
* Update packages/reflex-base/src/reflex_base/environment.py
* Update deprecation warning version to 1.0
* Update +envvar-duration-deprecations.feature.md
* Harden the superseded duration settings
Review follow-ups for the timedelta migration of the duration env vars:
- Treat a blank value as unset, matching EnvVar semantics, so a templated
`REFLEX_STATE_MANAGER_DISK_DEBOUNCE=` no longer shadows the old name and a
blank old name no longer warns.
- Name the exact replacement in the deprecation message
(`REFLEX_AUTO_RELOAD_COOLDOWN=5000ms`), since renaming the variable without
its unit would silently read the value as seconds.
- Warn once per process rather than once per call site, and read the
auto-reload cooldown during app setup so its deprecation shows at startup
instead of on the first matching frontend error.
- Reject a negative opportunistic lock hold time instead of clamping it to
one millisecond.
- Skip bracketed pseudo-filenames when locating the user frame for a
deprecation. A code object with no source file carries `<string>` (exec, a
generated dataclass `__init__`) or `<frozen importlib._bootstrap>` rather
than a path, and both were reported as the deprecation's location.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gg8XKw3GThDkGC2L4y5ZSH
* Fix two review findings on the duration deprecation warning
- Build the suggested replacement from the parsed value rather than the raw
text. A bare int or float accepts forms the duration parser rejects, so
`REFLEX_STATE_MANAGER_DISK_DEBOUNCE_SECONDS=.5` suggested `.5s`, which fails
to parse. `1_000` and `1e3` had the same problem.
- Skip only `<string>` and `<frozen ...>` when locating the user frame for a
deprecation, instead of every bracketed name. `<stdin>` and an
`<ipython-input-N-...>` cell are real user call sites, and swallowing them
pushed the reported location up into the interpreter's own frames.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gg8XKw3GThDkGC2L4y5ZSH
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Claude <noreply@anthropic.com> Latest Branches
0%
agent/event-loop-performance-benchmarks 0%
codex/non-regressing-event-path 0%
claude/reflex-hosting-build-sdk-603ca2 © 2026 CodSpeed Technology