github TableProApp/TablePro v0.15.0

one month ago

Added

  • Oracle Database support via OCI (Oracle Call Interface)
  • Add database URL scheme support — open connections directly from terminal with open "mysql://user@host/db" -a TablePro (supports MySQL, PostgreSQL, SQLite, MongoDB, Redis, MSSQL, Oracle)
  • SSH Agent authentication method for SSH tunnels (compatible with 1Password SSH Agent, Secretive, ssh-agent)
  • Multi-jump SSH support — chain multiple SSH hops (ProxyJump) to reach databases through bastion hosts

Changed

  • Replace CodeEditLanguages xcframework (38 grammars) with local package compiling only SQL, Bash, and JavaScript, reducing app binary size by ~55%

Fixed

  • Fix memory leak where session state objects were recreated on every tab open due to SwiftUI @State init trap, causing 785MB usage at 5 tabs with 734MB retained after closing
  • Fix per-cell field editor allocation in DataGrid creating 180+ NSTextView instances instead of sharing one
  • Fix NSEvent monitor not removed on all popover dismissal paths in connection switcher
  • Fix race condition in FreeTDS disconnect() where dbproc was set to nil without holding the lock
  • Fix data race in MainContentCoordinator.deinit reading nonisolated(unsafe) flags from arbitrary threads
  • Fix JSON encoding and file I/O blocking the main thread in TabStateStorage
  • Fix MySQL/MariaDB getting BEGIN instead of START TRANSACTION in table operations and SQL preview
  • Fix port resetting to default value when editing a connection with a custom port
  • Replace .onTapGesture with Button in color pickers, section headers, group headers, and connection switcher for VoiceOver accessibility
  • Fix data race on isAppTerminating static var in MainContentCoordinator using OSAllocatedUnfairLock
  • Fix MainActor.assumeIsolated crash risk in VimKeyInterceptor notification observer
  • Fix data race on conn pointer in LibPQConnection during disconnect and cancel
  • Fix SSH askpass script written with world-readable permissions; now uses atomic 0o700 creation and immediate cleanup
  • Fix potential dict mutation during iteration in DatabaseManager.disconnectAll()
  • Fix welcome screen showing blank panel when connections have orphaned group IDs
  • Fix multiple tabs auto-executing queries simultaneously on connection restore, causing lag
  • Fix welcome window becoming oversized after closing main windows due to AppKit scene restoration
  • Fix unescaped identifiers in MySQL SHOW CREATE TABLE/VIEW queries allowing SQL injection via table names
  • Fix QueryResultRow equality ignoring cell values, preventing SwiftUI from re-rendering updated rows
  • Fix status bar row info text rendering off-center due to duplicate spacer
  • Fix Cmd+Delete in sidebar search or right sidebar clearing the query editor

Don't miss a new TablePro release

NewReleases is sending notifications on new releases.