Skip to content

Releases: charles-001/dolphie

6.13.4

03 Mar 04:41

Choose a tag to compare

  • Fixed daemon mode to reconnect on connection error instead of exiting

6.13.3

28 Feb 02:50

Choose a tag to compare

Bug Fixes

  • Fix crash when toggling Group Replication panel: Resolved an AttributeError crash when pressing key 4 to toggle the Group Replication panel. The issue was caused by widget.parent being None when an async mount hadn't completed yet.
  • Added worker shutdown synchronization in disconnect_tab to prevent race conditions with shared state.

Improvements

  • Replication panel now displays all InnoDB clusters involved instead of just the node's cluster you're connected to

6.13.2

17 Feb 11:06

Choose a tag to compare

6.13.1

17 Feb 10:44

Choose a tag to compare

  • Added dedicated Galera Cluster panel section with per-node tables showing state, flow control, certification, and writeset metrics
  • MariaDB: Added support for Z command to show table sizes
  • Performance optimizations for managing tabs
  • Removed memory usage command (m key). I found this data to be wildly inaccurate and never used
  • Removed pfs_metrics from default daemon mode panels. It makes the replay log's size substantially larger and is of questionable value for most users. It can be re-enabled via config if desired.

6.13.0

16 Feb 10:31

Choose a tag to compare

This release includes significant performance optimizations across the board, a major overhaul of the replay system to reduce storage and improve navigation, and full GTID support for MariaDB replicas with errant transaction detection. You should notice that Dolphie overall feels smoother and faster.

Performance & Optimization

  • Refactored all panel files to use a unified DataTable update pattern: build row values once, then update changed cells or insert new rows, eliminating duplicated update-vs-insert logic
  • Panel mutations are now wrapped in batch_update() with sorting only triggered when data actually changes
  • Smart stale row removal: bulk clear() when removals exceed remaining rows
  • Extracted BaseProcesslistThread to eliminate duplicated formatting methods between MySQL and ProxySQL processlist classes
  • SHOW GLOBAL STATUS is now filtered to only needed variables instead of fetching all
  • Simplified tab reconnection by reusing existing tab instead of create-copy-remove cycle
  • Added division-by-zero guards for polling_latency calculations

Replay System

  • Added delta format for daemon mode metrics - stores only the latest value per cycle instead of full 10-minute history (~600x reduction per row). Replay plays should be significantly smaller with this change!
  • Zstd compressor/decompressor objects are now cached instead of recreated per call
  • Gap-safe backward navigation (seek_to_previous_id) using proper SQL queries instead of ID arithmetic
  • Large time gaps (e.g. daemon restart) are detected and the 10-minute rolling window is rebuilt instead of appending stale data

MariaDB GTID Support

  • Retrieved GTID and Executed GTID rows are displayed with color-highlighted primary server IDs, matching the MySQL GTID display format
  • Errant transaction detection for MariaDB replicas by comparing gtid_current_pos between replica and primary (analogous to MySQL's GTID_SUBTRACT())

MySQL Replication

  • Fixed errant transaction false positives in multi-source MySQL replication by excluding all replication source UUIDs (not just the primary's)

6.11.4

21 Jan 21:31

Choose a tag to compare

  • Fix rare crash due to worker threads directly updating UI elements which can be flaky

6.11.3

20 Jan 16:35

Choose a tag to compare

  • Fix to support Python 3.9

6.11.2

22 Dec 09:01

Choose a tag to compare

This release is largely a refactor aimed at improving code organization and long-term maintainability, with additional fixes for inefficiencies that should slightly improve overall performance.

Merry Christmas!

6.10.6

30 Oct 19:47

Choose a tag to compare

  • Fixed an issue where Dolphie could continue using 100% CPU after the terminal was closed without a proper exit (#101)

6.10.5

28 Oct 14:23

Choose a tag to compare

  • Removed treesitter dependency since it has issues with Python 3.9 (#110). It was only used for highlighting JSON syntax for Thread Screen so not much is lost