VisuaLeaf v1.0.2361 Release Notes
Release Date: September 22 2026
Covers 1.0.2355 – 1.0.2361.
Headline: $lookup Joins With let and pipeline Now Run
If you wrote a $lookup with let and pipeline, VisuaLeaf would not run it. MongoDB rejected
the stage as invalid — even though the exact same pipeline worked in Mongosh, Compass and Studio 3T,
and even though VisuaLeaf's own Query Code tab showed it back to you correctly. This release fixes
that, and adds proper builder support for those joins so you don't have to hand-write them at all.
Also shipping: an experimental MCP server that lets an AI assistant drive the app, and a round of
licensing fixes that end the wrong padlocks and the hourly pop-up.
Correlated $lookup Is Fixed
Only the plain four-key join — from, localField, foreignField, as — ever reached the server.
Anything else you put in a $lookup was quietly dropped on the way out.
- A
$lookupwithletandpipelinenow runs. Previously the stage was stripped down to - The error was especially confusing because the Query Code tab was right. It showed the pipeline
- Anything else you put in a
$lookupsurvives too — the stage is now passed through as written
from and as before being sent, and MongoDB refused it with *"$lookup requires either 'pipeline'
or both 'localField' and 'foreignField' to be specified."* Valid syntax, reported as invalid.
you actually wrote, so there was no way to see that something different was being sent.
rather than rebuilt from a fixed list of keys.
Correlated Joins in the Aggregation Builder
$lookup used to mean one thing in the builder: match a local field against a foreign field. Anything
more — filtering the joined side, joining on two fields, comparing values across the join — meant
dropping out to raw JSON.
What you can do
- Add let variables. Expose fields from your source collection to the joined side and read them
- Add a sub-pipeline. Write stages that run on the joined collection — filter it, sort it, limit
- Join on more than equality. With a sub-pipeline in play, Local Field and Foreign Field become
- Combine both with a plain field join, the way MongoDB 5.0 and later allow.
- See mistakes as you type — malformed let or pipeline JSON is flagged inline instead of failing
there as $$variable.
it, reshape it — with field autocomplete drawn from the joined collection, not the source one.
optional and are labelled as such, so a join driven purely by an expression is a first-class option
rather than a workaround.
when you run the stage.
AI Assistant Control (MCP) — Experimental
VisuaLeaf now speaks MCP, the protocol assistants like Claude use to work with an application. Rather
than describing your data to an assistant, you let it open the panel and look.
This is experimental. It is a first release, the tool set and the permission groups will change,
and we'd rather you try it on work you can afford to redo than on anything critical. Feedback is very
welcome.
What you can see
- A new MCP tab in Settings with one switch. It says Running or Off, how many calls have been
- The address, the token, and a ready-made client configuration — all three copyable, with a
- A permanent MCP indicator in the status bar. Dim when off, normal when on, and it pulses while
- An "Allowed access" list of seven groups — UI navigation, read data, connections, tasks (read),
made, and how many windows are connected.
Copy for Claude button that hands over a block you can paste straight into your assistant's
config. The token is hidden behind an eye toggle until you want to see it.
the assistant is actually doing something — so you can see a tool running rather than wondering why
a panel just changed. Click it to switch the server on or off from anywhere in the app.
tasks (modify), charts, and files — each showing what it covers and how many tools it contains.
What you can do
- Ask your assistant to open things. SQL panels, collection panels, charts, tasks — in the main
- Ask it to run a query and tell you what came back. It can run a panel, read the rows, and cancel
- Let it work with your connections. Both MongoDB and SQL connections are visible to it; it can
- Let it manage scheduled work. List, open, create, edit, chain, schedule and delete tasks and
- Let it build and run charts, and read files from your storage.
- Switch any group off on its own. "Drive my panels" and "delete my tasks" are separate decisions
- Turn the whole thing off instantly. No restart. One click in the status bar or Settings and no
window or a popout — then focus, move, or close them.
a query that is taking too long.
list them, see which have an open session, connect one on demand, and list databases.
task folders, and check the run queue.
— a group you switch off disappears from the assistant's tool list entirely, and if it tries anyway
it is refused with the name of the switch you'd need to turn on.
client can connect.
Worth knowing
- Nothing is written to disk until you switch it on for the first time — an install that never
- The assistant cannot grant itself more access, and it cannot stop you switching it off.
- In server mode, an assistant can only touch tasks and charts belonging to the account it is acting
enables MCP never has a token file at all.
as — it can't delete a colleague's work.
Licensing Fixes
For anyone on a free or lapsed plan, the app had started to look broken — greyed-out tiles, padlocked
sidebar icons, and a dialog reappearing every hour. That's fixed.
- Community Edition works again. When a paid plan or trial ends you drop to the free tier, and the
- Settings is always reachable — it used to lock when no licence could be read, which is exactly
- The subscription-expired dialog appears once, not every hour.
- Changing your computer's clock no longer costs you your licence.
- Trials end when they should — a lapsed trial no longer keeps its Professional features.
- Refresh License in the activation dialog, for a plan bought or renewed on the website.
- The License Changed dialog reads correctly in light mode.
features it includes are genuinely unlocked.
when you need it, since activation and the offline options live inside it.
Improvements
Workspaces & Tabs
- Popping a tab out and dragging it back no longer quietly breaks saving. A returned tab could put
the whole window's workspace into a state where nothing was saved from then on — while the app still
reported All changes saved — and every tab in that window was lost on the next reload.
Notes
- MCP is experimental in this release. The tools it offers and the permission groups are likely to
- MCP is a desktop feature and appears in Settings only on the desktop app. It is off by default;
- Anyone holding your MCP token can drive that window. Treat it like a password, and switch the server
change in future versions.
nothing is exposed until you turn it on.
off when you're not using it.