Start Pro Trial

VisuaLeaf v1.0.1901 Release Notes

July 9, 2026

VisuaLeaf v1.0.1901 Release Notes

Release Date: July 8, 2026


Headline: Quality-of-Life Refresh — Command Palette, 10× Faster Table View, Schema-Diagram Overhaul, Full Light/Dark Polish

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:

  • My Files (SOZO-1228 → SOZO-1241) — end-to-end user-file system with local-disk and S3/R2-compatible storage backends, admin auditing, health monitoring, soft-delete lifecycle, and an SSRF/DNS-pinning security layer.
  • MongoDB Sharding BETA — full sharding activity with a cluster-overview dashboard, shard-collection dialog, and a shard-key advisor backed by a new ShardingService / ShardKeyAdvisorService.
  • Tables as first-class Charts (SOZO-1146) — standalone Table system removed and re-introduced as 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.


Command Palette, Keyboard Shortcuts & Tab Management

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.

Command palette (⌘/Ctrl+K)

  • Global fuzzy search — one keystroke opens a search-anything box across activities, connections, and commands
  • Categorized results — grouped by section so you can scan or scroll
  • Inline action chips — right-side quick actions on each row (e.g. Documents | Aggregator | Indexes …) so you can jump straight to a sub-view
  • Same picker on the "+" button — the split-panel + opens a Blank tab with the same palette content, so you can pick a new activity without losing your current layout
  • Extensible — any part of the app can contribute items into the palette

Keyboard shortcuts modal (keyboard-shortcuts-modal)

Full catalog surfaced through the palette and Help menu, with per-platform modifier rendering ( on macOS, Ctrl elsewhere):

  • Tabs & Panels — Close current tab (⌘/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)
  • Navigation — Command palette / global search (⌘/Ctrl+K), new connection (⌘/Ctrl+N)
  • View — Zoom in / out / reset (⌘/Ctrl + +, ⌘/Ctrl + -, ⌘/Ctrl + 0)
  • Modals & Dialogs — Close modal / dialog (Esc)
  • Table View — Navigation — Move cell, PgUp/PgDn, extend selection (Shift + Arrows), select all rows (⌘/Ctrl+A), clear selection (Esc), refresh (⌘/Ctrl+R)
  • Tree View — Navigation — Move row, Alt+→ expand, Alt+← collapse, extend selection, select all, refresh document (⌘/Ctrl+Shift+R)

Reopen last closed tab

  • ⌘/Ctrl+Shift+T restores the most recently closed tab — closed a tab by mistake? Just pop it back
  • Works with the tab close button too, so nothing is ever really lost

SQL Table View — ~10× Faster

The 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.


Schema Diagram Overhaul

The Schema Diagram got a top-to-bottom rewrite focused on making pan, zoom, and navigation feel silky, and on making exports actually useful.

Pan & zoom

  • Smoother pan and zoom — Pan is now translate-based instead of scroll-based, so panning and zooming stay locked together at any scale and the minimap always agrees with the main canvas
  • Pan-by-default — Click-and-drag now pans; hold ⌘/Ctrl to temporarily switch mode
  • Snappier minimap — Dragging the minimap rectangle no longer stalls the canvas, and moving between large schemas stays 60 fps
  • Cleaner zoom-to-center — Zoom in/out keeps whatever you were looking at in the center of the viewport
  • Auto-migration — Older saved schemas that used the old pan model are migrated on load; if a schema looks off-center after upgrade, "Reset Zoom" re-centers it

Infinite background pattern

  • New infinite grid background — Replaces the old fixed background with a tiled pattern that scrolls and scales with the canvas
  • Theme-aware — Background color follows light/dark mode live, so it never flickers or mismatches the diagram

Better HTML export

  • Field-hover relations — Hovering a field in an exported HTML schema now highlights every field on the other side of any relationship, with a floating tooltip showing type, related peers, and cardinality (N → 1, 1 ← N)
  • Connection lines light up — Any relationships touching the hovered field render in an elevated style so you can trace them at a glance

