Added
- Vim mode in the SQL editor (motions, operators, text objects, registers, macros, marks, search)
- Sidebar groups views, materialized views, foreign tables, procedures, and functions; Show DDL opens in a new tab (#1038)
- iOS: Live Activity for running queries
- iOS: multi-window on iPad
- iOS: Face ID / Touch ID / Optic ID app lock with idle timeout
- iOS: background iCloud sync
- iOS: Connection Info tab
- iOS: Cmd+F focuses search; search text persists across kill
- iOS: VoiceOver delete actions; Create button on empty Groups/Tags; No Results empty state; alert when active connection is deleted mid-session
- iOS Settings: iCloud Sync, Rows per Page, Default Safe Mode, Hide query in Live Activities
- MCP Setup adds Zed
Changed
- Wide-table scroll faster (max main-thread stall 3.5s to 1.3s); display cache 50k rows / 64 MB
- Sidebar: white tint on selected row; per-section count removed
- Edits in one window no longer refresh unrelated windows (favorites, history, linked folders)
- iOS: Vietnamese localization complete
- iOS: centered nav title dropped on connection tabs
- iOS accessibility: combined VoiceOver row labels, icon-button labels, badge size caps
- iOS: SQL editor uses the system keyboard input view; Edit Connection moved to the nav bar
- PostgreSQL SQL export round-trips foreign keys and sequences cleanly (#1114)
- SQL import parser streams large files (#1114)
- AI inline-suggestion debounce configurable (default 500 ms)
- Copilot LSP: 10s shutdown cap; quarantine attribute stripped
- MCP HTTP: 30-second SSE keep-alive
- AI providers: 5s timeout, known-model fallback, model list through Claude 4.7
- AI Chat: per-tool access modes; duplicate slash command names rejected
- AI Chat views: native button styles, semantic colors, 8-pt grid, a11y labels
- Translucent surfaces honor Reduce Transparency and Increase Contrast
- Result grid: direct-draw cells on a layer-backed view
- Plugin contract: typed binary cells across all engines (#1188)
- Double-click and Return on a binary cell open the hex editor
- Plugin registry cache moved to
~/Library/Caches - Plugin install off the main actor; signing reads team id at runtime
- Restart TablePro banner gains Quit & Reopen; state in-memory only
- Default PluginKit escape no longer escapes backslashes
Fixed
- Vim: Shift+J joins lines;
w/Wno longer overshoot; Esc switches mode after;(#1222) - AI Chat: Copilot Agent mode persists across turns
- AI Chat: streaming no longer hangs at 100% CPU; pre-tool text shows above the tool card; native Markdown renderer (#1205)
- AI Chat:
@mentions handle emoji at the cursor - AI Chat: Fix Error prompt uses the database display name
- iOS: data browser no longer flashes No Data during reload
- iOS: row detail pager crash on filter
- MySQL/MariaDB:
BINARY(N)/VARBINARY(N)route to blob editor; numeric/date/time render as values; stable JSON detection - Data grid chevrons refresh on editability change and dim on deleted rows
- Welcome window opens reliably on launch and Dock click
- Plugin upgrades for built-in drivers persist after restart (#1192)
- Plugin install: end-to-end install lock; no continuation leak; multi-bundle ZIP rejected; auto-update preserves concurrent rejections
- Built-in plugins enforce the PluginKit version check
- Query cancelled alert no longer appears on tab supersession, refresh, or teardown
- Structure tab: tinting repaints on edit, delete, undo, save, discard; right-click Undo Delete; dropdown columns enter inline edit; Cmd+Shift+N adds a row
- Structure view: switching Columns / Indexes / Foreign Keys no longer shows stale data (#1110)
- Create Table: foreign-key and index-type columns render as dropdowns
- Sidebar tables load after a slow connect
- SQL Server:
USE <database>switches DB; IDENTITY skipped on INSERT; default schema fromSELECT SCHEMA_NAME(); DATETIME round-trips as ISO 8601 - Toolbar database/schema chip correct on connect
- Safe Mode silent: Cmd+Return no longer double-fires
- LSP
cancelRequestno longer leaks continuations - Schema provider no longer leaks via throwaway coordinator
- Reconnect-then-disconnect no longer writes into a tearing-down coordinator
- Sync coordinator: no overlapping tasks;
syncNowis re-entrant-safe - Failed connections-file save aborts dependent steps; form stays open with error
- iCloud sync: decode failures skip the record/category and log; cloud copy preserved
- Keychain reads distinguish cancelled prompts, failed biometrics, and not-found
- Terminal PTY writes retry on
EINTR - MCP HTTP: structured internal-error envelope on encode failure
- Closing the last window no longer flashes Connection lost
- Smart-quote and dash substitution in cell editors and filter inputs
- Connecting one window no longer fetches tables in unrelated windows
- Foreign-key navigation from a tab with unsaved edits opens in a new tab without wiping the original
- SQL import: tables sidebar refreshes; PostgreSQL Disable foreign key checks; identity columns and dollar-quoted blocks round-trip (#1114)
- PostgreSQL/Redshift: schema picker no longer hides
pg*user schemas - Connection-only payloads no longer create an empty
Query 1tab - Import from Other App: Cancel button stops the keychain prompt loop (#1134)