Changelog

What's new in /table

What shipped, what broke, what’s next.

MARAPRMAYJUNJULAUGSEP

v0.5.16

  • Row details stay visible for highlighted rows on disconnected connections.
  • Fixed an edge case where forward and reverse FK constraints were not detected in PG.

v0.5.15

  • Added a Linux desktop build (.deb)
  • Fixed overlapping text on Add projects and Continue, and overlapping Neon branch labels in the sidebar.
  • Fixed connections dropping when they are slow to respond.
  • You can now set default timeouts, health checks, and AI access in Settings, and choose different values on any connection.
  • Connection search now matches database name and branch, including dbname/branch. The switcher grows for long paths.
  • Opening a table reuses a cached schema instead of querying it again.
  • Table DDL now includes foreign keys, unique constraints, and checks.
  • Explorer stays a usable height and scrolls when the log panel is open.
  • Explorer row counts update when every row in a table has been loaded.
  • Double-click a connection to connect or reconnect.
  • You can cancel Test connection while it is running.
  • Copy generated SQL from the commit dialog and the Changes tab without executing it.
  • Adding an array item from NULL turns NULL off and inserts the item.
  • Integer and bigint IDs render as raw digits without locale grouping.
  • Settings Appearance can show Date/time as absolute time. A per-column Relative / Absolute control overrides the setting.
  • Double-click a column resize handle to fit that column to its content.
  • Settings Appearance can change the UI font and the table font.
  • Display type in Configure is a searchable list.

v0.5.14

  • PostgreSQL and MySQL enum columns now show their allowed values in a dropdown when editing cells or using the row sidebar.
  • Docker auto-detection now recognizes official pgvector containers as PostgreSQL connections.
  • Fixed database connections timing out after two seconds, and added a per-connection timeout setting.

v0.5.13

  • Insert rows.
    • Double-click below the last row to stage a new row, or click + in the new sidebar.
    • Speaking of...
  • Another sidebar!
    • Explorer and Favorites moved to a new right-side context sidebar
    • toggleable with Cmd+Shift+/
  • DDL view is now text-selectable with a copy button.
  • Return of Shift+Backspace/Delete to delete selected rows
  • Return of cell editor for low-cardinality columns and enums
  • Fix: (neon) allow adding more than 10 projects
  • Fix: (neon) allow adding more projects after adding a credential once
  • Fix: (neon) support tracking more than 50 project branches
  • Fix: commit errors now surface inline in the confirmation dialog
  • Fix: commit success message showed table.table instead of schema.table
  • Fix: long branch names in Settings > Integrations overflowed past the modal boundary

v0.5.12

  • Refresh button now forces a fresh schema fetch, so new/dropped columns appear immediately
  • Column drift detection: when query results don't match the cached schema, the table description auto-refreshes
  • On query failure with a cached schema, the stale cache entry is invalidated to allow self-healing on retry

v0.5.11

  • Clicking a SQLite connection in the sidebar now connects automatically

v0.5.10

  • Fix: pressing Space now commits the highlighted column or operator in the filter builder

v0.5.9

  • Fix: collapsed M2M join tables now report the correct number of rows in the cell and the join filter appears in the linked filter bar.
  • Fix: SQL result tables should not have sortable columns

v0.5.8

  • Buttery data table scrolling. Data table now uses a canvas grid for GPU-accelerated scroll performance on tables with many rows or columns
  • Moved root tables in prefix-grouped folders to the top of the list.
  • Fix: expanded multi-DB connections no longer double-highlight the parent folder

v0.5.7

  • Big text and JSON cells stay snappy. Long text, json/jsonb, and interval cells are now sliced to a 4 KB preview at the SQL layer. No hundred-megabyte payloads when a row happens to contain a wall of text. Truncated cells show a …+N size marker and load the full value on demand when you open the popout editor.
  • Popout editor for text. Whether the text is long or not, if you want more space to edit text cells, you can now pop them out into a larger editor.
  • JSON syntax highlighting in cells. JSON / JSONB columns now auto-detect as the JSON semantic.

v0.5.6

  • Favorite tables and views from the context menu in the sidebar
  • Fix: close the new connection dialog in an edge case where testing the connection succeeds, saving succeeds, but establishing a permanent connection fails.

v0.5.5

  • SQLite support. Connect to local SQLite database files (.db, .sqlite, .sqlite3).
  • New caching architecture. Query results are now cached more efficiently, reducing load times and improving responsiveness across the entire app. Schema information is now cached across sessions and reconciled with schema changes on demand, making the first connection to access the explorer significantly faster.

