New features and enhancements
- Introduce
app.storage.tab
as a storage for the current tab (#2837, #2866 by @rodja, @Alyxion, @alexzaech, @falkoschindler) - Introduce
app.storage.client
as a storage for volatile data for the current connection (#1308, #2820 by @rodja, @amks1, @sklibanov312, @Alyxion, @falkoschindler) - Introduce
ui.matplotlib
element as an object-oriented alternative toui.pyplot
(#2553 by @tacaswell, @falkoschindler) - Refactor
ui.list
andui.menu
items (#2855 by @codingpaula, @falkoschindler) - Automatically await async results in
ui.timer
(#2856, #2859 by @bmrast, @falkoschindler) - Add
maximize()
method for maximizing a native application (#2836 by @Aues6uen11Z) - Replace
check_interval
for JavaScript requests with an asyncio event (#2482, #2827 by @pplno, @anjomro, @oidex, @afullerx, @rodja, @falkoschindler)
Bugfixes
- Fix typo in conftest.py (#2857 by @kj4tmp)
- Fix update of
ui.leaflet
after callingset_center
orset_zoom
(#2825, #2826 by @thetableman, @falkoschindler) - Fix update of invisible
ui.markdown
elements (#2779, #2803 by @me21, @aniketkumar7, @falkoschindler) - Avoid ignoring dynamic properties starting with a line break (#2845 by @falkoschindler)
Documentation
- Add audio recording example (#1610, #2861 by @rodja, @CVxTz, @falkoschindler)
- Add demos for floating action buttons (#2832 by @rodja)
- Improve the "Chat with AI" example (#2772, #2800 by @merlinarer, @rodja, @falkoschindler)
Others
- Introduce ruff as an isort replacement and code checker with a pre-commit hook (#2619 by @mbrulatout, @codingpaula, @falkoschindler)
- Enable private vulnerability reporting (#2870 by @sunriseXu, @falkoschindler)