Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions content/develop/api-reference/configuration/config-toml.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,27 @@ enumCoercion = "nameOnly"
# ThreadPoolExecutor default (min(32, os.cpu_count() + 4)).
parallelMaxWorkers =

# Multiplier applied to a cached function's ttl to set the hard-expiration
# bound for refresh_mode="background". Hard expiry occurs at
# multiplier * ttl. The default is 2.0, so stale values can be served
# for one additional ttl while Streamlit attempts a background refresh.
#
# This is a process-wide bound for every refresh_mode="background"
# function in the process, not a per-function default. Raising it to
# keep one long-idle cache also keeps stale entries for every other
# background cache for (multiplier - 1) * ttl.
#
# Values must be finite and greater than 1.0. Invalid values are ignored
# with a warning and the default 2.0 is used. Values of 1.0 would remove
# the stale window; values below 1.0 would hard-expire before the
# freshness ttl. Use refresh_mode="foreground" to never serve stale
# values. Larger values keep entries longer after idle periods or
# refresh failures, at the cost of higher memory use and older served
# data. Applies to both @st.cache_data and @st.cache_resource.
#
# Default: 2.0
cacheBackgroundRefreshTTLMultiplier = 2.0

# Escape hatch for an app whose @st.cache_data / @st.cache_resource cache
# returns the wrong value for a large pandas, polars, or numpy object.
#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ Note that you can also retrieve elements within a specific container in the same

<Autofunction function="AppTest.get" />

<Autofunction function="AppTest.get_by_key" />

<Autofunction function="AppTest.button" is_property />

<Autofunction function="AppTest.caption" />
Expand All @@ -49,6 +51,8 @@ Note that you can also retrieve elements within a specific container in the same

<Autofunction function="AppTest.columns" />

<Autofunction function="AppTest.container" />

<Autofunction function="AppTest.dataframe" />

<Autofunction function="AppTest.date_input" />
Expand Down
43 changes: 43 additions & 0 deletions content/develop/quick-references/release-notes/2026.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,49 @@ keywords: changelog, release notes, version history

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).

## **Version 1.63.0**

_Release date: September 1, 2026_

**Highlights**

