Track all versions, updates, and improvements to VisuaLeaf.
Release Date: July 30, 2026
This release is mostly about the app you use every day — the grid, the sidebar, the editors, the dialogs — getting faster, tidier, and more consistent. The things you'll feel first:
Also shipping: Deploy MongoDB (BETA) — stand up and run a standalone server, replica set, or sharded cluster on your own cloud accounts, servers, or Docker — Redis as a first-class connection type (BETA), and backups and exports straight to S3 / Cloudflare R2.
Binary and UUID values in rare cases; every path now reads them the same, correct way.CREATE, DROP, or ALTER in the editor and the connection tree refreshes itself; you don't have to reconnect to see the new table.A broad styling pass — the dialogs and editors you live in every day were brought up to the same modern standard, instead of each one looking like the year it was written.
A diagram doesn't have to stay a drawing. Materialize takes the schema you designed and builds it for real, on the connection and database you point it at.
CREATE TABLE statements.A new Deploy MongoDB launcher creates and runs MongoDB for you, and a Cluster tab manages each deployment afterwards. It works the same whether the machine is a cloud VM you've never logged into, a server you already own, or Docker on your laptop.
Deployments survive an app restart, and the deploy and cluster screens are ordinary tabs, so they can be split and popped out like anything else.
Redis now behaves like every other connection: add it from the connection manager, see it in the sidebar with its own logo, and open activities against it.
session:* without scanning by eye. Values open in a proper editor: a form view for simple values, a code view for JSON, and per-type editing for hashes, lists, sets, and sorted sets (with member and score fields).ObjectId, Decimal128, dates, and binary fields survive round-tripping instead of being re-parsed from text.ObjectId(...) and friends._id to a different name with "include unmapped fields" turned off used to produce rows with no key at all; the key now follows the mapping (SOZO-1329).+ button, or the command palette now behaves identically, and each one only offers what the connection actually supports.Quick Fix:
Table view optimization + Shell result gets formatted correctly after leaving and entering the mongodb shell
Release Date: July 15, 2026
$out / $merge in the Aggregation BuilderTwo fixes you'll feel:
$out can no longer silently overwrite an existing collection. The aggregation builder now blocks the run with a clear error when the target collection already exists, and the $out / $merge forms got smarter database and collection pickers.Also shipping: a more reliable Linux release pipeline behind the scenes.
$out and $merge$out won't silently destroy data anymore. The target collection field is now a plain "new collection name" input, and if you type a name that already exists, you get a blocking error explaining that $out would overwrite it — not just a small warning icon you could miss.$out or $merge, the database field now autocompletes from the databases on your connection instead of being a blank text box.$merge suggests the right collections — the collection dropdown now lists collections from the target database you picked, not from the source database.$out or $merge when the pipeline already ends with one, with a message explaining why, instead of letting you build a pipeline that can't run.Release Date: July 15, 2026
findOne Finally Prints Real Documents in the Shell, the Console Remembers Its Output, and Charts Let You Choose the AggregationThree things in this release:
findOne() result in the shell now shows the actual document — real BSON values, dates, decimals and all. It used to show a cursor instead of your data.Details below.
findOne Prints Real DocumentsThe big shell fix: printing a findOne() result now shows the document itself. Before, print(db.users.findOne(...)) (or just evaluating a findOne and printing it) showed you a cursor rather than your data. Now you get the actual document, with every BSON type rendered faithfully:
Null.NumberLong and NumberDecimal display correctly, including special decimal values like NaN and Infinity, which used to error out.{pattern, options} object."3" used to vanish from findOne results.⌘Z still works on edits you made before flipping away.print() output lands in order — printed lines now always appear before the "N results" summary of the script that produced them, never after.When your data has several rows that land on the same point — same x-axis value within a series, same pie slice, same funnel stage, same heatmap cell — the chart has to combine them into one number. Until now it always summed them. Now you choose.
What you can do:
Two honesty guarantees while aggregating: non-numeric values are skipped rather than counted as zero, and a category whose values are all invalid simply doesn't appear — no fabricated data points. The help tooltips in the mapper now describe exactly what will happen for your chart type.
Release Date: July 15, 2026
This release is a stability pass. The fixes you'll feel:
+ button and ⌘/Ctrl+K command palette now show your create / saved / nav items (they were empty before), and your connections, databases, and collections stay in sync with the main window in real time. Saved queries no longer flash a wrong "Connection Deleted" badge when a popout opens.Alongside the fixes, this release also opens Replica Set Management (BETA) — a first-class MongoDB replica-set operations panel — plus a SQL engine expansion (MySQL, CockroachDB, YugabyteDB, Redshift, Aurora Postgres/MySQL, RDS Postgres/MySQL, Percona, TiDB) with per-engine brand logos in the sidebar, and a modal + list-view design polish pass. Details below.
Right-click any replica-set connection and pick "Replica Set…" to open a live operations panel for your cluster. Everything works read-only first, so it's fully useful on Atlas and other managed deployments where you can't make changes. When you want to make changes, flip the "Enable changes" toggle and every safe-guarded action becomes available.
What you can see (no permissions needed beyond a working connection):
w:majority, even voters, single-region quorum, mixed versions, arbiters where they don't belong, and more) with the fix on the same cardw can actually completeWhat you can do (after arming "Enable changes"):
compact runner with live progresskillOp) — the #1 fix for a lagging secondaryfsyncLock helperThree focused secondary tabs support the flagship:
local.oplog.rs. Colored op badges, human-readable Simplified view by default (or Raw for extended-JSON), namespace typeahead, multi-select op filter, and session/txn attribution on each entry.Every RS surface has an in-product learn layer — inline concept-explainer popovers next to every jargon term, and a dismissible "how this works" intro on every tab, so the panel stays approachable even if you don't live in MongoDB internals.
More engines to pick from when adding a connection, and every engine now shows its own brand logo in the sidebar so you can tell them apart at a glance.
host:port (a bare port used to silently fail).Release Date: July 8, 2026
The main focus of this release is quality of life. VisuaLeaf now has a Cmd/Ctrl+K command palette with fuzzy search and inline action chips, a full keyboard-shortcuts catalog modal, complete tab-management hotkeys (close, reopen last closed, jump to tab N, next/previous), a rebuilt SQL table view that renders roughly 10× faster through GPU-cached cell rendering, a top-to-bottom Schema Diagram overhaul with translate-based pan, an infinite xyflow-style background pattern, a RAF-throttled minimap, and hover-relation highlighting in the HTML export, plus a sweeping light/dark mode polish touching ~5,600 style rules across the app.
On top of that quality-of-life work, three flagship epics also ship:
ShardingService / ShardKeyAdvisorService.TABLE, PIVOT, and TREE chart types over the new virtualized data-grid.Also shipping: an in-app release-notes + auto-update flow, a demo mode for showcase clusters, an Atlas SSH-tunnel + SOCKS5 connection fix, and signed Linux apt/dnf repo distribution for the desktop app.
The centerpiece of this release's QoL push — a single fuzzy-searchable command surface, a complete keyboard-shortcut catalog, and browser-style tab hotkeys everywhere.
⌘/Ctrl+K)Documents | Aggregator | Indexes …) so you can jump straight to a sub-view+ opens a Blank tab with the same palette content, so you can pick a new activity without losing your current layoutkeyboard-shortcuts-modal)Full catalog surfaced through the palette and Help menu, with per-platform modifier rendering (⌘ on macOS, Ctrl elsewhere):
⌘/Ctrl+W), close other tabs in panel (⌘/Ctrl+Alt+W), close all tabs in panel (⌘/Ctrl+Shift+W), reopen last closed tab (⌘/Ctrl+Shift+T), next tab (⌘/Ctrl+Tab), previous tab (⌘/Ctrl+Shift+Tab), jump to tab 1–9 (⌘/Ctrl+1..9), jump to last tab (⌘/Ctrl+Shift+0)⌘/Ctrl+K), new connection (⌘/Ctrl+N)⌘/Ctrl + +, ⌘/Ctrl + -, ⌘/Ctrl + 0)Esc)Shift + Arrows), select all rows (⌘/Ctrl+A), clear selection (Esc), refresh (⌘/Ctrl+R)Alt+→ expand, Alt+← collapse, extend selection, select all, refresh document (⌘/Ctrl+Shift+R)⌘/Ctrl+Shift+T restores the most recently closed tab — closed a tab by mistake? Just pop it backThe SQL table view (sql-table-view-draggable) was rebuilt for speed. Scrolling and panning through wide result sets is now roughly 10× faster and runs at a smooth 60 fps, even on huge tables. Wide grids that used to hitch or drop frames while scrolling now feel instant.
The Schema Diagram got a top-to-bottom rewrite focused on making pan, zoom, and navigation feel silky, and on making exports actually useful.
⌘/Ctrl to temporarily switch modeN → 1, 1 ← N)+ button, and the command paletteA sweeping visual pass: thousands of style rules retouched so both themes finally feel consistent and polished, plus a general modernization of the visual language.
A new per-user file workspace with a pluggable storage backend, admin controls, auditing, and lifecycle sweeps.
VirtualPath, LocalDiskUserFileStorage, and ArchUnit rules (UserFileSafetyRulesTest) enforcing production isolationUserFileService (1391 lines), controllers, sweeps, and Feature.USER_FILES feature gate; system-override layer implemented (stale docstring corrected in SOZO-1232)SecretCipher (AES-GCM-256) for at-rest credential encryption and UrlSafetyGuard (SSRF + DNS-pinning) for outbound URL validationS3CompatibleUserFileStorage (622 lines) with factory swap between local disk and S3-compatible object storesextraOptions into PutObject and moved usage recomputation to an async background jobStorageBackendAdminService, admin endpoints, destructive backend-switch flow, and UserFileReconcileServiceUserFilesHealthService and /health endpoint for the local-disk backendUserFileSweepService, UserFileLifecycleService)UserFileAuditService, admin audit log, docs/USER_FILES_RUNBOOK.md, and load testsmy-files-activity (2261-line component) with file explorer, workspace activity integration, and admin user-files panelspath-mode-utilsdemoMode env flag toggles the "Back to visualeaf.com" linkcore/services/file/user-file-admin.service.tsdocs/VIRTUAL_FOLDER_PLAN.md and docs/replica-set-management-plan.md~4,000 lines added across 20+ new unit/integration/concurrency/load-test classes: UserFileServiceIntegrationTest, UserFileServiceConcurrencyTest, UserFilesLoadTest, S3CompatibleUserFileStorageTest, SecretCipherTest, UrlSafetyGuardTest, UserFilesModeValidatorTest, UserFileStorageAdminTest, UserFileLifecycleServiceTest, UserFileReconcileServiceTest, UserFileSweepServiceTest, UserFileAuditServiceTest, and more.
End-to-end sharding activity for browsing, planning, and applying shard configuration on live MongoDB clusters.
sharding-activity (403-line component) with shard/chunk visualizationcluster-overview.component (707 + 575 lines) covering shards, chunks, balancer, and database placementsharding.service.ts (395 lines) — Client for the new controllerdocs/sharding-feature-plan.html and docs/docker/shard/test-case.mdThe standalone Table widget introduced earlier was rebuilt as TABLE, PIVOT, and TREE chart types so it shares the dashboard, save, and export pipeline with every other chart.
/api/tables — New backend module (model + repo + service + controller)TABLE, PIVOT, and TREE added to ChartType; tableConfig added to ChartConfigTableColumnConfig.pinned and ChartTableConfig.filtersTableColumnConfig.transform field for cell-value templatesA new user-facing release-note surface and update UX for the desktop app.
release-notes-modal (505 lines) — Shows the current release's notes on first launch after upgraderelease-history-modal (472 lines) — Browsable history of prior releasesupdate-banner (308 lines) — Non-blocking update promptupdate.service.ts (328 lines) — Check/download/apply update lifecyclerelease-history.service.ts — Indexes files under release-note/main.js (+303 lines) — Auto-update wiringupload-cloudflare.js (+323 lines) and r2-list-packages.js publish releases to R2build-linux-repos.sh, setup-linux-repos.sh, LINUX-REPO-USER-DOCS.md, and signed APT/DNF keyrings shipped under electron-app/certs/memory-selector.html — Updated selector chrome for the memory-selection boot dialogShowcase-friendly runtime for demo clusters and public trials.
DemoDataSeeder (395 lines), DemoMongoService (190 lines), and DemoExceptionsDemoController REST endpoints for seeding and resetting demo datademo-chart-creator.service.ts (216 lines) — Programmatic chart creation for demosdemo-chart-folder-dialog — Pick where seeded demo charts landdemoMode env flag threaded through environment.web-local.ts, environment.web-stg.ts, environment.prod.ts, and the electron envsSshTunnelManager (259 lines changed) and new JschSocks5Server (213 lines) bridge JSch through a local SOCKS5 proxy so Atlas SRV/DNS-seedlist connections work over SSH; documented in docs/ATLAS_SSH_TUNNEL_FIX.mdPemLoaders (162 lines) with tests (156 lines) and FE pem-utils.ts for TLS cert handling across mixed input formatscom.mongodb.mongosh.serviceGridFSService (+268), GridFSController (+259), and FE gridfs.service (+136)MongoShellSessionService updates (+128)MongoConnectionManager — 375 lines reworked for Atlas, shard, and user-files scenariosCtrl instead of ⌘ on Windows/Linux in the My Files context menumodalServiceUserFilesModeValidator (218 lines) — Startup-time consistency check between deployment mode and user-files configUserFileTransactionalOps (659 lines) — Transactional wrapper for cross-document user-file mutationsUserFileStorageFactory (163 lines) — Swaps LocalDisk vs S3Compatible at runtimeSzUserFileMongoDBRepositoryService (+146) with adjustments to SzGridFsUploadSessionMongoDBRepositoryService and SzUploadSessionMongoDBRepositoryServiceUserFileSafetyRulesTest (412 lines) enforces production isolation of the user-files moduleSecurityConfig and JwtAuthenticationFilter — Updated after the license-filter removalUserFileServiceIntegrationTest, UserFileAdminControllerIntegrationTest, UserFileControllerIntegrationTest, UserFileServiceConcurrencyTest, UserFilesLoadTest, UserFilesModeValidatorTest, UserFileServicePR13Test, UserFileStorageAdminTest, S3CompatibleUserFileStorageTest, LocalDiskUserFileStorageTest, UserFileStorageFactoryTest, S3ExtraOptionsTest, UserFileLifecycleServiceTest, UserFileReconcileServiceTest, UserFileSweepServiceTest, UserFileAuditServiceTest, UserFilesHealthServiceTest, VirtualPathTest, RecomputeUsageJobServiceTest, SecretCipherTest, UrlSafetyGuardTest, PemLoadersTest, WebUserAdminControllerReservationTest, UserFileRepoStubs, UserFileTestFixturesside-bar-manager.service.ts (+32), update.service.ts (+328), release-history.service.ts, user-file-admin.service.ts (+335), sharding.service.ts (+395), demo-chart-creator.service.ts (+216), sql-monaco-init.service.ts (+166)activity-manager.service.ts — New reopenLastClosedActivity(), requestNewActivity(), registerCommandPaletteItemsBuilder(), newActivityRequested$ subject; wired for the My Files and Sharding activitiesactivity-factory.service.ts — Updated for the new My Files and Sharding activitiesdemoMode threaded through every environment configmain.js, preload.js, and package.json bumped; package-lock.json regenerated (~2,700 lines)build-linux-repos.sh, setup-linux-repos.sh, merge-platform-yml.js, r2-list-packages.js, upload-cloudflare.jselectron-app/certs/memory-selector.html — Updated boot screen for the memory-selection dialogdark: style rules touched across the frontend for the light/dark polish passTABLE, PIVOT, or TREE charts.Release Date: May 20, 2026
This release lands the full SQL subsystem first introduced in v1.0.1542, plus a major extension that brings SQL databases and SQL dump files into the first-class import/export job pipeline (SOZO-1107). VisuaLeaf is now a true cross-engine data platform: MongoDB and PostgreSQL, MySQL/MariaDB, Microsoft SQL Server, Oracle, and SQLite can be browsed, queried, and exchanged through a unified job system, with 15 SQL activity types and a dedicated backend module (src-sql/).
sql-editor-activity) — Full SQL console with Ace/CodeMirror editors, multi-statement script splitting per dialect, live session state via SSE, and explain-plan visualizationsql-table-activity) — Spreadsheet-style table browsing and editing with row-edit modals, batch update/delete, and FK previewvisua-sql-query-activity) — Visual, no-code SQL query constructionsql-create-table-activity) — Visual table creation with column/constraint editorsql-table-info-activity) — Table schema, indexes, constraints, and DDL code viewersql-table-statistics-activity) — Row counts, storage, and distribution statssql-export-activity) — Export table/query results to multiple formatssql-manage-views-activity) — Create, edit, and drop database viewssql-manage-procedures-activity) — Stored procedure managementsql-manage-sequences-activity) — Sequence managementsql-user-management-activity) — Users, roles, and privilegessql-events-activity) — Scheduled event managementsql-system-monitor-activity) — Live system monitoring with per-dialect strategies (MSSQL, MySQL, Oracle, Postgres, fallback)sql-query-profiling-activity) — Query profiler with explain-plan parsingsql-server-build-info-activity) — Server version and build metadataSQL is now a first-class citizen in the job system used for dumps, restores, exports, transformations, and comparisons.
estimatedDocumentCount for size hints.sql file or one file per table/sql-dump-metadata endpoint scans a dump folder and surfaces table list, row counts, and dialect badges in the UI/sql-database-stats endpoint and per-table badges in the dump options UI; on-demand analyzefetchSize tuning, single-pass directory walksBsonDumpRestoreService and export enginesMongoDatabaseToSqlScript strategy now respects pause; collection progress guardedPending status as well#f4f6f4 to match the overlay; border extended under the overlay with box-shadow⌘ on macOS / Ctrl elsewhere now displayed consistently across modals (Getting Started, GridFS preview/zip/PDF, comparison results, job item table, export job list, section menu, keyboard shortcuts)defaultValue now saves correctly, debounced while typing, restricted to string types, with On Missing help text(0) for MongoDB users without dbStats privilegeInt / Double parsing for fields that vary by server version+0530)flex: 1 instead of calc(100vh) to cooperate with zoom transformsdevicePixelRatio: 1effectAllowed changed from link to all for Windows compatibilityauxclick (no drag interference)dark:bg-slate-50 → bg-slate-50)mousedown instead of click to prevent accidental close on drag-outprint output, rethrow errors, cleaner error messagescheck-path and create-directories endpoints for path validation~) expansion in directory listing and target file/folder pathssrc-sql/ module — Entire SQL subsystem in its own Gradle source set: connection manager, DDL service, metadata service, monitoring service, table service, DDL controller, editor controller, dashboard SSE controller, table controller, user management controller, monitoring controller, compare controller, and sync job controllersecurity.enabled now matches desktop-mode for consistent enforcementpackage.json; window config adjusted for 40px title bar; traffic-light position adjusted for custom title bar; resetMemorySettings IPC handler added; toggleDevTools removed from menu actionsExportEngineMongoToMongo instead of AbstractExportEngineMongoDatabaseTypeTest, JdbcDriverLoaderServiceTest, SqlConnectionManagerTest, SqlDbConnectionConfigTest, SqlTableServiceTest, MySqlMonitoringStrategyTest), plus new tests for ChartConfigValidatorTest, MongoDocumentMapperTest, SqlDialectTestsql-ace-editor, sql-codemirror-editor, sql-connection-form, sql-connection-list, sql-connection-info-dialog, sql-table-tree-view, sql-table-cell, sql-table-view-draggable, sql-query-builder, sql-query-explain (with per-dialect parsers), sql-row-edit-modal, sql-batch-update-modal, sql-batch-delete-modal, sql-fk-preview-modal, sql-user-management-containerSqlDump → MongoDatabase was prototyped and removed before release to keep the matrix focused on the supported cross-engine paths.================================================================================
NEW FEATURES
================================================================================
MONGODB SYNC (FULL FEATURE)
New MongoDB-to-MongoDB sync engine with change stream watching, polling
fallback, and oplog window checking
Create, start, pause, resume, and stop sync jobs with full lifecycle
control
Live sync progress tracking via SSE with metrics collection (documents
synced, lag, throughput)
Bulk initial data sync with progress tracking before switching to live
change stream replication
Define field-level transformations during sync with a dedicated
transformation editor component
Failed documents are captured in a dead letter queue for inspection
and retry
Automatic heartbeat scheduling to detect stalled sync jobs
Full audit trail of sync operations for debugging and compliance
MongoSync, MongoSyncList, and MongoSyncMonitor activities with
dedicated UI components
SQL DATABASE CONNECTIVITY
New SQL driver controller and loader service with support for
PostgreSQL, MariaDB, MSSQL, and Oracle
Platform-specific JDBC driver manifests for dynamic driver loading
Enhanced SQL connections dialog with improved configuration UI
SUBSCRIPTION & LICENSE MANAGEMENT
New modal warns users when their trial period is about to expire
Unified expiration modal for all license statuses replacing the
forced-logout dialog
Enhanced license service with better expiration detection logic
================================================================================
IMPROVEMENTS
================================================================================
PERFORMANCE
Clear old tableUtils/shadowTable instances before creating new ones,
preventing memory buildup
Clear old data before fetching new page to prevent memory accumulation
JSON SCHEMA EDITOR
Updated JSON schema line component with improved styling and additional
editing capabilities
Updated mongo-schema-viewer activity with enhanced layout
EXPORT
File extension now correctly updates when switching export target type
COLLECTION VIEW
Updated collection compare component with additional comparison options
Enhanced collection selector with better filtering
Looking for the latest version?
Go to Downloads