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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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