Skip to content

Chat2DB Community 5.3.3

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Aug 05:28
· 33 commits to main since this release
ca0ce98

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.

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:

New Contributors

Full Changelog: v5.3.2...v5.3.3