v5.3.3
juicedata/juicefsv5.3.3Aug 6, 2026by github-actions[bot]
AI Summary
Chat2DB v5.3.3 enhances the desktop workspace with an integrated terminal, local-file previews, and MiniMax AI provider support. It includes 95 fixes to improve database compatibility, SQL safety, and application stability.
Key Highlights
- Integrated terminal and local-file previews added.
- MiniMax AI provider support added.
- Unconditional identifier quoting across database dialects.
- Configurable shortcuts for SQL editor and database tree.
- Extensive fixes for SQL escaping and metadata handling across 20+ databases.
New Features
- Integrated terminal
- Local-file previews
- Workspace splitting
- MiniMax provider support
- Configurable shortcuts
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