# What changed in streamlit

> 90 changes in streamlit 1 from its official release notes, upgrade guides and advisories: 4 breaking, 4 security, 49 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/streamlit/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## streamlit 1

### Breaking changes

- Python 3.10 support is dropped, affecting the Python versions developers can use to run Streamlit. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Makes writes to st.secrets a type error. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Removes the expired mapbox.token configuration option. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Rejects async cache_resource lifecycle callbacks. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)

### Security

- Rejects unsafe navigation network paths. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Renders apps in opaque sandboxed iframes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Unauthenticated SSRF Vulnerability in Streamlit on Windows (NTLM Credential Exposure) (1.54.0) — [security advisory](https://github.com/advisories/GHSA-7P48-42J8-8846)
- Streamlit @st.cache_data hash collision via fixed sampling seed and PIL P-mode palette omission (1.53.1) — [security advisory](https://github.com/advisories/GHSA-VQWP-45WM-R9R5)

### New APIs and options

- Adds AppTest support for forms, link_button, page_link, progress, html, help, pagination, audio_input, camera_input, and imported v2 components. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds on_change="ignore" mode to prevent the widget from triggering a rerun when its value changes. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds the paddingBottom theme configuration option. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds the paddingTop theme configuration option. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Adds alt text support to built-in Vega chart commands. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds a theme option for dataframe header text color. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an alt parameter. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Can render as a side drawer using position. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Supports query param binding. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an alt parameter. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds a required parameter. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Supports query param binding for tabs. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds a required parameter. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an ignore mode for on_change. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds alt text support. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds an alt parameter. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds native Apache ECharts support through st.echarts_chart. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Adds an on_change="ignore" mode so number_input changes can avoid triggering a rerun. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Adds an on_change="ignore" mode to st.select_slider. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Adds an on_change="ignore" mode to st.selectbox. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Adds the live parameter to st.text_input. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)

### Behavior and default changes

- Adds support for Python 3.15. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Supports pasting a full date range into the widget. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Supports calling asyncio.get_event_loop() in scripts. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Makes st.cache_data async-aware. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Makes st.cache_resource async-aware. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)

### Fixes and other changes

- Makes AppTest layout collections callable. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Keeps page widget state on rerun. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Releases abandoned runs waiting on a cache. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Revokes callables for disabled download buttons. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Makes httptools an optional dependency. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Surfaces parse errors when secrets.toml is malformed. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Attribute probes no longer import modules. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Improves alignment of elements placed side by side. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Aligns st.connection overloads with runtime behavior. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Makes stretch containers grow with their content. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Makes stretch forms grow with their content. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Aligns pydeck tooltips with the cursor. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Tightens the types accepted when writing query parameters. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Announces the active select option while typing. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Types iterated session state keys as str. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Skips stale keyed blocks during reruns. (1.66.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.66.0)
- Accepts use_column_width as a no-op for compatibility. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Synchronizes query params when navigating backward or forward in the browser on the same page. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Rejects awaitables returned from synchronous cached functions. (1.65.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.65.0)
- Adds dict methods to AppTest.session_state. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Prevents in-flight Custom Components v2 triggers from being dropped. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Encodes unsafe download filenames when placing them in a quoted header. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Rejects unsupported on_change modes. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Rejects inverted st.number_input minimum and maximum bounds. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Honors pydeck views when rendering st.pydeck_chart. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Exposes st.radio captions as option descriptions. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Keeps widget values after a body-level st.rerun. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
- Swaps reversed st.slider minimum and maximum bounds. (1.64.0) — [release notes](https://github.com/streamlit/streamlit/releases/tag/1.64.0)
