1.61.0
Breaking Changes📦 streamlitView on GitHub →
⚠ 2 breaking✨ 10 features🐛 26 fixes🔧 17 symbols
Summary
This release introduces lazy loading for st.dataframe, an icon parameter for st.metric, and background refresh for st.cache_data and st.cache_resource. It also includes several bug fixes and improvements to existing widgets.
⚠️ Breaking Changes
- The `use_column_width` parameter has been removed from `st.image`. Users should now use `width='auto'` or `width='always'` instead.
- String file paths are deprecated in `st.html` and `st.iframe` in favor of `pathlib.Path` objects. Migrating to `pathlib.Path` is recommended to avoid future issues.
Migration Steps
- Update calls to `st.image` to use `width='auto'` or `width='always'` instead of `use_column_width`.
- Migrate string file paths in `st.html` and `st.iframe` to `pathlib.Path` objects.
✨ New Features
- Added lazy loading for `st.dataframe`.
- Added an `icon` parameter to `st.metric`.
- Added background refresh for `st.cache_data` and `st.cache_resource`.
- Added WebSocket Host allow-list.
- Added seconds granularity and `format` for hour cycle to `st.time_input`.
- Improved form support and enter to submit for `st.time_input`.
- Inferred `download_button` file_name and mime from file object name.
- Enforced disabled widget parameter server-side.
- Improved tag accessibility in `st.multiselect`.
- Turned `st.Page` into a proper class.
🐛 Bug Fixes
- Fixed popover in sidebar rendering off-screen.
- Fixed escape key clearing typed search query in `st.selectbox`.
- Fixed AppTest sys.path handling for script paths.
- Fixed clearing stale AppTest elements on rerun.
- Clarified AppTest multipage path handling.
- Fixed `st.selectbox` fuzzy search only matching contiguous substrings since 1.59.0.
- Fixed committing open `data_editor` cell edit on outside click.
- Fixed `TypeError` in `run_every` fragments with Sentry threading.
- Prevented `st.data_editor` row additions from overwriting rows.
- Rejected network paths and null bytes in `st.Page`.
- Fixed `st.expander` being clipped after interrupted animation.
- Locked Mermaid init config overrides.
- Honored Plotly layout fonts in Sankey charts.
- Made multiselect dropdown background match sidebar theme.
- Flipped sidebar dropdown up instead of clipping.
- Preserved IME composition in `data_editor` NumberColumn.
- Preserved right-side padding when code block is scrolled.
- Improved higher-DPI Altair PNG export.
- Fixed `st.bar_chart` failing on column names containing '.'
- Ensured stable dataframe header background with alpha.
- Preserved fragment children across container reruns.
- Reconnected to existing session on unclean websocket close.
- Accepted `io.StringIO` data in `st.download_button`.
- Kept pills and `segmented_control` selection highlighted when `format_func` changes.
- Suppressed the skills nudge when an install would only conflict, and reported why.
- Fixed `st.help` header showing "page.run()" in multipage apps.