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