v0.5.4

  • Per-connection AI access. Let your AI run wild on your database if you want, or hide specific connections so they'll never know.
  • Connection paint. It's not important but it is quite fun.
  • Support epoch nanos, millis, and seconds in the relative date semantic
  • Fix: dramatically improve the performance of listing tables from cold start (pesky N+1 query)
  • Fix: keyboard shortcut hints (⌘ ⇧ ⌃ ⌥, Enter, arrows, etc.) now render in a single consistent font
    • Application fonts are now bundled directly with the app

v0.5.3

  • CLI (slashtable) — new command-line interface for launching the app and adding connections from the terminal
    • slashtable postgres://user:pw@host:5432/db opens the app and connects, lots of options available, see slashtable --help
    • Install from Settings → Developers → Install CLI (macOS)
  • Added auto-sync new branches to Neon connection setup
  • Added Boolean, Number, and JSON semantic types in case the engine doesn't natively support them (or someone wanted to put JSON in a varchar) but you still want the semantic features
  • Explorer schema and prefix-group collapse state is now persisted across restarts
  • Fix: creating or deleting a Neon branch now refreshes project state immediately, so the settings page no longer flags the new branch as "deleted" for a few seconds
  • Fix: "Copy connection string" for Neon branches now actually works

v0.5.2

  • Neon integration. Add a Neon project from a new tab in the Connect dialog
    • Syncs all branches from your Neon projects, organized in branches and folders automatically
    • Create and delete branches from the sidebar
  • Added shortcuts to settings sections in the sidebar
  • Auto-detected containers are now grouped into docker compose project folders
  • Selecting a disconnected connection in the sidebar no longer auto-connects
  • Added some class to the Welcome page 🎩

v0.5.1

  • Fix: password now saved to keychain before being cleared from memory
  • Fix: query editor no longer restricts which queries can be run

v0.5.0

  • Filter UX rebuilt around single command input. Press f (or ⌘⇧F) in any table tab to open a unified filtering experience.
  • Performance on wide tables. Column virtualization, memoized rows, event delegation, and precomputed selection reduce lag when scrolling tables with many columns
  • Array cell editing. Edit text[], int[], uuid[], and other Postgres array columns directly in a new first-class array editor
  • Improvements to fuzzy matching app-wide, column picker, command palette, and filter input
  • Opening a table is significantly faster. The background schema worker now warms both table descriptions and metadata, which has side-effect of faster explorer loading.
  • Added the option to disable semantic formatting for columns in column settings.
  • Added IP and CIDR native column types for Pg, and matching semantic types
  • Fix: INSERT failed to write values for interval-type columns
  • Fix: MySQL cache keys are now dialect-aware. The worker and readers previously lived in separate keyspaces on MySQL, which caused cache misses on stable pagination and pk-column type resolution.
  • Fix: Postgres user-defined types (enums, domains, citext, etc.) now decode as text instead of failing with a type-mismatch error.
  • Fix: editing docker-synced connections caused the password to be cleared on save

v0.4.4

  • Hovering an image URL cell now shows a full-size preview card
  • Broken URLs show an error state with an icon instead of a weird border
  • Deserializing image thumbnails moved into an async thread to prevent blocking the main render thread, improving performance when loading tables with many image URLs
  • Fix: table pages were counting records on every page, what a waste. Reduced page load time for large tables, sometimes saving up to 2 seconds per page!

v0.4.3

  • SSH tunneling — connect to databases behind bastion hosts with private key, SSH agent, or password auth
  • Connection status moved into the titlebar with a rewritten internal connection manager that improves connection health detection and reconnection reliability.
    • Connection loss is now detected within ~10 seconds (down from 30+); the backend owns connection health and streams state changes directly to the UI
    • Reconnect is faster and no longer prompts for a password if the failure is intermittent
  • Breadcrumb keyboard navigation: use ⌘← ⌘→ ⌘↑ ⌘↓ to traverse the explorer tree
  • Connections and Explorer sidebar sections are now both collapsible
  • Fix: restored active state on saved connection items in the sidebar
  • Fix: update toasts' styling to be consistent across all toasts

v0.4.2

  • Keybindings are now customizable! All global actions can be bound to multiple bindings, and defaults can be changed however you like.
  • Fix: support databases that do not require a password

