v5.3.3

OtterMind/Chat2DBv5.3.3Aug 6, 2026by github-actions[bot]

AI Summary

Chat2DB Community v5.3.3 focuses on desktop workspace enhancements, including an integrated terminal and local-file previews, alongside critical improvements in database compatibility, data-operation safety, and application stability.

Key Highlights

  • Introduction of an integrated terminal for desktop users.
  • MiniMax provider support added to AI features.
  • Configurable shortcuts for SQL and database-tree navigation.
  • Enhanced local-file experience with previews and workspace splitting.
  • Robust fixes for cross-database SQL and DDL safety.

New Features

  • Integrated terminal support
  • Local-file previews and workspace splitting
  • Configurable SQL and database-tree shortcuts
  • MiniMax provider support
  • Unconditional identifier quoting across database dialects

Full Release Notes

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 https://github.com/OtterMind/Chat2DB/pull/2234
* feat(client): add line and block comment shortcuts for SQL editor by @iamraydoan in https://github.com/OtterMind/Chat2DB/pull/2340
* feat(database-tree): add configurable shortcuts by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2357
* Add MiniMax provider support by @octo-patch in https://github.com/OtterMind/Chat2DB/pull/2374
* feat(workspace): enhance previews, terminal, and tab splitting by @auenger in https://github.com/OtterMind/Chat2DB/pull/2273

## Improved (1)

Improves workspace tabs, navigation, and output-panel sizing.

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

## Contributors (9)

Thanks to everyone who contributed to this release:

- [@Aias00](https://github.com/Aias00)
- [@AlcoholTobaccoCode](https://github.com/AlcoholTobaccoCode)
- [@auenger](https://github.com/auenger)
- [@haizhi03](https://github.com/haizhi03)
- [@HanawaBanana](https://github.com/HanawaBanana)
- [@HandSonic](https://github.com/HandSonic)
- [@iamraydoan](https://github.com/iamraydoan)
- [@octo-patch](https://github.com/octo-patch)
- [@openai0229](https://github.com/openai0229)

### New Contributors

* @iamraydoan made their first contribution in https://github.com/OtterMind/Chat2DB/pull/2340
* @haizhi03 made their first contribution in https://github.com/OtterMind/Chat2DB/pull/2364

**Full Changelog**: https://github.com/OtterMind/Chat2DB/compare/v5.3.2...v5.3.3