Chat2DB Community 5.3.3 focuses on the desktop workspace, integrated terminal, and local-file experience while improving database compatibility, data-operation safety, and application stability.
Added (5)
Adds an integrated terminal, local-file previews and workspace splitting, configurable SQL and database-tree shortcuts, MiniMax provider support, and unconditional identifier quoting across database dialects.
- feat(spi): add quoteIdentifierAlways to ISQLIdentifierProcessor by @Aias00 in #2234
- feat(client): add line and block comment shortcuts for SQL editor by @iamraydoan in #2340
- feat(database-tree): add configurable shortcuts by @openai0229 in #2357
- Add MiniMax provider support by @octo-patch in #2374
- feat(workspace): enhance previews, terminal, and tab splitting by @auenger in #2273
Improved (1)
Improves workspace tabs, navigation, and output-panel sizing.
- fix(ui): refine workspace tabs and navigation by @openai0229 in #2353
Fixed (95)
Fixes desktop terminal and navigation behavior; cross-database SQL and DDL safety; DML and pagination validation; storage consistency; result grids; AI stream ownership; BI charts; database compatibility; and macOS packaging and startup.
- fix(mysql): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2172
- fix(h2): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2177
- fix(db2): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2173
- fix(clickhouse): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2174
- fix(oracle): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2195
- fix(sqlserver): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2196
- fix(xugudb): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2175
- fix(postgresql): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2194
- fix(kingbase): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2197
- fix(sqlite): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2204
- fix(redshift): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2203
- fix(sundb): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2176
- fix(dm): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2198
- fix(snowflake): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2200
- fix(hive): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2201
- fix(generic): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2199
- fix(oscar): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2202
- fix(oceanbase-oracle): escape SQL identifiers and literals in metadata/DDL paths (#1914) by @HandSonic in #2205
- fix(mongodb): escape generated shell command contexts (#1914) by @HandSonic in #2206
- fix(core-domain-api): volatile async state, escape quoted SQL values, fix XLXS typo, align PinTable hashCode by @HandSonic in #2293
- fix(domain-core): escape identifiers/comments in Excel-import DDL; propagate SQL errors; fix pinned duplication and completion fallback by @HandSonic in #2309
- fix(redis): quote key names in DEL/RENAME, apply grid edits atomically, iterate full SCAN cursor by @HandSonic in #2308
- fix(spi): guard empty UPDATE SET clause, quote-aware now() replacement, null-safe DBStructUtils by @HandSonic in #2335
- fix(snowflake): use SPI quoteIdentifierAlways for DROP, schema, and RENAME by @Aias00 in #2262
- fix(h2): log SET SCHEMA failure instead of swallowing by @Aias00 in #2155
- fix(on-mount): guard more async fetches against setState after unmount by @Aias00 in #2147
- fix(sqlite): preserve column size when decimalDigits is null by @Aias00 in #2170
- fix(redis-stream): map displayed row index to valueList correctly in handleCellChange by @Aias00 in #2165
- fix(bi): make chart sort comparator return 0 for equal values by @Aias00 in #2158
- fix(bi): adjust ComboAxisSelect splice index when both isFirst and isLast by @Aias00 in #2171
- fix(sql-generate): render count fallback with the parsed dbType, not sqlserver by @Aias00 in #2146
- fix(er-position): persist the new position, not the old record by @Aias00 in #2163
- fix(bi): restore chart fields after desktop query by @openai0229 in #2376
- fix(bi): measure actual X-axis labels instead of 'undefined' in useLabelRotate by @Aias00 in #2157
- fix(bi): guard empty data array in EditorChartSql before destructuring by @Aias00 in #2164
- fix(mysql): preserve DECIMAL precision when scale is null by @Aias00 in #2181
- fix(hive): preserve column precision when scale is null by @Aias00 in #2191
- fix(snowflake): preserve column precision when scale is null by @Aias00 in #2190
- fix(oracle): match index_owner in index metadata joins to avoid cross-schema index collisions by @HandSonic in #2286
- fix(dml): add @Valid to DbDmlController @RequestBody parameters by @Aias00 in #2381
- fix(datasource): parse driverConfig not ssh in rs2Request by @Aias00 in #2392
- fix(console): support Pro chart SQL first save by @openai0229 in #2415
- fix(connection): log swallowed custom-connection-resolution exceptions by @Aias00 in #2396
- fix(oscar): uppercase identifier in isReservedKeyword before lookup by @Aias00 in #2388
- fix(postgresql): render PostGIS geometry and geography as WKT by @openai0229 in #2419
- fix(xugudb): add CHECK to XugudbSqlGuards COLUMN_CLAUSE_KEYWORDS by @Aias00 in #2387
- fix(xugudb): preserve NUMERIC precision and scale in buildDataType by @Aias00 in #2394
- fix(spi): make ConnectionPool cleanup thread a named daemon by @Aias00 in #2386
- fix(view): /api/rdb/view/delete drops the view instead of the table by @Aias00 in #2380
- fix(converter): delete temp files after DbConverter uploads by @Aias00 in #2398
- fix(rdb): null-guard view/function/procedure list endpoints by @Aias00 in #2404
- fix(chat): write correct shape in setCurrentChat by @Aias00 in #2402
- fix(workspace): cap persisted tabs to reduce localStorage quota risk by @Aias00 in #2400
- fix(result-grid): stop infinite recursion when editing large-value cells by @Aias00 in #2382
- fix(result-grid): re-apply create/delete highlights after arrangement reset by @Aias00 in #2406
- fix(org-settings): move hooks above early return to satisfy Rules-of-Hooks by @Aias00 in #2421
- fix(tree): guard updateTreeData against null list by @Aias00 in #2423
- fix(tree): make findNode/getParentNode null-tolerant by @Aias00 in #2425
- fix(sql): escape single quotes in COMMENT text by @Aias00 in #2431
- fix(sql): clamp pageNo/pageSize to prevent paging offset int overflow by @Aias00 in #2433
- fix(mongodb): avoid Collectors.toMap NPE on null document values by @Aias00 in #2427
- fix(oceanbase-oracle): COMMENT DDL use quoteStringLiteral to stop backslash doubling by @Aias00 in #2429
- fix(ai-config): synchronize resolveTestApiKey read of shared userConfigMap by @Aias00 in #2435
- fix(postgresql): buildDataType NPE for NUMERIC when precision null but scale set by @Aias00 in #2439
- fix(sql-parser): tolerate duplicate table names in context parse by @Aias00 in #2441
- fix(sql): clamp buildPageLimit offset/pageSize to valid range by @Aias00 in #2445
- fix(sql): bound format/valid_select SQL size by @Aias00 in #2447
- fix(storage): do not persist transient Namespace.dataSources by @Aias00 in #2453
- fix(bigquery): strip managed extendInfo keys before re-injecting on reconnect by @Aias00 in #2455
- fix(export): gate SET FOREIGN_KEY_CHECKS on the MySQL-protocol family by @Aias00 in #2457
- fix(tree-storage): make deleteNode atomic by @Aias00 in #2459
- fix(storage): make SmallDataStorage.saveDataList atomic by @Aias00 in #2467
- fix(tree): show error and unblock delete-table modal on failure by @Aias00 in #2469
- fix(cockroachdb): use PostgreSQL grammar for SQL parsing and align dbType on COCKROACHDB by @HandSonic in #2300
- fix(core-tools): harden pagination, JDBC utilities, and shared helpers by @HandSonic in #2295
- fix(generic): derive ColumnType support flags from JDBC TypeInfo in IGenericMetaDataConverter by @HandSonic in #2278
- fix(core-web): harden legacy import and task cancellation by @HandSonic in #2294
- fix(frontend): default main page to workspace by @openai0229 in #2518
- fix: split DML endpoint request contracts by @openai0229 in #2519
- fix(workspace): sync console names and resize cursors by @auenger in #2517
- fix(jcef): guard zoom shortcut outside desktop by @haizhi03 in #2364
- fix(storage): correct page totals/slicing, remove-before-add on tree drag, no tombstone resurrection by @HandSonic in #2336
- fix(sqlserver): use exact matching for copied WHERE clauses by @HandSonic in #2290
- fix(gaussdb): expose public schema and enable INSERT editor hints by @HandSonic in #2288
- fix(presto): implement catalog-qualified tableDDL via SHOW CREATE TABLE by @HandSonic in #2307
- fix(gbase8s): preserve qualification slots and connection URL idempotence by @HandSonic in #2292
- fix(kylin): generate safely quoted table DDL from JDBC metadata by @HandSonic in #2301
- fix(workspace): use platform-specific file manager labels by @openai0229 in #2557
- [codex] fix(chat): preserve state after conversation rename by @HanawaBanana in #2347
- fix(jcef): detect and select local file encodings on Windows by @openai0229 in #2561
- fix(sse): scope cancellation and cleanup to each request by @Aias00 in #2520
- fix: route invoices by payment provider by @openai0229 in #2564
- fix(community): repair macOS packaging and desktop interactions by @openai0229 in #2605
- fix(community): preserve navigation and terminal layout by @openai0229 in #2619
- fix(community): restore last selected main page by @openai0229 in #2625
Other (4)
Developer and release engineering changes: the Community Web and JCEF launcher, strict release metadata generation, desktop bytecode verification, and a loopback-only supervised development runtime.
- fix(release): add set -euo pipefail to generate_metadata.sh by @Aias00 in #2390
- fix(release): remove -noverify from desktop launchers by @Aias00 in #2451
- feat(dev): start Community Web frontend and JCEF backend by @AlcoholTobaccoCode in #2358
- fix(dev): keep Community JCEF launcher local and supervised by @openai0229 in #2562
Contributors (9)
Thanks to everyone who contributed to this release:
- @Aias00
- @AlcoholTobaccoCode
- @auenger
- @haizhi03
- @HanawaBanana
- @HandSonic
- @iamraydoan
- @octo-patch
- @openai0229
New Contributors
- @iamraydoan made their first contribution in #2340
- @haizhi03 made their first contribution in #2364
Full Changelog: v5.3.2...v5.3.3