You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Add Streamlit 1.59.0 release notes and API docs (#1496)
* Add 1.59.0 release notes
Add Version 1.59.0 (July 6, 2026) to the release notes index as the
latest release and to the 2026 archive page.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Generate 1.59.2 docstrings in streamlit.json
Run generate.py with Streamlit 1.59.2 to add the 1.59 API docstrings.
Also removes the deleted SnowparkConnection entry from generate.py.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix: use 1.59.0 version key in streamlit.json
Co-authored-by: Cursor <cursoragent@cursor.com>
* Add API tiles for st.skeleton and ButtonColumn (1.59)
Add new detail pages, index tiles, and menu entries for st.skeleton
(status elements) and st.column_config.ButtonColumn (column config).
Co-authored-by: Cursor <cursoragent@cursor.com>
* Add screenshots for st.skeleton and ButtonColumn tiles
Co-authored-by: Cursor <cursoragent@cursor.com>
* Add API tile and page for MarkdownColumn (1.59)
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Johannes Rieke <johannes.rieke@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
description: st.column_config.ButtonColumn configures a column of clickable buttons in dataframes and data editors, letting users trigger actions directly from table rows.
Copy file name to clipboardExpand all lines: content/develop/quick-references/release-notes/2026.md
+57Lines changed: 57 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,63 @@ keywords: changelog, release notes, version history
9
9
10
10
This page contains release notes for Streamlit versions released in 2026. For the latest version of Streamlit, see [Release notes](/develop/quick-reference/release-notes).
11
11
12
+
## **Version 1.59.0**
13
+
14
+
_Release date: July 6, 2026_
15
+
16
+
**Highlights**
17
+
18
+
- ✨ Introducing [`ButtonColumn`](/develop/api-reference/data/st.column_config/st.column_config.buttoncolumn) — a new column type for [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) that renders clickable buttons inside table cells, letting users trigger actions directly from a row ([#14544](https://github.com/streamlit/streamlit/pull/14544), [#7015](https://github.com/streamlit/streamlit/issues/7015)).
19
+
- 📊 [`st.dataframe`](/develop/api-reference/data/st.dataframe) has a new column statistics submenu — right-click any column header to see per-column summary stats ([#14307](https://github.com/streamlit/streamlit/pull/14307), [#13148](https://github.com/streamlit/streamlit/issues/13148)).
20
+
- 🍿 Introducing [`st.skeleton`](/develop/api-reference/status/st.skeleton) — a new element that renders animated loading placeholders, making it easy to give users visual feedback while content is loading ([#15169](https://github.com/streamlit/streamlit/pull/15169), [#8032](https://github.com/streamlit/streamlit/issues/8032)).
21
+
- 🎛 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) has a new `submit_mode` parameter that lets you control when messages are submitted — either on Enter (default) or only when the user explicitly clicks the send button ([#14344](https://github.com/streamlit/streamlit/pull/14344), [#8323](https://github.com/streamlit/streamlit/issues/8323), [#11854](https://github.com/streamlit/streamlit/issues/11854)).
22
+
23
+
**Notable Changes**
24
+
25
+
- 📋 [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) support a new [`MarkdownColumn`](/develop/api-reference/data/st.column_config/st.column_config.markdowncolumn) type in `st.column_config` that renders Markdown text inside table cells ([#13931](https://github.com/streamlit/streamlit/pull/13931), [#10211](https://github.com/streamlit/streamlit/issues/10211)).
26
+
- 🎨 [`st.markdown`](/develop/api-reference/text/st.markdown) now renders Mermaid diagrams, letting you embed flowcharts, sequence diagrams, and more directly in your app ([#14022](https://github.com/streamlit/streamlit/pull/14022), [#10721](https://github.com/streamlit/streamlit/issues/10721)).
27
+
- 🔗 [`st.markdown`](/develop/api-reference/text/st.markdown) has a new `anchors` parameter for adding linkable heading anchors to Markdown content ([#15722](https://github.com/streamlit/streamlit/pull/15722), [#13913](https://github.com/streamlit/streamlit/issues/13913)).
28
+
- 💻 You can now launch Streamlit apps directly with `python app.py` or `uv run app.py` using the new `App.run()` entry point — no more `streamlit run` required ([#15563](https://github.com/streamlit/streamlit/pull/15563), [#9450](https://github.com/streamlit/streamlit/issues/9450), [#11420](https://github.com/streamlit/streamlit/issues/11420)).
29
+
- 🧩 [`st.fragment`](/develop/api-reference/execution-flow/st.fragment) can now write to containers defined outside the fragment. Fragments can update any part of your app — including elements created before the fragment — without triggering a full rerun ([#15623](https://github.com/streamlit/streamlit/pull/15623), [#15620](https://github.com/streamlit/streamlit/pull/15620), [#10481](https://github.com/streamlit/streamlit/issues/10481)).
30
+
- 📎 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) now supports pasting files directly into the input field ([#15558](https://github.com/streamlit/streamlit/pull/15558), [#10307](https://github.com/streamlit/streamlit/issues/10307)).
31
+
- 🤖 [`st.write_stream`](/develop/api-reference/write-magic/st.write_stream) now supports OpenAI Responses API streams in addition to the existing Chat Completions streams ([#15559](https://github.com/streamlit/streamlit/pull/15559), [#11061](https://github.com/streamlit/streamlit/issues/11061)).
32
+
- 🔒 [`st.set_page_config`](/develop/api-reference/configuration/st.set_page_config) supports a new `"locked"` option for `initial_sidebar_state` that prevents users from toggling the sidebar open or closed ([#15459](https://github.com/streamlit/streamlit/pull/15459), [#15411](https://github.com/streamlit/streamlit/issues/15411)).
33
+
- 💅 Widgets have a new `persist_state` parameter for finer control over how widget state is preserved across reruns ([#15645](https://github.com/streamlit/streamlit/pull/15645)).
34
+
- 📷 [`st.camera_input`](/develop/api-reference/widgets/st.camera_input) has a new `resolution` parameter to control the captured image resolution ([#15766](https://github.com/streamlit/streamlit/pull/15766), [#4320](https://github.com/streamlit/streamlit/issues/4320)).
35
+
- 🧪 [`AppTest`](/develop/api-reference/app-testing/st.testing.v1.apptest) now supports testing `st.download_button` and `st.image` ([#15528](https://github.com/streamlit/streamlit/pull/15528), [#9003](https://github.com/streamlit/streamlit/issues/9003)).
36
+
- 💾 Programmatic secrets now support list values ([#15491](https://github.com/streamlit/streamlit/pull/15491)).
37
+
- ⌨ You can now look up Streamlit API documentation from the CLI with `streamlit docs <command>` ([#15547](https://github.com/streamlit/streamlit/pull/15547)).
38
+
- 🔐 A new `server.xsrfCookieSameSite` config option lets you customize the `SameSite` attribute of the XSRF cookie for deployments with specific cross-site requirements ([#15634](https://github.com/streamlit/streamlit/pull/15634), [#5793](https://github.com/streamlit/streamlit/issues/5793), [#9397](https://github.com/streamlit/streamlit/issues/9397)).
39
+
- 💡 Streamlit now recommends installing AI coding skills on app startup to improve your development workflow with AI coding assistants ([#15437](https://github.com/streamlit/streamlit/pull/15437), [#15473](https://github.com/streamlit/streamlit/pull/15473)).
40
+
- ⚙ The `/_stcore/metrics` endpoint now reports memory stats in a less detailed (cheaper) form by default. If your monitoring stack relies on the previous granular memory fields, set `server.enableStaticServing` to `true` to restore them ([#15472](https://github.com/streamlit/streamlit/pull/15472)).
41
+
- 👻 The deprecated Snowpark connection type has been removed. Migrate to a supported connection type ([#15784](https://github.com/streamlit/streamlit/pull/15784)).
42
+
- 👻 The deprecated [`st.bokeh_chart`](/develop/api-reference/charts/st.bokeh_chart) command has been removed. Use `st.components.v1.html` to embed Bokeh visualizations instead ([#15636](https://github.com/streamlit/streamlit/pull/15636)).
43
+
44
+
**Other Changes**
45
+
46
+
- ⚡ VegaLite charts now use Vega's native resize API for faster rendering when the container size changes ([#15302](https://github.com/streamlit/streamlit/pull/15302)).
47
+
- 🎨 The pagination widget's selected-state styling has been redesigned ([#15550](https://github.com/streamlit/streamlit/pull/15550)).
48
+
- 🔧 Various fixes related to the Baseweb library removal ([#15737](https://github.com/streamlit/streamlit/pull/15737)).
49
+
- 🐛 Bug fix: The metrics endpoint no longer errors when SQLAlchemy connections are present ([#15334](https://github.com/streamlit/streamlit/pull/15334)).
50
+
- 🦋 Bug fix: `@st.fragment(run_every=...)` no longer raises a `TypeError` in `_run_with_thread_state` ([#15376](https://github.com/streamlit/streamlit/pull/15376)).
51
+
- 🪲 Bug fix: Named Snowflake connections defined in config files are now correctly discovered and used ([#15382](https://github.com/streamlit/streamlit/pull/15382)).
52
+
- 🐜 Bug fix: P-mode PIL palette images are now hashed correctly to prevent hash collisions ([#15397](https://github.com/streamlit/streamlit/pull/15397)).
53
+
- 🐝 Bug fix: The server now correctly binds to IPv6 dual-stack wildcards for the default address ([#15400](https://github.com/streamlit/streamlit/pull/15400)).
54
+
- 🐞 Bug fix: Stale and invalid auth cookies are now cleared on login ([#15420](https://github.com/streamlit/streamlit/pull/15420)).
55
+
- 🕷️ Bug fix: `widgetMgr` is synced correctly to fix lazy loading in `tab.open` ([#15460](https://github.com/streamlit/streamlit/pull/15460)).
56
+
- 🪳 Bug fix: Installed Custom Component v2 components are now correctly discovered in `AppTest` ([#15488](https://github.com/streamlit/streamlit/pull/15488)).
57
+
- 🪰 Bug fix: [`st.pills`](/develop/api-reference/widgets/st.pills) and [`st.segmented_control`](/develop/api-reference/widgets/st.segmented_control) callbacks now fire correctly after selection ([#15522](https://github.com/streamlit/streamlit/pull/15522)).
58
+
- 🦠 Bug fix: The page title is no longer reset to the default on rerun ([#15527](https://github.com/streamlit/streamlit/pull/15527)).
59
+
- 🦟 Bug fix: The "Missing Submit Button" warning no longer flashes briefly on app load ([#15561](https://github.com/streamlit/streamlit/pull/15561)).
60
+
- 🦂 Bug fix: Streamlit now defaults to the polling file watcher in WSL environments, avoiding inotify issues ([#15562](https://github.com/streamlit/streamlit/pull/15562)).
61
+
- 🦗 Bug fix: `AppTest` now correctly handles formatted labels in `format_func` widgets ([#15564](https://github.com/streamlit/streamlit/pull/15564)).
62
+
- 🕸️ Bug fix: The invalid session upload error message now explains multi-replica deployment as a possible cause ([#15635](https://github.com/streamlit/streamlit/pull/15635)).
63
+
- 🐌 Bug fix: [`st.selectbox`](/develop/api-reference/widgets/st.selectbox) no longer loses its selection when `format_func` depends on object identity ([#15639](https://github.com/streamlit/streamlit/pull/15639)).
64
+
- 🦎 Bug fix: Pressing Escape no longer clears the current selection in [`st.multiselect`](/develop/api-reference/widgets/st.multiselect) ([#15646](https://github.com/streamlit/streamlit/pull/15646)).
65
+
- 🦀 Bug fix: `StreamlitPage` now validates that its `source` matches the registered page, catching misconfiguration earlier ([#15721](https://github.com/streamlit/streamlit/pull/15721), [#10572](https://github.com/streamlit/streamlit/issues/10572)).
66
+
- 👽 Bug fix: [`st.dataframe`](/develop/api-reference/data/st.dataframe) no longer intercepts the Ctrl+F keyboard shortcut when the search bar is disabled ([#15764](https://github.com/streamlit/streamlit/pull/15764)).
67
+
- 🐛 Bug fix: Column headers in [`st.dataframe`](/develop/api-reference/data/st.dataframe) no longer wrap text in the column header menu ([#15772](https://github.com/streamlit/streamlit/pull/15772)).
0 commit comments