develop
Update copyright header to 2026 (#13491)
[fix] Assert Snapshot pixel_threshold must be meaningful (#13896)
[test] Add e2e typing test utils (#13544)
Small improvements to Streamlit Hello (#11442)
Remove deprecated proto fields and unused theme creator code (#13842)
feat: add metricValueFontSize and metricValueFontWeight theme options (#13550)
Improve pytest coverage reporting (#10597)
[feat] Add Playwright Performance Measurements (#9938)
Optimize AI agent dev setup (#13800)
Migrate to `AGENTS.md` as ground truth for agent rules (#12402)
Move wiki documents into repository to improve agentic coding (#13137)
Add experimental ASGI app entry point for advanced server configuration (#13537)
Support new auth features in Starlette (#13571)
Fix flaky `auth_test` by polling OIDC server readiness (#13624)
Activate auto-fixable ruff preview linting rules (#13574)
Activate more ruff preview rules (#13606)
Bump ruff from 0.14.14 to 0.15.0 (#13865)
`host-config` via window e2e tests (#13440)
Have server ack app_heartbeat messages received from client (#13810)
Simplify theme caching logic (#13593)
Replace `use_container_width` with `width` parameter in e2e tests (#13631)
Attempt to fix e2e test hangs at 99% completion (#13819)
Set `add_rows` deprecation warning to show in browser (#13628)
[chore] Update emojis/material icons (#13789)
Bump ty from 0.0.14 to 0.0.15 (#13880)
Add support for selections on multi-view vega charts (#13591)
[fix] Add wait for download button in audio input iframe test to prevent race condition (#13869)
Fix `KeyError` when sorting melted bar chart data (#13695)
Auto-escape some markdown syntax in markdown labels (#13887)
Support resolving to theme colors configs for charts (#13739)
[fix] Increase max width of uploaded files in `st.chat_input` (#13589)
Bind widgets to query params - `st.checkbox` & `st.toggle` (#13900)
Bind widgets to query params - FE hooks & `color_picker` support (#13845)
Add gaps and sizes for xxsmall, xsmall, xlarge, xxlarge in st.container/columns/space (#13345)
Allow selecting text of pills in the `MultiselectColumn` and `ListColumn` (#13663)
Extend sprintf number formatting to support thousand separator (#13284)
Use `key` as main identity for `st.dataframe` with selections (#13558)
Prepare pandas 3.0 compatibility (#13630)
Allow dynamically changing in min and max in `st.date_input` (#13549)
Fix e2e test flakiness with `date_input` (#13619)
Allow dynamically changing `min_value` and `max_value` in `st.datetime_input` when `key` is provided (#13620)
Extract `st.feedback` into its own proto and component (#13689)
Add support for material icons and emojis in `st.logo` (#13416)
Fix selectbox and multiselect clearing selections for custom objects (#13648)
Allow dynamically changing in min, max and step in `st.number_input` (#13512)
Allow dynamic changes to `st.pills` and `st.segmented_control` options when key is provided (#13684)
Allow dynamic changes to `st.radio` options when `key` is provided (#13611)
Allow dynamic changes to `st.select_slider` options when `key` is provided (#13696)
Remove experimental query params (#13142)
Fix sidebar collapsing on mobile when clicking portaled elements (#13653)
Fix TransientNode not capturing BlockNode as anchor when replacing (#13674)
Bind widgets to query params - `st.text_input` & `st.text_area` (#13901)
[security] Fix double-slash path blocking to return 400 in both Tornado and Starlette (#13822)