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, andTREEchart 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+Trestores 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
⌘/Ctrlto 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, andFeature.USER_FILESfeature 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 andUrlSafetyGuard(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
extraOptionsintoPutObjectand moved usage recomputation to an async background job - Storage admin (SOZO-1237) —
StorageBackendAdminService, admin endpoints, destructive backend-switch flow, andUserFileReconcileService - Health monitoring (SOZO-1238) —
UserFilesHealthServiceand/healthendpoint 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
demoModeenv flag toggles the "Back to visualeaf.com" link - User-file admin service — New
core/services/file/user-file-admin.service.ts - Design docs —
docs/VIRTUAL_FOLDER_PLAN.mdanddocs/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 activity —
sharding-activity(403-line component) with shard/chunk visualization - Cluster overview dashboard —
cluster-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 docs —
docs/sharding-feature-plan.htmlanddocs/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 types —
TABLE,PIVOT, andTREEadded toChartType;tableConfigadded toChartConfig - Column config —
TableColumnConfig.pinnedandChartTableConfig.filters - Cell templates —
TableColumnConfig.transformfield 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 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 underrelease-note/- Electron
main.js(+303 lines) — Auto-update wiring - Cloudflare uploader —
upload-cloudflare.js(+323 lines) andr2-list-packages.jspublish releases to R2 - Linux repo distribution —
build-linux-repos.sh,setup-linux-repos.sh,LINUX-REPO-USER-DOCS.md, and signed APT/DNF keyrings shipped underelectron-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), andDemoExceptionsDemoControllerREST endpoints for seeding and resetting demo data
Frontend
demo-chart-creator.service.ts(216 lines) — Programmatic chart creation for demosdemo-chart-folder-dialog— Pick where seeded demo charts landdemoModeenv flag threaded throughenvironment.web-local.ts,environment.web-stg.ts,environment.prod.ts, and the electron envs
MongoDB Connectivity
- Atlas SSH tunnel fix —
SshTunnelManager(259 lines changed) and newJschSocks5Server(213 lines) bridge JSch through a local SOCKS5 proxy so Atlas SRV/DNS-seedlist connections work over SSH; documented indocs/ATLAS_SSH_TUNNEL_FIX.md - PEM utilities — New backend
PemLoaders(162 lines) with tests (156 lines) and FEpem-utils.tsfor TLS cert handling across mixed input formats - BulkOp (268 lines) — New batched mongosh operation support under
com.mongodb.mongosh.service - GridFS —
GridFSService(+268),GridFSController(+259), and FEgridfs.service(+136) - Mongo shell session —
MongoShellSessionServiceupdates (+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) —
Ctrlinstead 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 configUserFileTransactionalOps(659 lines) — Transactional wrapper for cross-document user-file mutationsUserFileStorageFactory(163 lines) — SwapsLocalDiskvsS3Compatibleat runtime- User-file repository seam —
SzUserFileMongoDBRepositoryService(+146) with adjustments toSzGridFsUploadSessionMongoDBRepositoryServiceandSzUploadSessionMongoDBRepositoryService - ArchUnit —
UserFileSafetyRulesTest(412 lines) enforces production isolation of the user-files module SecurityConfigandJwtAuthenticationFilter— Updated after the license-filter removal- Test additions —
UserFileServiceIntegrationTest,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 services —
side-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— NewreopenLastClosedActivity(),requestNewActivity(),registerCommandPaletteItemsBuilder(),newActivityRequested$subject; wired for the My Files and Sharding activitiesactivity-factory.service.ts— Updated for the new My Files and Sharding activities- New environment flag —
demoModethreaded through every environment config
Electron & Distribution
- Electron
main.js,preload.js, andpackage.jsonbumped;package-lock.jsonregenerated (~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, orTREEcharts. - If a saved Schema Diagram looks off-center after upgrade, "Reset Zoom" will re-center it under the new pan model.