Reflex

Latest version: v0.7.2

Safety actively analyzes 714919 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 15

0.2.8

Not secure
✨ This release is made possible in part by users like YOU! ✨

Breaking Changes

`CopyToClipboard` component has been removed.

Use the [`rx.set_clipboard` special event](https://reflex.dev/docs/api-reference/special-events/#set_clipboard) instead.

New Features

`get_event_triggers` API

The new `Component.get_event_triggers` API combines the old `get_triggers` and `get_controlled_triggers` methods into a unified API (the previous methods will continue to work in 0.2.8, but wrapped components should move to the new API).

The new API is more flexible, providing control over handler and trigger argument mapping. The method is expected to return a dictionary of callables. The keys are the names of the triggers in the react component. The values are callables whose **signature** defines the javascript trigger signature and the **return value** is a list of args that will be passed to the python `EventHandler` function.

This allows wrapping of components that accept non-standard event handler functions. Typically a `lambda` is used to map arguments, but a regular function with type annotations can also be used to enable extended Var operations like indexing.

For example, the `FormSelect` component uses a non-standard signature for `on_change`, this can now be accomodated in the new API.

python
class FormSelect(rx.Component):
library = "patternfly/react-core"
tag = "FormSelect"

def get_event_triggers(self) -> Dict[str, Any]:
return {
EventTriggers.ON_CHANGE: lambda _e, value: [value],
}



- New API to define triggers by Lendemor in https://github.com/reflex-dev/reflex/pull/1820

`rx.download` special event

The new download event prompts the frontend browser for file download.

It can be used directly as an event trigger:

python
rx.button("Download file", on_click=rx.download("/uri/for/file.extension", "target_file.extension")



Or it can be yielded from a backend event handler:

python
def export_data(self):
...
do export logic here and write to filepath
then
yield rx.download(filepath, filename)



- add download event by Lendemor in https://github.com/reflex-dev/reflex/pull/1797

Register Serializers for Custom Types

A one-arg callable in a Reflex app or component module with `rx.serializer` decorator will be considered a serializer for the type of its argument. This allows arbitrary types used on the backend to be accessed on the frontend, as long as there is a serializer defined that returns a JSON serializable value.

For example, the following code is used to serialize plotly `Figure` objects.

python
import json
from plotly.graph_objects import Figure
from plotly.io import to_json

rx.serializer
def serialize_figure(figure: Figure) -> list:
return json.loads(str(to_json(figure)))["data"]



- Add serializers for different var types by picklelo in https://github.com/reflex-dev/reflex/pull/1816

Background Task Event Handlers that do not block other Events

An `async` `EventHandler` function in a `State` that is decorated with `rx.background` is considered a **"Background Task"**. When triggered by the frontend or chained from another event handler, it will spawn a long running task that will NOT block other EventHandlers from running.

There are three main differences from a normal `EventHandler` to be aware of:

- Background Task *must* be `async`
- Background Task cannot directly modify state values and state values *may be stale* if other events have modified the state since the task started running.
- Only read or write state vars inside an `async with self` context block, where exclusive access to the latest state is guaranteed.
- Background Task cannot be directly called from another event handler.
- Must `yield` or `return` the background task to chain it from another handler.

python
class State(rx.State):

counter: int = 0

rx.background
async def bg_task(self):
for ix in range(10):
async with self:
state mutation is only allowed inside context block
self.counter += 1

await long operations outside the context to avoid blocking
await asyncio.sleep(0.5)



Full documentation for this feature is still being developed. Please post comments regarding background tasks on the [discussion thread](https://github.com/orgs/reflex-dev/discussions/1838).

- rx.background and StateManager.modify_state provides safe exclusive access to state by masenf in https://github.com/reflex-dev/reflex/pull/1676

Improvements

Support Reactivity for `rx.Base` fields

Modifying fields on an `rx.Base` instance will trigger updates in the state without having to reassign them. This also applies when working with fields that are container types such as `list` and `dict`.

- Reassign state Var when fields on a Base instance change by masenf in https://github.com/reflex-dev/reflex/pull/1748

Better Error Messages

- Style props with Callable Values by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1751
- Type Validation for Var Operations and Enhanced Compatibility by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1674

Usability

- Allow underscores in routes by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1713
- Implemented color_scheme for Tabs Component by raven-black-dream in https://github.com/reflex-dev/reflex/pull/1792
- Simplify base rxconfig by picklelo in https://github.com/reflex-dev/reflex/pull/1821
- Number input float by raven-black-dream in https://github.com/reflex-dev/reflex/pull/1817
- Support custom styling for code in markdown by picklelo in https://github.com/reflex-dev/reflex/pull/1844
- add option to disable Tailwind by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1842

Bug Fixes

- added check to remove local import starting from . by wassafshahzad in https://github.com/reflex-dev/reflex/pull/1807
- exec: print the URL, not the address the server binds to by masenf in https://github.com/reflex-dev/reflex/pull/1846

Minor Changes and Fixups

- use actions/checkoutv4 by masenf in https://github.com/reflex-dev/reflex/pull/1768
- Bump version to 0.2.7 by picklelo in https://github.com/reflex-dev/reflex/pull/1782
- check pyi generations are up to date by jackie-pc in https://github.com/reflex-dev/reflex/pull/1786
- supply default for rx.Model PK for both DB and python to work by martinxu9 in https://github.com/reflex-dev/reflex/pull/1788
- move dynamic imports to dedicated method by Lendemor in https://github.com/reflex-dev/reflex/pull/1785
- removed is_read_only from select by wassafshahzad in https://github.com/reflex-dev/reflex/pull/1799
- numberinput: check `_id is not None` to avoid Var truthiness warning by masenf in https://github.com/reflex-dev/reflex/pull/1806
- Remove deprecated route decorator by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1815
- Move custom styles to root App file(_app.js) by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1764
- Disable metrics in CI by picklelo in https://github.com/reflex-dev/reflex/pull/1822
- Remove extra imports from rx.markdown by picklelo in https://github.com/reflex-dev/reflex/pull/1837
- Prevent Substate class shadowing by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1827
- pyproject.toml: add `packaging` to dep list by masenf in https://github.com/reflex-dev/reflex/pull/1839
- state: implement **copy** and **deepcopy** for MutableProxy by masenf in https://github.com/reflex-dev/reflex/pull/1845
- allow for non-installable imports by Lendemor in https://github.com/reflex-dev/reflex/pull/1843
- Format component as React string by picklelo in https://github.com/reflex-dev/reflex/pull/1848
- use jinja2 to render package.json by Lendemor in https://github.com/reflex-dev/reflex/pull/1849
- StateProxy rebinds functools.partial and methods that are bound to the proxied State by masenf in https://github.com/reflex-dev/reflex/pull/1853

New Contributors

- raven-black-dream made their first contribution in https://github.com/reflex-dev/reflex/pull/1792

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.7...v0.2.8

0.2.7

Not secure
🙏 Thanks to our supportive community and helpful contributors! 💪

Breaking Changes

Default Websocket Endpoint is now `/_event` 1542

Upload endpoint also moved to `/_upload`.

Any reverse proxy configurations that were explicitly forwarding `/event` and `/upload` to the backend server should be updated to use the new endpoints.

- renamed reserved endpoints of Reflex by Lendemor in 1542
- Caddyfile: reflex uses `/_event` and `/_upload` now by masenf in 1726

`App` kwarg `connect_error_component` is removed.

Use `overlay_component` instead. (1379)

New Features

Client-side Storage integrated with State 1629

- Allow `rx.LocalStorage` and `rx.Cookie` type vars in a State class that are automatically persisted in the client browser when modified on the backend.
- These values can be used in frontend or backend code just like any other state Var.

python
class State(rx.State):
my_token: rx.LocalStorage = ""
my_hour_cookie: rx.Cookie = rx.Cookie("initial", max_age=3600)

def set_token(self):
self.my_token = str(uuid.uuid4())

def update_cookie(self):
if self.my_hour_cookie == "initial":
self.my_hour_cookie = "updated"


Implement `on_mount` and `on_unmount` for all components 1636

These new event handlers, present on all components, tie into React’s `useEffect` hook and are used to trigger backend events needed to initialize a component when it loaded in a page.

Note: `on_mount` will fire twice in dev mode due to the use of React’s StrictMode.

Note: `on_mount` will not fire for page navigation events between different params of the same dynamic route, since the page itself does not get reloaded so no remount occurs. For navigation events, see `on_load` argument of `app.add_page`.

FNM is now used to install nodejs on POSIX platforms

by ElijahAhianyo in 1606 1701

`frontend_packages` are automatically determined 1607

- `frontend_packages` are inferred based on the `library` prop of a wrapped component, instead of having to specify them manually in the `rxconfig.py` file.
- The `library` prop may now include a version pin, like **`library =** "gridjs-react^6.0.1"`
- The `package.json` list of frontend dependencies only includes components that are *actually used* in the app, which decreases bundle size.
- To include additional dependencies used by a component, specify them in the new `lib_dependencies` prop of the wrapped component.

Per-component prop autocompletion for IDEs 1708

Generated `.pyi` files provide better function signatures for component `create` methods, enumerating most recognized props.

Further enhancements will be supplied in a future release to include per-prop documentation and improved signatures for event handlers.

Support Breakpoints in VSCode and PyCharm 1653

- Breakpoints set in the IDE will be respected when running the project in dev mode. See [DEBUGGING.md](https://github.com/reflex-dev/reflex/blob/main/docs/DEBUGGING.md) for an example.

Expose `basePath` configuration option 1724

Support running multiple reflex apps from the same domain by changing the `basePath` prefix that the frontend uses (by nevdelap).

Improvements

- Validate component children by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1647
- Refactor zipping in `reflex export` by martinxu9 in https://github.com/reflex-dev/reflex/pull/1668
- Avoid leaking secrets in log files and on the console.
- fix:issue-1667;added if condition check to not echo DB_URL by shashank40 in https://github.com/reflex-dev/reflex/pull/1681
- Automatically display a Modal when the backend is unable to connect.
- ConnectionModal and ConnectionBanner cleanup by masenf in https://github.com/reflex-dev/reflex/pull/1379
- Add contains, reverse operations for Var by martinxu9 in https://github.com/reflex-dev/reflex/pull/1679
- Add special var for upload: clear_selected_files by martinxu9 in https://github.com/reflex-dev/reflex/pull/1703
- Support automatic serialization of date, datetime, time, and timedelta Vars in a State class.
- added changes for datetime by wassafshahzad in https://github.com/reflex-dev/reflex/pull/1745
- Raise TypeError when attempting to incorrectly use a state Var in a `bool` or `iter` context.
- Var: `__**bool__**` and `__**iter__**` always raise a TypeError by masenf in https://github.com/reflex-dev/reflex/pull/1750
- Allow dynamic routes to work with static hosting (github pages, netlify, s3, etc)
- Client-side Routing (404 redirect) by masenf in https://github.com/reflex-dev/reflex/pull/1695
- Fix browser error when navigating to missing route and custom 404 page is not used.
- No need to run the frontend nodejs process, see updated `docker-example`.

Bug Fixes

- ReflexList: reassign field on `insert` by masenf in https://github.com/reflex-dev/reflex/pull/1652
- Allow event handlers in parent state to be directly called from child state.
- state: _init_event_handlers recursively by masenf in https://github.com/reflex-dev/reflex/pull/1640
- Allow `rx.form` to work with debounce inputs
- [REF-526] debounce_input should respect child ref by masenf in https://github.com/reflex-dev/reflex/pull/1717
- Track var dependencies in comprehensions and nested functions by masenf in https://github.com/reflex-dev/reflex/pull/1728
- Proper serialization for chained Event payloads by masenf in https://github.com/reflex-dev/reflex/pull/1725

Minor Changes and Fixups

- Upgrade to v0.2.6 by picklelo in https://github.com/reflex-dev/reflex/pull/1669
- Revert "Use DebounceInput wrapper for fully controlled Editable" by martinxu9 in https://github.com/reflex-dev/reflex/pull/1670
- Use stream_logs for frontend process by picklelo in https://github.com/reflex-dev/reflex/pull/1682
- Fix run frontend only by picklelo in https://github.com/reflex-dev/reflex/pull/1706
- Update zh_cn README.md by sszzz830 in https://github.com/reflex-dev/reflex/pull/1685
- fix: correct the zh_cn README by milochen0418 in https://github.com/reflex-dev/reflex/pull/1716
- Fix setting substate client storage by picklelo in https://github.com/reflex-dev/reflex/pull/1723
- Avoid compile step when running production backend by masenf in https://github.com/reflex-dev/reflex/pull/1665
- AppHarness: disable telemetry for test apps by masenf in https://github.com/reflex-dev/reflex/pull/1733
- state: _init_mutable_fields for backend vars as well by masenf in https://github.com/reflex-dev/reflex/pull/1729
- Fix project hash and modernize type annotations by picklelo in https://github.com/reflex-dev/reflex/pull/1704
- Refactor: Move format_prop Static Method for Improved Reusability by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1714
- ConnectionModal uses Cond for rendering by masenf in https://github.com/reflex-dev/reflex/pull/1739
- remove some packages requirements in frontend_packages option by Lendemor in https://github.com/reflex-dev/reflex/pull/1700
- App: only render default overlay_component when DefaultState is not used by masenf in https://github.com/reflex-dev/reflex/pull/1744

New Contributors

- shashank40 made their first contribution in https://github.com/reflex-dev/reflex/pull/1681
- sszzz830 made their first contribution in https://github.com/reflex-dev/reflex/pull/1685
- nevdelap made their first contribution in https://github.com/reflex-dev/reflex/pull/1724

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.6...v0.2.7

0.2.6

Not secure
A quick follow-up release to fix issues discovered and reported by our thriving community on Discord. 💪

Fix Regressions

Ensure non-sqlite databases can be used 1661

- model: only pass "check_same_thread" arg for sqlite database by masenf in https://github.com/reflex-dev/reflex/pull/1662

Block problematic upstream package `python-engineio-4.6.0` 1658

- pyproject.toml: requires python-engineio!=4.6.0 by masenf in https://github.com/reflex-dev/reflex/pull/1663

Other Changes

- Added the `step` prop to `Slider`[Issue 1639] by muddi900 in https://github.com/reflex-dev/reflex/pull/1643
- added support for limits in pagination by wassafshahzad in https://github.com/reflex-dev/reflex/pull/1646
- add type conversion for int,float in built-in setters by Lendemor in https://github.com/reflex-dev/reflex/pull/1660

New Contributors

- muddi900 made their first contribution in https://github.com/reflex-dev/reflex/pull/1643

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.5...v0.2.6

0.2.5

Not secure
💪 Thanks to our amazing users and contributors!! 🙌 🐍

Known Regressions

* non-sqlite database access is not working 1661

Breaking Changes

Chained event handlers from `return` / `yield` must always be referenced from the State class, NOT the instance

python
class State(rx.State):
def handlerA(self):
...

def handlerB(self):
return self.handlerA() ❌ Will raise TypeError now!

def handlerC(self):
return State.handlerA() ✅ Always reference chained handlers by class


The exception will look like `TypeError: Your handler State.handlerB must only return/yield: None, Events or other EventHandlers referenced by their class (not using self)` and will occur *when the handler is called*, not at compile time.

Removal of `Config` knobs

- `admin_dash` - configure the admin dashboard via `rx.App` instead
- `backend_transports` - all connections will use websocket
- `cors_credentials`
- `db_config` - use `db_url` instead
- `env` - specify the run environment via CLI flags to `reflex run --env dev|prod`
- `env_path` - reading environment variables from a file is no longer supported (suggest use of `docker-compose` or simply `source` the env file before running `reflex`)
- `override_os_envs` - os environment variables will always take precedence
- `polling_max_http_buffer_size` - all connections will use websocket

New Features

Support f-string formatting of State vars

Frontend rendering functions can now make use of `f"built in {State.value}"` style formatting, instead of `+` concatenation.

Node.js is automatically installed on Windows (non-WSL)

Using the cross-platform `fnm` tool to facilitate automatic installation of node runtime on native windows platform, where previously a manual install was needed.

POSIX support for `fnm` to replace `nvm` is coming soon.

Display system and environment information with `--loglevel debug`

For easier bug reporting and investigations, all relevant platform info, config, and tools used by Reflex will be logged in debug mode.

`rx.selected_files` Var exposes files selected by the `rx.upload` component

This new Var can be rendered as a frontend component:

python
rx.foreach(
rx.selected_files,
rx.text,
)


Improvements

Frontend performance boost

Refactoring the main frontend event loop reduces event handling and rendering time by 3x.

Refactored `Config` class

Simplify configuration knobs and recognize all configuration values set as environment variables.

`rx.form` now works with more form components

Including `rx.pin_input`, `rx.number_input`, and `rx.range_slider`

More flexible container serialization inside State classes

- `set` is now supported as a `Var` type
- Recursive serialization now allows for `list`, `tuple`, and `set` of PIL image, plotly plots, and pandas dataframes.

Use “trailingSlash” mode to better support static site hosting

When exporting a site via `reflex export`, an `index.html` file will be created inside a directory for each static route, which makes hosting via s3, github pages, netlify, and others simpler by not requiring a “try_files” rule or rewrites.

`docker-example` is simplified and extended

The main `Dockerfile` is simpler and there is now a `compose.yaml` and `Caddy.Dockerfile` which can be used to deploy a reflex app with automatic TLS support.

Other Improvements

- Expose `debounce_timeout` prop on `rx.input` and `rx.text_area` for tuning fully-controlled input behavior on large sites.
- Ignore `*.db` and files in default `.gitignore` template
- `NoSSRComponent` supports components using either named or default exports.

Bug Fixes

- Flex `wrap` and `direction` props accept list of values, for use at different responsive breakpoints.
- Can specify `on_load` when defining a custom 404 page.
- Raise useful exception when a user-defined State var shadows an internal name.
- `BUN_PATH` is respected again (regression from 0.2.3)
- Var operations like `to_string`, `and`, and `or` return a new Var with the correct `type_` set.
- Passing a `dict` as a prop where the values contain double quotes is no longer an error. (Fix `rx.html` component where content contains double quotes)

Other Changes
* For show file on PyPI correctly, to use the full-path hyperlink to indicate the raw file by milochen0418 in https://github.com/reflex-dev/reflex/pull/1559
* PR zh/zh_tw readme update by milochen0418 in https://github.com/reflex-dev/reflex/pull/1557
* Add windows warning message. by Alek99 in https://github.com/reflex-dev/reflex/pull/1570
* Change fixture scope to be run per session rather than per function by mat-mil in https://github.com/reflex-dev/reflex/pull/1569
* App harness use new_process by picklelo in https://github.com/reflex-dev/reflex/pull/1573
* Update urls to reflex.dev by picklelo in https://github.com/reflex-dev/reflex/pull/1572
* Update CONTRIBUTING.md by Alek99 in https://github.com/reflex-dev/reflex/pull/1580
* Add AppHarness for form submit by Lendemor in https://github.com/reflex-dev/reflex/pull/1571
* FIXED 1598: pyproject.toml: Wrong repository URL by jenisys in https://github.com/reflex-dev/reflex/pull/1602
* test_dynamic_routes: fix flakyness in test_dynamic_routes by masenf in https://github.com/reflex-dev/reflex/pull/1603
* Fix rx.link href prop and Var.to_string type by picklelo in https://github.com/reflex-dev/reflex/pull/1600
* integration tests: don't shadow real error when screenshot fails by masenf in https://github.com/reflex-dev/reflex/pull/1608
* link: fix link with no href by masenf in https://github.com/reflex-dev/reflex/pull/1612
* Update .gitignore to ignore coverage.* files by martinxu9 in https://github.com/reflex-dev/reflex/pull/1623
* Remove unused `full_control` related code by martinxu9 in https://github.com/reflex-dev/reflex/pull/1624
* test_form_submit: poll for backend_state to be updated by masenf in https://github.com/reflex-dev/reflex/pull/1625

New Contributors
* Smit-Parmar made their first contribution in https://github.com/reflex-dev/reflex/pull/1535
* mat-mil made their first contribution in https://github.com/reflex-dev/reflex/pull/1568
* jenisys made their first contribution in https://github.com/reflex-dev/reflex/pull/1602
* martinxu9 made their first contribution in https://github.com/reflex-dev/reflex/pull/1614
* danik292 made their first contribution in https://github.com/reflex-dev/reflex/pull/1645

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.4...v0.2.5

0.2.4

Not secure
What's Changed
* Update Readme by Alek99 in https://github.com/reflex-dev/reflex/pull/1463
* Guide to clone the correct repo in CONTRIBUTING.md by milochen0418 in https://github.com/reflex-dev/reflex/pull/1471
* replace favicon.ico to represent reflex by milochen0418 in https://github.com/reflex-dev/reflex/pull/1469
* Disable fully controlled Input and TextArea by masenf in https://github.com/reflex-dev/reflex/pull/1383
* Fix Nextjs Dynamic Import by Alek99 in https://github.com/reflex-dev/reflex/pull/1480
* Use concurrent.futures for threading by picklelo in https://github.com/reflex-dev/reflex/pull/1483
* Bump version to 0.2.3 by picklelo in https://github.com/reflex-dev/reflex/pull/1481
* Full OS matrix builds for unit and integration tests (Linux, Mac, Windows) by jackie-pc in https://github.com/reflex-dev/reflex/pull/1460
* Windows CI: debug logs encoding fix by jackie-pc in https://github.com/reflex-dev/reflex/pull/1491
* Simplify rxconfig template by picklelo in https://github.com/reflex-dev/reflex/pull/1492
* Update README.md by Alek99 in https://github.com/reflex-dev/reflex/pull/1498
* fail faster in integration test by jackie-pc in https://github.com/reflex-dev/reflex/pull/1493
* Fix deploy command by picklelo in https://github.com/reflex-dev/reflex/pull/1496
* check_initialized: skip REFLEX_DIR check for backend only by masenf in https://github.com/reflex-dev/reflex/pull/1478
* scripts/integration: fix mismerge -- wait for $check_ports by masenf in https://github.com/reflex-dev/reflex/pull/1504
* docker-example: update executable and README by masenf in https://github.com/reflex-dev/reflex/pull/1499
* fix state reset() by Lendemor in https://github.com/reflex-dev/reflex/pull/1501
* CI: Basic integration test for WSL by jackie-pc in https://github.com/reflex-dev/reflex/pull/1510
* add __main__ entry point to allow `python -m reflex` by masenf in https://github.com/reflex-dev/reflex/pull/1516
* Remove Home folder for windows by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1502
* fix lost events when yielding by Lendemor in https://github.com/reflex-dev/reflex/pull/1521
* Add alt tag for images by picklelo in https://github.com/reflex-dev/reflex/pull/1524
* NoSSRComponent recognizes is_default by masenf in https://github.com/reflex-dev/reflex/pull/1533
* Wrap Input and TextArea with DebounceInput for full control by masenf in https://github.com/reflex-dev/reflex/pull/1484
* Run AppHarness selenium integration tests in CI by masenf in https://github.com/reflex-dev/reflex/pull/1538
* Expose NoSSRComponent for downstream use by masenf in https://github.com/reflex-dev/reflex/pull/1537
* Get rid of mod_import by Alek99 in https://github.com/reflex-dev/reflex/pull/1547


**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.3...v0.2.4

0.2.3

Not secure
What's Changed
* Lendemor/fix datatable rendering by Lendemor in https://github.com/reflex-dev/reflex/pull/1360
* Check bun installation exit code during reflex init by siddhantgoel in https://github.com/reflex-dev/reflex/pull/1385
* Allow custom Tailwind content by kbrgl in https://github.com/reflex-dev/reflex/pull/1399
* rx.App `state` arg should not be required by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1361
* Update tests for Foreach by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1394
* integration/test_server_side_event.py: tests for set_value by masenf in https://github.com/reflex-dev/reflex/pull/1390
* improve 404 logic by Lendemor in https://github.com/reflex-dev/reflex/pull/1398
* Bump version to 0.2.2 by picklelo in https://github.com/reflex-dev/reflex/pull/1400
* Fix foreach indexing by picklelo in https://github.com/reflex-dev/reflex/pull/1403
* Update Readme links by TaiJuWu in https://github.com/reflex-dev/reflex/pull/1405
* feature: Auto install node by nvm on Linux by TaiJuWu in https://github.com/reflex-dev/reflex/pull/1404
* Bugfix for hidden refs on form submit by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1418
* rx.markdown custom styles for tags by picklelo in https://github.com/reflex-dev/reflex/pull/1416
* dev-mode compile: purge .web dir at last min to reduce downtime window by jackie-pc in https://github.com/reflex-dev/reflex/pull/1430
* update templates to remove deprecation warning by Lendemor in https://github.com/reflex-dev/reflex/pull/1437
* List and Dict mutation on setattr by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1428
* rename rx.route decorator by Lendemor in https://github.com/reflex-dev/reflex/pull/1442
* Update package.json to use nvm by picklelo in https://github.com/reflex-dev/reflex/pull/1419
* Github action to run unit tests on windows by jackie-pc in https://github.com/reflex-dev/reflex/pull/1444
* update behaviour for wrong state passed as argument of rx.App by Lendemor in https://github.com/reflex-dev/reflex/pull/1447
* Update version flag by picklelo in https://github.com/reflex-dev/reflex/pull/1452
* CI: factor out env setup as composite action by jackie-pc in https://github.com/reflex-dev/reflex/pull/1455
* Improve prerequisites check by picklelo in https://github.com/reflex-dev/reflex/pull/1454
* fix breadcrumb API & add get_page_crumbs method by Lendemor in https://github.com/reflex-dev/reflex/pull/1387
* CI: separate pre-commit github action job by jackie-pc in https://github.com/reflex-dev/reflex/pull/1457
* Remove curl and parallelize node/bun install by picklelo in https://github.com/reflex-dev/reflex/pull/1458
* Add unified logging by picklelo in https://github.com/reflex-dev/reflex/pull/1462
* Show status bar on reflex init by picklelo in https://github.com/reflex-dev/reflex/pull/1467

New Contributors
* jackie-pc made their first contribution in https://github.com/reflex-dev/reflex/pull/1430

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.2...v0.2.3

Page 10 of 15

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.