1.49.0
Breaking Changes📦 streamlitView on GitHub →
⚠ 3 breaking✨ 20 features🐛 18 fixes⚡ 1 deprecations🔧 22 symbols
Summary
Streamlit 1.49.0 introduces configurable websocket ping intervals, new UI components like st.pdf and directory uploads, extensive layout enhancements, and several bug fixes, while removing experimental replay APIs and deprecating st.bokeh_chart.
⚠️ Breaking Changes
- Experimental dialog, fragment, and widget replay APIs were removed; update your app to stop using these experimental features.
- `st.bokeh_chart` has been removed; replace it with the `streamlit-bokeh` component.
- `ListColumn` can now be edited via `st.data_editor`, which changes its previous read‑only behavior; adjust any logic that assumed it was immutable.
Migration Steps
- Replace any usage of `st.bokeh_chart` with the `streamlit-bokeh` component.
- Remove or refactor code that relies on experimental dialog, fragment, or widget replay APIs.
- Review logic that treats `ListColumn` as read‑only, as it can now be edited via `st.data_editor`.
- Test your app with the new websocket ping interval settings if you experience proxy drops.
- Update any custom theming for `st.toast` to align with the new theming support.
✨ New Features
- Configurable websocket ping interval to prevent proxy connection drops.
- Directory support added to `st.file_uploader`.
- Sparkline charts added to `st.metric`.
- Simplified copy‑to‑clipboard handling across the app.
- `duration` parameter added to `st.toast`.
- Advanced layout updates: new style for width and height in dataframe and data editor.
- Wider option added to `st.dialog`.
- Single‑ and multi‑cell selections added to `st.dataframe`.
- Check icon displayed on column name copy.
- `st.pdf` component added.
- `key` parameter added to `st.form_submit_button`.
- Toolbar action to show underlying Vega chart data.
- Advanced layout updates: width/height support for `st.image` and added width/height to `st.pyplot`.
- `yellow` added to text, background, badge, and divider color options.
- Explicit support for Pydantic models in `cache_data`/`resource`.
- Directory upload support added to `st.chat_input`.
- Slider value now updates on mouse release.
- `format_func` support added to `SelectboxColumn`.
- Width parameter added to Graphviz charts.
- Select all / deselect all functionality when hiding dataframe columns from UI.
🐛 Bug Fixes
- Skeleton width now spans full screen.
- `st.chat_input` no longer collapses after submit.
- Iframe and HTML elements retain default width when no width is specified.
- `st.toast` now respects custom theming.
- File upload component prevents removal of already uploaded files when disabled.
- Narrow currency symbol used for formatting.
- Reverted change that made `st.logout` use `end_session_endpoint` from OIDC config.
- Connection error dialog can now be dismissed and will not repeatedly pop up.
- Layout config data is cached and used during replay.
- `st.page_link` radii configuration updated.
- Single‑mark charts now use the first entry of `chartCategoricalColors`.
- File upload drop target subtext truncation fixed.
- Credentials handling improved to avoid errors when email is missing.
- Selectbox with `accept_new_options` on mobile now shows keyboard correctly.
- PlotlyChart handles null value selections properly.
- Underlying column menu no longer opens when column visibility menu is open for `st.dataframe`.
- Theme radii applied to `CheckboxColumn`.
- Deprecation warning logged for `use_container_width` in `st.dataframe`.
🔧 Affected Symbols
st.bokeh_chartListColumnst.data_editorst.dialogst.dataframest.toastst.form_submit_buttonst.file_uploaderst.chat_inputst.metricst.imagest.pyplotst.pdfst.page_linkst.time_inputst.logoSelectboxColumnCheckboxColumngraphvizcache_dataresourcest.logout⚡ Deprecations
- `st.bokeh_chart` is deprecated in favor of the `streamlit-bokeh` component.