Added
- Cancel running query from toolbar or
Cmd+. - Execute All Statements shortcut (Cmd+Shift+Enter) (#770)
- Drop database from the database switcher (context menu, toolbar button, Delete key)
- Query result limit setting in Data Grid preferences
- Structure tab: search, sort, count badges, PK column, DDL view with highlighting, Copy As (CSV/JSON/SQL), dropdown pickers, destructive change confirmation
- Structure tab: charset/collation (MySQL), index prefix length, partial indexes (PostgreSQL), cross-schema FK, schema changes in query history
- ClickHouse: parts tab actions (optimize table, drop/detach partition)
- Streaming export for query results with partial loading (no memory limit)
- Import error handling modes: Stop and Rollback, Stop and Commit, Skip and Continue
- Handoff via NSUserActivity
Changed
- Query tabs load rows progressively (default 10,000) with Load More and Fetch All in status bar
- Main editor window rewritten on AppKit (
NSWindowController+NSToolbar) for faster tab opens and correct lifecycle - Toolbar layout follows Apple HIG (sidebar left, connection center, view actions right)
- Export engine rewritten: streaming row fetch, macOS system progress, atomic file writes
- SQL import parser rewritten: DELIMITER support, MySQL conditional/hash comments, chunk boundary handling, single-pass async decompression, error surfacing
Fixed
- Selection highlight not covering the last line on Cmd+A (#770)
- Cmd+W closing the connection window instead of clearing to empty state
- ER Diagram and Server Dashboard replacing the current tab instead of opening a new one
- Welcome window stealing focus on connect, disabling Cmd+T until manual click
- Toolbar empty on second tab, menu shortcuts disabled after toolbar click
- AI chat freeze when large queries or results are in the system prompt (#774)
- AI chat panel not updating when switching database connections
- Schema restored on reconnect for PostgreSQL, Redshift, and BigQuery (#777)
- Database restored after auto-reconnect (was lost when connection dropped)
- Database switch no longer closes windows before confirming success
- Redis database selection persisted across sessions
- SSH jumphost lost after disconnect or app restart (#790)
- Password appears missing when Keychain is locked after reboot (#780)
- Import: correct rollback reporting, FK checks restored after failure, decompressed-size progress
- JSON export no longer coerces leading-zero strings to integers
- XLSX export auto-splits tables exceeding 1,048,576 rows into multiple sheets
- CSV formula injection guard corrected to OWASP-standard prefixes only
- MQL export validates JSON values before passthrough
- SQL export gzip compression is now async and cancellable
- Export progress bar reliably reaches 100%