📖 Read the announcement blog post: https://tabularis.dev/blog/v0290-chatgpt-sign-in-postgres-multi-database-file-import?utm_src=github-release
See the assets below to download this version and install.
What's Changed
- chore(release): prepare v0.28.0 by @debba in #1058
- fix(mysql): scope batch foreign key join by table name for MariaDB 12.1+ by @Totopo27 in #1005
- feat(postgres): browse multiple databases on one connection by @aesslinger in #822
- fix: get_materialized_view_definition fails with 'error serializing parameter 0' on PG 16 by @aesslinger in #1061
- feat(connections): choose the default database by @Detoy in #1020
- chore(create-plugin): release 0.4.1 by @debba in #1075
- feat(editor): add Transform to Uppercase/Lowercase to the SQL editor context menu by @cestercian in #1072
- feat(history): add Copy Details to the query history context menu by @cestercian in #1073
- fix(plugins): use the target table context for UI slots by @Detoy in #1078
- feat(data-grid): add random UUID cell action by @Asymtode712 in #1049
- feat(editor): select the current SQL statement by @Detoy in #1055
- feat(connections): add copy button to error banner by @Asymtode712 in #1062
- feat(plugins): make the shutdown grace period configurable by @cestercian in #1025
- feat(editor): show server time and fetch time separately in result status bar (#990) by @Totopo27 in #1021
- fix: close per-database pool overrides on disconnect by @aesslinger in #1063
- fix: reject database mismatch on pinned PostgreSQL transaction by @aesslinger in #1066
- fix: reject database mismatch on pinned export session by @aesslinger in #1069
- feat(data-grid): open a URL or email address from a cell by @batool-fariha in #1079
- feat(command-palette): add a toggle editor word wrap command (closes #1036) by @Furox-Art in #1076
- feat(editor): zoom the SQL editor font with Ctrl/Cmd + =, - and 0 by @cestercian in #1071
- fix(mysql): show FLOAT values without float noise and keep row matching by @verbaux in #1068
- feat(editor): rename console tabs by @notlakshitha in #1056
- fix(create-plugin): add ui_extensions entry to the manifest with --with-ui by @princecherry9905 in #1053
- feat(export): propose a file name based on the table by @cestercian in #1052
- feat(grid): copy column names as lines and json array by @Rahul-pamula in #1048
- fix(i18n): use resolved UI language for Visual Explain AI analysis in auto mode by @princecherry9905 in #1026
- fix(editor): do not trigger pagination shortcuts when typing in filter inputs (#1013) by @Totopo27 in #1024
- feat(import): load data from files by @Detoy in #1023
- fix: follow-ups from PRs #1063, #1066, #1069 by @aesslinger in #1100
- feat(explorer): copy quoted and qualified object names by @CreedTech in #1077
- feat(grid): add setting for default sort direction on header click (#996) by @Totopo27 in #1006
- feat(mcp): let list_tables, describe_table and run_query pick the database by @albertorizzi in #1089
- fix(connections): let duplicated URI connections be deleted by @albertorizzi in #1085
- fix(connections): don't crash saving a connection whose ssl_mode is null by @albertorizzi in #1086
- feat(saved queries): open, copy, and duplicate without running SQL by @vivekyarra in #1083
- fix(shortcuts): let global shortcuts fire from the SQL editor by @verbaux in #1101
- fix(create-plugin): find the plugin binary in Cargo's real target directory by @harshbhx in #1096
- fix(import): retry the last source and show plain noData for empty files by @Detoy in #1103
- fix(i18n): use resolved UI language for AI Explain modal in auto mode by @orshih6 in #1099
- fix: scope AI schema context to the active database by @aesslinger in #1104
- feat(palette): show keyboard shortcuts in command rows by @verbaux in #1084
- chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #1106
- chore(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #1107
- chore(deps): bump vedantmgoyal9/winget-releaser from 4ffc7888bffd451b357355dc214d43bb9f23917e to b7370d4d152efdce803a26cc6ca9eee58cb2ad54 by @dependabot[bot] in #1108
- chore(ci): pin pnpm/action-setup to v6.1.0 in the macOS e2e workflow by @debba in #1115
- fix: close pools before SSH/K8s resolution on disconnect and health-check by @aesslinger in #1070
- feat(editor): show the number of columns in the result status bar by @batool-fariha in #1057
- feat: replace the app logo and icons with the new Tabularis mark by @wajrock in #935
- feat(ai): add ChatGPT sign-in and plan usage by @debba in #1118
- feat(datagrid): comparison and contains operators in "Filter by this value" by @itsmunzir in #1081
- feat(ai): add Requesty as an AI provider by @Thibaultjaigu in #817
- refactor(export-crypto): expose the key-and-seal primitives by @drbelt27 in #776
- feat(team-share): vault file format and three-way merge by @drbelt27 in #778
- refactor(shortcuts): extract and share isTypingTarget helper (closes #1095) by @Nacl-HCl in #1098
- fix(create-plugin): copy locales in dev-install and release workflow by @rajpreetcodes in #1092
- feat(grid): copy the selection as an HTML table by @harshbhx in #1080
- fix(generate-sql): quote table and column names in every generated tab by @itsmunzir in #1133
- fix(editor): show a saved query's database in its tab and selector by @itsmunzir in #1125
- feat(ai-activity): record the target database in the audit log by @albertorizzi in #1129
- fix(ssh): discard a cached SSH tunnel whose session has ended by @ozenyunus35 in #1124
- fix: guard AiQueryModal database fallback to the active connection by @aesslinger in #1121
- fix(mysql): keep fractional seconds in DATETIME and TIMESTAMP values by @ozenyunus35 in #1120
- fix(editor): show the full tab name as a tooltip and accessible name by @itsmunzir in #1134
- fix(i18n): apply system language when Language is set to Auto by @chiliec in #1116
- feat(datagrid): edit a cell selection in bulk from the context menu by @Detoy in #1130
- fix(connections): clear drop zones for folders and connections by @benedettoraviotta in #1123
- feat(sidebar): optionally group open connections by folder by @benedettoraviotta in #1122
- feat: model pooler mode in ConnectionParams by @aesslinger in #1128
- fix(clipboard): quote CSV fields that contain the delimiter, a quote or a line break by @jay23606 in #1047
- chore(rules): add plugin driver rules for agents by @debba in #1140
- fix(grid): keep the quotes of a JSON string pasted into a JSON column by @MFA-G in #1142
- fix(editor): announce a SQL file tab's unsaved marker to screen readers by @itsmunzir in #1141
- feat(datagrid): column statistics popover in the column header menu by @itsmunzir in #1127
- docs(contributing): write practical first contribution quickstart and workflow guide by @markankamaransheogarat-sys in #1171
- feat(favorites): organize saved queries in connection folders by @Asymtode712 in #1181
- feat(drivers): allow in-memory databases for file-based plugins by @debba in #1182
- chore(create-plugin): release 0.4.2 by @debba in #1191
- ci(packages): automate npm version bumps and check PR titles by @debba in #1192
- fix(mcp): fail closed on hash comments and backslash escapes in the read-only check by @debba in #1197
- fix(plugins): build dumps and notebook literals from driver capabilities by @debba in #1198
- feat(plugins): support plugin-owned connection fields and secrets by @debba in #629
- feat(plugins): send connection context to DDL builders and add drop_table_sql by @debba in #1199
- feat(plugins): let drivers declare their SQL syntax by @debba in #1200
- fix(explorer): keep every selected schema loaded after confirming the picker by @debba in #1203
- fix(sidebar): keep the metadata error popover inside the viewport by @debba in #1204
- chore(plugin-api): release 0.3.0 by @github-actions[bot] in #1202
- feat(editor): move a tab left or right from its context menu by @Detoy in #1195
- feat(explain): save raw plan output to file (#1162) by @markankamaransheogarat-sys in #1178
- fix(export): write CSV NULL the same way in both export paths by @umairnaeem0309 in #1175
- fix(datagrid): return focus when the column statistics popover closes by @itsmunzir in #1179
- feat(editor): export loaded query results as an HTML file (#1155) by @dyk1454683243-sudo in #1205
- feat(sidebar): export a saved query directly as a SQL file (#1146) by @Nacl-HCl in #1196
- fix(create-plugin): run the Windows justfile recipes as PowerShell scripts by @harshbhx in #1190
- fix(ci): make typecheck follow the project references by @itsmunzir in #1143
- feat(history): temporarily pause editor query history capture (#1150) by @markankamaransheogarat-sys in #1186
- feat(json): add expand all and collapse all controls to JSON trees by @Asymtode712 in #1174
- fix(favorites): follow-up fixes for saved query folders by @Asymtode712 in #1183
- feat(editor): add Copy SQL Without Comments action by @chiliec in #1172
- feat(editor): undo and redo pending grid edits (#1167) by @markankamaransheogarat-sys in #1206
- feat(grid): copy column names as quoted SQL list (#1153) by @markankamaransheogarat-sys in #1185
- feat(sidebar): show matching SQL excerpt in saved query search by @Asymtode712 in #1177
- fix: ignore src-tauri in vite watcher to avoid EBUSY crash on Windows by @omgrech in #1217
- feat(editor): export loaded query results as NDJSON (#1156) by @markankamaransheogarat-sys in #1187
- feat(explain): export complete EXPLAIN table as CSV (#1163) by @markankamaransheogarat-sys in #1184
- feat(plugins): optional get_column_stats RPC for the column statistics popover by @itsmunzir in #1180
- fix(history): accessibility polish for the history pause toggle by @itsmunzir in #1223
- fix(editor): clear pending grid focus request after a failed filter-by-value query by @pujitha24 in #1221
- fix(editor): give Copy SQL Without Comments feedback and hide it on generic-only dialects by @harshbhx in #1224
- fix(export): notebook CSV/JSON export reuses the editor formatter (#1208) by @FalconTechDev in #1209
- fix(favorites): translate unreadable-folders error and log it once by @Asymtode712 in #1215
- fix(k8s): read k8s connection profiles from the custom storage location by @Kusio in #1229
- fix(export): end every CSV and NDJSON record with a newline by @debba in #1233
New Contributors
- @Asymtode712 made their first contribution in #1049
- @batool-fariha made their first contribution in #1079
- @Furox-Art made their first contribution in #1076
- @notlakshitha made their first contribution in #1056
- @princecherry9905 made their first contribution in #1053
- @Rahul-pamula made their first contribution in #1048
- @CreedTech made their first contribution in #1077
- @albertorizzi made their first contribution in #1089
- @harshbhx made their first contribution in #1096
- @orshih6 made their first contribution in #1099
- @itsmunzir made their first contribution in #1081
- @Thibaultjaigu made their first contribution in #817
- @drbelt27 made their first contribution in #776
- @Nacl-HCl made their first contribution in #1098
- @rajpreetcodes made their first contribution in #1092
- @ozenyunus35 made their first contribution in #1124
- @chiliec made their first contribution in #1116
- @jay23606 made their first contribution in #1047
- @MFA-G made their first contribution in #1142
- @markankamaransheogarat-sys made their first contribution in #1171
- @github-actions[bot] made their first contribution in #1202
- @umairnaeem0309 made their first contribution in #1175
- @omgrech made their first contribution in #1217
- @pujitha24 made their first contribution in #1221
- @FalconTechDev made their first contribution in #1209
- @Kusio made their first contribution in #1229
Full Changelog: v0.28.0...v0.29.0
Stay in touch: Website · Discord · X · Bluesky · Mastodon · GitHub