- 🎯 Introducing event-scoped fragment reruns, which let a widget callback rerun just one named fragment:
- Name a fragment with `@st.fragment(key=…)` and target it with [`st.rerun`](/develop/api-reference/execution-flow/st.rerun)`("filters")` or `st.rerun(["alpha", "beta"])` from an `on_change` or `on_click` callback ([#16161](https://github.com/streamlit/streamlit/pull/16161)).
- `st.rerun()` and `st.switch_page()` now take effect inside widget callbacks instead of being discarded with a warning; apps that relied on the previous no-op will now rerun ([#16158](https://github.com/streamlit/streamlit/pull/16158)).
- ✨ Introducing `on_change="ignore"`, a new mode that updates a widget in the browser without rerunning your app. Your script receives the buffered value on the next rerun, such as a button click, and the mode is available on [`st.slider`](/develop/api-reference/widgets/st.slider) and [`st.text_input`](/develop/api-reference/widgets/st.text_input) ([#14828](https://github.com/streamlit/streamlit/pull/14828), [#16605](https://github.com/streamlit/streamlit/pull/16605)).
- 🍿 Introducing `type="step"` for [`st.expander`](/develop/api-reference/layout/st.expander) and [`st.status`](/develop/api-reference/status/st.status), which renders containers as a connected timeline — well suited to showing an agent's or a pipeline's progress ([#16558](https://github.com/streamlit/streamlit/pull/16558), [#13248](https://github.com/streamlit/streamlit/issues/13248)).

**Notable Changes**

- 📐 The `wrap` parameter introduced in 1.62.0 extends to more commands:
- [`st.pills`](/develop/api-reference/widgets/st.pills) and [`st.segmented_control`](/develop/api-reference/widgets/st.segmented_control) accept `wrap` to keep options on one horizontally scrollable row ([#16369](https://github.com/streamlit/streamlit/pull/16369), [#13516](https://github.com/streamlit/streamlit/issues/13516)).
- [`st.markdown`](/develop/api-reference/text/st.markdown), [`st.title`](/develop/api-reference/text/st.title), `st.header`, `st.subheader`, `st.caption`, and `st.text` accept `wrap=False` to keep long copy on one ellipsized line ([#16617](https://github.com/streamlit/streamlit/pull/16617), [#12583](https://github.com/streamlit/streamlit/issues/12583)).
- Controls placed directly in [`st.columns`](/develop/api-reference/layout/st.columns) now default to no wrapping so neighboring controls keep the same height; pass `wrap=True` to restore wrapping ([#16578](https://github.com/streamlit/streamlit/pull/16578)).
- 🔢 [`st.multiselect`](/develop/api-reference/widgets/st.multiselect) has a new `select_all` parameter to always show, never show, or threshold the "Select all" bulk action, and pressing Enter now selects the first row ([#16673](https://github.com/streamlit/streamlit/pull/16673), [#16537](https://github.com/streamlit/streamlit/issues/16537)).
- 🖼 `st.title`, `st.header`, and `st.subheader` have a new `icon` parameter that renders a leading emoji or Material Symbol scaled to the heading ([#16418](https://github.com/streamlit/streamlit/pull/16418), [#11752](https://github.com/streamlit/streamlit/issues/11752)).
- 🧪 [`AppTest`](/develop/api-reference/app-testing/st.testing.v1.apptest) is more robust: apps using unimplemented commands stay inspectable, interacting with a disabled widget raises, container keys are exposed through `at.container(key=…)` and `at.get_by_key()`, and `switch_page()` resolves pages registered by [`st.navigation`](/develop/api-reference/navigation/st.navigation) ([#16711](https://github.com/streamlit/streamlit/pull/16711), [#9814](https://github.com/streamlit/streamlit/issues/9814), [#12844](https://github.com/streamlit/streamlit/issues/12844), [#13163](https://github.com/streamlit/streamlit/issues/13163), [#16611](https://github.com/streamlit/streamlit/issues/16611)).
- ⚙ The new `runner.cacheBackgroundRefreshTTLMultiplier` config option widens or narrows the stale-while-revalidate window for `refresh_mode="background"` caches ([#16599](https://github.com/streamlit/streamlit/pull/16599)).

**Other Changes**

- 🚨 Invalid API usage raises specific `StreamlitAPIException` subclasses for missing, incompatible, out-of-range, and wrongly typed parameters instead of generic Streamlit, `TypeError`, or `ValueError` failures ([#16508](https://github.com/streamlit/streamlit/pull/16508), [#16637](https://github.com/streamlit/streamlit/pull/16637), [#16656](https://github.com/streamlit/streamlit/pull/16656), [#16668](https://github.com/streamlit/streamlit/pull/16668), [#16690](https://github.com/streamlit/streamlit/pull/16690), [#16701](https://github.com/streamlit/streamlit/pull/16701), [#16707](https://github.com/streamlit/streamlit/pull/16707)).
- 💓 [`st.spinner`](/develop/api-reference/status/st.spinner) keeps animating at a slower rate under `prefers-reduced-motion` and exposes its label as an accessible status, so paused motion is not mistaken for a hung app ([#16620](https://github.com/streamlit/streamlit/pull/16620), [#16598](https://github.com/streamlit/streamlit/issues/16598)).
- 🔗 `st.context` supports key notation so `st.context["timezone"]` matches `st.context.timezone`, `st.user.is_logged_in` is typed as `bool`, and the documented `st.user.tokens` names surface in autocompletion ([#16710](https://github.com/streamlit/streamlit/pull/16710)).
- 🐛 Bug fix: The install-skills prompt shown with local error messages sizes its action labels to match the card's text ([#16482](https://github.com/streamlit/streamlit/pull/16482)).
- 🦋 Bug fix: [`st.code`](/develop/api-reference/text/st.code) renders very long inputs instead of failing with a call-stack error, by skipping syntax highlighting past a line-count threshold ([#16567](https://github.com/streamlit/streamlit/pull/16567), [#11996](https://github.com/streamlit/streamlit/issues/11996)).
- 🪲 Bug fix: [`st.date_input`](/develop/api-reference/widgets/st.date_input) and [`st.datetime_input`](/develop/api-reference/widgets/st.datetime_input) no longer crash for values near Python's minimum and maximum dates when no explicit bounds are given ([#16582](https://github.com/streamlit/streamlit/pull/16582), [#7427](https://github.com/streamlit/streamlit/issues/7427)).
- 🐜 Bug fix: `st.menu_button` dropdowns and JSON path tooltips stay interactive inside [`st.dialog`](/develop/api-reference/execution-flow/st.dialog) ([#16583](https://github.com/streamlit/streamlit/pull/16583)).
- 🐝 Bug fix: Pressing Cmd/Ctrl+C no longer opens the clear-cache dialog when the modifier is released before the C key ([#16615](https://github.com/streamlit/streamlit/pull/16615)).
- 🐞 Bug fix: Markdown list items holding a long unbreakable token wrap inside narrow containers instead of overflowing them ([#16632](https://github.com/streamlit/streamlit/pull/16632), [#16618](https://github.com/streamlit/streamlit/issues/16618)).
- 🕷️ Bug fix: Type checkers infer the documented return types for [`st.plotly_chart`](/develop/api-reference/charts/st.plotly_chart), `st.pydeck_chart`, [`st.file_uploader`](/develop/api-reference/widgets/st.file_uploader), `st.chat_input`, and `st.selectbox` when arguments are omitted or not literals ([#16633](https://github.com/streamlit/streamlit/pull/16633), [#16630](https://github.com/streamlit/streamlit/issues/16630)).
- 🪳 Bug fix: Embedded apps forward the full guest-to-host `postMessage` stream to in-iframe hosts, which unblocks metrics events when `metricsUrl` is `"postMessage"` ([#16647](https://github.com/streamlit/streamlit/pull/16647), [#16644](https://github.com/streamlit/streamlit/issues/16644)).
- 🪰 Bug fix: Ctrl/Cmd+A selects the typed filter text in `st.multiselect` instead of being intercepted as a bulk-select shortcut ([#16650](https://github.com/streamlit/streamlit/pull/16650)).
- 🦠 Bug fix: `st.datetime_input` keeps a time entered before a date, so completing the date commits the time on screen instead of midnight ([#16664](https://github.com/streamlit/streamlit/pull/16664)).
- 🦟 Bug fix: Invalid-color errors render their valid formats as a list, and object reprs with uppercase hexadecimal addresses take the same `st.write` and `st.help` path on Windows as elsewhere ([#16683](https://github.com/streamlit/streamlit/pull/16683), [#16674](https://github.com/streamlit/streamlit/issues/16674), [#16677](https://github.com/streamlit/streamlit/issues/16677)).
- 🦂 Bug fix: The calendar header shows the year matching the visible grid when `min_value` and `max_value` cross a year boundary ([#16706](https://github.com/streamlit/streamlit/pull/16706), [#16686](https://github.com/streamlit/streamlit/issues/16686)).
- 🦗 Bug fix: File uploads no longer hang when in-process ASGI middleware such as Sentry has already read the request body ([#16709](https://github.com/streamlit/streamlit/pull/16709), [#16697](https://github.com/streamlit/streamlit/issues/16697)).
- 🕸️ Bug fix: Library warnings that previously appeared only as in-app alerts also log to the server console with a stack trace, so CLI users and coding agents can see them ([#16717](https://github.com/streamlit/streamlit/pull/16717)).

## **Version 1.62.0**

_Release date: August 19, 2026_
Expand Down
Loading