Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to clear cache for specific function arguments by passing args to <cached_func>.clear() #8297

Merged
merged 1 commit into from
Apr 18, 2024

Conversation

OscarSaharoy
Copy link
Contributor

Describe your changes

Hi, I really love streamlit and have been having fun developing an LLM app with it. I wanted to cache the LLM responses, unless a user said it was a bad response. So I decided to implement this. Thanks for taking a look!

I know it might not be perfect, if you give me some pointers I am happy to make a lot of changes as needed :) I think the implementation with passing the key though two layers of methods could be better so I'll think how I can improve that.

This keeps the exisiting interface to CachedFunc.clear() where passing no arguments clears all the cache, but also adds the option that if args/kwargs are passed, the value key will be calculated and the cache storage for that key will be invalidated. This only applies to DataCache for now - I know the error raised could be better so please let me know what type of exception you would prefer it to throw.

GitHub Issue Link

8153

Testing Plan

  • Explanation of why no additional tests are needed tests are always needed
  • Unit Tests (JS and/or Python) python unit test only
  • E2E Tests not sure
  • Any manual testing needed? since its very explicit I think unit tests are better

Contribution License Agreement

By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.

@OscarSaharoy
Copy link
Contributor Author

Hi @kmcgrady @willhuang1997 how does this look to you guys :D

Copy link
Collaborator

@vdonato vdonato left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution @OscarSaharoy, and sorry for the delay in getting around to reviewing this! This looks like a reasonable addition to me, but I'll have to defer to our product team (CC @jrieke, @sfc-gh-jcarroll) on whether we want to add this to our caching API.

Additionally, I think that, if we want to implement this for the @st.cache_data decorator, we'll likely also want to have it working for @st.cache_resource for consistency.

@OscarSaharoy OscarSaharoy force-pushed the develop branch 2 times, most recently from 1254ff0 to 2d910fd Compare March 31, 2024 14:27
@OscarSaharoy
Copy link
Contributor Author

Thanks for the contribution @OscarSaharoy, and sorry for the delay in getting around to reviewing this! This looks like a reasonable addition to me, but I'll have to defer to our product team (CC @jrieke, @sfc-gh-jcarroll) on whether we want to add this to our caching API.

Additionally, I think that, if we want to implement this for the @st.cache_data decorator, we'll likely also want to have it working for @st.cache_resource for consistency.

Hi @vdonato thanks for taking a look!! I have added the corresponding behaviour for @st.cache_resource and improved the testing and documentation. Let me know if anything could be improved :)

LukasMasuch
LukasMasuch previously approved these changes Apr 11, 2024
Copy link
Collaborator

@LukasMasuch LukasMasuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM 👍 But I think it needs another iteration on what to do if there isn't a cache entry for a given set of arguments.

)
else:
key = None
cache.clear(key=key)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we might want to consider catching the exception if the key cannot be found in the cache, and rethrow it with a StreamlitAPIException that has a better description of what is going wrong. I think the key shown in the other exception might not be super descriptive. And maybe an additional test for this case (there isn't a cached entry for the arguments) might make sense.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought a bit more about this: maybe we shouldn't even throw an exception here if there isn't an item associated. We just except and pass in that case. If there isn't an item in the cache for the arguments, the user shouldn't even care since there is nothing to delete.

@LukasMasuch LukasMasuch dismissed their stale review April 11, 2024 16:31

Still needs changes

@sfc-gh-jcarroll
Copy link
Collaborator

Yep from a product side I think this would be great to support and the API seems good, sounds like we just need to make some updates on the implementation before we can merge. Thanks for the contribution!!

@OscarSaharoy
Copy link
Contributor Author

Hi @LukasMasuch @sfc-gh-jcarroll thanks so much for taking a look and helping me get this in :) And I may be wrong but I think the behaviour described is already in place - in the tests I have added, the first calls that are like foo.clear(2) just pass silently. I think this is implemented nicely by the streamlit storage classes, let me know if something else is needed though.

@sfc-gh-pkommini
Copy link

sfc-gh-pkommini commented Apr 11, 2024

Hi Team,

Great job arriving at a fix for this problem. Is there an ETA on when this might make it to a release? We are releasing an internal Streamlit app in April and we keep getting intermittent cache access errors because one user's actions clear cache for everyone and we seem to be ending up with KeyError due to race conditions where the cache is accessed between one user's actions clearing the cache and a cache refresh.

@LukasMasuch
Copy link
Collaborator

LukasMasuch commented Apr 11, 2024

@OscarSaharoy oh, you are right :) The strange part is that it makes sense for cached_data since it comes down to this .pop() call here:

But just from looking at cache_resource it doesn't seem to be obvious where the key error might be prevented. Are you sure that the cache_resource test is also running fine?

Also, it needs another merge in or rebase to develop, otherwise the python tests will not run.

@LukasMasuch
Copy link
Collaborator

@sfc-gh-pkommini

Is there an ETA on when this might make it to a release?

Next release is on the 2nd Mai. It seems likely to have this in for 1.34 if there aren't any big disagreements with this feature.

intermittent cache access errors because one user's actions clear cache for everyone and we seem to be ending up with KeyError due to race conditions where the cache is accessed between one user's actions clearing the cache and a cache refresh.

This sounds like something we should fix, but probably in a dedicated PR. Would be awesome if you could open a new issue for this.

…sing arguments to CachedFunc.clear()

Implementation Description
This keeps the exisiting interface to CachedFunc.clear() where passing no arguments clears all the cache
but also adds the option that if args/kwargs are passed, the value key will be calculated and the cache
storage for that key will be invalidated. This only applies to DataCache for now.

GitHub Issue Link
#8153
@OscarSaharoy
Copy link
Contributor Author

@LukasMasuch Ah yes it may actually be this line which handles it for the cache_resource case:

And I have rebased to develop and the tests are definitely running ok for me locally :)

Copy link
Collaborator

@LukasMasuch LukasMasuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@OscarSaharoy oh, of course... my bad 😬 Tests also seem to run fine on CI 👍 LGTM!

@OscarSaharoy
Copy link
Contributor Author

@LukasMasuch thanks so much for your help with this and excited to use the feature!!! I don't have permission to click merge so I will leave it to one of you :)

@jrieke
Copy link
Collaborator

jrieke commented Apr 15, 2024

@sfc-gh-jcarroll I'll leave this up to you to give an LGTM from product side since it's in your area. I'm fine with the API proposed here.