Connection picker

  • Rebuilt connection selector — Cleaner flow for attaching a connection to a schema
  • New connection picker — Shared picker used from the schema, the split-panel + button, and the command palette

Bug fixes

  • Fixed minimap rectangle getting stuck when a schema was opened empty and then gained its first collection
  • Fixed background pattern flickering on light/dark toggle
  • Fixed pan drift when resetting zoom mid-drag
  • Fixed HTML export losing hover interactivity in Safari

Light / Dark Mode & UI Polish

A sweeping visual pass: thousands of style rules retouched so both themes finally feel consistent and polished, plus a general modernization of the visual language.

  • Modal fade in / out — Every modal now fades in on open and fades out on close, and blocks input mid-leave so you can't accidentally click through a closing dialog
  • Mongo Sync — Big visual refresh to the setup and monitor views; cleaner headers, better spacing, new sync signature accent
  • Aggregation pipeline — Stage palette, stage preview, and work panel look consistent in both themes
  • Chart builder — New Format Chart modal that unifies title, subtitle, and axis-label editing in one place
  • Comparison sessions — Session list and results reworked for dark mode
  • Feedback modal — Larger, restyled feedback surface
  • Database collection stats — Restyled cards and dark-mode badges
  • Task canvas — Export job task canvas visual refresh
  • File explorer — Theme-aware header, buttons, and empty states
  • Welcome / intro — Cleaner welcome screen and intro flow
  • Update banner — Theme-aware update prompt
  • Schema diagram — Collection cards, inline editors, and the diagram background all follow the current theme in real time

My Files & User File Storage (SOZO-1228 → SOZO-1241)

A new per-user file workspace with a pluggable storage backend, admin controls, auditing, and lifecycle sweeps.

Backend

  • Foundation (SOZO-1230) — Models, VirtualPath, LocalDiskUserFileStorage, and ArchUnit rules (UserFileSafetyRulesTest) enforcing production isolation
  • Resolver wiring (SOZO-1231) — Temp-file unification and ArchUnit production enforcement across the resolver seam
  • Service layer (SOZO-1232)UserFileService (1391 lines), controllers, sweeps, and Feature.USER_FILES feature gate; system-override layer implemented (stale docstring corrected in SOZO-1232)
  • MyFiles activity subtype (SOZO-1229) — Registered for workspace persistence
  • Startup guard (SOZO-1229) — Fail-fast: web mode requires a MongoDB replica set; enforced only when the user-files feature is configured
  • Security (SOZO-1235)SecretCipher (AES-GCM-256) for at-rest credential encryption and UrlSafetyGuard (SSRF + DNS-pinning) for outbound URL validation
  • S3/R2 storage backend (SOZO-1236)S3CompatibleUserFileStorage (622 lines) with factory swap between local disk and S3-compatible object stores
  • S3 extraOptions + async recompute-usage (SOZO-1240) — Wired extraOptions into PutObject and moved usage recomputation to an async background job
  • Storage admin (SOZO-1237)StorageBackendAdminService, admin endpoints, destructive backend-switch flow, and UserFileReconcileService
  • Health monitoring (SOZO-1238)UserFilesHealthService and /health endpoint for the local-disk backend
  • Lifecycle (SOZO-1239) — Soft-delete window for user files, username reservation, and hard-delete sweep (UserFileSweepService, UserFileLifecycleService)
  • Audit + operator runbook (SOZO-1241)UserFileAuditService, admin audit log, docs/USER_FILES_RUNBOOK.md, and load tests
  • Epic close (SOZO-1229) — S3 export-staging seam, secrets fail-fast, and stale-TODO cleanup

Frontend

  • My Files activity (SOZO-1234)my-files-activity (2261-line component) with file explorer, workspace activity integration, and admin user-files panels
  • Virtual folder service (SOZO-1233) — Mode-aware service facade, stale-path warning, and path-mode-utils
  • Admin storage backend (SOZO-1238 FE) — Admin storage backend card, destructive-switch confirmation modal, and monitoring banner
  • Admin audit log (SOZO-1241 FE) — User-files admin audit log tab with CSV export
  • Demo-mode gating (SOZO-1229) — New demoMode env flag toggles the "Back to visualeaf.com" link
  • User-file admin service — New core/services/file/user-file-admin.service.ts
  • Design docsdocs/VIRTUAL_FOLDER_PLAN.md and docs/replica-set-management-plan.md

