What's Changed
New Features 🎉
- [feature] Add
on_change="ignore"mode to st.color_picker by @lukasmasuch in #17209 - [feature] Add AppTest support for st.form by @lukasmasuch in #17229
- [feature] Add
on_change="ignore"mode to st.camera_input by @lukasmasuch in #17246 - [feature] Add on_change="ignore" to datetime_input by @lukasmasuch in #17267
- [feature] Add
on_change="ignore"mode to st.feedback by @lukasmasuch in #17281 - [fix] Add AppTest support for link_button, page_link by @lukasmasuch in #17308
- [feature] Add
on_change="ignore"mode to st.pills by @lukasmasuch in #17307 - [feature] Add
on_change="ignore"mode to st.audio_input by @lukasmasuch in #17328 - [feature] Add theme config paddingTop and paddingBottom by @mayagbarnes in #17350
- [feature] Add
on_change="ignore"mode to st.data_editor by @lukasmasuch in #17347 - [feature] Add
on_change="ignore"mode to st.pagination by @lukasmasuch in #17397 - [feature] Add shell landmarks, skip link, and focus ring by @mayagbarnes in #17418
- [feature] Add
on_change="ignore"to st.segmented_control by @lukasmasuch in #17452
Bug Fixes 🐛
- [fix] Unify secondary icon button colors by @mayagbarnes in #17231
- [fix] Hide decorative icons and name icon-only controls by @mayagbarnes in #17170
- [fix] Align st.connection overloads with runtime by @lukasmasuch in #17245
- [fix] Make AppTest layout collections callable by @lukasmasuch in #17256
- [fix] Add AppTest support for progress, html, help by @lukasmasuch in #17280
- [fix] Show label tooltips only when clipped by @lukasmasuch in #17266
- [fix] Move sidebar aria-expanded onto collapse controls by @mayagbarnes in #17293
- [fix] Move date/datetime aria-expanded onto calendar buttons by @mayagbarnes in #17294
- [fix] Revoke disabled download-button callables by @lukasmasuch in #17288
- [fix] Keep AppTest page widget state on rerun by @lukasmasuch in #17305
- [fix] Align pydeck tooltips with the cursor by @lukasmasuch in #17313
- [fix] Put date and datetime calendar buttons in tab order by @mayagbarnes in #17296
- [fix] st attribute probes no longer import modules by @lukasmasuch in #17311
- [fix] Use theme focus ring on date/time input icon buttons by @mayagbarnes in #17316
- [fix] Stop false fragment-callback element warning by @sfc-gh-lwilby-1 in #17292
- [fix] Reject unsafe navigation network paths by @sfc-gh-lwilby-1 in #17301
- [fix] Add AppTest support for st.pagination by @lukasmasuch in #17322
- [fix] Register imported v2 components in AppTest by @lukasmasuch in #17331
- [fix] Improve alignment of elements placed side by side by @lukasmasuch in #17392
- [fix] Add AppTest support for st.audio_input by @lukasmasuch in #17346
- [fix] Announce the active select option while typing by @mayagbarnes in #17295
- [fix] Tighten st.query_params write types by @lukasmasuch in #17419
- [fix] Render apps in opaque sandboxed iframes by @lukasmasuch in #17409
- [fix] Shorten ECharts tooltip numbers and restyle labels by @lukasmasuch in #17333
- [fix] Surface malformed secrets.toml parse errors by @sfc-gh-lwilby-1 in #17428
- [fix] Stretch charts fall back to their default height by @lukasmasuch in #17410
- [fix] Release abandoned runs waiting on a cache by @sfc-gh-lwilby-1 in #17340
- [fix] Stretch containers and forms grow with their content by @lukasmasuch in #17424
- [fix] Skip stale keyed blocks during reruns by @lukasmasuch in #17456
- [fix] Add AppTest support for st.camera_input by @lukasmasuch in #17459
- [fix] Make st.secrets writes a type error by @lukasmasuch in #17460
- [fix] Type iterated session state keys as str by @lukasmasuch in #17466
Other Changes
- [chore] Release v1.65.0 by @github-actions[bot] in #17243
- [chore] Warn when websockets 17 pairs with old uvicorn by @sfc-gh-lwilby-1 in #17115
- [chore] Drop Python 3.10 support by @lukasmasuch in #17315
- [docs] Route one-shot action menus to st.menu_button by @sfc-gh-nbellante in #17099
- [docs] Correct the default button width in agent skill by @sfc-gh-nbellante in #17101
- [docs] Cover st.feedback ratings in selection widgets by @sfc-gh-nbellante in #17098
- [chore] Enable prefer-nullish-coalescing for widgets by @lukasmasuch in #17344
- [docs] Apply skill style rules to the code-organization example by @sfc-gh-nbellante in #17387
- [docs] Name the lazy-render API for hidden containers in skill by @sfc-gh-nbellante in #17400
- [docs] Add contents lists to the five longest skill references by @sfc-gh-nbellante in #17380
- [docs] State the scope of the components v1 deprecation by @sfc-gh-nbellante in #17386
- [docs] Check native commands first in the skill CCv2 fallback by @sfc-gh-nbellante in #17379
- [docs] Fix three stale comments in the skill app templates by @sfc-gh-nbellante in #17383
- [docs] Drop parameter callouts from the skill API table by @sfc-gh-nbellante in #17378
- [docs] Give the pills and segmented-control threshold in skill by @sfc-gh-nbellante in #17399
- [docs] Correct two stale notes in the skill Markdown reference by @sfc-gh-nbellante in #17374
- [docs] Name AttributeError for missing session state keys by @sfc-gh-nbellante in #17363
- [docs] Use dependency-groups in the skill uv example by @sfc-gh-nbellante in #17372
- [docs] Move the skill's shared multipage helper into a module by @sfc-gh-nbellante in #17377
- [docs] Use st.markdown in the skill text-alignment example by @sfc-gh-nbellante in #17348
- [docs] Use qmark placeholders in skill Snowflake query examples by @sfc-gh-nbellante in #17349
- [docs] Make skill suggestion-chip example generate a reply by @sfc-gh-nbellante in #17352
- [docs] Handle text-only messages in skill chat upload example by @sfc-gh-nbellante in #17353
- [docs] Correct the skill note on parallel fragment writes by @sfc-gh-nbellante in #17354
- [docs] List st.feedback and st.menu_button as bind exceptions by @sfc-gh-nbellante in #17355
- [docs] Fix the streamlit run syntax in the skill CLI reference by @sfc-gh-nbellante in #17356
- [docs] Allow light and dark sections in skill theme files by @sfc-gh-nbellante in #17357
- [docs] Correct three values in the skill theme reference by @sfc-gh-nbellante in #17358
- [docs] State how st.connection caches in the skill reference by @sfc-gh-nbellante in #17360
- [docs] Separate shared and per-provider keys in skill auth by @sfc-gh-nbellante in #17361
- [docs] List area as a metric chart_type in the skill by @sfc-gh-nbellante in #17364
- [docs] Route skill pagination to native st.pagination by @sfc-gh-nbellante in #17351
- [docs] Describe st.menu_button's return in the skill API table by @sfc-gh-nbellante in #17365
- [docs] Enable static serving in the skill font example by @sfc-gh-nbellante in #17366
- [docs] Say CCv2 html= is always inline in the skill by @sfc-gh-nbellante in #17367
- [docs] Note when CCv2 drops Python state writes in the skill by @sfc-gh-nbellante in #17368
- [docs] Explain CCv2 renderer reruns and cleanup in the skill by @sfc-gh-nbellante in #17369
- [docs] Note that CCv2 triggers are ignored inside st.form by @sfc-gh-nbellante in #17370
- [docs] Correct the CCv2 inline-content newline rule in skill by @sfc-gh-nbellante in #17371
- [docs] Skip secrets.toml when the Snowflake default exists by @sfc-gh-nbellante in #17381
- [docs] Fix navigation in the skill CCv2 references by @sfc-gh-nbellante in #17382
- [docs] Describe the dashboard-feature-usage template correctly by @sfc-gh-nbellante in #17384
- [docs] Correct the st.write_stream return value in the skill by @sfc-gh-nbellante in #17362
- [docs] Add typographic symbols to the skill Markdown table by @sfc-gh-nbellante in #17375
- [docs] Call the main guard unnecessary, not broken, in skill by @sfc-gh-nbellante in #17376
- [docs] Name alert title= in the skill quick reference by @sfc-gh-nbellante in #17398
- [chore] Enable prefer-nullish-coalescing for markdown, icons, theme, and charts by @lukasmasuch in #17395
- [docs] Clarify advanced theming in the agent skill by @mayagbarnes in #17417
- [docs] Document client-side widget validation by @lukasmasuch in #17413
- [chore] Enable prefer-nullish-coalescing across the frontend by @lukasmasuch in #17408
- [chore] Make httptools an optional dependency by @lukasmasuch in #16554
- [chore] Support Python 3.15 by @lukasmasuch in #17426
- [docs] Drop the ask-which-reference stopping point from skill by @sfc-gh-nbellante in #17385
- [docs] Fix skill theme snippets that don't parse by @sfc-gh-nbellante in #17359
- [chore] Replace tomli-w with in-house writer by @lukasmasuch in #17342
- [docs] Move skill quick reference above the workflow by @sfc-gh-nbellante in #17100
- [chore] Update emojis/material icons by @github-actions[bot] in #17454
- [docs] Document on_change="ignore" as an advanced pattern by @lukasmasuch in #17451
- [docs] Fit the skill performance reference under the read limit by @sfc-gh-nbellante in #17448
Full Changelog: 1.65.0...1.66.0