Added
- Comparisons button in the Compare & Sync toolbar, listing every saved comparison.
- Save Comparison… in the Compare & Sync toolbar and under Database > Compare.
- Select > All and Select > None in the structure results pane.
- Whole-schema index and table metadata reads on the driver protocol.
- Script that checks the SQLite whole-schema reads against the per-table ones.
- Middle-click on a tab to close it. (#2595)
- Text in Display As for binary columns. (#2599)
- Smart value detection for binary columns holding UTF-8 text. (#2599)
- Find covering binary columns that a display format renders as text. (#2599)
- Launch trace in Instruments' Points of Interest, and
TABLEPRO_LAUNCH_TRACE=1for the same table on standard error. - Identity File on SSH Agent connections, and
IdentitiesOnlyfrom~/.ssh/config. (#2601)
Changed
- Compare & Sync reads a whole schema in a few queries, and reads both sides at once.
- Data mode lists the tables both sides share as soon as a pair is chosen.
- Apply… builds the script when there is not one.
- Saved comparisons set both endpoints, and list whatever pair is on screen.
- Compare & Sync reopens on the source, target, mode and options it last held.
- Table collation on MySQL, previously never read.
- PluginKit ABI 20. Every registry plugin needs rebuilding before or with this release.
- Cold launch to a usable window, 470ms down to 260ms.
- Half-second grace before a connect, schema or query progress indicator appears, and a minimum time on screen.
- Window chrome stays put through a connect that finishes inside that grace, instead of collapsing and reopening.
- Plugin signature checks run after the first window rather than on the launch thread, at 13ms each.
- One gate in front of every path that loads a plugin's executable, enabling one included.
- Stale
cloudflaredandcloud-sql-proxycleanup waits for the process to exit before a connection reuses its port.
Fixed
- Generated column expressions missing from MySQL's whole-schema column read.
- Generated columns missing entirely from SQLite's whole-schema column read.
- PostgreSQL index reads matching a table name in every schema rather than the one asked for.
- Unreachable hazard allowances in the Apply sheet.
- Compare & Sync toolbar naming the old pair after a saved comparison was loaded from Options.
- A failed whole-schema trigger read counting as a schema with no triggers.
- Compare & Sync publishing one pair's results after the pickers moved to another.
- Clicks and hovers in the scrolled tab strip's edge padding landing on a tab clipped off the edge.
- SSH Agent auth offering every key the agent holds, exhausting the server's
MaxAuthTries. (#2601) - Crash when opening CSV and TSV files on macOS 27. (#2600)