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

Performance History

Latest Results

fix(proxy): never copy metadata a dataclass declares as a field A dataclass may declare a field named `__match_args__` or `__dataclass_params__` -- neither is name-mangled, so both are legal field names. Copying the class attribute for such a name shadowed the wrapped instance: `proxy.__match_args__` and `dataclasses.asdict(proxy)` returned the class value while the wrapped object held another, since a class attribute is found before `__getattr__` forwards. This is the hazard the comment already described for field defaults and ClassVars, so the copy now applies the same rule to itself and skips any name the wrapped dataclass declares as a field. The namespace construction moves into `_dataclass_proxy_namespace`, where both skips -- a field-name collision, and the `__match_args__` that `match_args=False` never wrote -- have room to be explained. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VFzJWvNNwomK7nhsEN2ELR
claude/mutableproxy-dataclass-params-3wiemv
20 minutes ago
docs: add a complete auth example app and sharpen authentication-vs-authorization framing (#7010) * docs: add a complete auth example app and sharpen authn-vs-authz framing Add docs/enterprise/auth/example-app.md: one small, complete app (public landing page, protected dashboard, admin-only action) showing the whole rxe.AuthPlugin pattern — authentication owned by the plugin, authorization expressed with auth= checks — plus the common failure modes (rx.App() vs rxe.App(), blank-when-logged-out, redirect_uri_mismatch, the deprecated register_auth_endpoints). Link it from the overview and secure-by-default pages and add it to the enterprise sidebar after Secure by Default. * docs: make the example app's public toggle observable and its per-client state explicit The landing page now renders dark_mode (button label, page colors), so the public field and handler have a visible effect, and the example states that Reflex state is per-client — each user sees their own notes — instead of presenting itself as a shared notepad. * docs: make the example's notes truly multi-user and drop the ad-hoc dark mode Per review: NotesState is now an rx.SharedState linked to one team token from the dashboard's on_load (behind the page guard), so signed-in users share one live board; the landing page's public surface is a dismissible promo banner instead of a hand-rolled dark-mode toggle that shadowed the framework's color-mode support. * docs: trim redundant asides from the example page The linked-token underscore rule lives in the Shared State doc this page links to, and the SharedState version note is moot when the auth plugin already requires a newer reflex. * docs: fail closed on non-list groups claims in the example checks Some providers serialize the groups claim as one string, and Python's 'in' on a string is a substring test, so both example checks now require a list before testing membership; a short note explains the guard. * docs: cover app-owned roles and where the groups claim comes from The example only showed a role the identity provider already manages, which is the cheapest check there is but also the case an app rarely has. Roles like author/editor/reviewer are the app's own, and promoting someone from inside the app is impossible against an IdP -- there is no write-back. With no guidance for that, the natural next step is a check that opens a database session, and a check runs on every gated event. Adds the variant: load the member's row into a state at sign-in and have an async check read it through get_state, keyed on sub (or provider_name+sub, since sub is unique only per issuer) rather than the optional email claim. Also states where the claims actually come from. extra_scopes asks for a scope, but a check reads whatever the provider's userinfo endpoint returns -- _get_userinfo prefers _fetch_userinfo and uses its response verbatim, falling back to ID token claims only when the issuer advertises no userinfo endpoint. A groups claim mapped only into the ID token therefore never reaches the check, which returns False for everyone with nothing in the logs to explain it. The 30-minute claim cache is noted beside it, since it is the same surprise arriving later. --------- Co-authored-by: Masen Furer <m_github@0x26.net>
main
34 minutes ago
Fix bundled dynamic subpath imports
harsh21234i:fix/6975-bundled-library-subpaths
1 hour ago

Latest Branches

CodSpeed Performance Gauge
+3%
fix(proxy): carry dataclass class-level metadata onto synthesized proxy classes#7014
24 minutes ago
23c3fc1
claude/mutableproxy-dataclass-params-3wiemv
CodSpeed Performance Gauge
+5%
45 minutes ago
0d12a44
claude/optimize-deterministic-hash-u1dl2j
CodSpeed Performance Gauge
0%
1 hour ago
93b4181
harsh21234i:fix/6975-bundled-library-subpaths
© 2026 CodSpeed Technology
Home Terms Privacy Docs