Version 1.62.0

Release date: August 19, 2026

Highlights

Notable Changes

  • :artist_palette: Date and datetime inputs have a more accessible, keyboard-friendly editing experience:
  • :bar_chart: You can configure chart categorical, sequential, and diverging colors separately for light, dark, and sidebar themes (#16357, #16355).
  • :input_latin_letters: Theme font-weight settings support increments of 50 for finer typography control (#16396, #16354).
  • :ghost: The long-deprecated st.cache command has been removed; use st.cache_data or st.cache_resource instead (#15787).
  • :skull_and_crossbones: Passing Matplotlib savefig keyword arguments to st.pyplot is deprecated; save the figure directly and display it with st.image instead (#16450).
  • :ghost: Calling st.pyplot without an explicit figure is no longer supported (#16464).

Other Changes

  • :magic_wand: When Streamlit raises an uncaught error during local development, the error display can offer to install Streamlit’s agent skills for supported coding agents (#15693).
  • :straight_ruler: st.table uses a 14-pixel font size consistent with other Streamlit widgets (#16397, #16389).
  • :police_car_light: Invalid enum-like parameter values consistently raise StreamlitValueError while preserving compatibility with existing specialized exception classes (#16422).
  • :package: Streamlit no longer requires the tenacity dependency for SQL and Snowflake connection retries (#16497).
  • :bug: Bug fix: st.popover keeps its contents visible and scrollable in narrow or embedded viewports (#16173, #9340).
  • :butterfly: Bug fix: st.pyplot supports SVG output through format="svg" (#16283, #11489).
  • :beetle: Bug fix: runner.cacheHashSeed lets apps change the sample used to hash large pandas, Polars, and NumPy objects without invalidating existing caches by default (#16284, #14622).
  • :ant: Bug fix: Heading anchors update when heading text changes during a rerun (#16286, #8793).
  • :honeybee: Bug fix: Altair charts reconstructed with alt.Chart.from_json preserve their inline datasets (#16288, #6269).
  • :lady_beetle: Bug fix: Nested st.fragment functions with queued periodic reruns no longer execute twice and create duplicate element IDs (#16314, #10719).
  • :spider: Bug fix: Multiple Streamlit servers correctly advance to the next available port on Windows (#16315, #16296).
  • :cockroach: Bug fix: Updating st.status through a container created outside a fragment no longer corrupts the app’s element tree (#16316, #16281).
  • :fly: Bug fix: Streamlit falls back to MD5 for element IDs, cache keys, and file watching on FIPS-enabled systems whose BLAKE2b implementation rejects custom digest sizes (#16324, #15148).
  • :microbe: Bug fix: Embedded Streamlit-in-Snowflake apps can receive same-window authentication messages while retaining host-message spoofing protections (#16327).
  • :mosquito: Bug fix: Streamlit remains compatible with newer Starlette gzip middleware while preserving correct media, download, and range-response handling (#16342, #16344, #16341, #16462).
  • :scorpion: Bug fix: Malformed WebSocket messages are rejected without exposing tracebacks or absolute server paths to the browser (#16392, #16391).
  • :cricket: Bug fix: The startup warning for server.enableCORS=false accurately describes CORS and XSRF behavior instead of claiming the setting is overridden (#16393, #16390).
  • :spider_web: Bug fix: Derived code and dataframe-header background colors respect custom theme background settings (#16401, #16398).
  • :snail: Bug fix: Timelike st.slider values are validated against the frontend’s safe numeric range instead of silently changing (#16475, #16474).
  • :lizard: Bug fix: st.toast notifications remain visible when immediately followed by st.rerun() (#16498, #7740).
  • :crab: Bug fix: st.color_picker remains interactive inside dialogs (#16541, #16538).
  • :alien: Bug fix: st.metric restores its sparkline after chart data becomes empty and is populated again (#16543, #16539).