Security
- ⚠️ Prevent XSS attacks via unsanitized HTML in
ui.markdown()(GHSA-v82v-c5x8-w282 by @falkoschindler, @evnchn) - ⚠️ Prevent path traversal via unsanitized
FileUpload.nameenabling arbitrary file write (GHSA-9ffm-fxg3-xrhh by @k14uz, @evnchn, @falkoschindler)
New features and enhancements
- Introduce UnoCSS support (#5485 by @evnchn, @falkoschindler)
- Unify dark mode API and add color-scheme meta tag for browser/extension compatibility (#5471, #5483 by @davetapley, @evnchn, @falkoschindler)
- Set Redis TTL on tab storage keys (#5594 by @quantumdark, @evnchn, @falkoschindler)
- Perform implicit handshake and fix
on_connectcalled before page is ready (#5673 by @evnchn, @falkoschindler) - Deprecate custom AG Grid
checkboxRendererin favor of built-inagCheckboxCellRenderer(#5681, #5685 by @CatamountJack, @CrystalWindSnake, @falkoschindler, @evnchn) - Speed up SVG updates for
ui.interactive_imagewith PIL images (#5583, #5653 by @denniswittich, @evnchn, @falkoschindler)
Bugfixes
- Fix vertical stepper animation jitter (#3881, #5721 by @StarDustEins, @evnchn, @falkoschindler)
- Fix REPL detection for Python 3.13's new pyrepl (#5675, #5710 by @KrilleGH, @falkoschindler, @evnchn)
- Fix shutdown handler not called with native mode and reload enabled (#2107, #5702 by @PawelRoman, @rodja, @retsyo, @frankhuurman, @krashdifferent, @python-and-novella, @Ansari-Codes, @evnchn, @falkoschindler)
- Fix
app.shutdownforui.run_with(#3253, #5686 by @MuuXB, @python-and-novella, @falkoschindler, @evnchn, @falkoschindler) - Fix video loading issues on Windows in native mode (#4970, #5700 by @MaidScientistIzutsumiMarin, @python-and-novella, @evnchn, @falkoschindler)
- Fix
NiceGUIJSONResponseto inherit fromJSONResponseso response model schema appears in Swagger (#5688, #5689 by @AleDetto, @evnchn, @falkoschindler) - Avoid
ui.expansionstutters during animation (#4918, #5659 by @platinops, @evnchn, @falkoschindler) - Fix protocol not being set when using SSL in native mode (#4814, #5655 by @nachobacanful, @evnchn, @falkoschindler)
- Fix input elements not being updated when re-opening a
ui.dialog(#2149, #5652 by @adosikas, @meslahik, @python-and-novella, @liunux4odoo, @evnchn, @falkoschindler)
Documentation
- Add AG Grid Enterprise demo (#5676 by @falkoschindler, @evnchn)
- Add style principles for exception suppression and optional imports (#5715 by @evnchn, @falkoschindler)
Testing
- Fix test isolation for pages defined in submodules (#5692, #5697 by @kleynjan, @falkoschindler, @evnchn)
- Persist
tab_idin User fixture (#5687, #5690 by @5553455237, @evnchn, @falkoschindler)
Dependencies
- Upgrade minimum Python version to 3.10 and modernize type annotations (#5696 by @falkoschindler, @evnchn)
- Update dependencies to fix security vulnerabilities (#5695 by @falkoschindler, @evnchn)
- Update
uv.lockto revision 3 (#5707 by @evnchn, @falkoschindler)
Infrastructure
- Let GPU-free Chrome 144 work in CI (#5678 by @evnchn, @falkoschindler)
- Use
contextlib.suppressto ignore exceptions (#5714 by @falkoschindler, @evnchn)
Special thanks to our top sponsors Lechler GmbH and TestMu AI ✨
and all our other sponsors and contributors for supporting this project!
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!