Releases: marimo-team/marimo
0.17.2
Important bug fix for plotly charts
What's Changed
- fix: plotly rendering by @mscolnick in #6927
Full Changelog: 0.17.1...0.17.2
0.17.1
What's Changed
Important: Embedded JavaScript in markdown will now be stripped - this is a feature, not a bug! Users who need to render custom HTML/JS should use mo.Html() or mo.iframe() instead of mo.md().
Break: markdown output (mo.md) is always sanitized by default. This is so application builders don't need to worry about sanitizing their own input when interpolating in markdown and inputs, e.g. mo.md(f"Hello {user_input.value}")
own.
Break: All outputs are sanitized before any cell is run. This is to prevent accidental running of JavaScript when opening a notebook.
Experimental Agent Mode - New experimental agent mode in the AI chat sidebar with tools to edit cells, run cells, and read their outputs.
✨ Enhancements
- Add google-genai dependency to recommended, tweak
marimo envoptional deps (#6826) - Add GetCellOutputs tool and get_llm_context for all UIElement classes (#6889)
- Handle SSL configuration for other openai compat config. (#6907)
- Implement ReconnectingWebSocketTransport for improved WebSocket handling (#6909)
- Better tracebacks, padding, remove button for static files (#6912)
- Print matplotlib Figures/Axes in rich table output (#6904)
- add duplicate selection shortcut to hotkeys as part of editing command (#6843)
- Avoid full width for column faceted charts (#6887)
- add sample query, better tool descriptions to improve agentic mode (#6880)
- add data config in the UI (#6878)
- Fallback to available storage when localStorage is not available (#6879)
- add run stale cells tool, refactor out notebook actions (#6842)
- Auto_instantiate=false by default (#6849)
- Package installation autorun (#6856)
- Add LintNotebook tool to backend and mcp server (#6853)
- increase timeout to 120s for reasoning models (#6839)
- allow run-all for completions bar (#6840)
- Show better diff for ACP (#6828)
- Hack needed to support the NVIDIA DGX Spark (#6822)
- Set cursor-pointer for button (#6775)
- Portals in vscode (#6803)
🐛 Bug fixes
- Add setup cell that has been deleted (#6916)
- fix wrapping on long text in tables (#6917)
- support column edits based on index, instead of id (#6891)
- Disable lsp by default (#6908)
- Dont mutate pandas when fixing column types (#6906)
- Copy code block inside accordion (#6905)
- Respect sandbox confirmation (#6885)
- Merge streamed agent message chunks to prevent fragmentation (#6835)
- Fix typo introduced during refactoring (#6876)
- fix column names that are not stringed in tables (#6873)
- add catches for get_schemas (#6874)
- Sanitize markdown text (#6848)
- fix delay mount css (#6864)
- Failing cache test on python 3.10 (#6863)
- Better cli error when missing mcp dep (#6859)
- Cell style not applied correctly (#6824)
- Mark
commentLinesas readonly in SQLMetadata (#6846) - Allow cache blocks to be invoked in script mode (#6819)
- Hide invalid options on setup cell context menu (#6821)
- use spinning indicator and check instead for autofix (#6830)
- Update markdown output to include 'contents' class (#6804)
- Table charts should update when underlying data updates (#6809)
📚 Documentation
- Security documentation updates (#6881)
- Fallbacks and warnings for missing features from sandboxed iframes + docs (#6883)
- More prescriptive remote connection docs (#6871)
- Update command to launch ACP in windows (#6862)
- Fix link to uv guide (#6816)
- Make getting started installation
uvsection less confusing (… (#6813) - Dataframe docs (#6812)
- Improve copilot docs (#6811)
- Update gh actions uv setup to v7 (#6799)
🔬 Preview features
- edit notebook tool (#6786)
📝 Other changes
- Update dependency tailwindcss to ^4.1.15 (#6902)
- Update dependency vite to ^7.1.19 (#6900)
- Update dependency vite to ^7.1.18 (#6897)
- Update build tools (#6890)
- Upgrade form-data to secure version (#6888)
- Bump postcss from 7.0.39 to 8.5.6 (#6884)
- Merge commit from fork (b2f7e9b)
- Update testing dependencies (#6855)
- [pre-commit.ci] pre-commit autoupdate (#6850)
- Merge commit from fork (a107e81)
- Ci breakage in python 3.13.8 (#6831)
- Support git dependencies in sandboxed script metadata (#5545) (#6827) (74b3602)
- Update use-acp to version 0.2.4 and better ACP loading state UI (#6815)
- Migrate out smart cell logic to its own package (#6808)
- Duckdb interrupt (#6806)
- Filter sql defs from generated return (#6805)
- Allow ASYNC240 (#6703) (4ea8cf3)
- Add tool guidelines to all backend/mcp tools (#6801)
Contributors
Thanks to all our community and contributors who made this release possible: @akshayka, @arjunguha, @bjoaquinc, @dmadisetti, @koaning, @Light2Dark, @manzt, @minsun-ss, @mscolnick, @olad5, @prosoitos, @sebkur, @sshtomar
And especially to our new contributors:
Full Changelog: 0.17.0...TODO_CURRENT_VERSION
0.17.0
This release delivers improvements to the AI user experience and adds support for Python 3.14.
AI autofix for cells
When AI generates code suggestions for fixing Python and SQL cells, you can now accept and run the suggested code with a single click of "Fix with AI":
Model Context Protocol (MCP) enhancements
marimo now exposes its AI tools through an MCP server endpoint, allowing external AI applications like Claude Code, Cursor, and VS Code to interact with your notebooks.
marimo edit notebook.py --mcp --no-tokenSee the MCP documentation to learn more. Special thanks our Resident MCP/AI Engineer @bjoaquinc for driving the implementation and improvements!
Python 3.14 support
marimo now officially supports Python 3.14, released this month. Official support for Python 3.9 has been dropped as it approaches end-of-life in October 2025, though it remains functional for the time being.
✨ Enhancements
- Switch to
msgspec_mfork (#6774) - Create ToolGuidelines for better Agent orientation of when and how to use marimo tools (#6793)
- Migrate
mo.ui.dataframeto narwhals; support duckdb, ibis, pandas, polars (#6772) - Support copying raw value for console output (#6751)
- Add prompts and ActiveNotebooks prompt to marimo mcp server (#6760)
- Python 3.14 support (#6712)
- Add structured errors to frontend tools (#6748)
- Intentional sidebar ordering (#6742)
- Add bedrock inference profiles (#6738)
- DRY common package managers install logic (#6685)
- Add detailed output metadata to frontend tools (#6720)
- floating label for AI generations in a cell (#6690)
- Support Iceberg introspection through duckdb (#6707)
- Add multi-tool support for all providers (#6672)
- Reset input on submit in
ai.chat(#6668) - AI autofix mode for sql cells (#6639)
- Expand cache api to match functools api (#6660)
- Rig up cache api (#6662)
- Add multi-column sorting with stack-based behavior (#6257) (9b58a93)
🐛 Bug fixes
- Watch for file move with watchdog and Claude Code (#6798)
- Tutorial explanation of how to configure lazy execution (#6758)
- Preserve cursor position when updating cell code in watch mode or auto-formatting (#6792)
- Fix empty submits and output area (#6794)
- Jupytext convert with markdown with quotes (#6789)
- Use thead instead of div inside table (#6785)
- Use event loop factory for uvicorn >= 0.36.0 (#6779)
- Pytest-changed (#6761)
- Send function-request when static to show Static Notebook warning (#6765)
- Fix with ai button for all cells (#6755)
- Support initial selection in Plotly plots (#6747)
- Fix dependency panel edges (#6753)
- Format OpenAPI generated files after codegen in build script (#6739)
- Safer windows logging on PermissionErrors (#6735)
- Update regex in Plotly template parser to handle special characters (#6728)
- Ignore prune cache on windows (#6733)
- Use UTF-8 encoding for subprocess calls in package managers (#6729)
- Manually move copilot file extension from js to cjs (#6727)
- Datetime UI element rendering in Docker containers (#6730)
- Respect holoviews hv.output() settings when rendering in marimo (#6732)
- Allow for cache hits from external modules (#6731)
- Allow uv_build < 0.10.0 (#6714)
- Handle OSErrors when seraching for pyproject.toml (#6726)
- Typos ci (#6725)
- New query to get duckdb databases for ducklakes (#6708)
- Run / edit mode for docker (#6724)
- More aggressive file reconciliation in
--watch(#6701) - Ensure custom content in header (#6709)
- Ensure consistent checking with unparsable cells (#6702)
- Enable stub mechanism for caching un-pickable objects (#6657)
- Handle big ints better (#6768)
- Patch
msgspecPython 3.14 compatibility (#6749)
📚 Documentation
- Add documentation for mcp server, client, tools, and chat panel modes (#6744)
- Remove duplicate phrase in SQL documentation (#6740)
- Add async cache support (#6736)
- Change READMEs to be more consistent for different languages (#6696)
- Add marimo editable install in pixi env, simplify docs in CONTRIBUTING.md (#6679)
- MCP server ui, auth, and rules (#6659)
- uv-suitable update instructions when using uv (#6681)
- Move sql linter to config instead of feat flag (#6665)
- Verifying fe lints and pre-commmit hooks (#6642)
- Update docs; resolve #6623 (#6693) (42f6183)
📝 Other changes
- Add
mo.ui.plotlytests (#6757) - Disable snippets for LSP completions (#5949) (07b6cbc)
- Lint breaks (#6658)
Contributors
Thanks to all our community and contributors who made this release possible: @akshayka, @bjoaquinc, @dmadisetti, @eamonburns, @jschfflr, @Light2Dark, @lucharo, @manzt, @mscolnick, @olad5, @Prince213, @rgasper, @schlich, @yairchu
And especially to our new contributors:
- @olad5 made their first contribution in #6642
- @eamonburns made their first contribution in #6696
- @stephenlf made their first contribution in #6693
- @Prince213 made their first contribution in #6714
- @jschfflr made their first contribution in #6736
- @rgasper made their first contribution in #6738
Full Changelog: 0.16.5...0.17.0
0.16.5
What's Changed
- fix (gemini): premature client close error when using gemini models in chat by @bjoaquinc in #6634
- feat: news and notices by @dmadisetti in #6635
- tests: fix broken tests on main by @mscolnick in #5746
- feat: add mcp status and refresh by @mscolnick in #6636
- sql errors, just return error message for better formatting by @Light2Dark in #6633
- update to multi-cell prompt by @Light2Dark in #6640
- fix: wasm with starlette issue by @mscolnick in #6648
- feat: move AI Inline Tooltip out of experimental by @mscolnick in #6646
- fix: setup cell can be focused / enter command mode by @mscolnick in #6645
- check + fix: Protections around user packges being used as site packages by @dmadisetti in #6638
- group chat history by date, add search bar by @Light2Dark in #6654
- fix: find valid maxFractionalDigits by @mscolnick in #6655
- fix: include html in marimo base by @mscolnick in #6653
- improvement: better UX for AI context items by @mscolnick in #6649
Full Changelog: 0.16.4...0.16.5
0.16.4 and 0.16.3
0.16.4
Important Upgrade
This release includes an important fix for Security Release - CWE-441 - Unauthenticated Proxy.
What's Changed
- ci: run changed tests first by @mscolnick in #6595
- fix: remove failing windows test by @dmadisetti in #6597
- chore: move to rolldown by @mscolnick in #6033
- always show generate with ai in column mode when opened by @Light2Dark in #6602
- fix save bug when adding a model by @Light2Dark in #6600
- pass down user-config for /snippets by @mscolnick in #6583
- migrate: zod 4 by @mscolnick in #6599
- Initial hover_template function by @nojaf in #6580
- fix: debounce infinite loop by @mscolnick in #6603
- fix zod schema type errors for data-table by @Light2Dark in #6606
- improvement: narwhals v2 by @mscolnick in #6546
- standardize db icons for sql by @Light2Dark in #6605
- improvement: use lazy-frames for multi-step processing, include more tests by @mscolnick in #6608
- feat: Allow specifying asset_url for ASGI app by @elahmo in #6610
- fix: data-table cellHoverTextSchema validation by @mscolnick in #6613
- altair: set background to transparent for vegafusion if no background is set by @Light2Dark in #6614
- tests: fix formatting test by @mscolnick in #6615
- improvement: cleanup ibis code to share from narwhals table manager by @mscolnick in #6612
- feat: Create frontend tools framework and integrate to backend ai system by @bjoaquinc in #6609
- feat: MCP presets: marimo docs and context7 by @mscolnick in #6619
- Add mapping for 'airflow' to 'apache-airflow' by @koaning in #6622
- add datasource AI context by @Light2Dark in #6618
- chore(deps): update dependency @typescript/native-preview to v7.0.0-dev.20250928.1 by @renovate[bot] in #6616
- enable column explorer for run mode by @Light2Dark in #6626
- slightly lighten dark mode comment in codemirror by @Light2Dark in #6628
- fix: windows globbing for check by @dmadisetti in #6598
- fix: claude 4.0 models by @mscolnick in #6630
- fix: propagate delete in watch mode by @dmadisetti in #6629
- refactor: MPL proxy endpoint by @dmadisetti in #6632
New Contributors
Full Changelog: 0.16.3...0.16.4
0.16.3
What's Changed
- fix: fe lint errors by @dmadisetti in #6515
- tests: add some more validation tests for msgspec serialization by @mscolnick in #6514
- strips explain, better error output for sql error by @Light2Dark in #6518
- fix: catch sqlalchemy types by @dmadisetti in #6519
- fix: preserve comments in jupyter conversion by @dmadisetti in #6516
- improvement: support 2-space markdown and paragraphs without newline before lists by @mscolnick in #6512
- Fix anywidget initial buffer handling regression by @manzt in #6520
- fix: whitespace discrepancies on round trip conversions by @dmadisetti in #6521
- Support sticky headers on table by @nojaf in #6486
- add parse function in /validate endpoint for SQL by @Light2Dark in #6517
- improvement: add completion info to SQL table completions by @mscolnick in #6502
- fix: allow empty keys for openai compatible config by @mscolnick in #6525
- runtime fixes for parse_sql, if duckdb not installed by @Light2Dark in #6527
- add databricks to connection form by @Light2Dark in #6528
- only run sqlglot limit check when user sets a limit by @Light2Dark in #6530
- docs: LLM provider configuration by @mscolnick in #6529
- feat: add openrouter as a supported provider by @mscolnick in #6531
- enhancement(msgspec): create BaseStruct with get_pydantic_core_schema class method and refactor MCP msgspec.Struct types to use it by @bjoaquinc in #6540
- fix: handle by mro types from upstream libs by @mscolnick in #6539
- fix: add more expressions for SQL refs by @mscolnick in #6538
- don't override auto-save by when in --watch mode by @mscolnick in #6535
- improvement: google vertex support, make google key optional by @mscolnick in #6537
- fix: anthropic typing breaks by @mscolnick in #6543
- fix(mcp-server): make mcp-server lifespan and startup non-blocking for marimo server by @bjoaquinc in #6545
- fix: switch to depth-first traversal for inOrderIds method by @mscolnick in #6548
- chore: eslint to biome partial migration by @mscolnick in #6552
- chore(deps): update all storybook dependencies to ^9.1.8 by @renovate[bot] in #6554
- fix: matplotlib interactive stability fixes by @dmadisetti in #6550
- quote brackets, and get offset map for column number positioning by @Light2Dark in #6542
- fix: slider input when cleared by @mscolnick in #6557
- lint fixes by @Light2Dark in #6563
- feat: edit files from a Gist url by @crivaronicolini in #6559
- re-enable sql-mode internally by @Light2Dark in #6558
- feat: use mo.inspect in formatters for some basic types by @mscolnick in #6541
- Click filenames in stack trace to open locally in editor by @yairchu in #6556
- improvement: dont show python traceback for sql errors by @mscolnick in #6573
- improvement: cache validation requests for sql linter by @mscolnick in #6574
- optimize validation request for duckdb sql by @Light2Dark in #6578
- devops: make dev explicitly uses the port the pnpm expects (fix #6565) by @yairchu in #6575
- improvement: change output default from above to below by @mscolnick in #6572
- Turns on sql_linter to true by default by @Light2Dark in #6579
- expose feature flag for chat mode by @Light2Dark in #6577
- change ff name, chat_mode by @mscolnick in #6582
- fix[lsp]: allow binary locations with spaces by @dmadisetti in #6569
- chore: Update ruff version in dev dependencies to match pre-commit by @mscolnick in #6585
- internal: remove whitespace in tutorials by @mscolnick in #6588
- docs: add missing docs by @mscolnick in #6586
- Update sqlglot dependency to include 'rs' variant in for better perf by @mscolnick in #6584
- sql linter: add listener to set focus state and parse only when focused by @Light2Dark in #6591
- claude 4.5 by @koaning in #6592
- add simple auto fix button for sql cell by @Light2Dark in #6590
- Prune redundant traceback item at start of all traces by @yairchu in #6589
- feat:
marimo check --format=jsonby @dmadisetti in #6570 - add docs for azure and properly handle endpoint by @Light2Dark in #6587
New Contributors
- @crivaronicolini made their first con...
0.16.2
What's Changed
- docs: i18n by @mscolnick in #6478
- docs: add documentation for mo.outline widget by @mscolnick in #6468
- docs: wide -> medium by @mscolnick in #6480
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6481
- Add hover text on table header by @nojaf in #6466
- chore(deps): update build tools by @renovate[bot] in #6484
- improve perf and visual for table header tooltip by @Light2Dark in #6488
- feat: lint pattern to extract and process logs (capture invalid sql) by @dmadisetti in #6407
- feat: Add markdown to the cell level by @dmadisetti in #6479
- feat: Add "download" option to mo.ui.dataframe by @AnirudhDagar in #6492
- tests: skip failing test by @mscolnick in #6493
- snapshot: sql_parsing_errors.txt by @dmadisetti in #6496
- share types and function between table and dataframe for download by @Light2Dark in #6497
- fix: copy output exclude ansi and html by @mscolnick in #6495
- feat: Streaming files for check by @dmadisetti in #6494
- feat: Wrap and pass SQL Errors by @dmadisetti in #6498
- fix: cell-id logic in function-registry by @mscolnick in #6500
- sql mode - validate for duckdb by @Light2Dark in #6460
Full Changelog: 0.16.1...0.16.2
0.16.1
This release includes improvements to internationalization and important bug fixes.
✨ Enhancements
- Add to outline
mo.outline()(#6430) - Display plain output for explain queries in duckdb (#6439)
- Add
GetNotebookErrorstool (#6445) - Add
session_idtosystem_context(#6443) - Use user's (or configured) locale for dates, times, and numbers (#6433)
- Add locale to display config (#6432)
- Show tool location and kind when no output (#6441)
- Add datasource tool (#6422)
- Use user's local for date inputs (#6412)
- Hover over cell (#6420)
- Display tool inputs for tool accordion (#6452)
- Add maybe
import marimoto Generate with AI (#6471)
🐛 Bug fixes
- Preserve literal strings in type annotations (#6451)
- check if default schema and db is string, for engines (#6438)
- String quoting for marimo (#6470)
- Skip adding import if already exists (#6475)
- Restrict uvicorn version to avoid notebook creation issues (#6453) (#6467) (4c17a0e)
- Center slides better for iframed content (#6465)
- Return original markdown text, override format (#6464)
- Prevent new language adapter instances being created on keypress (#6459)
- Specify utf-8 encoding when writing toml files (#6449)
📚 Documentation
📝 Other changes
Contributors
Thanks to all our community and contributors who made this release possible: @bjoaquinc, @daizutabi, @dmadisetti, @Light2Dark, @manzt, @maxkoretskyi, @mscolnick, @nojaf
Full Changelog: 0.16.0...0.16.1
0.16.0
This release brings multi-cell AI code generation and marimo check for static code analysis, along with preview features for AI agents.
Highlights
Generate multiple cells with AI
You can now generate entire notebooks with AI within marimo.
The "Generate with AI" feature has been upgraded to create multiple cells at once, organizing code into logical units (#6312).
As you watch the AI work, cells stream in with a distinctive visual indicator, making it clear which cells are AI-generated. Accept suggestions with Tab or reject with Escape.
Detect and fix common issues with marimo check
marimo includes a comprehensive linting system that helps you write better, more reliable notebooks. The new marimo check command detects and reports on common errors before runtime, ensuring your notebooks follow marimo's best practices (#6288).
Run marimo check to identify issues like multiple definitions, circular dependencies, and syntax errors. Add --fix to automatically resolve formatting issues. Configure marimo check as a hook with AI coding agents like Claude Code or Google Gemini to automatically correct potential mistakes in AI-generated code.
# Check for issues
marimo check notebook.py
# Auto-fix formatting issues
marimo check --fix notebook.pyYou can also use marimo check for CI/CD pipelines with its non-zero exit codes on warnings.
AI Agent Sidebar (Preview)
Connect marimo notebooks to AI coding assistants like Claude Code or Gemini CLI through the new Agent sidebar (#6331, #6389). This experimental integration uses the Agent Client Protocol (ACP) to enable AI agents to help write and modify code directly in your notebooks.
Enhanced agent capabilities:
- Upload files directly from your computer into the agent context
- Reference data with
@- mention dataframes, variables, and errors - Attach files with
#- include notebook files in your prompts - Open terminal for agent commands directly from the sidebar
Note: This feature is behind a feature flag and ready for early testing. Start your agent with --watch mode for best results.
✨ Enhancements
- Clean up stack traces with
marimo check(#6423) - Add
session_ttlparameter tocreate_asgi_app(#6419) - Add
xtermaddons and terminal resize (#6395) - Add tables and variable tool (#6396)
- Download table regardless of cell selection (#6391)
- Upload files,
@-symbol for data,#for files in the Agent panel (#6389) - Add script to generate lint docs (#6379)
- Refresh example notebooks (#6378)
marimo check --fix(#6288)- Update
ToolManagerto initialize inlifespans.pyand useToolBasefor backend tool registration (#6375) - Expand
app.runto allow programmatic overrides (#6359) - Better ACP commands, edit the notebook without
--watch, slash-commands (#6360) - Generate multiple cells with "Generate with AI" (#6312)
- Add
progress_barwith iterator and total (#6424) - Add "open in terminal" to Agent sidebar (#6405)
- Add async progress bar functionality (#6336)
🐛 Bug fixes
- Allow parsing lists in app config kwargs (#6427)
- Handle 'import *' correctly for
marimo check(#6425) - Remove body tags when rendering custom HTML (#6421)
- Pandas series with columns the same as index name (#6418)
- Shelex paths for lsp (#6403)
- Add 'class' as a builtin (#6399)
- Handle nested
msgspecparsing (#6382) - Add string conversion in
DataTableColumn.__post_init__(#6383) - Fix enter for renaming a cell not working (#6376)
- Allow syntax errors (#6371)
- Fix could not find function given request:
FunctionCallRequest(#6365) - Fix
InstallHook.js:1in HTML,<tr>cannot be a child of<table>(#6367) - Use
TypeVarfor Cls inclass_definition(#6364) - Allow invalid decorator permutations (#6357)
- Allow test cells in the presence of async cells (#6355)
- Handle empty tool results in agents (#6431)
📚 Documentation
- Add agents docs and feature flag (#6409)
- Add
--unsafe-fixesand example rule (#6398) - Add syntax error
checkrule as a base example (#6384)
📝 Other changes
- Tests for edge case file names (#6400)
- Tool calls styling and streamdown (#6411)
- Change styles for staged AI cells (#6410)
- Frontend filename edge case tests (#6401)
- Pass around single bytes of message for
KernelMessage(#6380) - Lazyer initialization of tools (#6377)
- Use nested
opfrom data (#6381) - Pin duckdb
<=1.3.0for type-checking (#6374)
Contributors
Thanks to all our community and contributors who made this release possible: @Antyos, @bjoaquinc, @daizutabi, @dmadisetti, @Light2Dark, @maxkoretskyi, @mscolnick, @nojaf
And especially to our new contributors:
- @daizutabi made their first contribution in #6336
Full Changelog: 0.15.5...0.16.0
0.15.5
What's Changed
- fix: show both inputs and task list in TODO mkdocs-marimo example by @superlopuh in #6351
- Fix UI element updates not working in WASM due to request parsing order by @manzt in #6354
New Contributors
- @superlopuh made their first contribution in #6351
Full Changelog: 0.15.4...0.15.5
0.15.4
This is a quick follow-up to 0.15.3 with important bug fixes for how messaging works inside marimo.
Preview features
- WIP Agent sidebar (Claude Code and Gemini CLI) (#6331)
- Add
marimo._ipcfor multi-environment kernels (#6303)
Enhancements
- Add
progress_bartype hints (#6304)
Bug fixes
- Remove dual JSON encoding in pyodide message callback (#6350)
- Apply styles manually for actions menu (#6346)
- Json encode handle more human types, and more human readable for tables (#6334)
- Checks if sql variable data exists before accessing it (#6327)
- Fallback to
__dict__/__slots___inenc_hookfor unknown objects (#6332)
Documentation
- Debugging notebooks (#6305)
Other changes
- Update
react-ariadependencies (#6344) - Introduce
ToolBaseand centralize tool implementations (#6309)
Contributors
Thanks to all our community and contributors who made this release possible: @Antyos, @bjoaquinc, @dmadisetti, @Light2Dark, @manzt, @mscolnick.
And especially to our new contributors:
Full Changelog: 0.15.3...0.15.4