Test coverage

~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.


MongoDB Sharding BETA

End-to-end sharding activity for browsing, planning, and applying shard configuration on live MongoDB clusters.

Frontend

  • Sharding activitysharding-activity (403-line component) with shard/chunk visualization
  • Cluster overview dashboardcluster-overview.component (707 + 575 lines) covering shards, chunks, balancer, and database placement
  • Shard collection dialog (439 lines) — Guided shard-collection flow with key preview
  • Shard key advisor (129 + 164 lines) — Advisor UI wired to the backend service
  • sharding.service.ts (395 lines) — Client for the new controller
  • Design docsdocs/sharding-feature-plan.html and docs/docker/shard/test-case.md

Tables as first-class Charts (SOZO-1146)

The 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.

Backend

  • /api/tables — New backend module (model + repo + service + controller)
  • Chart typesTABLE, PIVOT, and TREE added to ChartType; tableConfig added to ChartConfig
  • Column configTableColumnConfig.pinned and ChartTableConfig.filters
  • Cell templatesTableColumnConfig.transform field for cell-value templates
  • Cleanup — Standalone Table system removed on the backend

Frontend (data-grid Phase 1 → 5)

  • Phase 1 — Virtualized rendering, sticky header, and row numbers
  • Phase 2 — Selection, keyboard navigation, and Ctrl+C TSV copy
  • Phase 3 — Header and cell context menus
  • Phase 4 — Per-column filters with persistence
  • Phase 5 — Sticky pinned columns
  • Column controls — Show/hide, rename, transform, and format
  • Currency formats — Expanded to all ISO 4217 codes
  • Widget scaffold — Table library, builder, and save dialog landed as a UI slice; Playwright spec and docs added
  • Cleanup — Standalone Table system removed on the frontend
  • Fix — Table builder template no longer allows arrow functions in expressions

In-App Release Notes & Auto-Update

A 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 upgrade
  • release-history-modal (472 lines) — Browsable history of prior releases
  • update-banner (308 lines) — Non-blocking update prompt
  • update.service.ts (328 lines) — Check/download/apply update lifecycle
  • release-history.service.ts — Indexes files under release-note/
  • Electron main.js (+303 lines) — Auto-update wiring
  • Cloudflare uploaderupload-cloudflare.js (+323 lines) and r2-list-packages.js publish releases to R2
  • Linux repo distributionbuild-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 dialog

Demo Mode

Showcase-friendly runtime for demo clusters and public trials.

Backend

  • DemoDataSeeder (395 lines), DemoMongoService (190 lines), and DemoExceptions
  • DemoController REST endpoints for seeding and resetting demo data

Frontend

  • demo-chart-creator.service.ts (216 lines) — Programmatic chart creation for demos
  • demo-chart-folder-dialog — Pick where seeded demo charts land
  • demoMode env flag threaded through environment.web-local.ts, environment.web-stg.ts, environment.prod.ts, and the electron envs

