reflex-dev
reflex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
Merge remote-tracking branch 'origin/explicit-event-id-minification' into late-bound-wire-names
benedikt-bartscher:late-bound-wire-names
11 hours ago
Reject handlers resolving to one name and keep reloaded states out A handler with no minify.json entry keeps its Python name, which can be the id another handler of its state was given, e.g. when it is added before 'reflex minify sync' runs. Registering it overwrote the other, so an event for one ran the other. Registration now raises when two handlers of a state resolve to the same name. refresh_keys rebuilt the substate sets from base_states, which still holds a state a module reload removed, so installing a resolver after such a reload put the removed state back into the tree. It now re-keys the substate sets as they are.
benedikt-bartscher:explicit-event-id-minification
11 hours ago
Merge remote-tracking branch 'origin/explicit-event-id-minification' into late-bound-wire-names Brings in #6100's merge of upstream/main. Its conflicts here are the #6100 spellings of code this branch already resolved (InternalEventNames vs InternalNames, the hook's state name, tests of state/event-only minification), so this branch's versions are kept and the tree is unchanged.
benedikt-bartscher:late-bound-wire-names
12 hours ago
Merge remote-tracking branch 'upstream/main' into explicit-event-id-minification Ported upstream changes into the resolver-aware code: - Context template: hydrate_and_load (#7064) gets a resolved wire name in InternalEventNames (replacing hydrate), alongside upstream's state schema and initial state hashes. state.js reads app.hydrate_and_load and app.update_vars_internal instead of hardcoded default names, and the handshake query (token + scheme) is built for the warm-up socket too. - State reads use upstream's useStateContext (#7441), keyed by the state's resolved full name, into the prefixed local. - Upstream made unknown substates non-fatal (#7435) and dropped backend_state_mismatch; the fatal minification scheme mismatch keeps its own flag (backend_scheme_mismatch) gating events, updates and reconnects. - The frontend state schema hash (#7553) hashes resolver-independent names; the scheme digest already covers the wire names. - The processor's hydrate/hydrate_and_load/on_load_internal lookups cache handlers, not names, so they follow a resolver installed later. - BaseStateToken._state_key keys by the resolver-independent name. - get_substate keeps upstream's loop but only lets the first segment name the state itself; get_name/get_full_name stay function-wide caches so a resolver install clears every class, and also clears _get_substate_path. - on_connect sets up per-SID state before upstream's new first await. - pyStrAt avoids Array.prototype.at, which the state.js tests forbid.
benedikt-bartscher:explicit-event-id-minification
12 hours ago
Merge remote-tracking branch 'upstream/main' into lambda-callback-readonly-code # Conflicts: # tests/units/test_event.py
benedikt-bartscher:lambda-callback-readonly-code
12 hours ago
Merge remote-tracking branch 'upstream/main' into late-bound-wire-names Ported upstream changes into the resolver-aware code: - Context template: hydrate_and_load (#7064) gets a resolved wire name in InternalNames (replacing hydrate), alongside upstream's state schema and initial state hashes. state.js reads app.hydrate_and_load and app.update_vars_internal instead of hardcoded default names, and the handshake query (token + scheme) is built for the warm-up socket too. - State reads use upstream's useStateContext (#7441), keyed by the state's resolved full name, into the branch's prefixed local. - Upstream made unknown substates non-fatal (#7435) and dropped backend_state_mismatch; the fatal minification scheme mismatch keeps its own flag (backend_scheme_mismatch) gating events, updates and reconnects. - The frontend state schema hash (#7553) hashes resolver-independent names; the scheme digest already covers the wire names. - The processor's hydrate/hydrate_and_load/on_load_internal lookups cache handlers, not names, so they follow a resolver installed later. - BaseStateToken._state_key and client storage application (_apply_client_storage_vars) use default names and wire var keys. - get_substate keeps upstream's loop but only lets the first segment name the state itself; get_name/get_full_name stay function-wide caches so a resolver install clears every class, and also clears _get_substate_path. - on_connect sets up per-SID state before upstream's new first await. - pyStrAt avoids Array.prototype.at, which the state.js tests forbid.
benedikt-bartscher:late-bound-wire-names
12 hours ago
Match the echo server's handshake to Reflex and bound protocol detection The echo server announced its generator's 16 MiB frame limit as its message size, while a default Reflex app (and its own Socket.IO greeting) announces 1 MB; the drift test only compared keys. It now announces Reflex's default on both protocols, and the test compares the whole handshake against a default-configured app. detect_protocol always waited up to 30 seconds to open its websocket, so the benchmark socket client's first connection to a hung backend ignored the caller's timeout. Detection now takes the timeout, and the client passes its own through.
benedikt-bartscher:make-sio-optional
13 hours ago
Dedupe the benchmark tooling The benchmark socket client detects a backend's protocol once instead of per connection, so Socket.IO reconnect timings no longer include a failed WebSocket upgrade per client, and codecs carry their bare connect and ping frames instead of callers branching on the protocol. reflex-bench shares its process spawn, stop and report handling, its worker wrapper and small session helpers, and drift tests pin the protocol constants it copies from Reflex. The bench tests share their fixtures through factories.py.
benedikt-bartscher:make-sio-optional
14 hours ago
Latest Branches
CodSpeed Performance Gauge
+6%
Minify state var names and allow installing a name resolver after states exist
#7337
12 hours ago
8cdbb67
benedikt-bartscher:late-bound-wire-names
CodSpeed Performance Gauge
+5%
Explicit state and event id minification
#6100
12 hours ago
55bbc45
benedikt-bartscher:explicit-event-id-minification
CodSpeed Performance Gauge
0%
fix(event): declare LambdaEventCallback.__code__ read-only so bound methods match the protocol
#7397
12 hours ago
1f47ed1
benedikt-bartscher:lambda-callback-readonly-code
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs