Changelog

New features, improvements, and fixes in each release.

Filter
v1.32.0
Latest Jul 20, 2026·44.3 MB·macOS 14.0+ Download
Fixed
  • The app no longer freezes for a couple of seconds on first use of a window or menu. Localized text was being parsed from an uncompiled format on the main thread; it's now precompiled.
  • Row limits and page windows are correct on every engine. SQL Server, Oracle, Firebird, SQL Anywhere, Trino and SurrealDB each use their own syntax for capping and skipping rows; previously a LIMIT clause was appended regardless, which those engines reject.
  • Foreign-key navigation escapes values per dialect. Following a foreign key whose value contained a quote or backslash could produce a broken statement on MySQL-family engines.
  • Turkish: the pagination controls and the Ollama screen are fully translated.
Changed
  • Run AI features on a local model with Ollama. Pick Ollama (Local) in Settings → AI and Tablen talks to the Ollama server on your own machine — no API key, no query or schema leaving your computer. The settings screen shows whether Ollama is running and lists the models you already have installed; chat, completions, inline edit and refactor all use the model you choose. Pointing the address at LM Studio (or any OpenAI-compatible local server) works too.
  • Browse large tables page by page. Table tabs now page on the server instead of stopping at the row limit. Move through pages with the controls under the grid, jump to the first or last page, and see which rows you're looking at out of the table's total. Where the table has a primary key, pages are ordered by it so rows don't shift as you move between them.
  • Command Palette is now ⌘K, matching the shortcut you already use elsewhere. Two shortcuts that were shadowed by macOS moved as well: Visual Query Builder is ⌘⇧V (was ⌘⇧Q, which triggered Log Out) and Compare Tables is ⌘⌥C (was ⌘⌥D, which toggled the Dock).
v1.31.0
Jul 16, 2026·44.2 MB·macOS 14.0+ Download
Fixed
  • Grid edits are escaped correctly on MySQL. Editing or inserting a value containing a backslash (e.g. a Windows path like C:\Users) could break the generated statement on MySQL/MariaDB/TiDB. Values are now escaped per the connection's dialect.
  • Open tabs survive a crash. Your tab layout was only saved when the app lost focus, so a hard crash lost it. Tabs are now saved continuously in the background.
  • English UI no longer shows Turkish in the editor. The right-click menu and the inline-edit card had a few hard-coded Turkish labels that leaked to English users; they're localized now.
Changed
  • Open and save .sql files. Open a query file with ⌘O, save with ⌘S, Save As with ⌘⇧S. The tab shows the file name with an unsaved-changes dot, and closing a tab with unsaved edits asks before discarding them. An opened file is visible and editable even before you connect to a database — pick a connection when you're ready to run.
v1.30.0
Jul 12, 2026·44.2 MB·macOS 14.0+ Download
Fixed
  • Crash and error reports work again from Turkey. Tablen's diagnostics endpoint was network-blocked for users on Turkish ISPs, so opt-in error reports never reached us — every release through 1.29.0 was affected. Reports now route through our own domain and arrive correctly. (Only sent if you opted in; still never includes your SQL, hostnames, or credentials.)
  • The editor is rebuilt on solid ground. The query editor's engine was reconstructed from clean, buildable source with a full behavior-parity pass — no user-visible change by itself, but it's what made the three features above possible and prevents a class of silent editor regressions going forward.
Changed
  • Schema-aware autocomplete. The editor now completes real table and column names as you type — including through aliases. Write FROM users u and u. suggests users' columns; table names complete in FROM/JOIN, keywords match your engine's dialect. Suggestions are off for non-SQL engines (Redis, MongoDB), which keep their own command hints.
  • See what Cmd+Return will run. When the editor holds multiple statements, the one your cursor is in is now gently highlighted — so you know exactly which statement Cmd+Return will execute before you press it. The highlight is computed from the same logic that runs the query, so it can never point at the wrong block.
  • Vim keybindings. Settings ▸ Editor ▸ "Vim keybindings" turns on modal editing in the query editor (normal/insert/visual, hjkl, dd, ciw, …), with a NORMAL/INSERT/VISUAL indicator. Off by default; toggles live without reopening tabs.
v1.29.0
Jul 11, 2026·44.1 MB·macOS 14.0+ Download
Fixed
  • Row edits target the right row. UPDATE/DELETE from the grid now build their WHERE clause from the table's real primary key column(s) — including composite keys — instead of assuming the first SELECTed column is the PK. SELECT name, id FROM … could previously edit the wrong row.
  • Web Inspector disabled in production. Right-click ▸ Inspect Element on the query editor was enabled in shipped builds; it's now Debug-only.
  • MCP bridge port no longer locale-formatted. Turkish systems displayed port 7301 as "7.301".
Changed
  • Add Row. Insert rows straight from the table browser — a form sheet with per-column fields, a "Set to NULL" toggle, and blank-means-DEFAULT semantics so auto-increment keys and server defaults just work. No more hand-writing INSERT statements.
  • Connection errors that help. Failed connections (both Test Connection and real connects) now append an actionable hint — "Check that the server is running on host:port", "Verify your username and password", SSL/firewall/database-name guidance — and the error alert gains an Edit Connection… button that takes you straight back to the form.
  • Claude Desktop integration now actually ships. The tablen-mcp server binary is embedded in the app. Every release through 1.28.0 silently shipped without it, so the "Add to Claude Desktop" flow never worked on installed copies. Release builds now fail if the binary is missing, so this can't regress.
  • Editor placeholders. An empty editor shows an engine-specific example (SQL for relational engines, GET key / HGETALL key for Redis) that disappears the moment you type.
  • Import, discoverable. The empty sidebar now offers "Import from another app…" directly — previously the import wizard hid solely under File ▸ Import Connections….
  • Run All stops at the first error instead of continuing silently and leaving a half-applied migration behind. The failure message says exactly how many statements were skipped. Prefer the old behavior? Settings ▸ "Run All continues after a failed statement".
  • Stop now cancels on the server too. Stopping a query used to only stop waiting — the statement kept running (and burning resources) server-side. PostgreSQL, MySQL, and SQLite now receive a real server-side cancel; other engines keep the client-side behavior.
  • Saving a new connection also connects. Matching the TablePlus/Beekeeper habit — Save no longer leaves the new connection idle and unselected.
  • Double-click no longer disconnects. Double-clicking an already-connected connection used to disconnect it, punishing muscle memory from other clients. Disconnect now lives in the hover button and context menu only.
  • One source of truth for shortcuts. Menus, the Keyboard Shortcuts sheet, Command Palette hints, and toolbar tooltips all read the same catalog — conflicting bindings were resolved and documented combos can no longer drift from the real ones.
  • Welcome screen tells the truth. "21 Database Engines", the AI assistant, and the real current shortcuts — instead of the 3-engine copy from 2024.
v1.28.0
Jul 9, 2026·43.9 MB·macOS 14.0+ Download
Fixed
  • English UI no longer shows Turkish strings. About 30 interface strings (plugin manager, dialogs, AI settings) appeared in Turkish for English users; all localized correctly now, with the Turkish translations preserved.
  • Custom AI provider safety. A mistyped custom base URL used to silently fall back to api.openai.com — sending your API key to the wrong host and "testing" against the wrong endpoint. It now fails with a clear error instead.
Changed
  • DynamoDB support (Experimental). Tablen's 21st engine — connect to AWS DynamoDB (or DynamoDB Local) with your access key, browse tables with their partition/sort keys, and query with PartiQL (SELECT/INSERT/UPDATE/DELETE). Built from scratch with hand-rolled AWS Signature V4 — no SDK, fully native.
  • Safer query execution. Cmd+Return now runs your selection — or, when the editor holds multiple statements, just the statement your cursor is in. No more accidentally running a destructive UPDATE sitting below the SELECT you were testing. Run everything explicitly with the new Cmd+Shift+Return (Run All Statements).
  • System theme. The theme picker gains a "System" option that follows macOS Light/Dark Mode — and switches live when the OS appearance changes.
  • Editor zoom. Zoom In / Zoom Out / Actual Size in the View menu (Cmd+Plus / Cmd+Minus / Cmd+0) adjust the editor font size.
  • Connection form now catches port/type mismatches. Type Oracle's 1521 while PostgreSQL is selected and Tablen suggests switching — one click fixes it (previously this failed with an opaque connection error).
  • Local AI, documented. New "Local AI" guide: run the AI assistant fully on your Mac with Ollama, LM Studio, or Apple Intelligence — your schema never leaves your machine.
v1.27.1
Jul 7, 2026·43.8 MB·macOS 14.0+ Download
Fixed
  • Oracle connections are now reliable. Fixed three wire-protocol bugs in the native Oracle driver that surfaced against Oracle Autonomous Database:
  • Intermittent "TNS packet too large" connection failures — a row-data framing misalignment that could desync the packet stream on connect.
  • Multi-statement desync — running several queries in a row on one connection could fail the second and later statements with spurious ORA-01013/ORA-01009 errors.
  • Large statement overflow — statements over ~1KB could fail with ORA-03120 due to an integer overflow in the request encoding.
