Major

v0.30.0

View diff
Bug Fixes
  • cirepair web and PostgreSQL checks64472f0
  • climake web a subcommand55bf5db
  • clipboardquote copied column names by driverb446e37
  • clipboardquote SQL INSERT identifiers with the driver's quote character4e3738b
  • column-statsplugin stats follow-ups (i18n, sql_syntax.extends, sample_size, docs) ([#1239](https://github.com/TabularisDB/tabularis/issues/1239))c9dccba
  • connectionsharden db.trim() call sites against non-string database values ([#1136](https://github.com/TabularisDB/tabularis/issues/1136))5e5a0c7
  • create-pluginadd a create-plugin bin so npm and pnpm create work ([#1270](https://github.com/TabularisDB/tabularis/issues/1270))fe1bab5
  • create-pluginbuild darwin-arm64 on macos-latest in the release template ([#1269](https://github.com/TabularisDB/tabularis/issues/1269)), closes [actions/runner-images#13518](https://github.com/actions/runner-images/issues/13518)377dee9
  • create-pluginresolve shared aliases from web UI package5bbe34c
  • desktoprestore secondary window and export permissionsca11778
  • editorpreserve normalized query error messages5be8cd9
  • editorquote autocompleted identifiers that need it ([#1261](https://github.com/TabularisDB/tabularis/issues/1261))555bebe
  • explorershow the full column type with length and precision ([#1279](https://github.com/TabularisDB/tabularis/issues/1279))be532e3
  • exportwarn on partial loaded-row exports when total is unknown ([#1225](https://github.com/TabularisDB/tabularis/issues/1225))0da8a14
  • filtersreset applied state when Match case changesc4a2fce
  • gridfetch every result page when copying all rowsaeb589e
  • handle IME composition in table filters ([#1201](https://github.com/TabularisDB/tabularis/issues/1201))160b4bc
  • helmrender the same output on every helm templateb8b5c51
  • historymatch the custom range date fields to the filter selects ([#1286](https://github.com/TabularisDB/tabularis/issues/1286))bfcbcd8
  • historyretain query connection across navigation4b44468
  • importcancel pending uploads before starting SQLa26d111
  • json-viewerignore sessions owned by other windowse2a1b9e
  • mcpreport keychain read failures instead of connecting without the secret809c865
  • notebookclose bracket-quoted identifiers with ] ([#1285](https://github.com/TabularisDB/tabularis/issues/1285))571fdd2
  • pluginsauthorize declared explain parser assets505cea9
  • pluginskeep installed binaries in local storage7a430e8
  • pluginsrefresh connection catalogue after plugin install/remove5a33611
  • pluginsshare plugin registry result with connection catalogue ([#1266](https://github.com/TabularisDB/tabularis/issues/1266))1fd6384
  • pluginsstop plugin processes when Tabularis or its MCP server is killed ([#1284](https://github.com/TabularisDB/tabularis/issues/1284)) [#1280](https://github.com/TabularisDB/tabularis/issues/1280)0848fbe
  • runtimepreserve liveness while another host is runninge0039f7
  • runtimepublish approval heartbeats for web hosts99a34c2
  • scriptsread locales from packages/web-ui in sync-contribute-discussion0670bbc
  • securitypreserve keys and active authentication state97d067e
  • securitypreserve private SSH profile permissionsa2f949e
  • settingspersist grid and masking preferences334b184
  • settingsrestore theme font when selecting System ([#1245](https://github.com/TabularisDB/tabularis/issues/1245))39dab01
  • storageuse runtime paths for desktop query persistencea6c0488
  • web-uikeep a replaced event socket from cancelling new subscriptionsa3a7109
  • web-uirecover when the server rejects the browser sessionb4786b9
  • webauthorize file databases and bind saved credential targets173551d
  • webauthorize inline connection host capabilities75741eb
  • webconfine save targets to configured roots75b26bc
  • webcount failed logins per client8ea681e
  • webexpire sessions and in-flight requestsbd27a87
  • webharden icon assets, proxy sessions and directory targets982005e
  • webisolate restricted event subscriptions5cac900
  • webload Tabularis faviconfc0f3ba
  • webone RPC entry point, real authorization in context, typed 413831b936
  • webprint the one-time sign-in URL when the browser cannot be opened64ba653
  • webrecover sessions and trust only configured proxies3a67ca6
  • webstop sweeping every file transfer on each request8b75144
Features
  • add AI generate and explain to command palette ([#1268](https://github.com/TabularisDB/tabularis/issues/1268))88d1cb3
  • backupschedule database content backups (Milestone 1) ([#1169](https://github.com/TabularisDB/tabularis/issues/1169)) ([#1207](https://github.com/TabularisDB/tabularis/issues/1207))6324058
  • buildship source maps in nightly builds ([#1272](https://github.com/TabularisDB/tabularis/issues/1272))7fdd836
  • dockerpublish Debian and Alpine images and a Helm chart52a8859
  • editoradd a chart view for query results ([#1193](https://github.com/TabularisDB/tabularis/issues/1193)) [#1168](https://github.com/TabularisDB/tabularis/issues/1168) [#1168](https://github.com/TabularisDB/tabularis/issues/1168)c27474c
  • explainnumeric cost and gap columns in the EXPLAIN CSV export ([#1237](https://github.com/TabularisDB/tabularis/issues/1237))5caeaf7
  • filterschoose case sensitivity for PostgreSQL text filters0cea48c
  • gridexport selected rows as CSV or JSON ([#1227](https://github.com/TabularisDB/tabularis/issues/1227)) [#1187](https://github.com/TabularisDB/tabularis/issues/1187) [#1233](https://github.com/TabularisDB/tabularis/issues/1233) [#1225](https://github.com/TabularisDB/tabularis/issues/1225) [#1247](https://github.com/TabularisDB/tabularis/issues/1247) [#1233](https://github.com/TabularisDB/tabularis/issues/1233) [#676](https://github.com/TabularisDB/tabularis/issues/676) [#1154](https://github.com/TabularisDB/tabularis/issues/1154)ad1e471
  • gridfreeze the first data column while scrolling horizontally ([#1234](https://github.com/TabularisDB/tabularis/issues/1234))6ca96f0
  • gridresize columns with the mouse and keyboard ([#1222](https://github.com/TabularisDB/tabularis/issues/1222)) [#844](https://github.com/TabularisDB/tabularis/issues/844)a73dc0f
  • historyfilter query history by database ([#1218](https://github.com/TabularisDB/tabularis/issues/1218))19d3903
  • historymake the custom date range a mode of the time-range select ([#1226](https://github.com/TabularisDB/tabularis/issues/1226)) [#1247](https://github.com/TabularisDB/tabularis/issues/1247) [#676](https://github.com/TabularisDB/tabularis/issues/676) [#1149](https://github.com/TabularisDB/tabularis/issues/1149)fa0ae7a
  • proxyadd per-scope system, custom and diasbled modes ([#1283](https://github.com/TabularisDB/tabularis/issues/1283))902f4d1
  • runtimeadd an encrypted file secret store64f5d70
  • serverbuild the container image without Tauri24a97e8
  • socialadd LinkedIn company profile ([#1244](https://github.com/TabularisDB/tabularis/issues/1244))4ed94a8
  • webaccept loopback HTTP public URLs in remote mode17d09a4
  • webadapt browser host capabilitiesefb63ca
  • webadapt plugin install links2a99495
  • webadapt secondary windows3471f84
  • webadapt updater for browser hosting5342792
  • webadd AI and approval parityd3e2d7a
  • webadd application client providerb5f1f5e
  • webadd browser HTTP transportdf609f9
  • webadd connection management parity409c4ba
  • webadd connection transfer and backup paritya7f9a75
  • webadd data editing and blob parity91e3082
  • webadd database dump and import parity1893178
  • webadd database object and user parity389dc2b
  • webadd generic export parity023ca59
  • webadd HTTP server skeletond3757a1
  • webadd logs and task manager parityf8083eb
  • webadd MCP host configuration parityec4beb2
  • webadd metadata explorer parity8bd7392
  • webadd notebook parity6efaf79
  • webadd platform capabilitiesc28194e
  • webadd plugin lifecycle paritydac2170
  • webadd plugin UI extension parity98cf1cd
  • webadd query execution parity6cb5051
  • webadd saved query and history parityc8079d8
  • webadd secure server file picker1c32773
  • webadd settings and preferences parity05ec0b3
  • webadd SSH and K8s tunnel parity8f6344e
  • webadd streaming file transfer tokens717f6c7
  • webadd typed command contracts81f04dd
  • webadd versioned RPC dispatcher2b6ec03
  • webadd web CLI options8397ca5
  • webadd websocket event busce5e051
  • webbring main's new features to the browser and share UI statea5d6bcb
  • webharden and centralize task runnerbac0b30
  • webharden performance and resiliencecacefd3
  • webmake browser routes refresh-safe6094fa4
  • webroute editors by connection9e75c18
  • websecure local browser sessions1434b5c
  • websecure remote authenticated access0bbf7eb
Major

v0.29.0

View diff
Bug Fixes
  • cimake typecheck follow the project references ([#1143](https://github.com/TabularisDB/tabularis/issues/1143))2c1ce63
  • clipboardquote CSV fields that contain the delimiter, a quote or a line break ([#1047](https://github.com/TabularisDB/tabularis/issues/1047))50e5937
  • close per-database pool overrides on disconnect ([#1063](https://github.com/TabularisDB/tabularis/issues/1063)) [#946](https://github.com/TabularisDB/tabularis/issues/946) [#946](https://github.com/TabularisDB/tabularis/issues/946)0a7b40d
  • close pools before SSH/K8s resolution on disconnect and health-check ([#1070](https://github.com/TabularisDB/tabularis/issues/1070)) [#1065](https://github.com/TabularisDB/tabularis/issues/1065)129a83c
  • connectionsclear drop zones for folders and connections ([#1123](https://github.com/TabularisDB/tabularis/issues/1123))a78cb9c
  • connectionsdon't crash saving a connection whose ssl_mode is null ([#1086](https://github.com/TabularisDB/tabularis/issues/1086))c4b1abf
  • connectionslet duplicated URI connections be deleted ([#1085](https://github.com/TabularisDB/tabularis/issues/1085))eb51a55
  • create-pluginadd ui_extensions entry to the manifest with --with-ui ([#1053](https://github.com/TabularisDB/tabularis/issues/1053))13c7831
  • create-plugincopy locales folder in dev-install and release workflow ([#1090](https://github.com/TabularisDB/tabularis/issues/1090)) ([#1092](https://github.com/TabularisDB/tabularis/issues/1092))ddd3ba4
  • create-pluginfind the plugin binary in Cargo's real target directory ([#1096](https://github.com/TabularisDB/tabularis/issues/1096))13d01b2
  • create-pluginrun the Windows justfile recipes as PowerShell scripts ([#1190](https://github.com/TabularisDB/tabularis/issues/1190))355595c
  • datagridreturn focus when the column statistics popover closes ([#1179](https://github.com/TabularisDB/tabularis/issues/1179))c80187c
  • editorannounce a SQL file tab's unsaved marker to screen readers ([#1141](https://github.com/TabularisDB/tabularis/issues/1141))732d11c
  • editorclear pending grid focus request after a failed filter-by-value query ([#1221](https://github.com/TabularisDB/tabularis/issues/1221))511a317
  • editordo not trigger pagination shortcuts when typing in filter inputs ([#1013](https://github.com/TabularisDB/tabularis/issues/1013)) ([#1024](https://github.com/TabularisDB/tabularis/issues/1024))f9909b2
  • editorgive Copy SQL Without Comments feedback and hide it on generic-only dialects ([#1224](https://github.com/TabularisDB/tabularis/issues/1224))b09c204
  • editorshow a saved query's database in its tab and selector ([#1125](https://github.com/TabularisDB/tabularis/issues/1125))4688aa9
  • editorshow the full tab name as a tooltip and accessible name ([#1134](https://github.com/TabularisDB/tabularis/issues/1134))f100a7e
  • explorerkeep every selected schema loaded after confirming the picker ([#1203](https://github.com/TabularisDB/tabularis/issues/1203))1c96442
  • exportend every CSV and NDJSON record with a newline ([#1233](https://github.com/TabularisDB/tabularis/issues/1233))a54b766
  • exportnotebook CSV/JSON export reuses the editor formatter ([#1208](https://github.com/TabularisDB/tabularis/issues/1208)) ([#1209](https://github.com/TabularisDB/tabularis/issues/1209))bcbfe59
  • exportwrite CSV NULL the same way in both export paths ([#1175](https://github.com/TabularisDB/tabularis/issues/1175))4e6609b
  • favoritesfollow-up fixes for saved query folders ([#1183](https://github.com/TabularisDB/tabularis/issues/1183))5e5b947
  • favoritestranslate unreadable-folders error and log it once ([#1215](https://github.com/TabularisDB/tabularis/issues/1215))82f1384
  • follow-ups from PRs [#1063](https://github.com/TabularisDB/tabularis/issues/1063), [#1066](https://github.com/TabularisDB/tabularis/issues/1066), [#1069](https://github.com/TabularisDB/tabularis/issues/1069) ([#1100](https://github.com/TabularisDB/tabularis/issues/1100))ca6de53
  • generate-sqlquote table and column names in every generated tab ([#1133](https://github.com/TabularisDB/tabularis/issues/1133))2fe5453
  • get_materialized_view_definition fails with 'error serializing parameter 0' on PG 16 ([#1061](https://github.com/TabularisDB/tabularis/issues/1061)) [#1060](https://github.com/TabularisDB/tabularis/issues/1060) [tabularis-postgresql-plugin#146](https://github.com/tabularis-postgresql-plugin/issues/146) [#1060](https://github.com/TabularisDB/tabularis/issues/1060)2376b47
  • gridkeep the quotes of a JSON string pasted into a JSON column ([#1142](https://github.com/TabularisDB/tabularis/issues/1142))5c3b0cd
  • guard AiQueryModal database fallback to the active connection ([#1121](https://github.com/TabularisDB/tabularis/issues/1121))2ea3a6e
  • historyaccessibility polish for the history pause toggle ([#1212](https://github.com/TabularisDB/tabularis/issues/1212)) ([#1223](https://github.com/TabularisDB/tabularis/issues/1223))86cd998
  • i18napply system language when Language is set to Auto ([#1116](https://github.com/TabularisDB/tabularis/issues/1116))8e6aaa3
  • i18nuse resolved UI language for AI Explain modal in auto mode ([#1099](https://github.com/TabularisDB/tabularis/issues/1099))433e871
  • i18nuse resolved UI language for Visual Explain AI analysis in auto mode ([#1026](https://github.com/TabularisDB/tabularis/issues/1026))ea486a0
  • ignore src-tauri in vite watcher to avoid EBUSY crash on Windows ([#1217](https://github.com/TabularisDB/tabularis/issues/1217))ed80475
  • importretry the last source and show plain noData for empty files ([#1103](https://github.com/TabularisDB/tabularis/issues/1103))ec3d892
  • k8sread k8s connection profiles from the custom storage location ([#1229](https://github.com/TabularisDB/tabularis/issues/1229))0a64906
  • mcpfail closed on hash comments and backslash escapes in the read-only check ([#1197](https://github.com/TabularisDB/tabularis/issues/1197))befa402
  • mysqlkeep fractional seconds in DATETIME and TIMESTAMP values ([#1120](https://github.com/TabularisDB/tabularis/issues/1120))4bc1022
  • mysqlscope batch foreign key join by table name for MariaDB 12.1+ ([#1005](https://github.com/TabularisDB/tabularis/issues/1005))fc01f5f
  • mysqlshow FLOAT values without float noise and keep row matching ([#1068](https://github.com/TabularisDB/tabularis/issues/1068))d596e1a
  • pluginsbuild dumps and notebook literals from driver capabilities ([#1198](https://github.com/TabularisDB/tabularis/issues/1198))6c9777c
  • pluginsuse the target table context for UI slots ([#1078](https://github.com/TabularisDB/tabularis/issues/1078))d7b6875
  • reject database mismatch on pinned export session ([#1069](https://github.com/TabularisDB/tabularis/issues/1069)) [#947](https://github.com/TabularisDB/tabularis/issues/947) [#947](https://github.com/TabularisDB/tabularis/issues/947) [#947](https://github.com/TabularisDB/tabularis/issues/947) [#1067](https://github.com/TabularisDB/tabularis/issues/1067)e8138d6
  • reject database mismatch on pinned PostgreSQL transaction ([#1066](https://github.com/TabularisDB/tabularis/issues/1066)) [#947](https://github.com/TabularisDB/tabularis/issues/947) [#947](https://github.com/TabularisDB/tabularis/issues/947)8f183ef
  • scope AI schema context to the active database ([#948](https://github.com/TabularisDB/tabularis/issues/948)) ([#1104](https://github.com/TabularisDB/tabularis/issues/1104))bee8a51
  • shortcutslet global shortcuts fire from the SQL editor ([#1101](https://github.com/TabularisDB/tabularis/issues/1101))130d714
  • sidebarkeep the metadata error popover inside the viewport ([#1204](https://github.com/TabularisDB/tabularis/issues/1204))eeecf80
  • sshdiscard a cached SSH tunnel whose session has ended ([#1124](https://github.com/TabularisDB/tabularis/issues/1124))2bcad6e
Features
  • ai-activityrecord the target database in the audit log ([#1129](https://github.com/TabularisDB/tabularis/issues/1129))bd73da9
  • aiadd ChatGPT sign-in and plan usage ([#1118](https://github.com/TabularisDB/tabularis/issues/1118))721f024
  • aiadd Requesty as an AI provider ([#817](https://github.com/TabularisDB/tabularis/issues/817))4e10fe0
  • command-paletteadd a toggle editor word wrap command () ([#1076](https://github.com/TabularisDB/tabularis/issues/1076))941f8bd
  • connectionsadd copy button to error banner ([#1062](https://github.com/TabularisDB/tabularis/issues/1062))b05e1d5
  • connectionschoose the default database ([#1020](https://github.com/TabularisDB/tabularis/issues/1020))a4e82c4
  • data-gridadd random UUID cell action ([#1049](https://github.com/TabularisDB/tabularis/issues/1049))07b018e
  • data-gridopen a URL or email address from a cell ([#1079](https://github.com/TabularisDB/tabularis/issues/1079))a4b44ea
  • datagridcolumn statistics popover in the column header menu ([#1127](https://github.com/TabularisDB/tabularis/issues/1127))bcf3afd
  • datagridcomparison and contains operators in "Filter by this value" ([#1081](https://github.com/TabularisDB/tabularis/issues/1081))91bf15c
  • datagridedit a cell selection in bulk from the context menu ([#1130](https://github.com/TabularisDB/tabularis/issues/1130))5163260
  • driversallow in-memory databases for file-based plugins ([#1182](https://github.com/TabularisDB/tabularis/issues/1182)), closes [TabularisDB/tabularis-duckdb-plugin#14](https://github.com/TabularisDB/tabularis-duckdb-plugin/issues/14)cbc7d58
  • editoradd Copy SQL Without Comments action ([#1172](https://github.com/TabularisDB/tabularis/issues/1172))257a755
  • editoradd Transform to Uppercase/Lowercase to the SQL editor context menu ([#1072](https://github.com/TabularisDB/tabularis/issues/1072))e637bde
  • editorallow renaming console tabs ([#1056](https://github.com/TabularisDB/tabularis/issues/1056))766c1f9
  • editorexport loaded query results as an HTML file ([#1205](https://github.com/TabularisDB/tabularis/issues/1205))d75f7b7
  • editorexport loaded query results as NDJSON ([#1156](https://github.com/TabularisDB/tabularis/issues/1156)) ([#1187](https://github.com/TabularisDB/tabularis/issues/1187))5fa1343
  • editormove a tab left or right from its context menu ([#1195](https://github.com/TabularisDB/tabularis/issues/1195))03ff075
  • editorselect the current SQL statement ([#1055](https://github.com/TabularisDB/tabularis/issues/1055))43aa1e9
  • editorshow server time and fetch time separately in result status bar ([#990](https://github.com/TabularisDB/tabularis/issues/990)) ([#1021](https://github.com/TabularisDB/tabularis/issues/1021))4c2e6e1
  • editorshow the number of columns in the result status bar ([#1057](https://github.com/TabularisDB/tabularis/issues/1057))9c118af
  • editorundo and redo pending grid edits ([#1167](https://github.com/TabularisDB/tabularis/issues/1167)) ([#1206](https://github.com/TabularisDB/tabularis/issues/1206))444b06e
  • editorzoom the SQL editor font with Ctrl/Cmd + =, - and 0 ([#1071](https://github.com/TabularisDB/tabularis/issues/1071))7c74171
  • explainexport complete EXPLAIN table as CSV ([#1163](https://github.com/TabularisDB/tabularis/issues/1163)) ([#1184](https://github.com/TabularisDB/tabularis/issues/1184))14888af
  • explainsave raw plan output to file ([#1162](https://github.com/TabularisDB/tabularis/issues/1162)) ([#1178](https://github.com/TabularisDB/tabularis/issues/1178))506ce56
  • explorercopy quoted and qualified object names ([#1077](https://github.com/TabularisDB/tabularis/issues/1077))6ca030e
  • exportpropose a file name based on the table ([#1052](https://github.com/TabularisDB/tabularis/issues/1052))52fc943
  • favoritesorganize saved queries in connection folders ([#1181](https://github.com/TabularisDB/tabularis/issues/1181))8471d97
  • gridadd setting for default sort direction on header click ([#996](https://github.com/TabularisDB/tabularis/issues/996)) ([#1006](https://github.com/TabularisDB/tabularis/issues/1006))ba22659
  • gridcopy column names as lines and json array ([#1048](https://github.com/TabularisDB/tabularis/issues/1048))423749f
  • gridcopy column names as quoted SQL list ([#1153](https://github.com/TabularisDB/tabularis/issues/1153)) ([#1185](https://github.com/TabularisDB/tabularis/issues/1185))0524ac9
  • gridcopy the selection as an HTML table ([#1080](https://github.com/TabularisDB/tabularis/issues/1080))5d90a9b
  • historyadd Copy Details to the query history context menu ([#1073](https://github.com/TabularisDB/tabularis/issues/1073))9a4d5f8
  • historytemporarily pause editor query history capture ([#1150](https://github.com/TabularisDB/tabularis/issues/1150)) ([#1186](https://github.com/TabularisDB/tabularis/issues/1186))6858098
  • importload data from files ([#1023](https://github.com/TabularisDB/tabularis/issues/1023))715089c
  • jsonadd expand all and collapse all controls to JSON trees ([#1174](https://github.com/TabularisDB/tabularis/issues/1174))765a902
  • mcplet list_tables, describe_table and run_query pick the database ([#1089](https://github.com/TabularisDB/tabularis/issues/1089))da90d2a
  • model pooler mode in ConnectionParams ([#1128](https://github.com/TabularisDB/tabularis/issues/1128)) [#1126](https://github.com/TabularisDB/tabularis/issues/1126)1003c93
  • paletteshow keyboard shortcuts in command rows ([#1084](https://github.com/TabularisDB/tabularis/issues/1084))6e86d7d
  • pluginslet drivers declare their SQL syntax ([#1200](https://github.com/TabularisDB/tabularis/issues/1200))2b5765c
  • pluginsmake the shutdown grace period configurable ([#1025](https://github.com/TabularisDB/tabularis/issues/1025))a84838e
  • pluginsoptional get_column_stats RPC for the column statistics popover ([#1180](https://github.com/TabularisDB/tabularis/issues/1180))3103535
  • pluginssend connection context to DDL builders and add drop_table_sql ([#1199](https://github.com/TabularisDB/tabularis/issues/1199))312cef8
  • pluginssupport plugin-owned connection fields and secrets ([#629](https://github.com/TabularisDB/tabularis/issues/629))6b28df2
  • postgresbrowse multiple databases on one connection ([#822](https://github.com/TabularisDB/tabularis/issues/822)), closes [725/#340](https://github.com/TabularisDB/tabularis/issues/340) [TabularisDB/tabularis#837](https://github.com/TabularisDB/tabularis/issues/837) [#119](https://github.com/TabularisDB/tabularis/issues/119) [#614](https://github.com/TabularisDB/tabularis/issues/614) [#1](https://github.com/TabularisDB/tabularis/issues/1) [#3](https://github.com/TabularisDB/tabularis/issues/3) [#4](https://github.com/TabularisDB/tabularis/issues/4) [#5](https://github.com/TabularisDB/tabularis/issues/5) [#6](https://github.com/TabularisDB/tabularis/issues/6) [#7](https://github.com/TabularisDB/tabularis/issues/7) [#8](https://github.com/TabularisDB/tabularis/issues/8) [#9](https://github.com/TabularisDB/tabularis/issues/9) [#10](https://github.com/TabularisDB/tabularis/issues/10) [#2](https://github.com/TabularisDB/tabularis/issues/2) [#2](https://github.com/TabularisDB/tabularis/issues/2) [#9](https://github.com/TabularisDB/tabularis/issues/9) [#10](https://github.com/TabularisDB/tabularis/issues/10) [#3](https://github.com/TabularisDB/tabularis/issues/3) [#4](https://github.com/TabularisDB/tabularis/issues/4) [#3](https://github.com/TabularisDB/tabularis/issues/3) [#8](https://github.com/TabularisDB/tabularis/issues/8) [#7](https://github.com/TabularisDB/tabularis/issues/7) [#1](https://github.com/TabularisDB/tabularis/issues/1) [#5](https://github.com/TabularisDB/tabularis/issues/5) [#6](https://github.com/TabularisDB/tabularis/issues/6) [7/#10](https://github.com/TabularisDB/tabularis/issues/10) [#N](https://github.com/TabularisDB/tabularis/issues/N) [#2](https://github.com/TabularisDB/tabularis/issues/2)15868e4
  • replace the app logo and icons with the new Tabularis mark ([#935](https://github.com/TabularisDB/tabularis/issues/935))494b2b3
  • saved queriesopen, copy, and duplicate without running SQL ([#1083](https://github.com/TabularisDB/tabularis/issues/1083))6e5c1a0
  • sidebarexport a saved query directly as a SQL file ([#1146](https://github.com/TabularisDB/tabularis/issues/1146)) ([#1196](https://github.com/TabularisDB/tabularis/issues/1196))222242b
  • sidebaroptionally group open connections by folder ([#1122](https://github.com/TabularisDB/tabularis/issues/1122))afbe9c6
  • sidebarshow matching SQL excerpt in saved query search ([#1177](https://github.com/TabularisDB/tabularis/issues/1177))cf51828
  • team-sharevault file format and three-way merge ([#778](https://github.com/TabularisDB/tabularis/issues/778))bebdd9d
Major

v0.28.0

View diff
Bug Fixes
  • aistop sending temperature to Anthropic ([#918](https://github.com/TabularisDB/tabularis/issues/918))20eb0cd
  • cifind the PR of fork preview builds by head branch ([#979](https://github.com/TabularisDB/tabularis/issues/979))c6fea37
  • cipreserve executable AppRun.wrapped in stable AppImage ([#962](https://github.com/TabularisDB/tabularis/issues/962))fdac3b6
  • connectionskeep secrets in the keychain by default and write config files 0600 ([#980](https://github.com/TabularisDB/tabularis/issues/980))e1ef75f
  • connectionsreject unknown SSL modes instead of skipping verification ([#974](https://github.com/TabularisDB/tabularis/issues/974))eba54f7
  • copy all rows from multi-result and detached result views97a0e1e
  • create-plugingenerate rustfmt-clean driver plugins ([#988](https://github.com/TabularisDB/tabularis/issues/988))846ad0b
  • create-pluginupload the theme manifest with each release ([#984](https://github.com/TabularisDB/tabularis/issues/984))17e252d
  • distributionpass the WinGet Tauri config by file ([#976](https://github.com/TabularisDB/tabularis/issues/976))8636068
  • distributionpublish a WinGet-managed NSIS installer ([#975](https://github.com/TabularisDB/tabularis/issues/975))e98c77f
  • editorpreserve SQL edits when switching console tabs ([#970](https://github.com/TabularisDB/tabularis/issues/970))5648e51
  • filterexpose the Match all/any toggle as pressed buttons instead of radiosdd13706
  • filterignore incomplete structured filters when building the WHERE clause ([#941](https://github.com/TabularisDB/tabularis/issues/941))e156c26
  • filterreset the filter panel when the active table tab changes8c7856e
  • filterspreserve quoted values in IN and NOT IN clauses ([#969](https://github.com/TabularisDB/tabularis/issues/969))79931d9
  • filteruse ! as LIKE escape so text operators work on MySQL/MariaDBc7fd46c
  • filteruse theme tokens and a visible focus state for the Match all/any toggle703a059
  • importsend booleans as literals into existing MySQL TINYINT columns ([#967](https://github.com/TabularisDB/tabularis/issues/967))08999b5
  • importuse the driver's identifier quote in Import from Clipboard ([#936](https://github.com/TabularisDB/tabularis/issues/936)) [#904](https://github.com/TabularisDB/tabularis/issues/904)62a0157
  • k8sstop and health-check port-forward tunnels ([#942](https://github.com/TabularisDB/tabularis/issues/942))9879ab4
  • keep the primary key in Generate SQL for SQLite tables ([#983](https://github.com/TabularisDB/tabularis/issues/983))6591db4
  • linuxkeep zbus on the async-io backend to avoid the notification crasha7c67c4
  • logginghonour RUST_LOG for the log level ([#933](https://github.com/TabularisDB/tabularis/issues/933)) [#895](https://github.com/TabularisDB/tabularis/issues/895) [#895](https://github.com/TabularisDB/tabularis/issues/895)7b5c5cf
  • make --debug raise the log level to Debugf5a9f32
  • mcpblock side-effecting calls hidden by quoted names or dollar/E literals in read-only mode ([#1054](https://github.com/TabularisDB/tabularis/issues/1054))ecc12a6
  • mcpwrite the Claude Desktop config to %APPDATA%\Claude on Windows ([#902](https://github.com/TabularisDB/tabularis/issues/902))7ddceea
  • mysqlread column lengths on MySQL 8 ([#968](https://github.com/TabularisDB/tabularis/issues/968))bf04de5
  • mysqlread index column positions on MySQL 8 ([#966](https://github.com/TabularisDB/tabularis/issues/966))3ffddf9
  • mysqlread routine parameter positions on MySQL 8 ([#944](https://github.com/TabularisDB/tabularis/issues/944))1a7f86d
  • pluginsaccept JSON-RPC error responses with a null id3f8e6ed
  • pluginsdrain in-flight RPCs during bounded shutdown ([#961](https://github.com/TabularisDB/tabularis/issues/961))47da9fa
  • pluginshonor selected Redis database in RPC requests ([#960](https://github.com/TabularisDB/tabularis/issues/960))05e0daa
  • pluginspass SlotContextMap fields to UI slot hosts ([#951](https://github.com/TabularisDB/tabularis/issues/951))7f5eda0
  • postgresidentify routine overloads by signature, not by name ([#893](https://github.com/TabularisDB/tabularis/issues/893)) ([#926](https://github.com/TabularisDB/tabularis/issues/926))aa3870e
  • postgresshow real values without float noise and keep row matching ([#950](https://github.com/TabularisDB/tabularis/issues/950))8121adc
  • recover table refresh after an initial query failure0d0d85c
  • release the log buffer lock before logging in get_logsd708114
  • restore type fidelity in Generate SQL / Create Table ([#840](https://github.com/TabularisDB/tabularis/issues/840)) ([#939](https://github.com/TabularisDB/tabularis/issues/939))f9a897c
  • scope detached results sync and copy events per tab ([#958](https://github.com/TabularisDB/tabularis/issues/958))ea8f0f4
  • settingspersist column masking and grid interaction settingsf4b3871
  • settingsshow an error when a log action fails ([#987](https://github.com/TabularisDB/tabularis/issues/987))bb31cbb
  • settingsstop the Export Logs confirmation mentioning the clipboarde0fda9b
  • sidebaradd New routine button to schema and multi-database layouts8063b64
  • sidebarimport from a table's menu into that table's schema ([#945](https://github.com/TabularisDB/tabularis/issues/945))f9d79c6
  • sidebarrefresh the explorer tree after Import from Clipboarda846bf5
  • sqlitereport columns without a default as having none ([#982](https://github.com/TabularisDB/tabularis/issues/982))c85b90d
  • sshuse the selected key and passphrase without a system askpass ([#848](https://github.com/TabularisDB/tabularis/issues/848))7cac68e
  • triggersdialect-aware guided create/edit and safe restore ([#955](https://github.com/TabularisDB/tabularis/issues/955))f938a8a
  • uialign auto-refresh select with toolbar styling ([#1022](https://github.com/TabularisDB/tabularis/issues/1022))a3e6153
  • updaterdetect Homebrew Cask and WinGet installs57c9999
  • updaterkeep the in-app updater for Homebrew, tidy WinGet detectionfba9741
Features
  • autocompleteresolve CTE and derived-table columns ([#963](https://github.com/TabularisDB/tabularis/issues/963))54c7019
  • connectionsimport JDBC URLs, query credentials and SSL modes ([#952](https://github.com/TabularisDB/tabularis/issues/952))c496bc9
  • datagridshow when table auto-refresh is activeaca5fd7
  • editorduplicate tab from the tab context menu ([#875](https://github.com/TabularisDB/tabularis/issues/875))427a7d6
  • editormake hidden SQL characters visible and easy to clean ([#1015](https://github.com/TabularisDB/tabularis/issues/1015))8bb50f6
  • editornotify when a long-running query finishes in the background ([#867](https://github.com/TabularisDB/tabularis/issues/867))f0f12b9
  • editorreopen the last closed tab (Ctrl/Cmd+Shift+T)e161d7e
  • editorswitch tabs in most recently used order ([#1011](https://github.com/TabularisDB/tabularis/issues/1011))a323b57
  • explorershow definition and copy DDL for views ([#1010](https://github.com/TabularisDB/tabularis/issues/1010))ad3b19a
  • filteradd Match all / Match any (AND/OR) toggle to structured filter9543741
  • filteradd text-friendly operators for string columns70085fc
  • filterpick structured filter values from the column's distinct values ([#956](https://github.com/TabularisDB/tabularis/issues/956))f75f376
  • filterrender the structured filter panel inline instead of as an overlay943f4ee
  • gridjump to column picker (rebase onto main) ([#954](https://github.com/TabularisDB/tabularis/issues/954))4fe5959
  • gridsupport image preview on hover and SVG text detection ([#998](https://github.com/TabularisDB/tabularis/issues/998)) ([#1008](https://github.com/TabularisDB/tabularis/issues/1008))6b7f2ee
  • json-viewersupport clickable links and color swatches ([#997](https://github.com/TabularisDB/tabularis/issues/997)) ([#1007](https://github.com/TabularisDB/tabularis/issues/1007))e765b76
  • preserve per-tab table auto-refresh deadlines7295026
  • query-historyfilter by outcome and time range ([#943](https://github.com/TabularisDB/tabularis/issues/943))393b612
  • windowremember main window size and position ([#953](https://github.com/TabularisDB/tabularis/issues/953))f10bef8
Major

v0.27.0

View diff
Bug Fixes
  • create-pluginanswer unimplemented methods with "Method not found"237daf2
  • create-plugincorrect method-not-found guidance, tighten test0817b6f
  • datagridkeep column widths stable while scrolling2017ff3
  • datagridkeep masked cell values out of filter-by-value853cc02
  • editorguard each statement of a T-SQL batch6e7f487
  • editorkeep T-SQL routine bodies whole in the query guardc2dbeb9
  • editorscope the routine-definition guard exemption to its own batch93236f3
  • explaindefault Analyze off for every data-modifying statement61dba51
  • explainmask strings under every dialect and catch SELECT INTO86967a5
  • run T-SQL scripts as one batch instead of per statement3e5095a
  • settingspersist zebra stripes and sticky headers; tune striped row colorse1c7a7f
  • sidebarlabel the routine dialog button "Open in Editor"c9e527c
  • sidebaropen the Run… routine call for review instead of executing ite563d56
Features
  • connectionsreorder connections within a group by drage24cf9f
  • datagridfilter by this value from the cell context menu ([#853](https://github.com/TabularisDB/tabularis/issues/853))ac240f0
  • datagridoptional alternating row backgroundf30ab78
  • editorconvert selection to SQL list242a5e6
  • editorshow the schema on same-name table tabsb678226
  • name result tabs from leading SQL comments7ffa5d8
Major

v0.26.0

View diff
Bug Fixes
  • address command palette review feedbackf1bf295
  • address command palette review feedbackac8e53d
  • address review feedback on DataGrid scroll restoree3a6429
  • address review feedback on local path sanitization33c769d
  • address shortcut review feedbackd9a1b79
  • align reserved grid shortcuts with handlers6558d92
  • allow shortcuts with both primary modifiers7ba12c0
  • connect saved databases from command palette612c0b4
  • copy pending rows from data gridd99eac0
  • count pending rows in copy commanda724447
  • declare optional query templates in manifest schemasa54684c
  • editorannounce an open transaction from a mounted status regiona3e9473
  • editorcount and export inside a tab's open transactione4b4f37
  • editorrelease a tab's session on every close path3f81d24
  • editorrelease every closing tab's session4f1c498
  • editoruse the warning tone tokens for the TX badge64ad27a
  • expose editor commands in root palette6b555cb
  • expose JSON viewer in read-only menus190be38
  • finish nightly publication before starting another run6d8d4a6
  • gridclear the editing ref only when the editor closesc2c6be9
  • gridcommit an accepted date only once8491c4b
  • gridreadable edited cells and acceptable prefilled dates79e5b5b
  • gridsoften the edited JSON cell tint so the primary text stays readable on light row-state colors0079a99
  • group new console with editor commands5d3b0dc
  • harden command palette shortcutsa168c67
  • harden shortcut editinga712e2d
  • keep scroll offsets out of tab state, fix insertion auto-scroll race5b1916f
  • keep scroll position of grids in multi-result panel09a11f4
  • list only driver plugins in the connection catalogue11c4689
  • mysqlspeed up foreign-key metadata lookup840c053
  • pin the connection for single statements too2f1a36b
  • pluginskeep last-known-good call timeouts on config read failure96b4245
  • pluginslearn the session state a failed statement leftff13213
  • pluginsread a null in_transaction as false and restore a doc comment00288cb
  • pluginsresolve call timeout for get_table_query_template after merging mainea853b1
  • pluginsrevert Cloudflare D1 0.3.1 entry (release never published)29628a8
  • postgresbound the session map and never wait on exit7380b4f
  • postgresend the tab's transaction when COMMIT itself fails31d8f71
  • postgreskeep a busy session tracked on exit and close any dropped pine950589
  • postgresread transaction keywords past comments and optional WORK/TRANSACTION2c18fd7
  • postgresserialize a tab's runs and close cancelled connectionsbc5301d
  • postgresstream a mid-transaction export on the pinned connection1d036bb
  • postgressweep idle pinned sessions on a timer2fda2dc
  • postgrestreat a successful AND CHAIN as in a transaction7778134
  • refine shortcut conflict validation91cb7af
  • release a connection's open transactions on disconnect47a420c
  • release open transactions on every connection close, without waitinga181e67
  • release pinned sessions on app exit5ee85ab
  • report session state after a failed or cancelled run060b3d4
  • restore DataGrid scroll position across tab switches ([#823](https://github.com/TabularisDB/tabularis/issues/823))f044624
  • safely pass nightly version and organize script testsa998fc0
  • sanitize quoted local file paths for DB connections1e7e265
  • shortcutsuse the error text token for the modifier warningd375796
  • ssmfind the AWS CLI when launched from the desktop449aade
  • stamp nightly Cargo versions portably on macOS84ac156
  • support JSON menus in query resultsc78ae84
  • themesuse text.accent, border.focus and theme fonts as the contract intends5a09dae
  • use native-roots rustls for the Tabularium registry HTTP client844b96b
Features
  • a11ylint JSX with jsx-a11y and fix every violationadba98b
  • add editor actions to command palettea0e9982
  • add result actions to command palette86a4fe3
  • autocompleteharden nearest-table ranking edge cases and quoted identifiers (resolves [#760](https://github.com/TabularisDB/tabularis/issues/760))60913f7
  • editorcarry a tab's transaction across runs86e4d85
  • improve keyboard shortcut handlinga4a1852
  • opt in to driver-owned table query templates288c20a
  • pluginsconfigurable plugin call timeout with per-plugin override7de9bec
  • pluginssend a cancel notification to the plugin on call timeoutf818595
  • postgrespin a tab's connection while its transaction is openf0f05aa
  • switch connections from command palette0edce1d
  • themesenforce WCAG AA contrast in every built-in theme670eed3
  • themesroute every UI color, radius and font through the theme tokens9d33279
  • themessplit the manifest contract between host and registry483d425
  • unify command palette searchc5d0440
Major

v0.25.0

View diff
Bug Fixes
  • address review nits from [#784](https://github.com/TabularisDB/tabularis/issues/784) on the driver-registry rescan0ac2625
  • address startup resource review findings378d8f3
  • allow selecting and copying table schema textecdf876
  • allow viewing generated JSON columns1cf126f
  • canonicalize connection metadata cache keysb2317f8
  • cibuild nightlies from the newest green commit and show their real versionffa8e7b
  • connectionsaccept MongoDB replica set URIsf0a4bc4
  • connectionsdrop the stored password when a plugin hides the login inputsea3b0af
  • connectionsstop AWS SSM failures being reported as database errorsd8d6029
  • keep blob editor behind readonly guarde85a526
  • keep schema selection readable across themes16d757b
  • open JSON viewers for read-only results6321545
  • pluginsrespect standalone driver display namese80f5e6
  • preserve built-in-collision refusal and bound rescan frequency4524666
  • reconcile MCP driver registry against disabled/uninstalled plugins ([#787](https://github.com/TabularisDB/tabularis/issues/787))44e1d8d
  • self-heal MCP driver registry on unsupported-driver misses ([#783](https://github.com/TabularisDB/tabularis/issues/783))89afca5
  • themesreuse plugin removal dialog for theme packages268e0b2
Features
  • connectionsadd AWS SSM Session Manager port forwarding109f18c
  • expose table and column commentsc62a328
  • mcpadd default output format setting9bda9bb
  • mcpadd optional TOON tool output0c52f89
  • pluginslet the extra_fields slot hide host credential inputsd1d26ac
  • themesadd registry schema hints and authoring CIce59500
  • themesadd secure installable declarative themes331a94a
  • themesunify theme management and theme-aware controls253a101
  • uiunify update cues across connections, plugins and sidebar4567a9a
  • updatessurface core and plugin updatescbbe704
Performance
  • reduce startup loading and defer plugin initializationd16d5bb
Major

v0.24.0

View diff
Bug Fixes
  • address proxy PR review (blocker + notes + registry proxy)a9d0298
  • close MigrationChecklistModal on Escape789dfad
  • comments raised4ddc723
  • failing test cases4feed3c
  • linuxrepair desktop entry for deep links, category and nameb5a4d4d
  • nitpics in utils changesafe9d38
  • nits raisedfedd827
  • Notebook View and also include mariaDB casef134bd9
  • parse connection port as number in NewConnectionModalcc9b7cb
  • render update release notes as markdown400aed3
  • resolve tabularium reqwest mismatch and SOCKS read_exact ambiguitye575767
  • result toolbar methoda0beaa9
  • route Tabularium SDK HTTP through app_http proxyf5dc637
  • snaprepair snap sandbox integration [#710](https://github.com/TabularisDB/tabularis/issues/710)6f8dae5
  • sqlContextreset table refs when frame transitions to statement scope46f288a
  • stop persist_activation from reverting concurrent config changesec3428c
  • stop SSH tunnels on proxy config save instead of orphaning them74faeea
  • test casesd007d91
  • themefollow Linux desktop portal preferences191aad9
  • themefollow native system appearanced2b0aa8
  • themeresolve Linux desktop default without forced-theme feedback537f7ca
  • uirespect theme colors in saved query modal70af5d6
  • widen NewConnectionModal updateField for proxy override262082c
Features
  • add pluggable HTTP/SOCKS5 proxy settings and fork-local Windows CId7e1902
  • autocompleterank columns of nearest table first1c90484
  • changelogadd personal sponsorship and GitHub star invitationca4e869
  • create reusuable visual explain componentad36307
  • editorshow a running indicator on the tab whose query is executing240f070
  • notebookinline query plan in SQL cells, plus notebook UX fixes83da5eb
  • pluginsdiscover capabilities and types per connection50b1a9e
  • settingsadd a font setting for query result cellsfa59d9e
Major

v0.23.0

View diff
Bug Fixes
  • add missing deprecated-driver translations and drop a leftover placeholder0bdbae1
  • bugs found in manual dev-mode verification of Chunks 3-48c1745b
  • bulk migration loses history records to a stale closure4a5626d
  • checklist rows vanish mid-run and the footer goes stale01c41ae
  • correct connection-string capability check, default URI rows unchecked, add repo-URL fallback3339024
  • derive postgres/postgresql references in Connections.tsx from the hook, not hardcoded strings1c6035e
  • derive the migration checklist's default selection once data has loaded16a3c75
  • dumpescape JSON columns and backslashes per dialect05df3f9
  • editorkeep typed characters after a backward selection on WebKitf8f4d68
  • editorstop the debounced query flush from dropping keystrokesfabea7f
  • give the bulk checklist feedback during a long connection test7ae9186
  • migrateConnection/undoMigration never reject on unexpected errorsc2c8b86
  • misattribute a pre-existing connectivity failure to the plugin2c1e6c8
  • postgresmake pool size configurable38aac16
  • preserve unknown connection fields19a4f5e
  • rank tables first and tighten search in the quick navigatore67e23b
  • read the migration banner's removal date from the manifest, not a hardcoded string4cc2acf
  • reconnect after migrating/undoing a connection that was open5ea965c
  • scope the quick navigator to the selected schemas68b5e57
  • seed active_external_drivers from installed plugins before force-installaad99c7
  • show the migration outcome toast at the resolve site, not via a lastOutcome effect58fa17f
  • sync frontend state when the background force-install activates a plugin3583832
  • testbind storage globals to the jsdom environmentffb26b1
  • translate the new pre-existing-failure and checklist-progress copybf01c05
  • undoMigration reads stale connection state from the toast's closure4e849f9
Features
  • card migration button, pre-migration confirm, and Chunk 5 issue link72f4dfc
  • custom storage location for connections and app data81484b8
  • explainadd parser registryf64db40
  • explainrender XML raw plans and cover loader cancellation6159ac7
  • migration checklist modal, banner-link fix, commit-prefix correction8fef147
  • migration hook, banner, and connectivity gatee552cad
  • open, edit and save SQL files in editor tabsfba877c
  • per-connection switch action, deprecated badges, catalogue ordering7f916c4
  • pluginsenforce min_runtime_version at install and load timeac87e73
  • pluginslet development builds bypass min_runtime_version with a warning toast7cb24f3
  • pluginsload explain parser bundlesba0463d
  • pluginssupport raw explain output5f0fa21
  • Rust backend foundation for builtin-to-plugin driver migrationec30d3a
  • TS types, settings, and pure utils for driver migrationc904547
  • wire up the post-migration outcome toast (Undo / Report an issue)2651e60
Other
    Major

    v0.22.0

    View diff
    Bug Fixes
    • add test case for useCopyFeedback.test.ts hook and error handling3ffc973
    • comments raised by klio0814a3a
    • edge case reported by Kilo bot5c244e1
    • layoutkeep pages inside main when the production banner is shownad44b6d
    • mysqlqualify SHOW CREATE routine with target schemadff8a4a
    • nitpicks raised during review5e25f98
    • notebook cell scroll into view UX2bd51eb
    • notebookaddress bugs in the frontend part of notebook featuref94f714
    • postgresuse rustls connector in test_connection to support client certs and custom CA98247e1
    • refine code a bit50a3de0
    • SQL cell in editor to be in full size by default66cdfdb
    • sqlitedisplay text blobs as UTF-8b90292c
    • themeadd final fallback for delete-active replacementd0ca886
    • thememode-correct load fallback, pure setState updaterf838204
    • themereplace active theme with OS-mode preset on delete in follow-system modec721476
    • uistable keys, useCopyFeedback hook, sanitize HTML, eliminate render-time setState730213a
    Features
    • configadd follow-system theme fields to AppConfigcdc1418
    • configure window decorations for tiling managers0495121
    • gridspreadsheet-style keyboard selection and header column selectfca23d3
    • settingsadd static/follow-system theme mode UIb9809a7
    • themeadd resolveActiveThemeId helpere629803
    • themefollow system appearance with per-mode themesfec0c97
    Major

    v0.21.0

    View diff
    Bug Fixes
    • editorcomplete database-qualified tables44b00f4
    • editorhandle qualified tables in grid editinge99be83
    • guard the SSL-mode migration against a concurrent-write race44eeb5b
    • postgresadd mTLS client certificate authentication support6bb4e9b
    • run the SSL-mode migration from the --mcp server processc7058ae
    • show production banner only in editor8dbde6f
    • skip postgres client auth when ssl_mode is disabled and use tempfile in tests07793f9
    • snapship a desktop entry so the app appears in the launcher370f4d7
    • unify safety confirmation guards42e9431
    Features
    • editoradd SQL query folding previewsa5545a9
    • per-tab page size selector in the results pagination bar1c33a0e
    • pluginssupport cancelling installations2d5974f
    Major

    v0.20.0

    View diff
    Bug Fixes
    • 4 useCallback deps missing activeCapabilities in Editor.tsxd626253
    • add missing BLOB wire-format decoding to binding cascade (regression)47bd5b2
    • add missing enum-CAST binding to CRUD (regression)efaaaec
    • address code review findings for CI reliabilityce2d25f
    • assert_golden must fail on a missing golden file0f85952
    • cache connection pools by identity instead of rebuilding per call7b277c9
    • clear command execution state explicitlye0be0bd
    • connection-form host/port grid keys off dialect, not driver id ([#614](https://github.com/TabularisDB/tabularis/issues/614))7f2e443
    • correct 7 test-authoring bugs in the 80-test parity suite40b5603
    • correct API signatures in integration tests67ba130
    • correct field name in parity_get_foreign_keys test9b0143a
    • datagridaddress paste review feedbackef57700
    • editorapply pending-change updates functionallya1e4a5e
    • editorkeep add row available for empty tables6f438ca
    • editorkeep query results when switching between connections [#292](https://github.com/TabularisDB/tabularis/issues/292)cdeff36
    • exclude execution_time_ms from execute_batch parity comparison3be48ee
    • getDriverIcon never checked for a URL/data: manifest icon ([#632](https://github.com/TabularisDB/tabularis/issues/632))ebd269c
    • handle known MV definition error in golden capture test9c60f72
    • identifier quoting keys off dialect, not driver id ([#614](https://github.com/TabularisDB/tabularis/issues/614))c9a38fb
    • implement Debug for BoundValue so unit tests compile3cfe752
    • implement missing type extractors and truncated field (regression)8dcaae9
    • inputssuppress macOS WKWebView text hints on all technical fields75d68e3
    • keep palette keyboard handling at dialog scopef2bbdda
    • limit CI test parallelism to prevent pool exhaustionbc91e50
    • lintavoid synchronous setState in effect in AlertModal32cc80c
    • make sql_dialect a true Option so absence isn't silently postgres, closes [pre-#614](https://github.com/pre-/issues/614)839eb59
    • match builtin driver's character_maximum_length extraction226cf2d
    • match URL/data: icon schemes case-insensitively via shared isUrlIcon21a30b3
    • MCP schema default keys off dialect, not driver id ([#614](https://github.com/TabularisDB/tabularis/issues/614))72ed31b
    • migrate already-persisted stale ssl_mode values ([#614](https://github.com/TabularisDB/tabularis/issues/614))29fc233
    • mysqldelete rows with binary primary keys77b9a7a
    • notebooksupport ${name} template syntax in addition to [@name](https://github.com/name)8370145
    • palettekeep the selection off whatever the cursor rests onffae683
    • palettename the object dialog and render footer keys as caps976d6b7
    • parity harness must fail loud on a bad POSTGRES_PLUGIN_BINa2a6cfe
    • pluginsunify plugin data directory under `tabularis`ef9716e
    • postgrescoerce numeric and temporal strings in row-identity predicates21237a4
    • preserve object definition error detailse2d0665
    • preserve palette grouping and selection visibilitya379297
    • preserve table context type narrowing40e762c
    • resolve all 72 integration test failures33eca80
    • resolve commands through active editor scope9e46367
    • resolve compilation errors in Sprint 5604e448
    • resolve compilation issues from Sprint 1 review655e090
    • retry transient pool errors in flaky integration testsbbd6cda
    • rewrite destructive-mutation parity tests to run per-target1f5bb58
    • run integration tests sequentially to eliminate pool flakiness702936a
    • satisfy command palette build types30d85eb
    • sidebarhandle routine metadata failuresb7a0b9f
    • SSL mode dropdown branches on capability, not driver id ([#614](https://github.com/TabularisDB/tabularis/issues/614))77fcb63
    • strip trailing blank line at EOF in mcp/tests.rs3ddc463
    • strip user LIMIT/OFFSET before appending pagination clause, closes [4/#5](https://github.com/TabularisDB/tabularis/issues/5)9e87cf7
    • thread driver capabilities through remaining call chains ([#614](https://github.com/TabularisDB/tabularis/issues/614))da0fd9f
    • thread driver capabilities through sidebar components ([#614](https://github.com/TabularisDB/tabularis/issues/614))a82eff2
    • tighten test assertions to strict TDD (no lenient passing)42e1c54
    • trivial capability-driven quoting call-site swaps ([#614](https://github.com/TabularisDB/tabularis/issues/614))0b46ece
    • Update `uriPassthroughEnabled` to be exported and accept7b22913
    Features
    • add contextual command registry provider850d026
    • add spotlight-style command palette UIc70a138
    • alertsadd copy-to-clipboard button to alert modal9b63e3a
    • blobadd inline hex preview and editing902520b
    • datagridpaste cells from clipboard (Cmd/Ctrl+V)95448c6
    • define command palette contractsd0e44ef
    • i18ntranslate command palette strings into pt-BR246f6c3
    • layoutresolve the rendered split layout for a route704d9b5
    • paletteadd connection and table commands to the action palette053e4c5
    • palettescope palette actions to the connection that owns thema57390a
    • paletteshow which palette mode is open in the headereac86b0
    • uiadd opt-in backdrop close to Modal2c2a7bf
    • update package manager and add URI passthrough support ine7fbc0e
    • updatersupport custom package manager builds0b1236f
    • wire contextual action search shortcut57d4182
    Other
    • restore AGENTS.md and .gitignore to maind6f050d
    Major

    v0.19.0

    View diff
    Bug Fixes
    • connection-catalogueclean up engine card layout and namingf9df327
    • create-pluginscaffolded .tabularium failed registry validation54874aa
    • datagridenable editing tables without a primary key9e787b1
    • datagridharden keyless editing edge cases0a8c3bf
    • expand SQLite home pathsc03fc90
    • move session-field stripping to SettingsProvider02c21da
    • persist empty connection state after disconnect069de08
    • pluginsvalidate archives before install and improve error recovery5532b72
    • registryuse official MongoDB Atlas release ([#496](https://github.com/TabularisDB/tabularis/issues/496))e1ef671
    • repair merge with main (build errors, failing tests, restore ProductionBanner)30817f4
    • support parameters in explain plande7d0c2
    • tagsaddress review feedback and lint errorsc1f466e
    • tagstolerate orphaned tag ids, merge imported tags by name, cap name lengthd5072ec
    • use existing i18n key for explain submit button1cc99b4
    Features
    • connectionsenvironment classification with production safety warninge0118e0
    • connectionsfree-form colored tags assignable to connections7848789
    • connectionsopaque plugin-specific extra fields for ConnectionParams ([#596](https://github.com/TabularisDB/tabularis/issues/596))27226c5
    • connectionsreplace native dialogs with app-styled components in connection modal6d33bf7
    • datagridmask sensitive columns in the results grid8d2362f
    • pluginsadd locale-aware plugin README details modalbd9178e
    • pluginsextend RpcDriver for BLOB, materialized views, and type mappings ([#576](https://github.com/TabularisDB/tabularis/issues/576))54d9eae
    Major

    v0.18.0

    View diff
    Bug Fixes
    • aiadd MiniMax regional endpoint metadata ([#498](https://github.com/TabularisDB/tabularis/issues/498))ed9094e
    • connectionsrestore the stored URI when reconnecting5e13eee
    • connectionsswitch to all-databases mode when pasted URI has no databaseaa9fcea
    • data-gridopen dedicated editor for array cells on double-click ([#489](https://github.com/TabularisDB/tabularis/issues/489))cae497e
    • datagridaddress review — drop duplicate CopyFormat, toggle # tooltip1f6682d
    • datagridCtrl+click column toggle on macOS; 'Select All (N)' label87f7695
    • datagridgroup context-menu copy actions; pair the two scopes6b86341
    • datagridoffer copy-all when the row total is unknownd2f7d85
    • editorrender editor panes in stable order7488159
    • editorresolve a caret above the first statement to that statement9ab4c38
    • er-diagramprevent node overlap and add node lock toggle ([#558](https://github.com/TabularisDB/tabularis/issues/558))f5f9e34
    • mcpparse preflight explain output in the approval modal1361192
    • mysqlinclude MariaDB SYSTEM VERSIONED tables in table liste707682
    • nightlyscope the prerelease counter to the version base525b938
    • notebookharden SQL generation for params and cell references ([#559](https://github.com/TabularisDB/tabularis/issues/559))946f3db
    • reviewescape NUL byte in scopeKey, complete userManagement i18n9f88079
    • reviewinclude table in privilege log scope, add 'users' to CleanedTab type77c9235
    Features
    • connectionsall-databases mode (empty selection = browse everything)4441615
    • connectionsforward raw connection URIs to plugin drivers93d59d3
    • connectionsSSH test progress log, cancel, and diagnostics modalf422942
    • connectionsSSH tunnel test, classified errors, and test diagnostics04fbbe6
    • data-gridnavigate cells with the arrow keys3f87b5a
    • datagrid'Copy All (N)' menu item; copy-all ignores tab LIMIT729a9d9
    • datagridconfirm before copying rows beyond the loaded paged1ef9ca
    • datagridDBeaver-style cell range selection via Shift+clicka0247b0
    • datagridDBeaver-style multi-column selection and copy4870441
    • datagridexpose select-all via Cmd/Ctrl+A and context menub02fc35
    • datagridtoast with row count after copying rows198afb3
    • editorallow reordering tabs via drag-and-drop53ea0fa
    • editorlabel the Run button with what it will actually run21ed928
    • er-diagramexport the schema as Mermaid or DBML ([#521](https://github.com/TabularisDB/tabularis/issues/521))9e91a7a
    • indexesrender functional/expression indexes across drivers ([#499](https://github.com/TabularisDB/tabularis/issues/499))b66c737
    • mcpcompact plan summary and read-aware title in approval modale044e1f
    • postgressupport editing hstore columns ([#427](https://github.com/TabularisDB/tabularis/issues/427))fcee3d5
    • sqliteadd sqlite database creation workflows ([#523](https://github.com/TabularisDB/tabularis/issues/523))9bba294
    • usersdatabase user & privilege management (MySQL/MariaDB)d4813a1
    Major

    v0.17.0

    View diff
    Bug Fixes
    • connectionsdo not gate Load Databases on username ([#528](https://github.com/TabularisDB/tabularis/issues/528)) ([#533](https://github.com/TabularisDB/tabularis/issues/533))1ad3b8d
    • contain scrolling and grid overflow ([#493](https://github.com/TabularisDB/tabularis/issues/493))7f0b1c8
    • editorskip string literals and comments in query param detection ([#519](https://github.com/TabularisDB/tabularis/issues/519))f702aff
    • editoruse the Tauri clipboard API for Cut and Copy ([#520](https://github.com/TabularisDB/tabularis/issues/520))e4d98fd
    • importscope import to selected database and prevent double exe… ([#513](https://github.com/TabularisDB/tabularis/issues/513))914208f
    • postgreshonor ssl_mode in build_connection_url ([#378](https://github.com/TabularisDB/tabularis/issues/378))6288eea
    • sidebarprune dropped databases from the sidebar and saved selection ([#524](https://github.com/TabularisDB/tabularis/issues/524))d6b1460
    • uimake modal borders visible and clip rounded corners ([#509](https://github.com/TabularisDB/tabularis/issues/509)) [#5b6b82](https://github.com/TabularisDB/tabularis/issues/5b6b82) [#508](https://github.com/TabularisDB/tabularis/issues/508)1fb13f1
    Features
    • 525react to DROP DATABASE executed inside the app ([#535](https://github.com/TabularisDB/tabularis/issues/535))715239b
    • add configurable SQL formatter settings ([#504](https://github.com/TabularisDB/tabularis/issues/504))8e95bbb
    • add SQL formatting to editor (Shift+Alt+F) ([#500](https://github.com/TabularisDB/tabularis/issues/500))83050c7
    • editorclause-aware SQL autocomplete ([#505](https://github.com/TabularisDB/tabularis/issues/505))38984c3
    • explainexclusive metrics, node findings, diagram and stats views ([#529](https://github.com/TabularisDB/tabularis/issues/529))292825f
    • gridcopy column values as list or SQL IN clause ([#482](https://github.com/TabularisDB/tabularis/issues/482))7a975be
    • i18nadd Brazilian Portuguese (pt-BR) translation ([#537](https://github.com/TabularisDB/tabularis/issues/537))b76d4ce
    • postgressupport pgvector columns (vector, halfvec, sparsevec) ([#450](https://github.com/TabularisDB/tabularis/issues/450))ad5ae83
    • settingssearchable select for language picker4538fd0
    • sidebaradd a manual refresh for the database list ([#530](https://github.com/TabularisDB/tabularis/issues/530))284a45b
    • updaterin-app nightly release channel ([#497](https://github.com/TabularisDB/tabularis/issues/497)), closes [tauri-apps/tauri#8038](https://github.com/tauri-apps/tauri/issues/8038) [#5286](https://github.com/TabularisDB/tabularis/issues/5286)1327328
    Major

    v0.16.0

    View diff
    Bug Fixes
    • aiload schema context through database drivers ([#479](https://github.com/TabularisDB/tabularis/issues/479))9eaec7a
    • cibuild linux release in ubuntu:22.04 container to avoid glibc mismatchaf7d0bc
    • create-pluginscaffold i18n locales with --with-uif7fa5bc
    • editornormalize smart quotes in table filter and sort clauses ([#439](https://github.com/TabularisDB/tabularis/issues/439))f1b9681
    • gate Windows-only constants behind cfg attribute4b4d14c
    • handle null plugin config during uninstall ([#501](https://github.com/TabularisDB/tabularis/issues/501))cd73846
    • k8salign advanced settings styles7c3bf0b
    • k8scancel path validation on modal close79e2d56
    • k8sclear superseded test state9217c77
    • k8senforce inline selection state63454c3
    • k8sguard actions across path preflightafa25a0
    • k8sharden saved connection edit state649c674
    • k8sinvalidate stale connection tests5744246
    • k8sisolate modal action lifecyclesb418eb9
    • k8smake tunnel cache keys collision safed16e5c8
    • k8sreset cancelled path validation state791e225
    • k8sresume port discovery after manual cleare7cc2be
    • k8sscope preflight feedback to active actions45d9c40
    • k8sserialize path preflight applicationf8be780
    • k8svalidate complete path pairs before applya137dc3
    • k8svalidate persisted path overrides972c8f7
    • lintdrop unused import + remove synchronous setState in effectfb10aec
    • mcpstop logging to stdout, it corrupts the JSON-RPC transport ([#488](https://github.com/TabularisDB/tabularis/issues/488))a50070a
    • mysqldisplay all result sets from stored procedures returning multiple result sets ([#415](https://github.com/TabularisDB/tabularis/issues/415))d98e6aa
    • pluginsaccept legacy manifest.json bundles on install and liste983551
    • pluginsadd engine/paradigms to driver test manifest962f4fa
    • pluginsdrop the picked version once it's installedd7b9dbb
    • registryaddress PR review (broken links, perf, prototype, empty version)4d4368c
    • registrydon't link legacy-only plugins to a 404 on the APIdf18056
    • registrykeep installed plugins updatable when 0.13 unlists theme1d90fc
    • registrykeep legacy registry.json + builtins-first/other-last catalogue sortb705383
    • row-editorrender decoded JSON/JSONB objects instead of [object Object] ([#475](https://github.com/TabularisDB/tabularis/issues/475))1ea7479
    • settingsshow MiniMax API key status ([#454](https://github.com/TabularisDB/tabularis/issues/454))0356ea3
    Features
    • backupautomatic encrypted connection backups with local and Webdav targets ([#470](https://github.com/TabularisDB/tabularis/issues/470))e6b79a5
    • catalogueconnection catalogue wizard for New Connection3cc1afc
    • create-plugin.tabularium manifests, migrate command, registry-ready CI2cbb015
    • deeplinkversion-aware install/update/already-installed UI44b0e3a
    • driversadd explain capability flag to hide Visual EXPLAIN when unsupported ([#491](https://github.com/TabularisDB/tabularis/issues/491))c53a418
    • frontendrun statement at cursor on Cmd+Enter ([#464](https://github.com/TabularisDB/tabularis/issues/464))05c373a
    • hooksadd latest-only async guardd2a3540
    • i18ntranslations for catalogue + deep-link install0bc176e
    • k8sadd configurable kubectl command runner4f39623
    • k8sadd kubectl override fieldsc8415cc
    • k8sadd shared advanced settings fieldse1d4e15
    • k8scentralize advanced path state4883b16
    • k8sintegrate advanced inline connection settings8c8fcd6
    • k8sintegrate advanced saved connection settingse7eea3d
    • k8spass command overrides through frontend utilities5231013
    • k8spropagate kubectl overrides through MCP4a68d3e
    • k8swire kubectl override commandsc2ca059
    • mysqlsupport AWS RDS IAM authentication ([#404](https://github.com/TabularisDB/tabularis/issues/404))247799f
    • pluginsadd Elasticsearch plugin to registry ([#476](https://github.com/TabularisDB/tabularis/issues/476))376b760
    • pluginsforward external batch query RPC ([#443](https://github.com/TabularisDB/tabularis/issues/443))8ccc203
    • pluginsoffer the update in the Installed tabe1999fe
    • registryhosted Tabularium registry with deep-link install + BC layerde4322c
    • registryplace local plugins in catalogue + single_database driver supportd113fa4
    • resultscopy and export rows as Markdown table ([#474](https://github.com/TabularisDB/tabularis/issues/474)) ([#481](https://github.com/TabularisDB/tabularis/issues/481))cc53c92
    Major

    v0.15.0

    View diff
    Bug Fixes
    • data-gridrestrict Set Empty to textual columns ([#442](https://github.com/TabularisDB/tabularis/issues/442))9117f1a
    • fixes auto pagination color, dropdown menu font and save menu ([#461](https://github.com/TabularisDB/tabularis/issues/461))6825e02
    • frontendautocorrect in table filter input ([#437](https://github.com/TabularisDB/tabularis/issues/437))52ae10b
    • frontendautocorrect in table filter input ([#437](https://github.com/TabularisDB/tabularis/issues/437))a2c5447
    • frontendquality-of-life consistency pass on modals and small UI components ([#440](https://github.com/TabularisDB/tabularis/issues/440))c038e7e
    • frontendturn off spellcheck in table toolbar ([#432](https://github.com/TabularisDB/tabularis/issues/432))69da82a
    • gridkeep result column headers pinned while scrolling ([#433](https://github.com/TabularisDB/tabularis/issues/433))db288be
    • mcpclassify EXPLAIN ANALYZE as the statement it executes ([#456](https://github.com/TabularisDB/tabularis/issues/456))6dab82f
    • mcpserialize multiple databases in list_connections and add list_databases tool ([#426](https://github.com/TabularisDB/tabularis/issues/426))d16878c
    • mysqldisplay ENUM allowed values and add dropdown editing ([#452](https://github.com/TabularisDB/tabularis/issues/452)) ([#455](https://github.com/TabularisDB/tabularis/issues/455))07f893e
    • pluginAvoid open new window for plugin process on windows ([#451](https://github.com/TabularisDB/tabularis/issues/451))9e1e760
    • postgrescast enum values to their column type and add dropdown editing ([#465](https://github.com/TabularisDB/tabularis/issues/465)) ([#471](https://github.com/TabularisDB/tabularis/issues/471))2dc67d3
    • prevent visible console window and clean up SSH tunnels on app exit ([#418](https://github.com/TabularisDB/tabularis/issues/418))b656025
    • sessionstop restoring tabs of a disconnected connection on launch ([#467](https://github.com/TabularisDB/tabularis/issues/467))5683f09
    • uiguard type before parsing enum/set valuescdfaae3
    • uikeep dropdowns and submenus inside viewportbc4621c
    Features
    • connectionsadd export modes with optional password encryption ([#447](https://github.com/TabularisDB/tabularis/issues/447))fd077ff
    • connectionsexport only the selected connections ([#469](https://github.com/TabularisDB/tabularis/issues/469))2fdd74f
    • connectionsmulti-select with bulk delete and move to group ([#468](https://github.com/TabularisDB/tabularis/issues/468))b3af9e5
    • connectionstypo-tolerant fuzzy matching for the connection search ([#444](https://github.com/TabularisDB/tabularis/issues/444))361c88e
    • datagridshow column type in header hover tooltip ([#436](https://github.com/TabularisDB/tabularis/issues/436))d1c13b0
    • groupssupport nested connection groups with cascade delete ([#405](https://github.com/TabularisDB/tabularis/issues/405)), closes [1/#3](https://github.com/TabularisDB/tabularis/issues/3)6f5a8af
    • i18nadd Tagalog language support ([#457](https://github.com/TabularisDB/tabularis/issues/457))51a78ea
    • pathssupport dev connections file in debug builds0ad4263
    • settingsmanage SSH connections from a dedicated settings tab ([#441](https://github.com/TabularisDB/tabularis/issues/441))c2366fe
    Major

    v0.14.0

    View diff
    Bug Fixes
    • mcpclassify compound routines as ddl ([#385](https://github.com/TabularisDB/tabularis/issues/385))11d4806
    • mysqlremove duplicate test import and dead text-proto lookupsc317f81
    • mysqlroute routine DDL through text protocol ([#348](https://github.com/TabularisDB/tabularis/issues/348))04b22b0
    • mysqlroute view DDL through text protocol ([#390](https://github.com/TabularisDB/tabularis/issues/390))99e3532
    • pluginskeep ui_extensions driver filter when parsing plugin manifests ([#424](https://github.com/TabularisDB/tabularis/issues/424))2d144d3
    • postgresbind temporal/uuid values via explicit wire typesdc8ec17
    • postgrescast view name through text before regclass for view definitions ([#400](https://github.com/TabularisDB/tabularis/issues/400))f98b7a8
    • preserve composite indexes in generated SQL ([#373](https://github.com/TabularisDB/tabularis/issues/373))85f7c5b
    • sidebarprevent clear button (X) from overlapping scrollbar in table filter ([#403](https://github.com/TabularisDB/tabularis/issues/403))d15d294
    Features
    • connectionsopen a connection in a dedicated window ([#409](https://github.com/TabularisDB/tabularis/issues/409))1018b91
    • editorshow and correctly count the current query's total rows ([#410](https://github.com/TabularisDB/tabularis/issues/410))ccb9652
    • mysqlsupport cleartext auth plugin for Warpgate bastions ([#336](https://github.com/TabularisDB/tabularis/issues/336)) ([#337](https://github.com/TabularisDB/tabularis/issues/337))174091e
    • navigatorfuzzy search in the Quick Navigator ([#421](https://github.com/TabularisDB/tabularis/issues/421))a1b3cfd
    • routinesstored routine management (run/create/edit/drop) with plugin support ([#416](https://github.com/TabularisDB/tabularis/issues/416))cd7e774
    • sidebaradd keyboard shortcut to focus the table filter ([#412](https://github.com/TabularisDB/tabularis/issues/412))feb3214
    • sidebartypo-tolerant fuzzy matching for the table/trigger filters ([#417](https://github.com/TabularisDB/tabularis/issues/417))471b73e
    • viewsadd PostgreSQL materialized views support ([#342](https://github.com/TabularisDB/tabularis/issues/342))69a223c
    • whats-newrender changelog items as markdown356586a

    v0.13.4

    View diff
    Bug Fixes
    • autocompleteavoid doubling quotes for quoted identifier completion2daa3ec
    • autocompleteresolve aliased PostgreSQL quoted table columns correctly970f8ce
    • editorcorrect pkColumns field name in singleResultToEntry809dc55
    • editorremove duplicate SQL autocomplete registration76d49f2
    • editorupdate/delete use full composite PK in WHERE clause ([#324](https://github.com/TabularisDB/tabularis/issues/324))d8d4935
    • improve accessibility for screen reader users ([#355](https://github.com/TabularisDB/tabularis/issues/355))3d7740a
    • mysqlavoid invalid pagination after semicolons ([#389](https://github.com/TabularisDB/tabularis/issues/389))021271b
    • postgresbind uuid-shaped PK as text for varchar columns ([#392](https://github.com/TabularisDB/tabularis/issues/392)) ([#394](https://github.com/TabularisDB/tabularis/issues/394))f2fed4d
    • postgressupport routine introspection on PostgreSQL < 11 ([#377](https://github.com/TabularisDB/tabularis/issues/377))cbc7ba6
    • updatershow available update on manual check after dismissal ([#398](https://github.com/TabularisDB/tabularis/issues/398))548f04f
    Features
    • allow passing a startup script per connection ([#352](https://github.com/TabularisDB/tabularis/issues/352)) [#2](https://github.com/TabularisDB/tabularis/issues/2)f885b31
    • autocompleteadd disposeSqlAutocomplete mock for testingd04434d
    • backendadd support for SSH password/PIN prompt475adfc
    • backendimplement SSH passphrase prompt support with forced askpass81164ee
    • editorshow success feedback for non-SELECT statements ([#391](https://github.com/TabularisDB/tabularis/issues/391))33dd58b
    • editorwindow controls and detachable results panel ([#369](https://github.com/TabularisDB/tabularis/issues/369))b4171a7
    • frontendadd SSH prompt toggle to connection modalsbd64d8e
    • i18nadd SSH prompt translations for all supported languagesc23c2e8
    • mysqlauto-skip PIPES_AS_CONCAT sql_mode for Vitess/PlanetScale ([#387](https://github.com/TabularisDB/tabularis/issues/387))53e3ab7
    • notebookcollapse query, results and chart sections individually ([#399](https://github.com/TabularisDB/tabularis/issues/399))54973a5
    • pluginsadd DM plugin to registry ([#382](https://github.com/TabularisDB/tabularis/issues/382))26d2839
    • registryadd Cloudflare D1 plugin v0.1.043d7d81
    • sql-autocompleteintegrate SQL autocomplete registration into NotebookView and Editor componentsc38bd3e
    • sshserve askpass prompts with an in-app modaldacbdb7
    • viewsadd SQL beautify button to view editor ([#372](https://github.com/TabularisDB/tabularis/issues/372))2b7e34c

    v0.13.3

    View diff
    Bug Fixes
    • address PR review warnings941629b
    • aifetch Anthropic and MiniMax models from their APIs ([#359](https://github.com/TabularisDB/tabularis/issues/359))ec72177
    • k8savoid MySQL fallback in K8s connection modalf7e50fb
    • k8scorrect inline connection port defaults36d4d1f
    • k8sreturn localized validation results1506412
    • mcpplay approval alert via OS notification sound on Linuxed9c12f
    • mcpunblock approval gate during language settle8601478
    • scope multi-database operations to the selected database ([#346](https://github.com/TabularisDB/tabularis/issues/346))cf7c1eb
    • view-editorrobustly extract the SELECT body from view definitions ([#320](https://github.com/TabularisDB/tabularis/issues/320))f073d54
    Features
    • editortint tab bar with active connection color ([#333](https://github.com/TabularisDB/tabularis/issues/333))b328a97
    • k8sadd resource port utility8dc81a1
    • k8sadd service port discovery commanda721001
    • k8simprove selection dialog defaults6c15048
    • mcpadd approval attention controls and localized notificationsae8637c
    • restore previous session connections and add start-maximized option ([#332](https://github.com/TabularisDB/tabularis/issues/332))567a33c
    • uishow project social links across update, what's new and welcome modals ([#353](https://github.com/TabularisDB/tabularis/issues/353))97576d1

    v0.13.2

    View diff
    Bug Fixes
    • autocompletesuggest clause keywords and correct columns after … ([#295](https://github.com/TabularisDB/tabularis/issues/295))35952f3
    • mysqlmultiply per-loop time by loops in EXPLAIN ANALYZE ([#303](https://github.com/TabularisDB/tabularis/issues/303))6ed133f
    Features
    • connectionshow SSL tab for plugin drivers via supports_ssl capability ([#309](https://github.com/TabularisDB/tabularis/issues/309)), closes [TabularisDB/tabularis-clickhouse-plugin#1](https://github.com/TabularisDB/tabularis-clickhouse-plugin/issues/1)5a2e929
    • explainshow Actual Rows column in Visual EXPLAIN table view ([#302](https://github.com/TabularisDB/tabularis/issues/302))c6048ce
    • notebookmanage saved notebooks per connection ([#304](https://github.com/TabularisDB/tabularis/issues/304))4b5e7f2
    • pluginsadd Redis (Go) plugin v0.4.1 ([#314](https://github.com/TabularisDB/tabularis/issues/314))31805eb
    • show sql progress in realtime ([#296](https://github.com/TabularisDB/tabularis/issues/296))80613c3
    Performance
    • gridmemoize DataGrid rows for fluid scroll with many rows/columns61794dc

    v0.13.1

    View diff
    Bug Fixes
    • airoute AI key reads through credential cache to stop repeated keychain prompts ([#269](https://github.com/TabularisDB/tabularis/issues/269))4d40c69
    • connectionsaccept postgresql:// and mariadb:// scheme aliases in connection strings ([#277](https://github.com/TabularisDB/tabularis/issues/277))a155b6a
    • editorfocus editor when opening a new console tab ([#280](https://github.com/TabularisDB/tabularis/issues/280))4bd6e1d
    • editorstop Monaco theme leaking across editor instances ([#282](https://github.com/TabularisDB/tabularis/issues/282))f7bbef7
    • gridtruncate large JSON/text cell previews to avoid UI freeze ([#285](https://github.com/TabularisDB/tabularis/issues/285))a283938
    • mcpclassify parenthesized SELECT/UNION as read-only ([#272](https://github.com/TabularisDB/tabularis/issues/272))35bc043
    • new-connection-modalstop auto-activating databases tabafcb4f6
    • postgresread EXPLAIN JSON output as json column ([#279](https://github.com/TabularisDB/tabularis/issues/279))6abe185
    • preserve user OFFSET in paginated queries ([#273](https://github.com/TabularisDB/tabularis/issues/273)) ([#275](https://github.com/TabularisDB/tabularis/issues/275))6db171b
    Features
    • upgrade MiniMax default model to M3 ([#270](https://github.com/TabularisDB/tabularis/issues/270))99c902c
    Major

    v0.13.0

    View diff
    Bug Fixes
    • ai-activityrender timestamps in local time + add display timezone setting ([#251](https://github.com/debba/tabularis/issues/251))44899f3
    • k8sadd k8s fields to SavedConnection params typef54843f
    • mcpclose approval/read-only bypass in run_query ([#261](https://github.com/debba/tabularis/issues/261))1b1bb03
    • mcpdispatch plugin drivers via the registry + harden the subprocess ([#256](https://github.com/debba/tabularis/issues/256))259f089
    • pluginscorrect plugin data folder paths358514e
    • prevent selectedIndex rerender on mouse scroll12f4586
    • query-historyrecover from corruption + atomic writes ([#253](https://github.com/debba/tabularis/issues/253))c2b5598
    • schemassurface get_schemas failure with error + retry ([#242](https://github.com/debba/tabularis/issues/242))8fc0f3a
    Features
    • discord-releaseadd tabularis-discord-release agent skillcb599ed
    • integrate Quick Navigator search overlay ([#252](https://github.com/debba/tabularis/issues/252))1802165
    • Kubernetes port-forward tunnel support ([#246](https://github.com/debba/tabularis/issues/246))66a0aec
    • quick-navigatoradd inspect, new console, count & copy actionsca3b599
    Major

    v0.12.0

    View diff
    Bug Fixes
    • Ctrl+Enter always runs query in the last opened console tab ([#240](https://github.com/debba/tabularis/issues/240))d8f9feb
    • driverspreserve i64/u64 precision past Number.MAX_SAFE_INTEGERb1a6d9d
    • driversshow pagination for SELECTs with leading SQL commentsa0a52f4
    • pgcorrect handling of TLS/SSL modes in PostgreSQL connectione836109
    • refresh table list after creating table ([#239](https://github.com/debba/tabularis/issues/239))63ebeaf
    • Save Query modal no longer overrides editor theme globally ([#248](https://github.com/debba/tabularis/issues/248))d1d93d3
    • settingscenter SettingToggle knobd9febbe
    Features
    • Delete selected rows with keyboard shortcut5190443
    • demoadd MySQL triggers demo and bump version to 0.11.002a23ef
    • demoseed bigint_demo table for issue [#210](https://github.com/debba/tabularis/issues/210) manual testing245f6b6
    • i18nadd Russian locale and count-based tab pluralization78bf343
    • per-connection icon & accent color override ([#189](https://github.com/debba/tabularis/issues/189)) ([#241](https://github.com/debba/tabularis/issues/241))287c2b6
    • sqlfirst-party splitter + per-driver dialect ([#225](https://github.com/debba/tabularis/issues/225))b4f225a
    Performance
    • eliminate per-query disk I/O and unblock result display from metadata fetch788a068
    Other
    • remove unintended CHANGELOG changes2ddfb58
    Major

    v0.11.0

    View diff
    Bug Fixes
    • commandspreserve all in-flight abort handles per connection4521335
    • demoset utf8mb4 client charset on MySQL seedse4cd824
    • diffword-wrap the original pane in side-by-side mode [#4701](https://github.com/TabularisDB/tabularis/issues/4701) [#3346](https://github.com/TabularisDB/tabularis/issues/3346)a666586
    • driversshare a single connection across multi-statement scripts8eed14b
    • editorrestore correct SQL string color across all themesc3f21c4
    • export,dumpapply same per-slot abort-handle fix to export/dump/import975d943
    • exportexpand SSH params and refactor into testable utilities888a6be
    • incorrect get_app_config_dir when running in mpc mode in windowscc57d0a
    • jsonbound the sidebar tree view so long strings stop overlapping506f0fc
    • jsoncast JsonTreeView container style spread to satisfy tsc -b715a030
    • jsoncompute missing-session-id error during render, not in effect1751421
    • postgresbind JSON/JSONB columns natively + JSON-encode scalars05def65
    • testrepair test suite after main merge01b5568
    Features
    • brandingadd logo SVG files to publicf562cd6
    • database trigger management (PostgreSQL, MySQL, SQLite)fd66558
    • demoadd Docker Compose demo with seeded databases55b4db8
    • demoseed json_demo table in postgres + mysql init38dbaca
    • demoseed text_demo table for issue [#207](https://github.com/TabularisDB/tabularis/issues/207) manual testing626cc76
    • editorforeign key click-to-navigate in result grida7a12ad
    • editormake Enter accept autocomplete suggestion configurable4e07b82
    • i18nadd export/import translations and export warning in localesa75a065
    • i18nadd Japanese (ja) translationb81bcb1
    • jsonin-cell JSON highlighting (JsonCell) + inline expansion editor7132b70
    • jsoninline diff for pending changes + fix JSON cell highlighte136112
    • jsonmulti-mode JsonInput (Code / Tree / Raw editors)2a482c2
    • jsonnative Tauri JSON viewer window with bounds memory + per-cell dedupb9809b6
    • jsonper-connection "detect JSON in text columns" setting1fbd460
    • jsonsidebar gets diff toggle + detect-JSON-in-text supportd2facd1
    • pluginsadd firestore plugin to registry24e36c8
    • sidebardrag-resizable row editor04269bf
    • tabularis-discord-releaseadd tabularis-discord-release skill andf41cfdf
    • textchevron expand + Monaco diff for long text/longtext cellsd9212c7
    • utilsadd newConsole helper, tests, and wire to sidebarf7e6b0b
    Breaking Changes
    • Pressing Enter while an autocomplete suggestion is

    v0.10.3

    View diff
    Bug Fixes
    • DataGridhandle empty column names from driversb015b35
    • notebookrender db selector dropdown via portal to avoid clippingb0f51ed
    Features
    • Add connection export and import functionalityaee7df1
    • connectionsadd import button to empty stateb1f9844
    • editoradd editor error boundary and tests3001409
    • sidebaradd Discord community callout and update links26643cf

    v0.10.2

    View diff
    Bug Fixes
    • dbomit empty password in connection URLs6164f49
    • postgresswitch deadpool TLS to rustls + honor ssl_ca8dd0d3b
    Features
    • data-gridadd SQL INSERT as a copy format option088aa90
    • data-gridcell-level selection and copy2b31e6f
    • postgrescoerce boolean strings to bool for boolean columns71aea59

    v0.10.1

    View diff
    Bug Fixes
    • resolve LIMIT keyword misidentification in SQL paginationc4d2298
    Features
    • appuse semantic version compare for whats-new and changelogdc474df
    • Make database selector dropdowns scrollable after 10 entries390a811
    • postgresadd binding module for parameterized valuesf15a268
    • query-builderadd mini result grid, schema hook, and layout util8c79525
    Major

    v0.10.0

    View diff
    Bug Fixes
    • hookspreserve session events while loading and stabilize filter86b243b
    • pluginsunregister running driver and verify installed manifestd045eea
    Features
    • aiadd AI audit log, approval gate, notebook export and UI2399370
    • gitnexusadd GitNexus skills and MCP UI pagef3e0214
    • heartbeatadd GUI heartbeat and liveness-aware approval polling93f6765
    • uiadd session search, sorting and plan expandcbd5d91

    v0.9.21

    View diff
    Bug Fixes
    • cicorrect release packaging to zip staging contents8f2849d
    Features
    • create-tabularis-pluginadd plugin scaffolder package with CLI,2cdff1b
    • plugin-apiadd @tabularis/plugin-api packagee3b228b
    • plugin-apiadd defineSlot helper and remove google sheets plugin28e9758
    • pluginsadd google-sheets plugin to registrye81a68b
    • pluginsadd google-sheets plugin to registry0ec0d7b
    • pluginsadd plugin center UI, search/filter, and cleanup on67a41ad
    • rust-driveradd optional UI build and cross-platform dev-install278b2f4
    • settingspersist and respect activeExternalDrivers in settings UIefabf6e

    v0.9.20

    View diff
    Bug Fixes
    • reactcorrect hook deps and tooltip wrapper for low confidenceeb26a63
    Features
    • add demo videos8610ead
    • clipboard-importadd clipboard data import flowf10e332
    • compareadd comparison builder, tables, and assets7afffb7
    • visual-explainadd Visual Explain page and import supportb75dc3c
    • websiteswitch logos to PNG and update compare styles6d6c2ad

    v0.9.19

    View diff
    Features
    • connectionsbackfill database on single to multi-db transitionbbaf3d9
    • explorer-sidebaradd single-click selection highlighting for4502e04
    • i18nadd fr and de locales, language helper and READMEsc5fab4a
    • query-historyinclude database in query history and re-run7144184
    • saved-queriespersist and show database for saved queries36eb69c
    • sidebaradd SQL preview highlighting and grouped favorites in90ae3aa

    v0.9.18

    View diff
    Bug Fixes
    • appseed whats-new version for users who completed welcome1ab42e6
    • custom OpenAI provider URL path duplication and hardcoded /v1 prefix, closes [#XXX](https://github.com/TabularisDB/tabularis/issues/XXX)ba0dd6e
    • resizeadd overlay during pane drag to block editor mouse events682de0c
    • uifix runQuery arg, context menu deps, and sidebar resize ref3e8a5a3
    Features
    • add table search filter for PostgreSQL schema modefa21e6b
    • driversadd explain parsers and split mysql/postgres/sqlite logic5b6052b
    • editoradd explain selection modal and explainable query util191e993
    • editorscroll active tab into view when activated3ff7f25
    • mysqladd SSL configuration options to ConnectionParams and update MySQL connection handling78af860
    • mysqladd SSL configuration options to ConnectionParams and update MySQL connection handlingd5fe36d
    • pluginsadd IBM Db2 driver plugin to registry4c507ec
    • pluginsadd MySQL plugin settings and config cachingd469333
    • query-historyadd per-connection query history storage and UI679d1d8
    • query-historyUX polish — dedup, error styling, search, animations76013aa
    • settingsadd open source libraries modal and utilities94ab987
    • settingsadd plugin settings page and integrate into settings UI7f79fa3
    • settingsadd showWelcome setting and welcome screen toggle02e9380
    • sidebarshow grouped connections flat with labels72cb694
    • sql-editorsupport paste into multiple cursors and update docs1d8db06
    • visual-explainadd Visual EXPLAIN docs and homepage feature card9072a2c

    v0.9.17

    View diff
    Bug Fixes
    • editorpass undefined for missing schema prop8c4b9f6
    • mobile layout for compare pagesab877b5
    • modalsinclude 't' in VisualExplainModal hook deps9eb814e
    • visual-explainnarrow tone literals with as const in explainb936e93
    Features
    • aiadd explain plan analysis command and table view9cb46eb
    • explainadd AI analysis view and tabular EXPLAIN fallbackd160ce5
    • explainadd AI analysis view and tabular EXPLAIN fallbackfd27727
    • explainadd visual explain plan and driver supportc60982a
    • modalsauto-load databases when editing multi-db connection3a4f96b
    • mysqladd MariaDB JSON explain parsing for filesort and wrappers5232a7f
    • mysqladd server version detection and enhanced EXPLAINd8d850e
    • mysqlenhance MariaDB explain parsing with subquery cache andfd8c83b
    • sqladd explainable query check and comment strippingfa2e46a
    • uiadd AI dropdown button and replace inline AI buttons7ccc324
    • visual-explainadd overview and node details UIdd1c1a7
    • websiteadd subscription UI, pages, and markdown slote14b5d4

    v0.9.16

    View diff
    Features
    • scriptsadd snap preview banner generator HTML toolfffb27f
    • seoadd comparison pages and preview components36acd1b
    • seoadd JSON-LD structured data and related links9292f88
    • seoadd metaTitle support and expand related links9c2dc4f
    • seoadd solution pages and update related links548cad9
    • seoadd solutions and compare pages with routing99911a0
    • uiadd drag and drop functionality for connection groups21ebf4a
    • uicorrected useDatabase destructurebbf2998
    • websiteadd solution links and workflow exploration content2a1aeb1

    v0.9.15

    View diff
    Bug Fixes
    • notebookensure unique keys for rendered cells using id and index8d6e1ea
    • notebookprevent stale runCell, add typings and guardsbe1731e
    • notebookrender cell history panel outside collapsed check for sqlcb58710
    • notebooksync cells ref and improve export with error handlingaa6ba5a
    • uirender modal into portal and adjust tooltip z-index5a60282
    • uireplace useEffect setState with initialEditing prop pattern85262f3
    Features
    • aiadd AI tab rename featurec5cfb57
    • editoradd multi-query run and selection UI63e5aa8
    • editoradd tab rename, close and multi-query run support808e0cb
    • editorprompt for params when running multi queriesc741411
    • health-checkadd periodic connection ping health checks17398dd
    • multi-result-paneladd collapsible query preview to result panelbe8e541
    • notebookadd AI buttons, outline, collapse and exportd0ccee9
    • notebookadd AI naming for outline and collapse/expand alla15b056
    • notebookadd AI-generated cell names and outline support8499bdb
    • notebookadd charts, params, sections, historyda915f2
    • notebookadd fallback markdown outline and add-cell button09887df
    • notebookadd notebook UI with SQL and markdown cells, add runf4b4983
    • notebookadd per-cell schema selection and multi-db support6047199
    • notebookauto-run unresolved cell dependencies before query1757639
    • notebooksadd file-based persistence and debounced store98ebf4c
    • query-selectionrevamp modal UI and add run-single action8f7052b
    • uiadd scrolling and inline rename to multi-result tabs871d7be
    • uiadd tab context menu to multi-result panelc291f0c
    • uiadd WhatsNew modal and stacked multi-result UI componentsf1ef252
    Breaking Changes
    • notebookclearHistory no longer accepts a cell argument

    v0.9.14

    View diff
    Bug Fixes
    • driverfallback to test_connection when ping not implemented3b99ed2
    • drivershandle ORDER BY without swallowing LIMIT/OFFSET094fca3
    • modalsimprove modal UI and fix column type parsing39671f2
    • websitecorrect video path and move asset to videos/postsc1841e8
    Features
    • blogadd notebooks post and image lightbox1b4302a
    • column-typesadd column type parsing and extension supportaeb146c
    • health-checkadd periodic connection ping and auto-disconnecta815da1
    • modalsadd keyboard navigation and i18n to query selection modalae4220f
    • modalsreplace native selects with Select componentd68ca23
    • postgressupport SMALLSERIAL auto increment and sync UI behavior7fe6c03

    v0.9.13

    View diff
    Bug Fixes
    • add check to prevent panic if buf len is less than 4f43af04
    • editorregister paste action per instance and improve scrollbar UI32020d1
    • handle `Option` returned by `split_at_value_len` to return `Null` if `None`26cc2ab
    • make `fill_nulls` fill only the remaining fieldsd45cce7
    • return empty array in zero dimensions instead of `null`60c420a
    • return None if `len < 0` which means the value is nulle45a67d
    • skip the length of each rangec2e1844
    • sql-editorpreserve cursor and improve autocomplete behavior92c0fe3
    Features
    • add support for `multirange` postgres typea56d9f2
    • add support for `range` postgres type14fe823
    • driversadd readonly capability to disable data writes2846a2c
    • hooksadd setSettings to usePluginSetting hooke0ce6a5
    • modalsadd error modal and use it for async errors4373b9f
    • plugin-modaladd plugin modal context and provider57b89fc
    • pluginsadd JSON Viewer example plugin for UI Extensions53485ec
    • pluginsadd manage_tables capability and UI gatingdf07072
    • pluginsadd plugin slots and external opener support6725a6c
    • pluginsdefault manage_tables to true and use helper6a2a0c5
    • pluginsimplement Plugin UI Extensions system (Phase 2)5e464f3
    • pluginssupport UI-only plugins and external UI bundles065307c
    • settingssplit settings UI into modular tabs and add editor prefs4d71583

    v0.9.12

    View diff
    Bug Fixes
    • add missing extracting logic6c1bcc2
    • add missing extracting logic743b655
    • handle misreported text/blob types using known_type hint805d495
    • json-inputsync text state with value using ref instead of effect4ff8b4f
    • MySQL JSON column values shown as NULL in data grid493f125
    • reactadd missing hook deps and stabilize callbacksc74a2bb
    • skip the field type bytes3d4401c
    Features
    • add JSON editor with validation for sidebar editing41ab6d1
    • add MiniMax as first-class AI providerffc0e50
    • alertadd global alert modal and replace dialog notifications27c843d
    • editorshow active database and update window title6ddc629
    • errorimprove pg errors and add toggleable details UIf83025b
    • postsinclude PR contributors between releases in contributor945823d
    • settingsadd provider icons and change key label5ffad1a
    • websiteadd ZH to language badge6037e00

    v0.9.11

    View diff
    Features
    • add Chinese (Simplified) language supportfc8c6b9
    • consoleenable inline editing for single-table query resultsa9ceb74
    • copyadd JSON copy format and selectable default594cb8c
    • exportadd configurable CSV delimiter for copy and export5e20c6a
    • postgressupport array types and JSON-to-ARRAY literals9ab2c37

    v0.9.10

    View diff
    Bug Fixes
    • blogmake tag filter dropdown inline instead of overlay96dbf96
    • database-providerreflect multi-db selection in window title85548f8
    • indexupdate gitnexus version in AGENTS.mdd3c3130
    • modalsfocus name input on validation and update placeholdereac063f
    • normalize blog post dates to ISO 8601 format (YYYY-MM-DDTHH:MM:SS)5510dba
    Features
    • blogreplace tag cloud with collapsible "Filter by tag" dropdown6926bd4
    • commandsallow selecting database for record operationse12efdd
    • Display platform detection badge7b55b58
    • docsadd changelog page and rename screenshotsfe78037
    • downloadadd download thank you page with auto-trigger andb1e78c3
    • mcpadd multi-client support and connection improvementsd9655e6
    • searchadd client-side search functionality652b3e4
    • website - add reading time to PostCardd08cc02

    v0.9.9

    View diff
    Bug Fixes
    • connectionsshow menu only when groups exist or connection grouped0e71482
    • sponsorsset dynamic to force-static for OG image862b49d
    • uiimprove connection card styling29d1bcc
    • websiteconstrain sponsor modal height and enable scrollinga8a8025
    Features
    • authadd validation for connection name and databases selection3fffa04
    • mcpadd MCP server docs, client icons, and UI integration78c22e5
    • pluginsadd connection_string and connection_string_example flags2de0297
    • sponsorsadd Open Graph image and page metadata5c5c124
    • sponsorsadd optional highlightColor for sponsor accents2139848
    • sponsorsadd sponsor sync script and generated docs9e82f9a
    • sponsorsadd sponsors page, contact form, grid, and confirm page6b592b6
    • sponsorsadd sponsors section and assets to websitecc802fd

    v0.9.8

    View diff
    Bug Fixes
    • new-connection-modalavoid returning promise from onClick14f644e
    • new-connection-modalreset tab on close and UI tweaks7a1f2fb
    • sqliteresolve SQLITE_CANTOPEN (error code 14) on Windowsc8e5734
    • visual-queryreplace HTML5 drag-and-drop with pointer events for3afee6b
    Features
    • download-buttonsadd split download button with platform dropdown542961c
    • downloadadd download modal and wire up download buttonsf2cc6ab
    • driversadd connection string parser and import UI2258ba3
    • pluginsadd hackernews plugin to registry6635124
    • use ubuntu 25.04 for building linux5f80a89

    v0.9.7

    View diff
    Bug Fixes
    • build alertsc5cf57a
    • merged codec430a5b
    • tabsprefer loaded activeTabId or null, avoid implicit fallback297138b
    • use SqliteConnectOptions for reliable WAL mode database openingb0d0a4f
    Features
    • add connections group1e91768
    • credential-cacheadd credential cache to reduce keychain calls,ca2e668
    • credentialsfetch connection credentials when editing connectionse580ccf
    • modalsadd ConfirmModal and replace inline confirm dialogs0ceddda
    • new-connection-modalpreselect databases from initial connection53d10c9
    • pluginsadd per-plugin interpreter settings with error modal64ed30c
    • pluginsadd plugin remove modal and integrate into Settingse2d38f5
    • pluginsadd plugin settings and no_connection_required flag7097190
    • selectadd Select component and replace SearchableSelect3be733a
    • settingsadd portal-based plugin version dropdown9f4f82c

    v0.9.6

    View diff
    Bug Fixes
    • add autoComplete="off" to all connection dialog inputs573380b
    • disable macOS autocorrect on connection dialog inputs481f7fe
    • websitescope badge image rule to shields.io onlyaf7dfb7
    Features
    • editoradd close tab keyboard shortcut167de6e
    • filtersadd structured filter utils and toolbar UI150e08f
    • pluginsadd clickhouse plugin to registry1a78418
    • pluginsadd install error modal and improve installer loggingdb2d0de
    • pluginsadd Redis plugin to registry with version 0.1.0 and download links848b530
    • pluginsupdate redis plugin assets and add download logging204175f
    • table-toolbaradd ORDER BY autocompleteed58068

    v0.9.5

    View diff
    Bug Fixes
    • mysqluse per-db pools and include database in pool key9abda3b
    • postgresbind UUID strings as uuid type for queries380c494
    • remove runtime monaco-editor import to bundle only SQLcc8d960
    • updateravoid stale cache and restart app after update38ec23a
    Features
    • Apply Tauri recommended compiler options63de45f
    • cookie-consentadd cookie consent component and policy page37211d5
    • cookie-consentenable cookieless Matomo and consent flowbe1bffd
    • cookiesadd manage cookies button and matomo consent handlingadeedb6
    • data-gridadd header context menu to data grid85a6efc
    • dumpadd schema-aware dump/import utilities and UI integrationf964fb7

    v0.9.4

    View diff
    Bug Fixes
    • blobtreat small UTF-8 varbinary values as plain textc6f5c75
    • datagridinclude pending changes in sidebar row dataec08534
    • reactinclude missing hook deps in Connections and Settings540e69c
    Features
    • connectionsredesign connections UI and add i18n keys3e06b75
    • databasesupport multi-database selection and driver UI metadata02efa39
    • db-panelscope database APIs per panel and display conn namec7ce603
    • dbadd multi-database sidebar and utilities5851da9
    • driversuse branded icons and colors for built-in drivers621d765
    • exploreradd database manager and get_available_databases commandd4ad168
    • keybindingsadd keyboard shortcuts system and persistence45df357
    • keybindingsshow shortcut hints and map display keyse608b5f

    v0.9.3

    View diff
    Bug Fixes
    • open graph image12696a0
    • pluginsresolve plugin executable lookup on Windowsf766141
    Features
    • settingsadd downgrade flow and translations for older versions77ebbb3
    • site-headersmooth scroll to top when clicking logo on homea83b765
    • website - create latests-post.json081c7e5
    • websiteadd blog post for plugins evolved and plugin cardd12b24f
    • websiteadd install links and update installation docsee0c597

    v0.9.2

    View diff
    Features
    • driversadd driver capability metadata and helper utilities3b0a2a3
    • driversadd is_builtin and default_username to plugin manifests60ac211
    • lightboxadd mobile slider, touch and keyboard navigationab00d29
    • pluginadd enable/disable functionality with proper shutdown6a4272a
    • pluginsadd custom registry URL support7f17e46
    • pluginsmanage disabled external plugins99968d8
    • queryuse LIMIT+1 for pagination and add count query7473e63
    • registryadd plugin releases metadata and GitNexus skills49e5480
    • task-manageradd child process details to task managera24b2cb
    • task-manageradd process monitoring and management systemc899ee5
    • task-manageroptimize child process loading4d8e8bc
    • uiadd Task Manager feature article and gallery itemc9f2fd4
    • websiteadd homepage intro and update global stylesa024a74
    • websiteinclude min_tabularis_version in plugin display17f0aab
    • websitemake plugin author link clickable and tidy layout83ed834
    Performance
    • postgresrun count query concurrently for paginated selectsf96152c
    Breaking Changes
    • task-managerremoves children field from TabularisSelfStats, now
    • queryPagination.total_rows is now Option and has_more

    v0.9.1

    View diff
    Bug Fixes
    • appremove localhost debug override7cbbacd
    • ciresolve pnpm store path from website directory6badec3
    • ciresolve pnpm store path from website directoryf0c4620
    • pluginsaccept 'universal' asset as fallback for platform45b638d
    • websitecorrect next-env import path4f04254
    Features
    • blogadd blog section with posts and stylingcc4cab7
    • blogadd post meta bar and syntax highlightingf6a3dc8
    • blogadd search modal, post navigation, and author card01c16c7
    • data-gridsupport multiline cell editing with autosized textareafa9df84
    • driversadd folder_based capability for directory plugins0919ccc
    • driversadd folder_based capability to fallback drivers3ac2a90
    • editoradd tab switcher modal and tab scrolling utilsf50627f
    • flathubadd publishing workflow and flatpak supporta7b10d5
    • homeadd edit-on-github links to home pagefe1af9e
    • layoutset metadataBase to https://tabularis.dev82ba795
    • pluginsadd csv plugin entry to registry602b3c6
    • pluginsadd plugin manifest JSON schema and guide note11d9854
    • pluginsrequire length and precision in manifestsadc5254
    • site-headeradd logo and restructure header with crumbsd9517e8
    • siteadd Matomo tracking and dynamic post list loadingbb80f04
    • uiadd DateInput component and dateInput utils with tests9b3f52b
    • uiredesign theme cards and enhance search modal87481c7
    • updaterdetect installation source and skip updates for packagesd5e4b10
    • websiteadd 404 page, sitemap and header crumbs stylesdb5fb3f
    • websiteadd blog pagination, tags, and og images4aa9352
    • websiteadd plugins registry and unified site header3c3d93c
    • websiteadd post styles and wiki open graph metadata6ef5705
    • websiteadd screenshot 9 and OG page0001546
    • websiteconvert static HTML site to Next.js with static export60201c3
    • websiteuse APP_VERSION and add platform install docs18ffc35
    • wikiadd wiki content, pages, and UI integrationcfee3fd
    Breaking Changes
    • pluginsmanifest.schema.json replaces has_length with
    Major

    v0.9.0

    View diff
    Bug Fixes
    • connectionhandle test failures, check DB file, parse port09600f2
    • database dropdown selection on click631eccc
    • duckdbimprove query type detection in execute_query function9ec6acc
    • editoruse per-tab editor ref and fallback to saved queryb3de58b
    • uihide keychain option for file-based driversf76c0ec
    Features
    • driversadd alter_primary_key and update duckdb pk logicc9b3e9c
    • duckdbadd base64 dependency and extend data types list4c1c494
    • duckdbadd duckdb plugin with manifest and CLI bridge (as5b10c38
    • duckdbinject rowid for tables without primary key in SELECT *2efa700
    • pluginsadd external JSON-RPC plugin system and managerebd23fa
    • pluginsadd plugin registry and installer195f154
    • pluginsimplement dynamic database driver plugin ecosystem609290b
    • websiteadd plugin registry section to website36ac05c

    v0.8.15

    View diff
    Bug Fixes
    • uihide set-empty button for blob fields989e5f9
    Features
    • blobadd blob parsing and payload helperse5e6e66
    • blobadd image preview and fetch blob as data URL8e0d677
    • blobenforce configurable max blob size and show errors86039cc
    • blobhandle large BLOBs with backend truncation and UI support68848d5
    • blobimprove large BLOB handling with preview wire format9de0a4e
    • pool-manageradd default MySQL connection paramsf2fc644

    v0.8.14

    View diff
    Bug Fixes
    • commandsclear connection_id for temporary information_schema pool30f870e
    • connectionsdisconnect active connection before deleting461b027
    • mysqlexclude views from get_tables query146f4af
    • sshverify host keys, use accept-new, secure loggingd8ab538
    Features
    • add split view, open editor, AI overlay; improve connection statebd98bea
    • connectionadd connection manager utils, hook, and UI componentse58456b
    • editorrelocate AI assist buttons to overlay and adjust padding0f346d8
    • layoutadd split view layout with connection grouping903286f
    • layoutadd split view visibility control and panel close buttonb35e059
    • layoutreplace connections icon and remove editor link23a7d8d
    • searchable-selectrender dropdown via portal with positioning396f384
    • sidebaradd context menu to open connection in editor72614b7

    v0.8.13

    View diff
    Features
    • connectionsadd disconnect command and provider handling622ab6c
    • databasetest connection before loading schemas001ea15
    • driversadd data type registry and extraction modulesc6e0d25
    • geometryadd geometry parsing and WKB->WKT formatting6c4aaa5
    • iconsadd Discord icon component and replace MessageSquare usagesf453e1c
    • mysql,postgressupport raw SQL function inputs for spatial datadbcb5f2
    • postgres,i18nadd pg schema selection and Spanish localed278718

    v0.8.12

    View diff
    Bug Fixes
    • drivers-mysqluse column indices for Windows/MySQL 88e30b8f
    Features
    • tauriintegrate clipboard-manager plugin and editor paste0bc7a68

    v0.8.11

    View diff
    Bug Fixes
    • dballow empty inserts for auto-generated fields in insert_record5c34144
    • postgresread is_pk as bool instead of i6490a95da
    • ui-data-gridhandle insertion row metadata and cleanup commentsd54c3cb
    • uishow database load error below database selectfe6d7eb
    Features
    • communityadd community modal and Discord linkd031009
    • data-gridadd cell display utils and styling helpers759b80c
    • data-gridadd DEFAULT sentinel handling and cell value actionsb89eed5
    • data-gridadd edit and mark-for-deletion actions in context menu7e7426c
    • dbimplement default value retrieval for MySQL and PostgreSQLac7ecd5
    • drivers-postgresadd extended PostgreSQL metadata functions and4f91dbb
    • editoradd global Ctrl+F5 shortcut to run queries895bfb6
    • editoradd pending insertions supportc4c6ad9
    • editoradd table run prompt and fallback query handling483fdd4
    • editordisplay discard option and handle auto-increment defaultsbb60012
    • prefsadd editor preferences persistence via tauri backend9b481d9
    • roadmapadd links to roadmap and make items openable77f7995
    • roadmapadd roadmap sync workflow and update scripts2a8c48d
    • ui-datagridadd tab key navigation between cellse101191

    v0.8.10

    View diff
    Bug Fixes
    • keychainlog errors to stderr in get_ai_keya4ad95a
    • mcpupdate cross-platform directory handling for project paths3ae677c
    • modalsupdate ModifyColumnModal SQL generation and submissione8c9e15
    Features
    • aiadd delete AI key command and status APIce295bd
    • cliadd debug mode logging flag to enable verbose logging5b24e74
    • connectionadd list databases feature for MySQL, PostgreSQL,64816a8
    • custom-openaiadd support for custom OpenAI-compatible API configuration3e80a07
    • er-diagramadd configurable default layout setting in schemaf45ad8f
    • er-diagramadd table focus, layout toggle, and context menu6f0b997
    • loggeradd in-memory log capture and log commands for managemente551749
    • modalupdate driver reset logic in connection form0e47969
    • pooladd stable pooling with connection_id for SSH tunnels2faf727
    • readmeadd OpenAI-compatible APIs section and sync roadmap651de87
    • routinesadd commands to fetch routines and their detailsa1ab2d2
    • sidebaradd refresh tables button21c6c6f
    • sqladd identifier escaping helpers for MySQL, Postgres, and79f1ac4
    • tauriadd debug mode flag with is_debug_mode commandc814a66
    • tauriadd devtools commands and auto-open in debug modeaf698bf
    • updateradd automatic update checking and install support0bd16ad
    • viewadd database view management commands and UI components48b558d

    v0.8.9

    View diff
    Bug Fixes
    • keychainlog errors to stderr in get_ai_keya4ad95a
    • mcpupdate cross-platform directory handling for project paths3ae677c
    Features
    • aiadd delete AI key command and status APIce295bd
    • connectionadd list databases feature for MySQL, PostgreSQL,64816a8
    • custom-openaiadd support for custom OpenAI-compatible API configuration3e80a07
    • loggeradd in-memory log capture and log commands for managemente551749
    • modalupdate driver reset logic in connection form0e47969
    • readmeadd OpenAI-compatible APIs section and sync roadmap651de87
    • sidebaradd refresh tables button21c6c6f
    • tauriadd debug mode flag with is_debug_mode commandc814a66
    • updateradd automatic update checking and install support0bd16ad

    v0.8.8

    View diff
    Features
    • componentsrefactor SSH connections modal logic732af14
    • databaseadd dump and import utilities5927e04
    • datagridadd copy row and selected cells functionality1159299
    • editoradd middle-click tab close functionality8a08abc
    • sidebaradd accordion, nav item, table item, resize hook, types173aa12
    • sidebaradd responsive actions dropdown for narrow sidebars65f166d
    • sshadd SSH connections management support9f0f8be
    • sshenhance SSH connection credential handling6c4f277
    • sshimprove SSH connection management and validationec12241
    • uienhance connection modal status feedbackfc02ce6

    v0.8.7

    View diff
    Features
    • aiadd new model entries and centralize API key retrievalc0fdeeb
    • aiadd Ollama provider with dynamic model fetching and cachingfd30ab5

    v0.8.6

    View diff
    Features
    • uiadd context menu positioning utils and SQL generator utilities9d63a37
    • utilsadd settings and theme management utilities952d651
    • utilsadd visual query SQL generator and table toolbar helpersca44962
    • utilsextract and add testable utility modules with unit tests369a9af

    v0.8.5

    View diff
    Bug Fixes
    • backendprepend app name to ER diagram window titlec3c652c
    • sidebaradd error handling for index deletion and i18n messages346adc8
    Features
    • editoradd apply-to-all toggle for batch updatese5e5aa8
    • sidebaradd Generate SQL modal for tables0c077ca

    v0.8.4

    View diff
    Features
    • i18nadd themeSelection translation key43daa61
    • settingsadd configurable font family and size7daf6ef
    • settingsadd font family selection and lazy-loaded fonts8a0e61a
    • settingsadd localization tab and gallery imagesbb00a26
    • settingsimprove AI config handling and detectionb9d0831
    • themeadd font settings and ai custom models to app config8e849e2
    • themeapply dynamic theme colors to sidebar and settings logoscc23fab
    • themeimplement theme system with CSS variables and provider55f8905
    • themeintegrate monaco-themes and add new preset themes9154510
    • uiadd modal styling rules, SqlPreview component and splashf74f063

    v0.8.2

    View diff
    Features
    • er-diagramadd window command and page for schema diagrams676b41f
    • schema-diagramadd refresh UI and encode ER diagram parameters61b8b00
    • schemaadd schema diagram UI with backend snapshot72849e8
    Breaking Changes
    • er-diagramremove `schema_diagram` tab type from editor tabs

    v0.8.1

    View diff
    Features
    • connectionsadd connection loading state36a72d2
    • editoradd convert to console action and translationsc3ad2b2
    • modaladd run mode to query params modala8af1c3
    • queryadd parameterized query support9fd2fbc
    • sqlpreserve ORDER BY clause during paginationa963c28
    • uiadd column sorting in DataGrid896658c
    • uiadd virtualized data grid and SQL editor wrapper30a9099
    • uienhance table interaction with click and double-click actionseccc881
    Major

    v0.8.0

    View diff
    Features
    • aiadd AI integration with backend, settings UI, and docs0ff1899
    • aiadd AI query generation and explanation support370f1e8
    • aiadd dynamic model loading with fallback and experimental flag702103e
    • driversadd table sorting for all database typesbeb8abc
    • editoradd DataGrip‑style SQL autocomplete and enable word wrapfb1d252
    • exportadd query result export to CSV and JSONe283aa1
    • mcpadd MCP server integration with UI and config handling8d61571
    • mcpadd name support for connection resolutionf01d685

    v0.7.1

    View diff
    Bug Fixes
    • editorclear pending state when running queryfe3354b
    Features
    • databaseimplement connection pool manager8ea4278
    • table-viewenhance filtering with dynamic placeholders and limitcfc5f53
    • uienhance table view with full-screen mode and filtersb528821
    Major

    v0.7.0

    View diff
    Features
    • data-gridimprove table extraction and cell renderingfd21915
    • driversenhance multi-database decimal and null value handling4d49f66
    • driversimprove datetime parsing and formatting74c394b
    • editorimprove query execution loading stated1decc1
    • settingsfix external links by using opener plugin11acdb5
    • uiimplement batch editing with pending changes and deletionscb6aecb
    • websiteadd landing page and sync version handling471bf68

    v0.6.1

    View diff
    Features
    • versionadd APP_VERSION export and sync script54aeaa6
    Major

    v0.6.0

    View diff
    Features
    • i18nadd internationalization support and bump version to 0.6.0e1cab12
    • securityintegrate system keychain for connection passwordsab284b5
    • windowadd Wayland window title workaround for Linuxc09ae72
    Major

    v0.5.0

    View diff
    Bug Fixes
    • restore pagination controls and fix truncated flag scope1bdf104
    Features
    • release v0.5.0 - Advanced Schema Management & UX Improvementsf2d7d1c
    • schemaadd foreign key, index structs and: column edit UIc20c550
    • sidebaradd column explorer with delete actionb25cd50
    • uiadd multi-row selection and select-all column to DataGrid66ddfaa
    Major

    v0.4.0

    View diff
    Features
    • ciadd readme downloads workflowd48ef6b
    • editoradd DataGrip-style multiple query tabs with isolation688739a
    • visual-query-builderadd delete table node UI and auto GROUP BY0f1f9be
    • visual-query-builderadd visual query builder UIf97b67a
    Major

    v0.3.0

    View diff
    Features
    • connectionadd duplicate connection command and clone button4e00382
    Major

    v0.2.0

    View diff
    Bug Fixes
    • driverssupport additional numeric types and correct row mapping0769f3b
    Features
    • add query cancellation, sanitization, and multi‑statement support403956a
    • connectionsadd error handling UI and propagate connection errors3494021
    • editoradd run dropdown and dynamic window title99b3d1c
    • paginationimplement server‑side pagination and UI controlsf50b110
    • saved-queriesadd saved queries support9839737
    • settingsimplement query limit UI and backend streaming support9fd89f3
    • sshadd SSH tunnel support with connection edit/delete UI3a9fc49
    • sshadd system SSH backend and URL encoding for DB URLs5e93ea3