Just want to note one thing: if we go with this API pattern of allowing args/kwargs, it might be more complicated to add additional parameters in the future to the clear function. Even though I can't really think of any parameters, so maybe that's a non-issue!

@LukasMasuch LukasMasuch changed the title Add ability to clear data cache for certain function arguments by passing args to CachedFunc.clear() Add ability to clear data cache for certain function arguments by passing args to <cached_func>.clear() Apr 18, 2024
@LukasMasuch LukasMasuch changed the title Add ability to clear data cache for certain function arguments by passing args to <cached_func>.clear() Add ability to clear cache for specific function arguments by passing args to <cached_func>.clear() Apr 18, 2024
Copy link
Collaborator

@LukasMasuch LukasMasuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good news, we will merge this in for the 1.34 release 👍 Just one more comment that needs to be addressed.

@@ -384,6 +384,9 @@ def _decorator(
... # Create a database connection object that points to the URL.
... return connection
...
>>> fetch_and_clean_data.clear(_sessionmaker, "https://streamlit.io/")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to be changed to:

Suggested change
>>> fetch_and_clean_data.clear(_sessionmaker, "https://streamlit.io/")
>>> get_database_session.clear(_sessionmaker, "https://streamlit.io/")

Comment on lines +106 to +108
"""Clear values from this cache.
If no argument is passed, all items are cleared from the cache.
A key can be passed to clear that key from the cache only."""
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @sfc-gh-dmatthews to double-check the docstring text. But docstring changes will probably go into a separate PR or?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can go either way. If you want to get this merged right away, feel free to. Otherwise, I can try to take a look at this tomorrow or Monday. (Just going through tasks after coming back from a few days off....)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is easier to merge this right now since the code is ready (and pushing changes into a forked PR is a bit more cumbersome) and do the docs iteration in a dedicated PR. There are probably anyway a couple of docstring changes needed before the release. Btw. this wrong code usage within the docstring example would also need to be fixed: #8297 (comment)

Comment on lines +312 to +314
"""Clear the wrapped function's associated cache.
If no arguments are passed, clear the cache of all values.
If args/kwargs are provided, clear the cached value for these arguments only."""
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sfc-gh-dmatthews this one as well

@LukasMasuch LukasMasuch merged commit 8e2619b into streamlit:develop Apr 18, 2024
42 of 45 checks passed
sawyerh pushed a commit to sawyerh/highlights that referenced this pull request Jun 1, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [streamlit](https://streamlit.io)
([source](https://togithub.com/streamlit/streamlit),
[changelog](https://docs.streamlit.io/library/changelog)) | `1.25.0` ->
`1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/streamlit/1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/streamlit/1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/streamlit/1.25.0/1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/streamlit/1.25.0/1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>streamlit/streamlit (streamlit)</summary>

###
[`v1.35.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.35.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.34.0...1.35.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.35.0 -->

#### What's Changed

##### New Features 🎉

- Add support for selections to `st.plotly_chart` by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/8191](https://togithub.com/streamlit/streamlit/pull/8191)
- feat: support set mysql connection query from secrets.toml by
[@&#8203;LucianLiu6](https://togithub.com/LucianLiu6) in
[https://github.com/streamlit/streamlit/pull/8581](https://togithub.com/streamlit/streamlit/pull/8581)
- Feature: `st.logo` by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/8554](https://togithub.com/streamlit/streamlit/pull/8554)
- Material icon for st.page_link by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/8593](https://togithub.com/streamlit/streamlit/pull/8593)
- Add dataframe row and column selections by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8411](https://togithub.com/streamlit/streamlit/pull/8411)
- Add support for selections to `st.altair_chart` & `st.vega_lite_chart`
by [@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/8302](https://togithub.com/streamlit/streamlit/pull/8302)

##### Bug Fixes 🐛

- Fix standalone custom-component execution by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8620](https://togithub.com/streamlit/streamlit/pull/8620)
- Clear stale elements when st.rerun() is used by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8599](https://togithub.com/streamlit/streamlit/pull/8599)
- Focus chat input after the submit button is pressed by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8637](https://togithub.com/streamlit/streamlit/pull/8637)
- fix:
[#&#8203;8500](https://togithub.com/streamlit/streamlit/issues/8500)
bypass StrEnum 'index' to make position-indexable by
[@&#8203;97k](https://togithub.com/97k) in
[https://github.com/streamlit/streamlit/pull/8622](https://togithub.com/streamlit/streamlit/pull/8622)
- Update scroll-margin-top by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8641](https://togithub.com/streamlit/streamlit/pull/8641)
- Fix cell error when data editor gets reconstructed by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8640](https://togithub.com/streamlit/streamlit/pull/8640)
- Ensure that column config is cloned by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8677](https://togithub.com/streamlit/streamlit/pull/8677)
- Add fallback method for CSV download by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8452](https://togithub.com/streamlit/streamlit/pull/8452)

##### Other Changes

- Bump mheap/github-action-required-labels from 5.4.0 to 5.4.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/streamlit/streamlit/pull/8582](https://togithub.com/streamlit/streamlit/pull/8582)
- Remove fullscreen button for `st.table` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8621](https://togithub.com/streamlit/streamlit/pull/8621)
- Improve typing for query params `.update` and `.from_dict` by
[@&#8203;Asaurus1](https://togithub.com/Asaurus1) in
[https://github.com/streamlit/streamlit/pull/8614](https://togithub.com/streamlit/streamlit/pull/8614)
- Improve anchor button visualization for titles and headings by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8587](https://togithub.com/streamlit/streamlit/pull/8587)
- Allow protobuf v5 by [@&#8203;mark-thm](https://togithub.com/mark-thm)
in
[https://github.com/streamlit/streamlit/pull/8624](https://togithub.com/streamlit/streamlit/pull/8624)
- Stabilize the vega-lite spec for altair-based charts by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8628](https://togithub.com/streamlit/streamlit/pull/8628)
- Update address output in headless mode by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8647](https://togithub.com/streamlit/streamlit/pull/8647)
- Revert "Allow protobuf v5" by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8701](https://togithub.com/streamlit/streamlit/pull/8701)

#### New Contributors

- [@&#8203;LucianLiu6](https://togithub.com/LucianLiu6) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8581](https://togithub.com/streamlit/streamlit/pull/8581)
- [@&#8203;mark-thm](https://togithub.com/mark-thm) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8624](https://togithub.com/streamlit/streamlit/pull/8624)
- [@&#8203;97k](https://togithub.com/97k) made their first contribution
in
[https://github.com/streamlit/streamlit/pull/8622](https://togithub.com/streamlit/streamlit/pull/8622)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.34.0...1.35.0

###
[`v1.34.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.34.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.33.0...1.34.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.34.0 -->

#### What's Changed

##### New Features 🎉

- Add st.experimental_dialog by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8040](https://togithub.com/streamlit/streamlit/pull/8040)
- from_dict for query params by
[@&#8203;Asaurus1](https://togithub.com/Asaurus1) in
[https://github.com/streamlit/streamlit/pull/8470](https://togithub.com/streamlit/streamlit/pull/8470)
- Improve period type support in `st.dataframe` and `st.data_editor` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7987](https://togithub.com/streamlit/streamlit/pull/7987)
- Add ability to clear cache for specific function arguments by passing
args to `<cached_func>.clear()` by
[@&#8203;OscarSaharoy](https://togithub.com/OscarSaharoy) in
[https://github.com/streamlit/streamlit/pull/8297](https://togithub.com/streamlit/streamlit/pull/8297)
- Add support for autoplaying `st.audio` and `st.video` media by
[@&#8203;snehankekre](https://togithub.com/snehankekre) in
[https://github.com/streamlit/streamlit/pull/8481](https://togithub.com/streamlit/streamlit/pull/8481)
- Support background colors for text by
[@&#8203;snehankekre](https://togithub.com/snehankekre) in
[https://github.com/streamlit/streamlit/pull/8435](https://togithub.com/streamlit/streamlit/pull/8435)
- Non-emoji icons by [@&#8203;kajarenc](https://togithub.com/kajarenc)
in
[https://github.com/streamlit/streamlit/pull/8307](https://togithub.com/streamlit/streamlit/pull/8307)
- Add support for Modin and Snowpark Pandas by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8506](https://togithub.com/streamlit/streamlit/pull/8506)
- Enable the usage of the pydeck-carto package with st.pydeck_chart by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8422](https://togithub.com/streamlit/streamlit/pull/8422)

##### Bug Fixes 🐛

- Offset dates in vega if no timezone information is attached. by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8278](https://togithub.com/streamlit/streamlit/pull/8278)
- Fix issues with fragments writing to containers and the sidebar by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8408](https://togithub.com/streamlit/streamlit/pull/8408)
- Produce python error for slider min=max by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8413](https://togithub.com/streamlit/streamlit/pull/8413)
- Make check for component ready dynamic by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8434](https://togithub.com/streamlit/streamlit/pull/8434)
- Update Auto Theme after print dialog if necessary by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8469](https://togithub.com/streamlit/streamlit/pull/8469)
- Reset widget state on page change by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8425](https://togithub.com/streamlit/streamlit/pull/8425)
- Switch back to using undeprecated pillow constant by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8492](https://togithub.com/streamlit/streamlit/pull/8492)
- Fix double script/callback run when replacing a file by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8493](https://togithub.com/streamlit/streamlit/pull/8493)
- Handle Altair vconcat with use_container_width by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8498](https://togithub.com/streamlit/streamlit/pull/8498)
- Fix empty state for `st.status` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8369](https://togithub.com/streamlit/streamlit/pull/8369)
- Fix `st.multiselect` usage with empty sets or tuples by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8471](https://togithub.com/streamlit/streamlit/pull/8471)
- Handle Altair resolve_scale by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8497](https://togithub.com/streamlit/streamlit/pull/8497)
- Adjust default date for st.date_input if today's date is out of bounds
by [@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8519](https://togithub.com/streamlit/streamlit/pull/8519)
- Handle setting session state keys to None for supported widgets by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8529](https://togithub.com/streamlit/streamlit/pull/8529)
- Fix empty generator usage with `st.write_stream` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8560](https://togithub.com/streamlit/streamlit/pull/8560)

##### Other Changes

- Update modal styles by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8274](https://togithub.com/streamlit/streamlit/pull/8274)
- Move toasts to top right and make them prettier by
[@&#8203;sfc-gh-tteixeira](https://togithub.com/sfc-gh-tteixeira) in
[https://github.com/streamlit/streamlit/pull/8433](https://togithub.com/streamlit/streamlit/pull/8433)
- Fix escaping in docstrings by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8510](https://togithub.com/streamlit/streamlit/pull/8510)
- Fix blank space print by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8502](https://togithub.com/streamlit/streamlit/pull/8502)
- Remove snowflake extras python restriction by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8538](https://togithub.com/streamlit/streamlit/pull/8538)

#### New Contributors

- [@&#8203;Lundez](https://togithub.com/Lundez) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8520](https://togithub.com/streamlit/streamlit/pull/8520)
- [@&#8203;OscarSaharoy](https://togithub.com/OscarSaharoy) made their
first contribution in
[https://github.com/streamlit/streamlit/pull/8297](https://togithub.com/streamlit/streamlit/pull/8297)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.33.0...1.34.0

###
[`v1.33.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.33.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.32.2...1.33.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.33.0 -->

#### What's Changed

##### Breaking Changes 🛠

- Require explicit suggestion of unsafe_allow_html in st.write by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8238](https://togithub.com/streamlit/streamlit/pull/8238)

##### New Features 🎉

- explicit update() method for query_params by
[@&#8203;Asaurus1](https://togithub.com/Asaurus1) in
[https://github.com/streamlit/streamlit/pull/8205](https://togithub.com/streamlit/streamlit/pull/8205)
- Add `AreaChartColumn` to column config by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8237](https://togithub.com/streamlit/streamlit/pull/8237)
- Associate label with input to make label click focus input by
[@&#8203;filiptammergard](https://togithub.com/filiptammergard) in
[https://github.com/streamlit/streamlit/pull/8155](https://togithub.com/streamlit/streamlit/pull/8155)
- Media elements improvements by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/8203](https://togithub.com/streamlit/streamlit/pull/8203)
- Page switching in AppTest by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8280](https://togithub.com/streamlit/streamlit/pull/8280)
- Add ability to use timedelta and stings to `start_time` and
`end_time`. by [@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/8348](https://togithub.com/streamlit/streamlit/pull/8348)
- st.experimental_fragment decorator by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8343](https://togithub.com/streamlit/streamlit/pull/8343)
- Feature: `st.html` by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/8366](https://togithub.com/streamlit/streamlit/pull/8366)

##### Bug Fixes 🐛

- AppTest format_func by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8189](https://togithub.com/streamlit/streamlit/pull/8189)
- Url decode link column display values if regex is used by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8258](https://togithub.com/streamlit/streamlit/pull/8258)
- Fix infinite loop when `rerun` and triggered widgets are used together
in AppTest by [@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8264](https://togithub.com/streamlit/streamlit/pull/8264)
- Use the button width as minimum for `st.popover` container by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8266](https://togithub.com/streamlit/streamlit/pull/8266)
- Revert "Expire session storage cache on an async timer
([#&#8203;8083](https://togithub.com/streamlit/streamlit/issues/8083))"
by [@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8281](https://togithub.com/streamlit/streamlit/pull/8281)
- Allow custom themes to override embed options query parameter by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8021](https://togithub.com/streamlit/streamlit/pull/8021)
- Fix issue with not correctly waiting for connections by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8294](https://togithub.com/streamlit/streamlit/pull/8294)
- Fix initial iframe height for custom component by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8290](https://togithub.com/streamlit/streamlit/pull/8290)
- Fullscreen Button Overflow Horizontally by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8279](https://togithub.com/streamlit/streamlit/pull/8279)
- Fix white components backgrounds when OS is using dark theme by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8242](https://togithub.com/streamlit/streamlit/pull/8242)
- Add simple fix to update container status after llm complete by
[@&#8203;KedoKudo](https://togithub.com/KedoKudo) in
[https://github.com/streamlit/streamlit/pull/8311](https://togithub.com/streamlit/streamlit/pull/8311)
- Simplify toast message truncation to use character limit directly by
[@&#8203;snehankekre](https://togithub.com/snehankekre) in
[https://github.com/streamlit/streamlit/pull/8337](https://togithub.com/streamlit/streamlit/pull/8337)
- resolve path when registering watcher for module paths by
[@&#8203;zyxue](https://togithub.com/zyxue) in
[https://github.com/streamlit/streamlit/pull/8372](https://togithub.com/streamlit/streamlit/pull/8372)
- Readd mistakenly removed line and add explanatory comment by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8392](https://togithub.com/streamlit/streamlit/pull/8392)

##### Other Changes

- Allow packaging 24.x by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8338](https://togithub.com/streamlit/streamlit/pull/8338)

#### New Contributors

- [@&#8203;filiptammergard](https://togithub.com/filiptammergard) made
their first contribution in
[https://github.com/streamlit/streamlit/pull/8155](https://togithub.com/streamlit/streamlit/pull/8155)
- [@&#8203;KedoKudo](https://togithub.com/KedoKudo) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8311](https://togithub.com/streamlit/streamlit/pull/8311)
- [@&#8203;zyxue](https://togithub.com/zyxue) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8372](https://togithub.com/streamlit/streamlit/pull/8372)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.32.2...1.33.0

###
[`v1.32.2`](https://togithub.com/streamlit/streamlit/releases/tag/1.32.2)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.32.1...1.32.2)

<!-- Release notes generated using configuration in .github/release.yml
at 1.32.2 -->

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.32.1...1.32.2

###
[`v1.32.1`](https://togithub.com/streamlit/streamlit/releases/tag/1.32.1)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.32.0...1.32.1)

<!-- Release notes generated using configuration in .github/release.yml
at 1.32.1 -->

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.32.0...1.32.1

###
[`v1.32.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.32.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.31.1...1.32.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.32.0 -->

#### What's Changed

##### New Features 🎉

- Support markdown links in`st.radio` options by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8028](https://togithub.com/streamlit/streamlit/pull/8028)
- Improve error handling in `st.write_stream` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8036](https://togithub.com/streamlit/streamlit/pull/8036)
- Add support for PIL images in `st.write` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8039](https://togithub.com/streamlit/streamlit/pull/8039)
- add: Supprt for HTTP <Head> method to /healthz endpoint by
[@&#8203;rahulmistri1997](https://togithub.com/rahulmistri1997) in
[https://github.com/streamlit/streamlit/pull/8145](https://togithub.com/streamlit/streamlit/pull/8145)
- Add support for AzureOpenAI chat stream by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8107](https://togithub.com/streamlit/streamlit/pull/8107)
- Add `st.popover` layout container by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7908](https://togithub.com/streamlit/streamlit/pull/7908)
- AppTest `from_function` args by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8183](https://togithub.com/streamlit/streamlit/pull/8183)
- Subtitles changes for `st.video` by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/8057](https://togithub.com/streamlit/streamlit/pull/8057)
- Expander and Status AppTest wrappers by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8187](https://togithub.com/streamlit/streamlit/pull/8187)

##### Bug Fixes 🐛

- Add support for converting `st.query_params` to string by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8030](https://togithub.com/streamlit/streamlit/pull/8030)
- Fix custom dataframe scrollbars in Chrome by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8034](https://togithub.com/streamlit/streamlit/pull/8034)
- Fix `time_input` menu colors in dark mode by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8056](https://togithub.com/streamlit/streamlit/pull/8056)
- Make shallow copies of options returned from ensure_indexable by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8064](https://togithub.com/streamlit/streamlit/pull/8064)
- Fix memory leak in runtime coroutine loop by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8068](https://togithub.com/streamlit/streamlit/pull/8068)
- Prevent pandas keyerror when checking color column format in st.map by
[@&#8203;awhazell](https://togithub.com/awhazell) in
[https://github.com/streamlit/streamlit/pull/8079](https://togithub.com/streamlit/streamlit/pull/8079)
- Fix
[#&#8203;7954](https://togithub.com/streamlit/streamlit/issues/7954) by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/8054](https://togithub.com/streamlit/streamlit/pull/8054)
- Fix issue using a local path with `st.image` on windows. by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8092](https://togithub.com/streamlit/streamlit/pull/8092)
- Fix: `st.page_link` & `st.switch_page` handling / prefixed paths by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/8085](https://togithub.com/streamlit/streamlit/pull/8085)
- Fix script runner stack overflow by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8100](https://togithub.com/streamlit/streamlit/pull/8100)
- Normalize main script path in `st.switch_page` and `st.page_link` by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/8103](https://togithub.com/streamlit/streamlit/pull/8103)
- Fix: `st.page_link` URL preview shows file path by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/8086](https://togithub.com/streamlit/streamlit/pull/8086)
- Support multiple path characteristics for switch_page and page_link by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8127](https://togithub.com/streamlit/streamlit/pull/8127)
- Fix chart exception where color-handling code expected DF index to
start at 0 by
[@&#8203;sfc-gh-tteixeira](https://togithub.com/sfc-gh-tteixeira) in
[https://github.com/streamlit/streamlit/pull/8158](https://togithub.com/streamlit/streamlit/pull/8158)
- Fix: Alert element overflow by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/8194](https://togithub.com/streamlit/streamlit/pull/8194)
- Fully clear App State on page change by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8208](https://togithub.com/streamlit/streamlit/pull/8208)
- Make st.help more resilient with conditional members by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/8228](https://togithub.com/streamlit/streamlit/pull/8228)

##### Other Changes

- Expire session storage cache on an async timer by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/8083](https://togithub.com/streamlit/streamlit/pull/8083)
- Lazy-load emoji module to improve performance by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8109](https://togithub.com/streamlit/streamlit/pull/8109)
- Lazy-load pandas and pyarrow to improve performance by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8125](https://togithub.com/streamlit/streamlit/pull/8125)
- Miscellaneous docstring edits and argument names by
[@&#8203;sfc-gh-dmatthews](https://togithub.com/sfc-gh-dmatthews) in
[https://github.com/streamlit/streamlit/pull/8118](https://togithub.com/streamlit/streamlit/pull/8118)
- Deprecate the `deprecation.showPyplotGlobalUse` config option by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8133](https://togithub.com/streamlit/streamlit/pull/8133)
- Use env variable to configure matplotlib backend by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8113](https://togithub.com/streamlit/streamlit/pull/8113)
- Lazy-load numpy and pillow to improve performance by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8134](https://togithub.com/streamlit/streamlit/pull/8134)
- Show a warning when server port `3000` is used by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8152](https://togithub.com/streamlit/streamlit/pull/8152)
- Fixed typos in example documentation by
[@&#8203;t1emp0](https://togithub.com/t1emp0) in
[https://github.com/streamlit/streamlit/pull/8162](https://togithub.com/streamlit/streamlit/pull/8162)
- Increase time until timeout warning is shown for a custom component by
[@&#8203;raethlein](https://togithub.com/raethlein) in
[https://github.com/streamlit/streamlit/pull/8179](https://togithub.com/streamlit/streamlit/pull/8179)
- Update glide-data-grid to version 6.0.4 by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7779](https://togithub.com/streamlit/streamlit/pull/7779)

#### New Contributors

- [@&#8203;awhazell](https://togithub.com/awhazell) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8079](https://togithub.com/streamlit/streamlit/pull/8079)
- [@&#8203;SidVer312](https://togithub.com/SidVer312) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8017](https://togithub.com/streamlit/streamlit/pull/8017)
- [@&#8203;rahulmistri1997](https://togithub.com/rahulmistri1997) made
their first contribution in
[https://github.com/streamlit/streamlit/pull/8145](https://togithub.com/streamlit/streamlit/pull/8145)
- [@&#8203;t1emp0](https://togithub.com/t1emp0) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/8162](https://togithub.com/streamlit/streamlit/pull/8162)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.31.1...1.32.0

###
[`v1.31.1`](https://togithub.com/streamlit/streamlit/releases/tag/1.31.1)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.31.0...1.31.1)

<!-- Release notes generated using configuration in .github/release.yml
at 1.31.1 -->

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.31.0...1.31.1

###
[`v1.31.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.31.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.30.0...1.31.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.31.0 -->

#### What's Changed

##### New Features 🎉

- Allow inline usage of `st.chat_input` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7896](https://togithub.com/streamlit/streamlit/pull/7896)
- Feature: `st.page_link` by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7965](https://togithub.com/streamlit/streamlit/pull/7965)
- Add `st.write_stream` command to handle generators or OpenAI output by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7906](https://togithub.com/streamlit/streamlit/pull/7906)

##### Bug Fixes 🐛

- Reuse style element for theme injection into custom components by
[@&#8203;Tom-Julux](https://togithub.com/Tom-Julux) in
[https://github.com/streamlit/streamlit/pull/7914](https://togithub.com/streamlit/streamlit/pull/7914)
- Handle out of order blocks when parsing element tree by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7923](https://togithub.com/streamlit/streamlit/pull/7923)
- Fix progress bar float input bug by
[@&#8203;notiona](https://togithub.com/notiona) in
[https://github.com/streamlit/streamlit/pull/7953](https://togithub.com/streamlit/streamlit/pull/7953)
- Don't pass query parameters from parent page into iframes by
[@&#8203;eric-skydio](https://togithub.com/eric-skydio) in
[https://github.com/streamlit/streamlit/pull/7951](https://togithub.com/streamlit/streamlit/pull/7951)
- Fix period type support for Pandas 2.2.0 by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7988](https://togithub.com/streamlit/streamlit/pull/7988)
- Only ignore hiding required columns in dynamic mode by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7996](https://togithub.com/streamlit/streamlit/pull/7996)
- Disable watchdog suggestion for `none` or `poll` watcher type by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/8024](https://togithub.com/streamlit/streamlit/pull/8024)

##### Other Changes

- Support latest importlib-metadata v7 by
[@&#8203;elgalu](https://togithub.com/elgalu) in
[https://github.com/streamlit/streamlit/pull/7925](https://togithub.com/streamlit/streamlit/pull/7925)
- Make Snowpark dependency truly optional for SnowflakeConnection by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7919](https://togithub.com/streamlit/streamlit/pull/7919)

#### New Contributors

- [@&#8203;Tom-Julux](https://togithub.com/Tom-Julux) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7914](https://togithub.com/streamlit/streamlit/pull/7914)
- [@&#8203;elgalu](https://togithub.com/elgalu) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7925](https://togithub.com/streamlit/streamlit/pull/7925)
- [@&#8203;notiona](https://togithub.com/notiona) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7953](https://togithub.com/streamlit/streamlit/pull/7953)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.30.0...1.31.0

###
[`v1.30.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.30.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.29.0...1.30.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.30.0 -->

#### What's Changed

##### New Features 🎉

- Add support for scroll container via the `height` parameter by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7697](https://togithub.com/streamlit/streamlit/pull/7697)
- Add display_text to LinkColumn by
[@&#8203;sfc-gh-bhay](https://togithub.com/sfc-gh-bhay) in
[https://github.com/streamlit/streamlit/pull/7741](https://togithub.com/streamlit/streamlit/pull/7741)
- st.query_params by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7774](https://togithub.com/streamlit/streamlit/pull/7774)
- Add Pandas styler support to `LinkColumn` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7784](https://togithub.com/streamlit/streamlit/pull/7784)
- Config - MPA Sidebar Page Navigation by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7852](https://togithub.com/streamlit/streamlit/pull/7852)
- Feature - `st.switch_page` by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7853](https://togithub.com/streamlit/streamlit/pull/7853)

##### Bug Fixes 🐛

- Fix handling of ordinal columns for builtin-charts by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7771](https://togithub.com/streamlit/streamlit/pull/7771)
- Fix `st.toggle` background color by
[@&#8203;sfc-gh-jgarcia](https://togithub.com/sfc-gh-jgarcia) in
[https://github.com/streamlit/streamlit/pull/7788](https://togithub.com/streamlit/streamlit/pull/7788)
- Don't send command used to start streamlit to frontend by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7787](https://togithub.com/streamlit/streamlit/pull/7787)
- Fix iframe background for dark color scheme by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7821](https://togithub.com/streamlit/streamlit/pull/7821)
- Prevent incompatible column config serialization by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7887](https://togithub.com/streamlit/streamlit/pull/7887)
- Prevent hiding required editable columns by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7888](https://togithub.com/streamlit/streamlit/pull/7888)
- Disable the ability to submit form if a submit button is disabled by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7827](https://togithub.com/streamlit/streamlit/pull/7827)
- Fix flickering effect when changing tabs by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7904](https://togithub.com/streamlit/streamlit/pull/7904)
- Fix shrunk icon size in st.expander by
[@&#8203;matiboux](https://togithub.com/matiboux) in
[https://github.com/streamlit/streamlit/pull/7596](https://togithub.com/streamlit/streamlit/pull/7596)
- Add check that individual elements are "python comparable" by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/7840](https://togithub.com/streamlit/streamlit/pull/7840)
- Use commonpath rather than common prefix for more secure access by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/7901](https://togithub.com/streamlit/streamlit/pull/7901)
- Don't disable tab on stale flag by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7905](https://togithub.com/streamlit/streamlit/pull/7905)
- Fix embed params being dropped in page swaps by
[@&#8203;sfc-gh-wihuang](https://togithub.com/sfc-gh-wihuang) in
[https://github.com/streamlit/streamlit/pull/7918](https://togithub.com/streamlit/streamlit/pull/7918)

##### Other Changes

- Fix parenthesis error messaging by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7770](https://togithub.com/streamlit/streamlit/pull/7770)
- Update SECURITY.md by
[@&#8203;sfc-gh-hpathak](https://togithub.com/sfc-gh-hpathak) in
[https://github.com/streamlit/streamlit/pull/7783](https://togithub.com/streamlit/streamlit/pull/7783)
- Speed up plotly figures by 8x for users with "orjson" by
[@&#8203;eric-skydio](https://togithub.com/eric-skydio) in
[https://github.com/streamlit/streamlit/pull/7860](https://togithub.com/streamlit/streamlit/pull/7860)

#### New Contributors

- [@&#8203;sfc-gh-bhay](https://togithub.com/sfc-gh-bhay) made their
first contribution in
[https://github.com/streamlit/streamlit/pull/7741](https://togithub.com/streamlit/streamlit/pull/7741)
- [@&#8203;sfc-gh-jkinkead](https://togithub.com/sfc-gh-jkinkead) made
their first contribution in
[https://github.com/streamlit/streamlit/pull/7843](https://togithub.com/streamlit/streamlit/pull/7843)
- [@&#8203;sfc-gh-jdaly](https://togithub.com/sfc-gh-jdaly) made their
first contribution in
[https://github.com/streamlit/streamlit/pull/7842](https://togithub.com/streamlit/streamlit/pull/7842)
- [@&#8203;matiboux](https://togithub.com/matiboux) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7596](https://togithub.com/streamlit/streamlit/pull/7596)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.29.0...1.30.0

###
[`v1.29.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.29.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.28.2...1.29.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.29.0 -->

#### What's Changed

##### Breaking Changes 🛠

- Remove old app test api by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7657](https://togithub.com/streamlit/streamlit/pull/7657)

##### New Features 🎉

- Add ability to add empty query params by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7601](https://togithub.com/streamlit/streamlit/pull/7601)
- Add Enum coercion to options elements, if input Enum classes
"identical" but redefined on script run by
[@&#8203;Asaurus1](https://togithub.com/Asaurus1) in
[https://github.com/streamlit/streamlit/pull/7408](https://togithub.com/streamlit/streamlit/pull/7408)
- Remove Recording Feature Menu Item when unsupported by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/7604](https://togithub.com/streamlit/streamlit/pull/7604)
- Improved AppTest/ElementTree formatting by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7658](https://togithub.com/streamlit/streamlit/pull/7658)
- Add support for timedelta type to `st.dataframe`, `st.data_editor` and
`st.table`. by [@&#8203;LukasMasuch](https://togithub.com/LukasMasuch)
in
[https://github.com/streamlit/streamlit/pull/7689](https://togithub.com/streamlit/streamlit/pull/7689)
- Add border parameter to container and form by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7455](https://togithub.com/streamlit/streamlit/pull/7455)
- Use "loading skeletons" throughout Streamlit by
[@&#8203;sfc-gh-tteixeira](https://togithub.com/sfc-gh-tteixeira) in
[https://github.com/streamlit/streamlit/pull/7598](https://togithub.com/streamlit/streamlit/pull/7598)

##### Bug Fixes 🐛

- Make the outline for expanders appear on focus-visible and not focus
by [@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/7592](https://togithub.com/streamlit/streamlit/pull/7592)
- Use `NoReturn` annotation for stop and rerun by
[@&#8203;kongzii](https://togithub.com/kongzii) in
[https://github.com/streamlit/streamlit/pull/7422](https://togithub.com/streamlit/streamlit/pull/7422)
- Fix SVG scaling on fullscreen mode for `st.graphviz_chart` by
[@&#8203;snehankekre](https://togithub.com/snehankekre) in
[https://github.com/streamlit/streamlit/pull/7398](https://togithub.com/streamlit/streamlit/pull/7398)
- Fix top padding when embedding an app with a sidebar by
[@&#8203;sfc-gh-jgarcia](https://togithub.com/sfc-gh-jgarcia) in
[https://github.com/streamlit/streamlit/pull/7630](https://togithub.com/streamlit/streamlit/pull/7630)
- Fix app testing repr bug for `st.container` by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7644](https://togithub.com/streamlit/streamlit/pull/7644)
- Ensure file_uploader doesn't trigger needless reruns by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7641](https://togithub.com/streamlit/streamlit/pull/7641)
- Fix trigger value regression with `st.rerun` by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7643](https://togithub.com/streamlit/streamlit/pull/7643)
- Fix: MPA Nav expand arrow by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7634](https://togithub.com/streamlit/streamlit/pull/7634)
- Greatly narrow errors that we retry in SnowflakeConnection by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7645](https://togithub.com/streamlit/streamlit/pull/7645)
- Fix how connection is declared for typing purposes by
[@&#8203;thezanke](https://togithub.com/thezanke) in
[https://github.com/streamlit/streamlit/pull/7671](https://togithub.com/streamlit/streamlit/pull/7671)
- Enforce pyarrow version for arrow-based custom components by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7695](https://togithub.com/streamlit/streamlit/pull/7695)
- Allow to access external server IP via https. by
[@&#8203;LarsHill](https://togithub.com/LarsHill) in
[https://github.com/streamlit/streamlit/pull/7712](https://togithub.com/streamlit/streamlit/pull/7712)
- Move dg_stack into a ContextVar to support with blocks in separate
threads by [@&#8203;eric-skydio](https://togithub.com/eric-skydio) in
[https://github.com/streamlit/streamlit/pull/7715](https://togithub.com/streamlit/streamlit/pull/7715)
- Improve st.connection caching behavior by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/7730](https://togithub.com/streamlit/streamlit/pull/7730)
- Don't use hash on floats in hashing.py by
[@&#8203;BlackHC](https://togithub.com/BlackHC) in
[https://github.com/streamlit/streamlit/pull/7754](https://togithub.com/streamlit/streamlit/pull/7754)

##### Other Changes

- Deprecate unused config options by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7584](https://togithub.com/streamlit/streamlit/pull/7584)
- Remove "Made by Streamlit" footer by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7583](https://togithub.com/streamlit/streamlit/pull/7583)
- Tweak "forgot config" SnowflakeConnection error message by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7652](https://togithub.com/streamlit/streamlit/pull/7652)
- Release Streamlit version 1.28.1 by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7666](https://togithub.com/streamlit/streamlit/pull/7666)
- Poll for script completion much more often in AppTest by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7691](https://togithub.com/streamlit/streamlit/pull/7691)
- Add Python 3.12 support by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/7663](https://togithub.com/streamlit/streamlit/pull/7663)
- Release Streamlit version 1.28.2 by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7716](https://togithub.com/streamlit/streamlit/pull/7716)
- fix: component dev url typo by
[@&#8203;ObservedObserver](https://togithub.com/ObservedObserver) in
[https://github.com/streamlit/streamlit/pull/7746](https://togithub.com/streamlit/streamlit/pull/7746)
- Fix another url typo by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7764](https://togithub.com/streamlit/streamlit/pull/7764)

#### New Contributors

- [@&#8203;kongzii](https://togithub.com/kongzii) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7422](https://togithub.com/streamlit/streamlit/pull/7422)
- [@&#8203;Asaurus1](https://togithub.com/Asaurus1) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7408](https://togithub.com/streamlit/streamlit/pull/7408)
- [@&#8203;thezanke](https://togithub.com/thezanke) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7671](https://togithub.com/streamlit/streamlit/pull/7671)
- [@&#8203;LarsHill](https://togithub.com/LarsHill) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7712](https://togithub.com/streamlit/streamlit/pull/7712)
- [@&#8203;eric-skydio](https://togithub.com/eric-skydio) made their
first contribution in
[https://github.com/streamlit/streamlit/pull/7715](https://togithub.com/streamlit/streamlit/pull/7715)
- [@&#8203;sfc-gh-pfinnigan](https://togithub.com/sfc-gh-pfinnigan) made
their first contribution in
[https://github.com/streamlit/streamlit/pull/7682](https://togithub.com/streamlit/streamlit/pull/7682)
- [@&#8203;samueldg](https://togithub.com/samueldg) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7762](https://togithub.com/streamlit/streamlit/pull/7762)
- [@&#8203;ObservedObserver](https://togithub.com/ObservedObserver) made
their first contribution in
[https://github.com/streamlit/streamlit/pull/7746](https://togithub.com/streamlit/streamlit/pull/7746)
- [@&#8203;BlackHC](https://togithub.com/BlackHC) made their first
contribution in
[https://github.com/streamlit/streamlit/pull/7754](https://togithub.com/streamlit/streamlit/pull/7754)

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.28.2...1.29.0

###
[`v1.28.2`](https://togithub.com/streamlit/streamlit/releases/tag/1.28.2)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.28.1...1.28.2)

<!-- Release notes generated using configuration in .github/release.yml
at 1.28.2 -->

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.28.1...1.28.2

###
[`v1.28.1`](https://togithub.com/streamlit/streamlit/releases/tag/1.28.1)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.28.0...1.28.1)

<!-- Release notes generated using configuration in .github/release.yml
at 1.28.1 -->

**Full Changelog**:
https://github.com/streamlit/streamlit/compare/1.28.0...1.28.1

###
[`v1.28.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.28.0)

[Compare
Source](https://togithub.com/streamlit/streamlit/compare/1.27.2...1.28.0)

<!-- Release notes generated using configuration in .github/release.yml
at 1.28.0 -->

#### What's Changed

##### Breaking Changes 🛠

- Remove legacy dataframe serialization by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7429](https://togithub.com/streamlit/streamlit/pull/7429)

##### New Features 🎉

- Add overrideable default timeout for script tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7327](https://togithub.com/streamlit/streamlit/pull/7327)
- Fluent asserts and type narrowing for widgets in tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7325](https://togithub.com/streamlit/streamlit/pull/7325)
- Teach st.write how to not set unsafe_allow_html when possible by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7432](https://togithub.com/streamlit/streamlit/pull/7432)
- Add datetime index editing support for `st.data_editor` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7483](https://togithub.com/streamlit/streamlit/pull/7483)
- Support Graphviz layout engines by
[@&#8203;snehankekre](https://togithub.com/snehankekre) in
[https://github.com/streamlit/streamlit/pull/7505](https://togithub.com/streamlit/streamlit/pull/7505)
- Better input/output visibility in Langchain callback by
[@&#8203;pokidyshev](https://togithub.com/pokidyshev) in
[https://github.com/streamlit/streamlit/pull/7478](https://togithub.com/streamlit/streamlit/pull/7478)
- New test framework api structure by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7413](https://togithub.com/streamlit/streamlit/pull/7413)
- Arrow dataframe test wrapper by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7519](https://togithub.com/streamlit/streamlit/pull/7519)
- Columns and tabs in script testing by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7524](https://togithub.com/streamlit/streamlit/pull/7524)
- Chat input and messages for app testing by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7535](https://togithub.com/streamlit/streamlit/pull/7535)
- Update `st.spinner` by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7488](https://togithub.com/streamlit/streamlit/pull/7488)
- Alert classes in app testing by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7542](https://togithub.com/streamlit/streamlit/pull/7542)
- Query params and secrets in app tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7561](https://togithub.com/streamlit/streamlit/pull/7561)
- De-experimentalize st.connection by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7536](https://togithub.com/streamlit/streamlit/pull/7536)
- Minor st.connection tweaks by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7562](https://togithub.com/streamlit/streamlit/pull/7562)
- Basic app test repr cleanup by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7573](https://togithub.com/streamlit/streamlit/pull/7573)
- Add toolbar to `st.dataframe` and `st.data_editor` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7345](https://togithub.com/streamlit/streamlit/pull/7345)
- Implement many remaining AppTest elements by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7576](https://togithub.com/streamlit/streamlit/pull/7576)

##### Bug Fixes 🐛

- Remove autosizer so we don't have weird flickering and weird layout
issues by [@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7281](https://togithub.com/streamlit/streamlit/pull/7281)
- Better dataframe hashing by
[@&#8203;kajarenc](https://togithub.com/kajarenc) in
[https://github.com/streamlit/streamlit/pull/7331](https://togithub.com/streamlit/streamlit/pull/7331)
- Fix bokeh slider by adding in side effects to package json by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7441](https://togithub.com/streamlit/streamlit/pull/7441)
- Fix vertical button regression in toolbar actions by
[@&#8203;willhuang1997](https://togithub.com/willhuang1997) in
[https://github.com/streamlit/streamlit/pull/7470](https://togithub.com/streamlit/streamlit/pull/7470)
- Upgrade plotly.js version by
[@&#8203;sfc-gh-wihuang](https://togithub.com/sfc-gh-wihuang) in
[https://github.com/streamlit/streamlit/pull/7449](https://togithub.com/streamlit/streamlit/pull/7449)
- Avoid confusion about file extensions: keep inner dots by
[@&#8203;mo42](https://togithub.com/mo42) in
[https://github.com/streamlit/streamlit/pull/7362](https://togithub.com/streamlit/streamlit/pull/7362)
- Configure non-range indices as required for editing with
`st.data_editor` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7481](https://togithub.com/streamlit/streamlit/pull/7481)
- Widget style fixes by
[@&#8203;sfc-gh-jgarcia](https://togithub.com/sfc-gh-jgarcia) in
[https://github.com/streamlit/streamlit/pull/7486](https://togithub.com/streamlit/streamlit/pull/7486)
- Support for non-string column names in `st.data_editor` by
[@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7485](https://togithub.com/streamlit/streamlit/pull/7485)
- Add user-friendly exception if dataframe exceeds max config of Pandas
Styler by [@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7497](https://togithub.com/streamlit/streamlit/pull/7497)
- Only use get_active_session when running in SiS by
[@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7502](https://togithub.com/streamlit/streamlit/pull/7502)
- Call matplotlib crash fix for scripts run in tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7511](https://togithub.com/streamlit/streamlit/pull/7511)
- Improve decimal type support for `st.dataframe` and `st.data_editor`
by [@&#8203;LukasMasuch](https://togithub.com/LukasMasuch) in
[https://github.com/streamlit/streamlit/pull/7475](https://togithub.com/streamlit/streamlit/pull/7475)
- Fix: Foreign language anchors by
[@&#8203;mayagbarnes](https://togithub.com/mayagbarnes) in
[https://github.com/streamlit/streamlit/pull/7454](https://togithub.com/streamlit/streamlit/pull/7454)
- Fix Chat Message container to align and manage the autosizer handling
by [@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/7504](https://togithub.com/streamlit/streamlit/pull/7504)
- Added permission to use Clipboard API in IFrame by
[@&#8203;dilipthakkar](https://togithub.com/dilipthakkar) in
[https://github.com/streamlit/streamlit/pull/7487](https://togithub.com/streamlit/streamlit/pull/7487)
- Move label attribute to only widgets that have it by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7560](https://togithub.com/streamlit/streamlit/pull/7560)
- Fix select slider value setting with non-strings by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7566](https://togithub.com/streamlit/streamlit/pull/7566)
- Fix attr access of session state in app tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7543](https://togithub.com/streamlit/streamlit/pull/7543)
- Added FIPS compliance by
[@&#8203;DueViktor](https://togithub.com/DueViktor) in
[https://github.com/streamlit/streamlit/pull/7527](https://togithub.com/streamlit/streamlit/pull/7527)
- Enlarge sidebar left and right padding to match MPA spacing by
[@&#8203;sfc-gh-jgarcia](https://togithub.com/sfc-gh-jgarcia) in
[https://github.com/streamlit/streamlit/pull/7531](https://togithub.com/streamlit/streamlit/pull/7531)
- Convert Expander to Details/Summary Element by
[@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https://github.com/streamlit/streamlit/pull/7247](https://togithub.com/streamlit/streamlit/pull/7247)
- Fix chat_input repr and add repr tests by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7574](https://togithub.com/streamlit/streamlit/pull/7574)

##### Other Changes

- Release 1.27.0 by [@&#8203;vdonato](https://togithub.com/vdonato) in
[https://github.com/streamlit/streamlit/pull/7402](https://togithub.com/streamlit/streamlit/pull/7402)
- Allow pillow 10.0.1 by
[@&#8203;AnOctopus](https://togithub.com/AnOctopus) in
[https://github.com/streamlit/streamlit/pull/7442](https://togithub.com/streamlit/streamlit/pull/7442)
- Release 1.27.1 by [@&#8203;kmcgrady](https://togithub.com/kmcgrady) in
[https:/

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/sawyerh/highlights).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants