What's Changed
🚨 Breaking changes
- Mo.ui.refresh typing and docs (#9229)
✨ Enhancements
- Code-mode .screenshot() api (#9232)
- Visible markers for leading/trailing whitespace in string cells (#9256)
- swap reveal.js instead of swiper for slides (#9166)
- change wasm link to molab link on run page (#9240)
- Bail out of type inference when completion budget expires (#9247)
- Introduce better_inspect module for enhanced dir() and help() functionality for marimo-pair (#9223)
- add molab resource to edit homepage (#9241)
- Add
ctx.packagesnamespace to code mode (#9233) - Backend-based file and directory duplication (#9142)
- Support columns in marimo-pair (#9212)
- Expand
uv_buildsupported versions in build-system (#9231) - Visually distinguish null, empty, whitespace, NaN, and Infinity in table cells (#9218)
- Restore Altair SVG output as base64-encoded Data URLs (#9104)
- Auto-save in code-mode and marimo-pair (#9191)
- add molab share action (#9207)
- LSP root and document URI integration from backend (#9143)
- Decouple Matplotlib render resolution (DPI) from display size (#9144)
🐛 Bug fixes
- Hold references to asyncio tasks (#9261)
- Use urlparse instead of regex for proxy determination (#9254)
- Preserve columns in DefaultTableManager exports (#9258)
- Drop dangling @file URLs from the session cache (#9278)
- Make
FieldTypesaMapto preserve column order (#9279) - Avoid double-mangling names inside walrus comprehension (#9276)
- Static path handling (#9281)
- Restore plain text tracebacks and fix exit codes for code mode (#9224)
- Suppress
marimo-ui-value-updateecho for user-initiated changes (#9262) - "Download as .py" in WASM run-mode exports (#9268)
- Tailwind v4 opacity fix, selection toggle, hover colors, and cleanup (#9259)
- Export menu works for plain-Python data without
pandas/polars/pyarrow(#9246) - Drop stale autosaves after newer foreground writes (#9239)
- Preserve column order in DefaultTableManager select/drop (#9235)
- Use the proactor event loop policy on Windows in edit-mode runtimes (#9194)
- Allow for data-uris in mpl-interactive and marimo-panel after a cell has run (#9196)
- Opencode marimo-pair skill discovery (#9225)
- fix variants for toast (#9230)
- Only toast cell logs in app mode (#9190)
- fix label not being passed through for mo.ui.tabs (#9187)
- Support
mo.ui.matplotlibselections from code mode (#9195) - fix cte refs for errored paths, and dml (#9188)
- Add warning log when repr_mimebundle fails (#9199)
- Use shared memory for virtual files when running with app isolation (#9181)
- Virtualize dataframe page selector to fix "No matching page" bug (#9178)
- Arrow keys lose selection in vim visual mode (#9172)
- Strip access token via redirect (#9170)
- Pair direction (#9161)
- Require auth in LSP middleware (#9160)
- With_dynamic_directory path traversal (#9162)
- Image dimensions for Altair PNG outputs (#9149)
📚 Documentation
- Update Traditional Chinese README to highlight marimo pair (#9183)
- Maintainer approval in contributing (#9153)
- Link to marimo pair in the README (#9145)
📝 Other changes
- Clear error state on disabled-transitively cells when ancestor recovers (#8784) (ba12764)
- Update dependency dompurify to v3.4.0 [security] (#9216)
- Update dependency lodash-es to v4.18.1 [security] (#9217)
- Add lazy cache blob types (arrow, npy) (#9035) (6baa22d)
- Widen
Html.batch()type to accept all UIElement subclasses (#9163) (#9176) (73ff622) - Handle list-type tooltip encoding in altair chart (#9167) (#9175) (386cba6)
- Add reactive funnel and funnelarea selection support (#9044) (b95d26d)
- Add reactive box plot selection support (#9010) (b73a370)
Contributors
Thanks to all our community and contributors who made this release possible: @akshayka, @app/renovate, @daizutabi, @dmadisetti, @kirangadhave, @Light2Dark, @manzt, @moble, @mscolnick, @nojaf, @shaun0927, @thliang01
New Contributors
- @shaun0927 made their first contribution in #9239
Full Changelog: 0.23.1...0.23.2