github TableProApp/TablePro v0.16.0

one month ago

Fixed

  • Inspector separator no longer bleeds into toolbar area with default connection color (#228)
  • Inspector toggle no longer lags due to synchronous UserDefaults writes during animation (#229)

Added

  • Direct .tableplugin bundle installation via file picker, Finder double-click, and drag-and-drop
  • Plugin capability enforcement — registration now gated on declared capabilities, with validation warnings for mismatches
  • Plugin dependency declarations — plugins can declare required dependencies via TableProPlugin.dependencies, validated at load time
  • Plugin state change notification (pluginStateDidChange) posted when plugins are enabled/disabled
  • Restart recommendation banner in Settings > Plugins after uninstalling a plugin
  • Startup commands — run custom SQL after connecting (e.g., SET time_zone) in Connection > Advanced tab
  • Plugin system architecture — all 8 database drivers (MySQL, PostgreSQL, SQLite, ClickHouse, MSSQL, MongoDB, Redis, Oracle) extracted into .tableplugin bundles loaded at runtime
  • Export format plugins — all 5 export formats (CSV, JSON, SQL, XLSX, MQL) extracted into .tableplugin bundles with plugin-provided option views and per-table option columns
  • Settings > Plugins tab for plugin management — list installed plugins, enable/disable, install from file, uninstall user plugins, view plugin details
  • Plugin marketplace — browse, search, and install plugins from the GitHub-hosted registry with SHA-256 checksum verification, ETag caching, and offline fallback
  • TableProPluginKit framework — shared protocols and types for driver and export plugins
  • ClickHouse database support with query progress tracking, EXPLAIN variants, TLS/HTTPS, server-side cancellation, and Parts view

Changed

  • Reduce memory: eliminate dedicated ping driver (~30-50 MB per connection), use main driver for health checks
  • Reduce memory: evict inactive native window-tab row data after 5s, re-fetch on focus
  • Reduce memory: lazy-load plugin bundles on first use instead of at startup (~20-30 MB saved)
  • Reduce memory: remove duplicate sourceQuery string from RowBuffer
  • Reduce memory: InMemoryRowProvider references RowBuffer directly instead of copying rows (~3-10 MB per tab)
  • Reduce memory: eliminate metadata driver entirely, multiplex all queries on main driver (~30-50 MB per connection)
  • Reduce memory: lazy AIChatViewModel initialization (deferred until AI panel is first opened)
  • Reduce memory: remove duplicate connections array from ContentView (use ConnectionStorage.shared directly)
  • Reduce CPU: consolidate per-editor NSEvent monitors into shared EditorEventRouter singleton (O(n) → O(1) per event)
  • Fix tab persistence: aggregate tabs from all windows at quit time instead of last-write-wins per-coordinator save
  • Split DatabaseManager.sessionVersion into fine-grained connectionListVersion and connectionStatusVersion to reduce cascade re-renders
  • Extract AppState property reads into local lets in view bodies for explicit granular observation tracking
  • Reorganized project directory structure: Services, Utilities, Models split into domain-specific subdirectories
  • Database driver code moved from monolithic app binary into independent plugin bundles under Plugins/

Don't miss a new TablePro release

NewReleases is sending notifications on new releases.