v5.3.1

kyutai-labs/hibiki-zerov5.3.1Jul 27, 2026by github-actions[bot]

AI Summary

v5.3.1 introduces AI automation for issues and PRs, enhances the frontend with Markdown result copying and SQL output ordering, and fixes numerous database compatibility issues across MongoDB, SQL Server, Redis, and Snowflake.

Key Highlights

  • AI Automation: Added AI issue and PR agents to streamline workflows
  • Frontend Improvements: Introduced Markdown result copying and SQL output ordering
  • Database Compatibility: Fixed critical issues in MongoDB, SQL Server, Redis, and Snowflake
  • CI/CD Notifications: Added QQ group notifications for releases and deployments

New Features

  • AI issue and PR agents
  • Copy query results as Markdown
  • SQL output ordering
  • Full-height inspector rail

Full Release Notes

## What's Changed
* fix(gaussdb): preserve comments in table DDL by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1878
* fix(opengauss): preserve comments in table DDL by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1875
* fix(release): isolate gray CDN artifacts by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1882
* fix(jcef): use Community native window title by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1885
* fix(sql): preserve execution context correctness by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1870
* fix(ai): tolerate trailing /v1 in custom model base URL to avoid /v1/v1 requests by @solitude-mix in https://github.com/OtterMind/Chat2DB/pull/1889
* docs(readme): restructure README for easier onboarding by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/1898
* fix(ci): repair issue claim concurrency by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1902
* fix(jcef): limit Community native title to Windows by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1904
* fix(mongodb): support native result filtering and sorting by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1903
* fix(spi): replace hardcoded Chinese "成功" in JdbcUtils.testConnect wit… by @liulipengju in https://github.com/OtterMind/Chat2DB/pull/1900
* feat(automation): add AI issue and PR agents by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1913
* fix(sqlserver): use ROW_NUMBER pagination for SQL Server < 2012 (#1693) by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1919
* fix(redis): fix string-key update NPE and value-edit semantics across key types by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/1922
* fix(spi): fix NPE in SqlUtils.buildCanEditResult when FROM clause is … by @liulipengju in https://github.com/OtterMind/Chat2DB/pull/1899
* docs(readme): add star call-to-action after Security Notes by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/1934
* fix(automation): harden AI issue assistant output by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1921
* fix(ai): contain long markdown code blocks by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1907
* feat(frontend): add SQL output ordering and explicit follow mode by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1936
* feat(community): operationalize contribution workflow by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1939
* fix(workspace): keep Data Browser active for database queries by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1943
* fix(community): isolate project sync events by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1947
* fix(release): keep gray builds in Actions by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1940
* fix(workspace): preserve manual Files selection by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1959
* revert(ai): remove long markdown code fix by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1963
* fix(ci): stop reporting agentic no-op issues by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1965
* fix(workspace): refresh saved query tree after save by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1956
* fix: respect manual workspace panel selection by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/1969
* feat(result-set): use full-height inspector rail by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1977
* fix(workspace): keep left panel selection manual by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1975
* fix(ui): wire up ER diagram help button to open docs (#1695) by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1892
* fix: preserve null values in copied where clauses by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/1967
* Fix count SQL semicolon trimming by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/1966
* fix: handle missing column metadata in DDL generation by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/1968
* feat(ci): add QQ group status notifications by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1957
* fix(ci): allow QQ relay requests through Cloudflare by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/1989
* feat(frontend): copy query results as Markdown by @auenger in https://github.com/OtterMind/Chat2DB/pull/1906
* fix(ai): separate streaming and synchronous retry policies by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1894
* fix(cache): degrade safely when optional cache initialization fails by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1890
* feat(ci): notify QQ of Release, Deployment, and Discussion changes by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2004
* docs(ci): clarify inactive deployment notification limit by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2006
* docs: link open-source Chat2DB CLI by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2007
* feat(ci): notify QQ about comments and pull request reviews by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2010
* fix(ui): XSS, state mutation, and miscellaneous frontend fixes by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1927
* fix(snowflake): null-safe metadata compare in column-type build by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2001
* fix(sundb): null-safe metadata compare in column-type build by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2002
* fix(cache): init guard, corrupted entry eviction, and lock improvement by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1925
* fix(sundb): use equals for NUMBER type name in DDL generation by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2000
* fix(chat): contain oversized conversation content by @openai0229 in https://github.com/OtterMind/Chat2DB/pull/2048
* fix(dashboard-store): use shallow equality like sibling stores by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2038
* fix(copilot): scope global store subscription to editorSettings by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2039
* fix(ai-setting): scope org store subscription to curOrg by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2040
* fix(approval): scope user store subscription to curUser by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2041
* fix(excel-import): guard excelReader.close() against null in finally by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2042
* fix(chat-history): only delete message file for owned sessions by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2043
* fix(hive): guard split length before indexing column default key by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2044
* fix(sqlserver): drop dead Arrays.asList() branch and dedupe FLOAT by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2045
* fix(excel-import): escape table/column names and comments in CREATE TABLE by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2046
* fix(chat-store): pass shallow equality to useChatStore by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2018
* fix(ui): make useAutoScroll smooth flag effective by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2019
* fix(chat): avoid appending literal "undefined" on SSE messages by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2020
* fix(excel-import): escape cell values in INSERT statements by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2021
* fix(useSelectDatabase): add catch to getSchemaList by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2024
* fix(result-set): bound and clean up filter/sort render polls by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2025
* fix(table-editor): memoize Context.Provider value by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2068
* fix(ai-button): scope AI store subscription to showPanel by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2066
* fix(xterm): dispose Terminal on unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2067
* fix(xugudb): guard column/index enum lookups against null in CREATE/ALTER by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2063
* fix(postgresql): quote view name with double quote and separate schema/view in comment by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2062
* fix(sqlite): guard alter-table tail strip against empty script by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2065
* fix(h2): close ResultSets in getDDL via try-with-resources by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2064
* fix(notification-nav): guard on-mount async queries against unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2074
* fix(canvas-table): unmount cell-editor React root on end by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2076
* fix(mysql): log column-size parse failures instead of swallowing by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2075
* fix(auth): clear verification-code countdown timer on unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2073
* fix(oracle): SQL injection, view comment DOT, and pagination column leak by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/2052
* fix(sqlserver): view quoting, TIMESTAMP dead code, GO separator, and rename quoting by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/2053
* fix(sqlserver): preserve IDENTITY columns when copying table (#1691) by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1918
* fix(spi): harden SQL execution and connection lifecycle by @HandSonic in https://github.com/OtterMind/Chat2DB/pull/1924
* fix(plugin-menu-list): guard plugin-list fetch against unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2087
* fix(chat-question-template): guard example-prompt fetch against unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2086
* docs(readme): add Powered by OtterMind.ai link under logo by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/2090
* Update README.md by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/2091
* docs(readme): unify Powered by OtterMind line across all READMEs by @Chat2DB-Pro in https://github.com/OtterMind/Chat2DB/pull/2092
* docs(bigquery): add Community BigQuery connection guide (#1698) by @Hamza-ali1223 in https://github.com/OtterMind/Chat2DB/pull/2054
* fix(db2): rename NUMBERIC typo to NUMERIC by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2085
* fix(db2): skip column comment for dropped columns in ALTER by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2083
* fix(storage): persist deletions and clean up detail files in LargeDataStorage by @Duansg in https://github.com/OtterMind/Chat2DB/pull/2050
* feat(sql-editor): add type-aware INSERT value hints by @auenger in https://github.com/OtterMind/Chat2DB/pull/1933
* fix(price): stop order-status polling and setState after unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2103
* fix(result-set): clear pending mouseenter timeout in useHeaderTooltip cleanup by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2104
* fix(import-export): stop polling and setState after unmount in Log by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2102
* fix(kingbase,postgresql): check constraintDefinition before toLowerCase by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2101
* fix(dm): fall back for the single failing index in exportTable, not all by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2099
* fix(clickhouse): log column-size parse failures instead of swallowing by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2100
* fix(wechat-login): stop QR-code polling and setState after unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2110
* fix(er-modal): skip initLayout setState after dispose by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2111
* fix(jcef): null-guard readLine and close reader in theme detection by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2109
* feat(ai): improve custom-model entry visibility by @BlueChubby in https://github.com/OtterMind/Chat2DB/pull/2089
* fix(purchase-details): key certificate rows by deviceId, not index by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2129
* fix(on-mount): guard async fetches against setState after unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2118
* fix(on-mount): guard more async fetches against setState after unmount by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2140
* fix(er-modal-table): key column rows by name, not index by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2130
* fix(sql-parser): null-guard offendingToken before getType in error message by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2116
* fix(lineage): preserve parse exception cause instead of discarding it by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2117
* fix(sql-util): null-safe dbType comparison in quoteValue by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2125
* fix(sql-generate): log jsqlparser error with the exception by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2126
* fix(easy-sql): add databaseName once for 3-part names by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2127
* fix(easy-string): only append ellipsis when limitString actually truncated by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2128
* fix(sundb): rename NUMBERIC typo to NUMERIC by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2136
* fix(snowflake): list TIMESTAMP_NTZ instead of duplicating TIMESTAMP_LTZ by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2137
* fix(import): swap scale/precision in BaseImporter.getSQLDataValue by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2138
* fix(snowflake): null-guard getByType and use Objects.equals for incrementValue by @Aias00 in https://github.com/OtterMind/Chat2DB/pull/2139

## New Contributors
* @solitude-mix made their first contribution in https://github.com/OtterMind/Chat2DB/pull/1889
* @liulipengju made their first contribution in https://github.com/OtterMind/Chat2DB/pull/1900
* @HandSonic made their first contribution in https://github.com/OtterMind/Chat2DB/pull/1919
* @Aias00 made their first contribution in https://github.com/OtterMind/Chat2DB/pull/1969
* @auenger made their first contribution in https://github.com/OtterMind/Chat2DB/pull/1906
* @Hamza-ali1223 made their first contribution in https://github.com/OtterMind/Chat2DB/pull/2054
* @Duansg made their first contribution in https://github.com/OtterMind/Chat2DB/pull/2050
* @BlueChubby made their first contribution in https://github.com/OtterMind/Chat2DB/pull/2089

**Full Changelog**: https://github.com/OtterMind/Chat2DB/compare/v5.3.0...v5.3.1