VisuaLeaf v1.0.2664 Release Notes
Release Date: October 31 2026
Covers 1.0.2640 – 1.0.2664.
Headline: BI-Style Dashboards and Charts, Parquet Export, and Copies That Keep Every Type
Dashboards now work like a BI tool. Set filters once for the whole dashboard, click a bar or slice to
filter every other chart, and build charts by dropping fields into Group by / Measure / Color / Filters
boxes, with totals that are exact over every document. Every chart has a new look that works in light
and dark mode, and the dashboard editor has a cleaner design with edges you can actually grab to resize.
Parquet is a new export format for every SQL engine and MongoDB. **Data Transfer now keeps column types
and values exact** across all 29 SQL engines, MongoDB and files. A copy between two PostgreSQL or two MySQL
databases keeps each column's own type, and starting a task takes a fraction of a second even with a long
task history.
Also shipping: a redesigned Replica Set page built around health at a glance, Drop Schema for SQL,
long SQL scripts that finish instead of freezing the editor, a two-row SQL Editor toolbar,
drag jobs between tasks in the Task Manager, and fixes to the ERD, popouts and licence activation.
Dashboards and Charts
What you can see
- One modern look for every chart. Charts use VisuaLeaf's own palette in both light and dark mode, so a
- A redesigned dashboard editor and viewer. You edit the title and description directly in place, and
- Pivot charts show a real pivot grid, with row values down the side, column values across the top,
- Radar charts scale to your data instead of always running 0–100, so ratings, prices and counts no
- Charts fit narrow cards. In a narrow card, a pie moves its legend underneath, long radar names wrap,
- A clear row-limit warning. It tells you when totals use only the first 1,000 rows and offers to use
dashboard reads as one set. Pies and donuts have gaps between slices and show the total in the middle of
a donut. Heatmaps and calendars use a single colour scale instead of a rainbow. Gauges, maps, radar and
candlestick charts no longer show bright bands or dark slabs in the wrong mode. Charts already on a
dashboard pick up the new look when it opens. Colours you picked yourself are kept.
active filters show as chips under the header. Cards are cleaner, sit on a quiet dot-grid canvas, and
show edit and delete only on hover. An empty dashboard invites you to start.
and totals. Tree charts show parents with their children indented underneath.
longer shrink to a dot or run off the edge.
and funnel and heatmap labels no longer overlap.
all rows.
What you can do
- Filter the whole dashboard. Define filters once (Edit → Filters), choose which charts each one
- Click to filter. Click a bar or slice and the other charts filter to match. The selection survives
- Build charts from fields. Drop fields into Group by, Measure, Color and Filters. Show me suggests
- Bring older charts along. Saved query charts open in the boxes when every part maps exactly. A banner
- SQL charts on dashboards run their query live, so dashboard filters and parameters reach them.
- Resize cards from any edge. Resize handles now sit on the card's edges and bottom corners, with
applies to, and pick values loaded from your data.
tab switches, and each chart shows a badge when a filter applies to it.
chart types, and More types reaches every chart type, telling you what each one needs. Gauge and
heatmap now work from the boxes too.
shows what moved, with Keep my query instead. Charts that keep their own query (pipelines, SQL) get
the same boxes over their result columns.
larger grab areas.
Fixes
- A dashboard filter narrows a chart instead of overriding it. A "delivered orders" chart stays on
- Table, pivot and tree charts on a dashboard no longer show "No rows".
- Queries typed in shell style (
{ status: "delivered" }) are applied instead of silently ignored. - Swapping a widget's chart loads the new chart. Removing a widget respects Cancel, and new widgets land
- Text such as "CUST-105050" is no longer mistaken for a date.
- The dashboard's loading and export overlays cover only that dashboard, not the whole window.
delivered orders when you filter or click "pending" elsewhere on the dashboard, and two filters on the
same field both apply.
below the last row instead of at the top-left.
Export to Parquet
- Parquet is a new export format next to CSV, XML and Excel, for a table, view, query, whole
- Columns keep their types. SQL columns keep their declared type, and a MongoDB field whose type changes
- Parquet, XML and Excel tasks now show their file path in the task list instead of "Unknown".
database, collection or aggregation, from every SQL engine and MongoDB.
between documents is written as text instead of failing.
Data Transfer: Every Type, Every Value
We ran every transfer, import and export through the app on 29 SQL engines and MongoDB, and compared every
target cell by cell. Here's what changed.
Copies between databases
- Same-family copies keep the source's types. PostgreSQL → PostgreSQL keeps arrays, intervals and
- Numbers stay exact. Oracle numbers without a set precision are no longer rounded to 4 decimals.
- Dates and times stay put. MySQL keeps fractional seconds, and SQLite and DuckDB times are no
- Copies that used to fail now finish: ClickHouse's mixed-type tables, PostgreSQL network types into
- MongoDB → SQL looks at 1,000 documents, not just the first, to pick each column's type. Fields that
- Dates copied from MongoDB into ClickHouse, and dates stored as text into SQLite, arrive intact.
smallint. MySQL → MySQL keeps its small integer, TEXT and BINARY types. SQL Server keeps money,
nchar and uniqueidentifier.
Floats are no longer widened (3.14159 stays 3.14159), and huge integers are no longer lost.
longer shifted by the server's timezone.
CockroachDB, DuckDB JSON tables, and engines that lack a CHAR or TIME type.
appear later are kept, 12.5 is no longer stored as 12, and UUIDs no longer fail the task.
A value is left empty only when it really can't be stored in its column, and the task says so.
Dumps and restores
- A dump restores exactly on all 29 SQL engines, native or portable, as one file or one file per
- Restored tables keep counting from the right id, so the next insert doesn't collide with imported
- A one-file-per-table dump only tidies up its own files. Re-running it removes files for tables
- A failed import file's log lists its first errors.
table. Every type comes back, including enums, JSON, arrays, intervals, structs and zoned timestamps.
rows.
that no longer exist, but other dumps saved in the same folder are never touched.
Files
- CSV no longer shifts SQL dates by the server's timezone.
- Arrays, long text and binary columns from H2 and HSQLDB are written as data, not as placeholder text.
- MongoDB → CSV, XML and Excel keeps fields missing from the first document, and Excel dates are no longer
- Imports into SQL Server keep Unicode (✓ no longer becomes ?).
shifted.
Faster
- Tasks start in a fraction of a second, even with a long task history. They used to take up to 30–50
seconds.
Replica Set: Health at a Glance
What you can see
- A health strip across the top: members up, how many it can lose, oplog window and last election.
- Member cards with colour-coded roles and how far each copy is behind the primary.
- The tool cards are grouped under Health checks, Reads & writes and Activity tabs, with counts
when there's something to look at.
What you can do
- Click a member to open its details in a side panel. With changes enabled, its actions are spelled out
- Enable changes is now the one prominent switch. When it's on, an amber bar holds the set-wide actions:
in plain words: step down, make primary, maintenance, reconfigure, remove.
add member, rolling compact and force reconfig.
Improvements
SQL
- Drop Schema from the schema's right-click menu (SOZO-1679). You type the name to confirm, see the
- Long scripts finish. A 40,000-statement dump that used to freeze the editor and never finish now runs
- A cleaner SQL Editor toolbar. It has two rows like the shell: the connection path on top, and
statement first, and can choose to drop everything inside it. On engines that can't do that, the dialog
says the schema must be empty. Open tabs from that schema close afterwards.
in about 15 seconds against a local database, with steady progress. Long runs of inserts are summarised
as one line ("Statements 1–4,000: 4,000 rows affected"), and History isn't flooded with them.
Run, Run Selected, Run to Line, the commit controls and Save Script above the editor. Neither row wraps,
and in a narrow pane the buttons shrink to icons.
Task Manager
- Drag a job onto another task in the sidebar to move it there.
- Dragging tasks into folders works again, with no pause when the drag starts. A label follows the
- The Cards layout is gone. Everyone uses List + details.
- Success messages are solid green so you notice them.
pointer and Esc cancels.
ERD / Visual Schema
- Refresh from Database no longer removes tables you've just drawn. A table that was never created is
- Tables removed with a card's ✕ no longer come back after reopening the diagram (SOZO-1684).
marked as a draft, with a link to create it. Only tables actually dropped from the database are offered
for removal, unticked by default. The Apply button says what it will do.
AI assistants (MCP)
- AI assistants can create charts on SQL connections, and diagram edits keep primary keys however
- Settings › MCP Server hides the token in the client configuration until you reveal it. Copying still
they're given (SOZO-1683, SOZO-1685). A chart only reads: an assistant can't save one that would change
data.
copies the real token (SOZO-1686).
Everywhere else
- Scrolling no longer stutters when the workspace autosaves. It waits until you pause.
- A tab dragged from a popout back into the main window lands where you drop it, including on a panel
- Connection Manager: Select All ticks every row and switches to Select None.
- Licence activation: if a licence can't be installed, the app retries, then keeps running on the
edge to split it.
Community plan. The banner says why and lets you try again.