v0.4.1

  • Delete selected rows from the right-click context menu or the shortcut shift+delete
  • Fix: cell edits could fail to commit on blur in certain focus transitions
  • Fix: child connection detail fields are now read-only
  • Fix: removing a child connection could leave orphaned entries in multi-database setups

v0.4.0

Multi-database support introduced!

After installing this update, your connections will be migrated to the new format automatically, but that migration is one-way. After using this version, previous version of the application will not be able to read your connections.

  • Multi-database support: connect to a server and all databases on it simultaneously
  • New database switcher (⌘D) in the header bar — filterable combobox to jump between connections (and their databases)
  • Per-connection workspaces: each connection gets its own set of tabs, preserved when switching
  • Connections with multiple databases convert into collapsible folders
  • MySQL doesnt have schemas so it's top-level folder is unwrapped
  • Connection home view redesigned with editable name, driver stats, and action buttons with keyboard shortcut hints
  • Update notification now includes a "Skip this version" action to dismiss and ignore a specific release
  • Fix: Tab cycles between cells and rows without triggering edit mode

v0.3.6

  • Forgot your license key but dont want to login to Polar? No problemo, license settings now has a copy button for the active license key
  • Connection dialog now has a driver sidebar and shows a password storage hint when a URL with a password is pasted
  • Bad eyes? Added a ZOOOM in button (cmd+=), zooooom out (cmd+-) and reset zoom (cmd+0)
  • Do you like light AND dark modes? Set theme to system to follow along with your mac

v0.3.5

  • Added submit shortcuts for the SQL editor
    • ctrl+enter to run active query
    • shift+enter to run all queries
    • cmd+enter to run selection.
  • Shortcuts for copying short name and fully qualified name of tables from the explorer tree to the clipboard (cmd+c, cmd+shift+c, respectively)
  • Column auto-sizing now handles all semantic type formats correctly
  • Fix: duplicate Docker connections no longer appear on app startup
  • Fix: MySQL estimated row counts no longer show stale zero values
  • Fix: MySQL transaction wrapping logic corrected

v0.3.4

  • Docker integration now has a dedicated first-class connection folder in the sidebar
  • Added option to refresh entitlements to unlock newly purchased features without restarting
  • App and SQL log panels now show all system and MCP queries with source attribution
  • Fix: editing a MySQL connection no longer breaks reconnection
  • Fix: auto-synced Docker connections are now stable across container ID changes
  • Fix: array-type column values now decode and display correctly
  • Fix: welcome screen no longer flickers on launch; toasts are suppressed until reaching the main app
  • Fix: connection home page shows the correct URL for MySQL connections

v0.3.3

  • Fix: support for storing credentials in Apple's system keychain restored
  • Fix: tooltips no longer grow unbounded in width

v0.3.2

  • App is now code-signed & notarized; macOS will no longer block launch with a corrupted app error
  • Added support for AWS, Bitwarden, HashiCorp (alpha) remote credential vaults
  • Consolidated tool detection logic with docker in the Tools settings section
  • "Configure…" option in the column header context menu opens the Configure tab with that column pre-selected
  • Fix: combobox styling is now consistent across all popovers
  • Fix: connecting with invalid parameters no longer saves that connection
  • Fix: dismissing the password prompt no longer shows an error toast
  • Fix: MCP server now enforces the active connection limit

v0.3.1

  • Graph tab opened from a table context menu now opens with that table pinned
  • Graph tab default depth changed to 1
  • Changed command palette scope hint to be more clear how to use it
  • Fix: tab types now use consistent names and icons across the app
  • Fix: removed the plug icon from the titlebar
  • Fix: sort chip icon was too small
  • Fix: adding a filter next to an open advanced filter block no longer opens two value inputs
  • Fix: welcome screen get-started button now auto-focuses on load
  • Fix: crash on edge case in multi-select filters
  • Added shortcut to focus the explorer sidebar search bar

v0.3.0

  • Added MySQL support!
  • Fix: timezone-naive timestamps are treated as UTC; timestamps without seconds now parse correctly
  • Fix: in-app update restart button errors are now logged

v0.2.8

  • Filter blocks that overflow the filter bar are automatically collapsed into a group
  • Added NOT toggle to filter operators; negation is now a separate toggle rather than a distinct operator variant
  • Operator tooltips appear on hover in the filter editor
  • Fix: SQL log rows expand on click again to show the full query
  • Fix: active connection now derives from the current tab rather than the sidebar selection
  • Fix: backspace while renaming now deletes characters instead of deleting the connection