MongoDB Connectivity

  • Atlas SSH tunnel fixSshTunnelManager (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.md
  • PEM utilities — New backend PemLoaders (162 lines) with tests (156 lines) and FE pem-utils.ts for TLS cert handling across mixed input formats
  • BulkOp (268 lines) — New batched mongosh operation support under com.mongodb.mongosh.service
  • GridFSGridFSService (+268), GridFSController (+259), and FE gridfs.service (+136)
  • Mongo shell sessionMongoShellSessionService updates (+128)
  • MongoConnectionManager — 375 lines reworked for Atlas, shard, and user-files scenarios

Accessibility & Platform Polish

  • Login form accessibility (SOZO-1148) — Accessible labels added to login form inputs
  • Platform modifier hints (SOZO-1151)Ctrl instead of on Windows/Linux in the My Files context menu
  • Sidebar layering fix (SOZO-1172) — Operation Details sidebar no longer hidden behind the Electron title bar
  • Modal consolidation (SOZO-1173) — Converted 7 inline modals in collection-mod to use modalService
  • Connection sidebar — Improved tree-view search matching in the connected list

Improvements

Modals & Dialogs

  • 7 inline modals in collection-mod converted to the shared modal service for consistency (SOZO-1173)
  • Confirmation modal added for the destructive admin storage-backend switch
  • Modal fade-in / fade-out animation applied globally
  • Command palette with keyboard navigation and inline action chips

Data Grid

  • Sticky pinned columns; per-column filters with persistence; virtualized rendering; keyboard navigation with Ctrl+C TSV copy; header + cell context menus; expanded ISO 4217 currency formatting

SQL Editor

  • Monaco SQL editor gets richer syntax handling, type definitions, and inline icons for a nicer SQL editing experience

Chart Model

  • Chart model refreshed for the new TABLE / PIVOT / TREE chart types, with grid state now preserved across tab switches

Infrastructure

Backend

  • UserFilesModeValidator (218 lines) — Startup-time consistency check between deployment mode and user-files config
  • UserFileTransactionalOps (659 lines) — Transactional wrapper for cross-document user-file mutations
  • UserFileStorageFactory (163 lines) — Swaps LocalDisk vs S3Compatible at runtime
  • User-file repository seamSzUserFileMongoDBRepositoryService (+146) with adjustments to SzGridFsUploadSessionMongoDBRepositoryService and SzUploadSessionMongoDBRepositoryService
  • ArchUnitUserFileSafetyRulesTest (412 lines) enforces production isolation of the user-files module
  • SecurityConfig and JwtAuthenticationFilter — Updated after the license-filter removal
  • Test additionsUserFileServiceIntegrationTest, UserFileAdminControllerIntegrationTest, UserFileControllerIntegrationTest, UserFileServiceConcurrencyTest, UserFilesLoadTest, UserFilesModeValidatorTest, UserFileServicePR13Test, UserFileStorageAdminTest, S3CompatibleUserFileStorageTest, LocalDiskUserFileStorageTest, UserFileStorageFactoryTest, S3ExtraOptionsTest, UserFileLifecycleServiceTest, UserFileReconcileServiceTest, UserFileSweepServiceTest, UserFileAuditServiceTest, UserFilesHealthServiceTest, VirtualPathTest, RecomputeUsageJobServiceTest, SecretCipherTest, UrlSafetyGuardTest, PemLoadersTest, WebUserAdminControllerReservationTest, UserFileRepoStubs, UserFileTestFixtures

Frontend

  • 15+ new My Files, Sharding, Table-widget, and command-palette UI slices with matching activity models
  • New servicesside-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 activities
  • activity-factory.service.ts — Updated for the new My Files and Sharding activities
  • New environment flagdemoMode threaded through every environment config

Electron & Distribution

  • Electron main.js, preload.js, and package.json bumped; package-lock.json regenerated (~2,700 lines)
  • Linux repo publishing — build-linux-repos.sh, setup-linux-repos.sh, merge-platform-yml.js, r2-list-packages.js, upload-cloudflare.js
  • Signed APT/DNF keyrings — Shipped under electron-app/certs/
  • memory-selector.html — Updated boot screen for the memory-selection dialog

Diff scale

  • Frontend: 433 files changed, 43,880 insertions, 8,793 deletions (494 commits)
  • Backend: 193 files changed, 23,453 insertions, 2,884 deletions (281 commits)
  • ~5,600 dark: style rules touched across the frontend for the light/dark polish pass

Notes

  • The standalone Table system was fully removed as part of SOZO-1146; existing standalone tables must be re-created as TABLE, PIVOT, or TREE charts.
  • If a saved Schema Diagram looks off-center after upgrade, "Reset Zoom" will re-center it under the new pan model.

See the full release history