Avatar for the reflex-dev user
reflex-dev
reflex
BlogDocsChangelog

Performance History

Latest Results

Merge main into PR #7551 and preserve storage test fixtures
harsh21234i:fix/7486-localstorage-payload
4 hours ago
feat(event): accept any sequence of events where a list of them is accepted (#7402) * feat(event): accept any sequence of events where a list of them is accepted * fix(app): read a page's on_load and the form on_submit events as any sequence * perf(event): check the single event kinds before the Sequence ABC in from_event_type * fix(internal): read the forms' on_submit sequence without the new helper, so the declared reflex floor still type-checks * fix(internal): reject a string as the forms' on_submit events instead of splitting it into characters * fix(event): split any sequence an event lambda returns into its events call_event_fn only split a list or tuple, so a lambda returning another sequence such as a UserList was wrapped as one event and rejected. * refactor(event): share one fast check for a single event or a sequence is_non_string_sequence checks list and tuple before the Sequence ABC, and excludes bytes as well as str. _check_valid_yield uses it instead of its own copy of the check. from_event_type, fix_events and call_event_fn wrap a single event through one _event_sequence helper. EventChain.create keeps its own branches, so a bad top-level value still reports "Invalid event chain". The demo and intro forms drop the string guard: the type already excludes a str, and the event chain rejects one anyway. Tests cover a handler that returns or yields a tuple through the event processor, and which values count as a sequence. * build(reflex): require the reflex-base that has is_non_string_sequence reflex/app.py imports is_non_string_sequence, which reflex-base 0.10.0 lacks. * Revert "build(reflex): require the reflex-base that has is_non_string_sequence" pin-exact rewrites the reflex-base requirement to == <version> at build time, so a released reflex never installs with an older reflex-base. * feat(event): make event_sequence public and use it in the internal forms The demo and intro forms turn their on_submit into a list of events with reflex_base.event.event_sequence instead of their own isinstance check. * build(internal): require the reflex that has event_sequence The demo and intro forms import event_sequence, which reflex 0.10.0 and older lack. --------- Co-authored-by: Farhan <www.mfarvirus@gmail.com> Co-authored-by: Farhan Ali Raza <62690310+FarhanAliRaza@users.noreply.github.com> Co-authored-by: Masen Furer <m_github@0x26.net>
main
7 hours ago
fix: flatten providers for large state trees (#7441) * fix: reduce client state provider nesting Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix: avoid copying all client substates per delta Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix: flatten large state provider trees * fix: address state provider review feedback * docs: add PR 7441 performance news fragment * docs: add reflex package performance news fragment * docs: use valid orphan news fragment name * fix: preserve legacy state context reads * fix: keep legacy state context reads compatible * Fix compiler pre-commit checks for legacy context rewrite * Install greenlet in legacy playground check * Address PR 7441 review feedback * Fix remaining PR 7441 review findings * Fix legacy state read scanning and rewriting * fix: remove legacy StateContexts rewriter Drop the compile-time JavaScript rewriter that turned useContext(StateContexts.x) into a shared-store read. Reflex now generates useStateContext(...) for every state read on each compile, so the rewriter only served hand-written hooks. It missed dynamic components and asset JS, where legacy reads silently became null. Remove the StateContexts export and getStateContext as well, so any remaining legacy read fails the build with a missing-export error instead of reading null. Add a breaking news fragment with the migration to useStateContext. * chore: drop breaking fragment for internal StateContexts removal * fix: address review findings on the shared state store - Raise reflex's reflex-base floor to 0.10.1.dev0: code_uses_state_contexts looks for useStateContext(, which only the new reflex-base generates. - Drop the unrelated greenlet change in examples.yml. - Compare applyDelta's result with the current state instead of pre-checking the delta, so a deep-equal delta no longer notifies. - Skip syncInitialState when the store already holds that initial state. - Serve the server render from a read-only store. - Remove the duplicate listener set creation and use one useMemo in useStateContext. - Mark the news fragments as bugfix with per-package text. - Make the JS store test use a structural-sharing applyDelta stub, subscribe by state name, and cover an equal list delta. * test: subscribe through useStateContext in the store test Attach the test listeners through the subscribe callback the hook passes to useSyncExternalStore, so the test fails if the hook subscribes to the wrong substate. * refactor: seed the state store from its argument createStateStore takes the initial state and registers substates through one addSubstates path, which hot reload calls for the substates of new state classes. Fields added to existing substates are not merged here: they arrive with the hydrate delta after the backend restarts. * fix: merge new default fields into live substates on hot reload mergeInitialState adds new substates and gives existing substates the fields of the recompiled initial state at their defaults, keeping live values. A substate is replaced and notified only when it gains a field, so the mount-time call changes nothing. --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Masen Furer <m_github@0x26.net> Co-authored-by: Farhan <www.mfarvirus@gmail.com>
main
9 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
Prevent oversized client storage hydration payloads#7551
5 hours ago
afd9999
harsh21234i:fix/7486-localstorage-payload
CodSpeed Performance Gauge
0%
4 hours ago
db30936
cursor/library-seo-improvements-6955
CodSpeed Performance Gauge
-4%
feat(event): accept any sequence of events where a list of them is accepted#7402
8 hours ago
dc13e2e
benedikt-bartscher:event-sequences
© 2026 CodSpeed Technology
Home Terms Privacy Docs