v0.2.7

  • Added MCP tab to Settings with enable/disable toggle and ready-to-copy config snippets for Claude Desktop, Claude Code, Cursor, and Windsurf
  • Added reconnect shortcut ⇧R to reconnect the current connection
  • Added a disconnect action to command palette to disconnect without leaving the keyboard.
  • get_schema_graph MCP tool now explores relationships from specific starting tables with configurable depth instead of dumping the full schema.
  • Breadcrumb collapsed branches now show the active node inline with sibling count pills
  • Fix: Escape no longer exits macOS native fullscreen
  • Fix: Tab bar new-tab actions are disabled when no connection is active

v0.2.6

  • Added Release Notes dialog accessible from the command palette
  • Command palette now bound to Cmd+K; New Connection moved to Cmd+Shift+N
  • Command palette searches keyword aliases in addition to action labels
  • Keyboard shortcuts in the command palette render as styled Kbd elements
  • Fix: Docker container detection now respects PGPORT env for non-standard container ports
  • Fix: phone number detection no longer misidentifies dates and decimals as phone numbers

v0.2.5

  • Dialogs now dismiss when clicking outside them
  • Include day of month in changelog entries
  • Fix: cell edits persist on blur instead of discarded
  • Fix: Docker connections now correctly distinguish between daemon-not-running and other error states
  • Fix: pasted connection URLs remain visible in the input field

v0.2.4

  • Schema metadata now loads in the background on connect
  • Tables with composite primary keys are now supported
  • Fix: connection and folder labels no longer select text when trying to drag
  • Fix: dragging connections and favorites in the sidebar is a little easier
  • Removed connection status indicator from sidebar as it was duplicating information

v0.2.3

  • Update notification toast now includes a "See what's changed" link to the changelog
  • License activation now accepts Polar-issued keys directly — exchanged for Ed25519 offline, always available, keys automatically
  • Fix: restored the filter builder quick-filter buttons behavior

v0.2.2

  • Added Settings, Register License, and View License to the native macOS app menu
  • Added an Integrations settings section for managing tool integrations
  • Added a link to purchase a license from Settings
  • SQL filter tooltip now shows a more descriptive message
  • Fix: toasts appeared behind dialogs
  • Fix: related record cells lost their accent color
  • Fix: improved search paths for detecting docker installation

v0.2.1

  • Log panel filter toggles for levels below the configured appLogLevel threshold are now disabled
  • Fix: download update progress toast now reaches 100%

v0.2.0

  • Added Personal→Pro upgrade flow via Polar checkout
  • Added Files settings section for fast access to the application config directory
  • Added Logging settings section for configuring application logging
  • Fix: column introspection now uses pg_attribute to correctly support materialized views

v0.1.9

  • Added Privacy Policy and License notices
  • New connect MCP tool lets agents establish a database connection by ID without requiring the user to connect first in the app
  • MCP status popover now shows a "Copy config" button that copies the server's JSON config to the clipboard

v0.1.8

  • A new tab in the log panel shows every MCP request with method, tool name, connection ID, duration, and status
  • MCP status item in the status bar shows server online/offline state, request count, and last call info
  • New list_schemas MCP tool lets clients find tables in other schemas
  • Hide column from the column header context menu
  • Backspace/Delete clears selected cells in editable tables; Shift+Backspace/Delete deletes selected rows
  • Connection home view now shows a drag-and-drop sortable favorites grid
  • Fix: pending-delete rows background has stronger contrast

v0.1.7

  • Added Intel Mac (x86) support
  • Added JSON editor for JSON-type columns
  • Added shortcuts to rename & delete connections, folders, and favorites
  • Connections and favorites can be dragged to reorder or move into folders
  • Application now serves MCP server over HTTP in addition to binary --mcp flag

v0.1.1

  • Explorer: group tables by prefix with configurable snake_case / camelCase tokenizer
  • Favorites: save custom filters on data as favorites
  • Table config: customization options for column semantics
  • Log panel: stream all SQL queries executed
  • Connections: System keychain and 1Password support for credentials
  • Performance: sidebar resize drag no longer triggers layout recalculation
  • Fix: schema graph edges were missing for self-referencing foreign keys

v0.1.0

  • Initial release of SlashTable
  • Connect to PostgreSQL via direct connection
  • SQL Editor: SQL editor with syntax highlighting and custom context-aware completion engine
  • Explorer: browse schemas, tables, views via links
  • Grapher: visualize tables and foreign key relationships
  • Docker: auto-detect local PostgreSQL containers
  • Dark and light themes
  • Command palette (/) for fast navigation