v1.27.0
Jul 6, 2026·43.8 MB·macOS 14.0+ Download
Added
  • Three new native database drivers — written from scratch over the raw wire protocols, no external dependencies:
  • Oracle Database. Full Oracle Net (TNS) stack with TCPS/TLS encryption and O5LOGON authentication (12c PBKDF2 and 11g verifiers). Verified end-to-end against a live Oracle Autonomous Database 19c: connect, run SQL, and browse tables/columns. Supports NUMBER/VARCHAR2/CHAR/DATE/RAW/ROWID and surfaces real ORA-xxxxx errors.
  • Microsoft SQL Server. Native TDS 7.4 driver with TLS encryption (TDS-wrapped Secure Transport), pre-login negotiation, LOGIN7 auth, and the full token stream for queries and metadata.
  • Firebird. Native wire-protocol driver with SRP-6a authentication and Arc4 wire encryption, XDR codec, verified against a live server.
  • Streaming import for large files. CSV, JSON, and Excel (XLSX) imports now stream row-by-row instead of loading the whole file into memory, so multi-hundred-MB files import without spiking memory. Oversized files and zip-bomb archives are rejected up front.
  • Visual table designer. Design schemas on a drag-and-drop canvas: draw foreign keys by dragging between tables, work across multiple tables in one workspace, and see the combined DDL live.
  • Schema diff. Compare your designed model against the live database schema to see exactly what would change.
  • DDL viewer improvements. View CREATE statements for ClickHouse and DuckDB (view-only), disambiguate overloaded routines, and Edit & Run DDL directly with multi-schema support.
  • Plugin marketplace. Search, filter, and sort available plugins; an in-app update indicator flags plugins with newer versions; and a plugin developer CLI (scaffold / validate / package) for authoring .tablen-plugin bundles.
Fixed
  • Connection timeout could drop a live connection. The 10-second connect watchdog could cancel a connection that had already succeeded; it now only fires when the connection genuinely timed out.
  • Import escaping is now dialect-aware — MySQL backtick/backslash rules vs. ANSI double-quotes — so generated batch INSERTs quote identifiers and literals correctly per database.
Changed
  • Plugin update checks run in parallel and are gated behind the plugin-sync setting.
  • Client-side field encryption groundwork (AES-256-GCM) for the team connection vault.
  • Extensive new unit tests for the Oracle, SQL Server, Firebird, and SQL Anywhere codecs.
v1.26.0
Jul 3, 2026·42.6 MB·macOS 14.0+ Download
Added
  • Google BigQuery driver (Experimental). BigQuery connections now actually work — previously the tile was a placeholder that couldn't run queries.
  • Connect with a service account JSON key: pick the key file in the connection form; its content is stored securely in the macOS Keychain (never as a file path, never in plain-text config).
  • Run SQL through the BigQuery Jobs API with automatic result pagination (up to 10,000 rows) and clear, human-readable error messages straight from BigQuery.
  • Browse datasets, tables, and columns in the sidebar — nested RECORD fields are flattened as parent.child.
  • The form confirms which service account is loaded by showing its client_email, and warns in red when a key file can't be read or isn't a valid key.
Fixed
  • Crash on ⌘W. Closing a tab with ⌘W — most visibly with query results open — could crash the app with "Index out of range". Tab state is now resolved by ID instead of array position, and the fix is covered by regression tests.
Changed
  • Revived the unit-test target (a stale import had kept it from compiling) and root-caused two test-host crashes; pre-existing test rot is tracked separately.
  • 21 new unit tests for the BigQuery driver (auth, query execution, metadata) running against a mocked HTTP layer — no live GCP needed.
v1.25.1
Jul 1, 2026·42.6 MB·macOS 14.0+ Download
Fixed
  • MariaDB / SurrealDB / TiDB connections used the wrong driver. Pasting a mariadb://, surrealdb://, tidb:// (or any of ~12 other DB schemes) into the connection-string field silently kept the connection type at PostgreSQL, so the PostgreSQL driver was dispatched against a foreign server and crashed with a handshake-decoding error. Tablen now recognizes every supported scheme + common aliases (mssql, surreal, cockroach, bq, fb, sa, …), and refuses to overwrite a more-specific selection (e.g. picking MariaDB and pasting a generic mysql:// URL keeps MariaDB).
  • Redis Key Browser appeared empty even when keys existed.
  • Redis SCAN can legitimately return zero keys per iteration even when many exist; the browser used to give up after the first batch. It now iterates until it has a useful batch, exhausts the keyspace cursor, or hits a safe iteration cap.
  • Errors during scanning are now surfaced in the UI with a Retry button instead of silently showing "No keys found".
  • The driver no longer always selects database 0. The connection sheet now exposes a Database Index (0–15) field for Redis so users with data in DB 1+ can actually reach it.
  • TiDB connection string parser was overwriting the user's selected DB type with MySQL because of the same scheme-detection blind spot. Saved TiDB connections now correctly persist as TiDB.
Changed
  • New Experimental badge on the connection-type picker for BigQuery, Oracle, SQL Server, SQL Anywhere, Firebird, Cassandra, Trino, SurrealDB, and DuckDB. These drivers are still maturing — the badge sets expectations without hiding them.
  • VoiceOver announces experimental tiles as "X database, Experimental".
  • Added a regression test surface that prevents the wrong-driver bug from ever shipping again: 60+ unit tests covering every DBType.match(scheme:) alias, case-insensitivity, whitespace handling, unknown-scheme fallback, and structural invariants ("no DBType impersonates the PostgreSQL driver family").
  • New tests for the Redis database-index plumbing (default 0, negative clamp, numeric/empty/junk fallback).