# myflames 3.0.0 (2026-10-16)

myflames 3.0.0 is available as a Python package (Python 3.7 or later) with a local workspace that runs in the browser.

## Release highlights

- The workspace gains a Query editor with real server sessions, transactions and write policies, and every change is recorded in a local Audit log.
- Live Server views cover Health, InnoDB, Top statements, Sessions, Locks, Waits, I/O, Tables, Indexes, Configuration and Instruments, with a ranked Full analysis.
- Replication, Maintenance (upgrade check, dump, restore and clone), Users and roles and Database diagram arrive in the workspace.
- myflames is licensed under the Apache License 2.0 from this version on.

## New features

- Adds the **Query editor**. Each tab keeps its server session, so session variables, temporary tables and open transactions survive between runs. Run the current statement or a selection, stop a running query, and read each result and the server's messages in its own tab.
- Adds write policies for connections (**Production**, **Development** and **Read-only**) and an **Audit log** under **Settings**. Every write is classified before it runs, needs confirmation on Production, and is recorded with passwords removed.
- Adds live **Server** views for **Health**, **InnoDB**, **Waits**, **I/O**, **Locks** and **Sessions**: status changes over time, buffer pool and redo log activity, deadlocks, open transactions and lock blockers, with **Kill** for a blocking session.
- Adds **Top statements**, which reads the Performance Schema statement digests with filters for full scans, full joins, missing indexes and specific tables, and runs `EXPLAIN` from a digest.
- Adds **Tables** and **Indexes**, with a database picker, storage engine totals and checks for missing primary keys and free space. Findings in Health and Indexes link to the matching statements in Top statements.
- Adds **Configuration** for changing variables with `SET GLOBAL`, `SET PERSIST`, `SET PERSIST_ONLY` or `SET SESSION`, and **Instruments** with Performance Schema presets.
- Adds **Full analysis**, which combines the Server views into ranked findings with SQL to copy, and **Refresh all** (`⌥⌘R`), which reloads the open views.
- Adds **Database diagram**, drawn from a live connection or from imported SQL, Mermaid or JSON, with JSON, SQL, Mermaid and SVG export.
- Adds **Replication**, which shows replication channels and can skip one failed transaction or run a bounded skip loop over several errors.
- Adds **Maintenance**, which finds installed client tools and runs upgrade checks, logical dumps, restores and `CLONE INSTANCE`.
- Adds **Users and roles** for MySQL and MariaDB accounts, roles and grants, with every change applied in one reviewed batch.
- Adds duplicate and multi-select delete for connections on **Home**.
- Adds plan advisor rules for large differences between estimated and actual rows (with `ANALYZE TABLE` and histogram suggestions), redundant indexes that repeat another index's leading columns, and scans of a cold buffer pool.

## Improvements

- **Home** is rebuilt around a table of connections with a details panel, one **Recent work** list and **Import plan** in the top bar, which also accepts a dropped file.
- **Server** views are grouped into **Overview**, **Workload**, **Contention**, **Schema**, **Setup** and **Security**. Server tables have resizable columns, a **Columns** menu, saved column layouts and one auto-refresh control.
- A status bar in Plans, the Query editor and Server shows the connection, engine, session and transaction state, the last run's time and row count.
- The workspace follows the system's dark appearance, including the charts, **Compare** and the **Audit log**.
- Actions the account has no privilege for are disabled, with a tooltip that says which privilege is missing.
- **Visual Explain** fits wide plans between 75% and 100% zoom, and **Compare** stacks its two plans on narrow screens.
- Dialogs and panels keep keyboard focus inside them and give it back on `Escape`, and tables and schema trees have context menus (right-click or `Shift+F10`).

## Bug fixes

- Fixed an issue where `DROP DATABASE` and `DROP SCHEMA` ran without typing the database name to confirm. `ALTER TABLE` reviews show the table size, metadata locks and open transactions, and set a 5-second `lock_wait_timeout`.
- Fixed an issue where Restore started before checking the target database settings. A bad target is refused before anything is restored.
- Fixed an issue where parallel **Full analysis** reads could fail.
- Fixed an issue where non-ASCII names and values came back as `?` or in the wrong character set, depending on the computer's locale. Every connection uses `utf8mb4`.
- Fixed an issue where flame graphs rounded times to milliseconds, so operators faster than 1 ms disappeared.
- Fixed several plan parsing issues for MySQL and MariaDB: subqueries and CTEs that dropped out of the plan tree, MariaDB derived tables counted twice, and index advice that named an alias instead of the table.
- Fixed an issue where a replication skip loop stopped at error 3030 instead of skipping the failure behind it, or stopped when some Performance Schema instruments were off.
- Fixed wrong MariaDB privilege mappings for `SUPER` and `READ_ONLY ADMIN` between MariaDB 10.11 and 11.0, and grant parsing that lost database names with wildcards. Account changes refuse to run if the account changed after you reviewed them.
- Fixed an issue where **Locks** listed queued waiters ahead of the sessions that held the locks.
- Fixed an issue where **Top statements** missed executions beyond the digest table's limit and listed myflames' own queries.
- Fixed Health and Configuration thresholds so redo checkpoint warnings match where the server starts forced flushing, and MariaDB's `innodb_flush_log_at_trx_commit=3` counts as durable.
- Fixed read-only plan capture so `SELECT SLEEP()`, `UUID()` and `UUID_SHORT()` are allowed and `SELECT ... FOR SHARE` is refused like `FOR UPDATE`.
- Fixed an issue where switching connections moved Server reports, Top statements results or editor tabs to the new server, or where an older Sessions or Locks read replaced a newer one.
- Fixed an issue where Query editor edits could be overwritten by an older autosave.
- Fixed layout and focus problems in inspectors and on narrow screens, and stale **Compare** results after a new comparison failed.

## Security fixes

- The local workspace uses a one-time launch token and a session cookie instead of a fixed token in the page, and both expire when the workspace restarts.
- Database client calls ignore environment variables, option files and login paths from the system, and saved passwords are tied to the exact host, port, user and TLS settings they were saved with.
- Server writes, `KILL`, replication skips and maintenance jobs need a single-use review token and check the connection's write policy again before they run.
- Read-only plan capture refuses administrative functions and SQL whose backslash escaping is ambiguous.
- Editor drafts, history and grant views hide passwords, hashes and authentication secrets.
- The workspace's database and password vault files must be private to your user, restore refuses paths outside the dump folder, and text from the server is shown without terminal control characters.

## Deprecations and removals

- The treemap plan view is deprecated and shows the bar chart instead.

## Packaging notes

- myflames is licensed under the Apache License 2.0 (`LICENSE` and `NOTICE`), after a clean-room rewrite of the flame graph renderers. Releases up to 2.3.0 stay under CDDL 1.0, and the credit to Brendan Gregg's FlameGraph and Tanel Poder's SQL Plan FlameGraphs is unchanged.

## Additional resources

- Download the latest myflames from [myflames.io](https://myflames.io/download.html). Version 3.0.0 was not published as a separate download. Its changes ship in 3.1.0
- 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/).
