1.59.0
Breaking Changes📦 streamlitView on GitHub →
⚠ 2 breaking✨ 22 features🐛 19 fixes🔧 12 symbols
Summary
This release introduces significant new features like ButtonColumn in column_config, support for pasting files into chat_input, and Mermaid diagram support in markdown. It also includes numerous bug fixes addressing issues in metrics, fragments, and various widgets.
⚠️ Breaking Changes
- The default behavior for memory stats in the /_stcore/metrics endpoint has been changed to be cheap.
- The deprecated Snowpark connection functionality has been removed.
Migration Steps
- If you relied on the deprecated Snowpark connection mechanism, you must update your connection logic.
✨ New Features
- Added ButtonColumn support to st.column_config.
- Added "locked" option for initial_sidebar_state in st.set_page_config.
- Added list support to programmatic secrets.
- Added recommendation for installing skills on app startup.
- Added AppTest support for download_button and image.
- Added column statistics submenu to st.dataframe.
- Added streamlit docs <command> lookup functionality.
- Added MarkdownColumn for st.dataframe and st.data_editor.
- Added App.run() method to launch via python app.py or uv run app.py.
- Added support for pasting files into st.chat_input.
- Added server.xsrfCookieSameSite configuration option.
- Added mermaid diagram support in st.markdown.
- Added support for OpenAI Responses API streams in st.write_stream.
- Fragment reruns now reset outside wrappers.
- Fragments can now write into outside containers.
- Added per-user analytics on the metrics endpoint.
- Added skeleton element for loading placeholder UI.
- Added anchors parameter to st.markdown.
- Added resolution parameter to st.camera_input.
- Added in-app install-skills nudge toast.
- Added submit_mode parameter to st.chat_input.
- Added persist_state widget parameter.
🐛 Bug Fixes
- Fixed metrics endpoint error when using SQLAlchemy connections.
- Fixed TypeError in _run_with_thread_state when using @st.fragment(run_every=...).
- Fixed P-mode PIL palette hashing to prevent hash collisions.
- Fixed usage of named Snowflake connection from config file.
- Fixed binding of IPv6 dual-stack wildcard for default server address.
- Fixed clearing of stale and invalid auth cookies on login.
- Fixed synchronization of widgetMgr to resolve tab.open lazy loading issues.
- Fixed discovery of installed CCv2 components in AppTest.
- Prevented resetting of page title on rerun.
- Fixed acceptance of formatted labels in AppTest format_func widgets.
- Fixed callback functionality for st.pills and st.segmented_control.
- Defaulted to polling file watcher in WSL environments.
- Prevented "Missing Submit Button" flash on app load.
- Improved explanation of multi-replica cause in invalid session upload errors.
- Fixed selectbox selection retention when format_func depends on object identity.
- Prevented ESC key from clearing st.multiselect selection.
- Validated StreamlitPage source matches registered page.
- Ignored dataframe Ctrl+F shortcut when search is disabled.
- Prevented line wrapping in dataframe column menu.