# myflames 3.3.2 (2026-11-05)

myflames 3.3.2 is available for macOS on Apple Silicon and, as an unsigned preview, for Windows x64.

## Release highlights

- **Readyset** shows caches, query counts and latency percentiles for Readyset instances, and makes reviewed cache and runtime changes.
- **File transfer** moves files between this computer and your servers over SSH and SFTP.
- The Query editor explains a statement without running it, in Table, Tree or JSON format.

## New features

- Adds a **Readyset** place in the sidebar, after ProxySQL. It inspects Readyset instances through their SQL and admin ports (default 3307 and 6036): shallow and deep caches, cached versus upstream query counts, latency percentiles up to P99.9, shallow cache hit rates, background refreshes, proxied queries with support verdicts, replicated base tables, client sessions and replication lag.
- Adds reviewed Readyset changes. Creating, dropping and flushing caches, `ALTER READYSET` runtime settings, base-table recovery (`RESNAPSHOT TABLE`, stopping and starting replication) and the admin-only `SHUTDOWN` go through the exact SQL review, policy gates and the Audit log, with a dry-run `EXPLAIN CREATE CACHE` before a cache is created.
- Adds topology views across Readyset, ProxySQL, Replication and Cluster. Saved ProxySQL, Readyset and MySQL or MariaDB servers, replicas and clusters appear in one picture, including ProxySQL rules that route or mirror to Readyset, and you can switch between a tier's saved connections.
- Adds **File transfer**, a place in the sidebar after Tuning for moving logs, dumps and configuration files between this computer and your servers over SSH/SFTP. Saved SSH connections sit on the left, with a **This computer** pane and a server pane side by side and a Transfers panel below. It does not use the database connection in use.
- Adds saved SSH connections for File transfer. They sign in with the SSH agent or `~/.ssh/config`, a key file with an optional passphrase, or a password. The first connection to a server shows its host key fingerprints before **Trust and connect**. Trusted keys go to myflames' own `ssh_known_hosts` file, and a server whose key changed is refused with the file and line of the trusted key.
- Adds background transfers to File transfer. Transfers handle folders, ask before replacing existing files, and run in the background with progress, rate and time left, with **Cancel** and **Retry**. Drag rows between the panes, or drop files and folders from the Finder onto the server pane.
- Adds **Explain** to the Query editor. It runs `EXPLAIN` on the statement as written, without running it, so an `UPDATE` or `DELETE` can be explained on any connection. The **Explain format** menu picks **Table**, **Tree** (MySQL 8.0.16 and later) or **JSON**, and the answer opens in an **Explain** results tab.
- Adds **Run in this tab's session** when a plan capture fails because the query needs the tab's session, for example a temporary table, a user variable or a prepared statement. The plan is captured on the session the tab already has open and is marked "Captured in the tab's session".

## Improvements

- The workspace restores your previous session quietly, and **Start fresh** moved into Settings with a confirmation.
- Error and note banners (query errors, session notes, configuration notices) have a close button.
- Replication and cluster topologies are drawn with depth, with nodes you can select and motion controls that respect the system's reduced-motion setting.
- In Maintenance, each task has one button named for it (**Start dump…**, **Start restore…**, **Start clone…**) that runs its checks first, a failed check names a next step, and the output folder is pre-filled with a dated name that does not exist yet.
- **Refresh all** moved into the menu beside each view's Refresh, and the database and table pickers now say **Reload databases** and **Reload tables**.
- The documentation has a user handbook, also published on the myflames website.

## Bug fixes

- Fixed an issue where a `SHOW` statement with a subquery in its `WHERE` clause (such as `SHOW TABLES WHERE GET_LOCK(...)`) and `HANDLER ... READ` were treated as unconditional reads, bypassing the write policy's function and subquery checks. They now go through the same review as `SELECT`, and `GET DIAGNOSTICS` is no longer treated as read-only.
- Fixed an issue where `EXPLAIN` and `DESCRIBE` counted as a plain read even when the explained statement takes a named lock, assigns a user variable, advances a sequence, uses a locking clause or calls an unverified function, parts the server can evaluate while it plans. Such statements now get the same review as under **Run**, and a read-only connection refuses them.
- Fixed several plan display issues: an unusual `EXPLAIN` tree no longer crashes plan parsing, the bar chart no longer draws past its frame, the Digest vitals no longer show a missing value when a plan's total time is exactly 0 ms, and CREATE INDEX suggestions quote schema and table names that need it.

## Security fixes

- Every MySQL client that myflames starts passes `--local-infile=0`, so a hostile or compromised server cannot make the client read a local file and send it over (`LOAD DATA LOCAL INFILE` abuse).

## Known issues

- On Windows, File transfer cannot upload or download yet, and its buttons say so.

## Additional resources

- Download the latest myflames from [myflames.io](https://myflames.io/download.html). Version 3.3.2 was not published as a separate download. Its changes ship in 3.3.3
- New to myflames? Start with the [Quickstart](https://myflames.io/docs.html?article=quickstart)
- Report a problem or ask for a feature on [GitHub Issues](https://github.com/vgrippa/myflames/issues)

Inspired by [Brendan Gregg's FlameGraph](https://github.com/brendangregg/FlameGraph) and [Tanel Poder's SQL Plan FlameGraphs](https://tanelpoder.com/posts/visualizing-sql-plan-execution-time-with-flamegraphs/).
