Release 0.8.0 alpha 2#382
Merged
Merged
Conversation
…1.5x default stretch - Persistent rotating log file under <DATA_FORMULATOR_HOME>/logs (sanitized); local-mode-only /api/logs endpoints + toolbar log viewer. - Log AI-generated code execution failures (explore/visualize/data-loading) at the agent layer so bugs surface in the log with detail. - Refine top app bar: muted/slim icons (outlined settings, terminal log icon), size-aligned buttons matching the left-nav standard. - Lower default chart maxStretchFactor 2.0 -> 1.5.
JS (yarn): echarts 6.1.0, dompurify 3.4.12, vite 7.3.6, js-yaml 4.3.0, flatted 3.4.2, yaml 1.10.3; resolutions for markdown-it 14.3.0, linkify-it 5.0.2, undici 7.28.0. Security: react-router 6.30.4, tmp 0.2.7, brace-expansion 1.1.16/2.1.2 (audit 6->1; remaining uuid is exceljs-pinned). Python (uv): litellm 1.92.0 (unpins aiohttp), aiohttp 3.14.1, cryptography 49, pyarrow 25, pyjwt 2.13.0, requests 2.34.2, click 8.4.2, curl-cffi 0.15.0, yfinance 1.5.1, soupsieve 2.8.4, python-dotenv 1.2.2. pip-audit 14->0. Verified: yarn build + vitest (260) and pytest (1960) all pass.
litellm>=1.92 imports its proxy/MCP handler chain (which needs fastapi, not a project dependency) whenever completion() is called with tools, breaking all tool-using agents with ModuleNotFoundError: No module named 'fastapi'. Pass litellm's own _skip_mcp_handler=True escape hatch at the completion call sites since we never use litellm's MCP gateway.
…e-scanning-issues fix(security): systematic Dependabot & code-scanning follow-up
The MySQLDataLoader keeps a long-lived PyMySQL connection with the default isolation level (REPEATABLE READ) and autocommit disabled. The first SELECT in such a session establishes a read view, and subsequent SELECTs against the same connection keep returning rows from that snapshot even after other sessions have committed new rows. As a result, /api/connectors/refresh-data would not see newly inserted rows unless the Data Formulator process was restarted, which broke the 'refresh connector table' UI affordance. Force a commit before every cursor.execute so that any open implicit transaction is rolled forward and the next SELECT establishes a new read view, picking up concurrent commits.
Mestway
approved these changes
Jul 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
0.8.0a2and refreshuv.lockAutomated validation
uv run pytest— 1963 passed, 1 skipped, 1 xfailedyarn test— 260 passedyarn build— passed (existing large-chunk warning)uv build— wheel and sdist built successfullytwine check dist/data_formulator-0.8.0a2*— passed0.8.0a2Manual checks before tag
After approval and merge, tag
mainas0.8-alpha2and publish the validated artifacts.