| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add the SQLX CLI integration to the settings page The page installs, updates and locates the OtterMind SQLX command line, imports the datasources Chat2DB already holds, and shows the Skill commands an agent needs. SQLX is a separate product from the chat2db CLI, so it gets its own module and its own page section instead of extending the existing CLI entry. * chat2db-community-sqlx: platform and asset mapping for the official release, version parsing, a process runner, the release installer with SHA-256 verification and an atomic move, settings storage, and the status service. Credentials are read through queryDisplayDataSourceById(id, true) -- the decrypted view the connection path uses -- and travel to the SQLX child process on stdin, never through argv, files, the renderer or the logs. * chat2db-community-tools: the SqlxBridge contract, SqlxStatus and SqlxDatasourceState so the JCEF shell can reach the bridge without depending on a domain or storage module. * chat2db-community-jcef: eight handlers (status, install, update, check, cancel, choose binary, import, datasource states) plus a boundary test that fails if any handler imports an implementation package. * chat2db-community-start: registers the bridge before Spring starts and attaches the datasource reader after app.run, so the page never sees a missing bridge. * chat2db-community-client: the CLI 集成 settings section with the version line, one adaptive action button, a redetect that stays visible long enough to be seen, a datasource table with a status column (已导入 / 未导入 / 暂不支持 / 信息不完整) that only lets importable rows be selected, an import result reported as an alert, and the Skill commands with hover copy buttons. SqlxConnectionMapping now reaches the eight engines added for the next SQLX release (Presto, Hive, Kylin, XuguDB, Db2, Informix -- which Chat2DB spells INFOMIX -- SUNDB and GBase 8s), so they import once that release ships instead of being skipped as unsupported. Snowflake, Oscar, Elasticsearch, BigQuery and Redshift stay unsupported and keep reporting their reason. Verified: chat2db-community-sqlx tests (41, including the new engine mapping and the datasource reader that must use the decrypted view), test:sqlx-setting, test:settings-layout, test:i18n, eslint on the changed files, and build:web:community. The desktop app was exercised by hand against a real installation, an update and an import of a MySQL datasource. | 1 个月前 | |
feat(desktop): unify package layout and enable beta updates | 1 个月前 | |
fix(import): validate staged sources after resolving their paths | 10 天前 | |
chore(i18n): add import/export messages to backend bundles Mirror the new import, preflight, template and count messages into both the start and JCEF bundles so dev and packaged runtimes resolve the same localized text. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> | 16 天前 | |
Merge remote-tracking branch 'origin/main' into release/5.3.9-beta.2 # Conflicts: # chat2db-community-client/package.json | 10 天前 | |
Merge remote-tracking branch 'origin/main' into release/5.3.9-beta.2 # Conflicts: # chat2db-community-client/package.json | 10 天前 | |
fix(sqlx): read datasources under the desktop session context The SQLX settings page resolves every saved connection through queryDisplayDataSourceById(id, true). A cloud-stored connection is decrypted with the organization token of the request context, but this client command runs on a JCEF thread that never passed through the request context: decryption raised NeedLoggedInBusinessException, the whole state query failed, and the page reported every datasource as incomplete with the import disabled. DesktopSessionContext now owns the desktop identity cookie names and runs an action with that identity set, restoring the previous context afterwards. The SQLX reader uses it, and CookieUtil reuses the same constants instead of repeating the names. Verified with SqlxDataSourceReaderTest (6 tests) and a desktop build where a CLOUD-stored connection becomes importable again. | 28 天前 | |
Merge remote-tracking branch 'origin/main' into release/5.3.9-beta.2 # Conflicts: # chat2db-community-client/package.json | 10 天前 | |
Merge remote-tracking branch 'origin/main' into release/5.3.9-beta.2 # Conflicts: # chat2db-community-client/package.json | 10 天前 | |
fix(sqlx): read datasources under the desktop session context The SQLX settings page resolves every saved connection through queryDisplayDataSourceById(id, true). A cloud-stored connection is decrypted with the organization token of the request context, but this client command runs on a JCEF thread that never passed through the request context: decryption raised NeedLoggedInBusinessException, the whole state query failed, and the page reported every datasource as incomplete with the import disabled. DesktopSessionContext now owns the desktop identity cookie names and runs an action with that identity set, restoring the previous context afterwards. The SQLX reader uses it, and CookieUtil reuses the same constants instead of repeating the names. Verified with SqlxDataSourceReaderTest (6 tests) and a desktop build where a CLOUD-stored connection becomes importable again. | 28 天前 | |
fix(updater): report a failed update check instead of "no update available" A check that could not reach the update source was reported exactly like a check that found no newer release, so a user with a broken network or a blocked download host was told "no new version available" and had no way to tell the difference. Report the two cases separately: - A release index or manifest that the source does not publish (HTTP 404) keeps meaning "no update available", because a channel that has not published its index yet is not an error. - Any other failure (connect timeout, server error, verification failure) is reported as a failed check. The check result carries a new CHECK_FAILED state, the JCEF handler maps it to the updateFailed status, and the client already renders that status as an error message. The new client message says the check failed and suggests checking the network instead of claiming that no new version exists. | 1 个月前 | |
Merge remote-tracking branch 'origin/main' into release/5.3.9-beta.2 # Conflicts: # chat2db-community-client/package.json | 10 天前 | |
feat: release Chat2DB Community 4.0.0 | 3 个月前 | |
feat: release Chat2DB Community 4.0.0 | 3 个月前 | |
Add the SQLX CLI integration to the settings page The page installs, updates and locates the OtterMind SQLX command line, imports the datasources Chat2DB already holds, and shows the Skill commands an agent needs. SQLX is a separate product from the chat2db CLI, so it gets its own module and its own page section instead of extending the existing CLI entry. * chat2db-community-sqlx: platform and asset mapping for the official release, version parsing, a process runner, the release installer with SHA-256 verification and an atomic move, settings storage, and the status service. Credentials are read through queryDisplayDataSourceById(id, true) -- the decrypted view the connection path uses -- and travel to the SQLX child process on stdin, never through argv, files, the renderer or the logs. * chat2db-community-tools: the SqlxBridge contract, SqlxStatus and SqlxDatasourceState so the JCEF shell can reach the bridge without depending on a domain or storage module. * chat2db-community-jcef: eight handlers (status, install, update, check, cancel, choose binary, import, datasource states) plus a boundary test that fails if any handler imports an implementation package. * chat2db-community-start: registers the bridge before Spring starts and attaches the datasource reader after app.run, so the page never sees a missing bridge. * chat2db-community-client: the CLI 集成 settings section with the version line, one adaptive action button, a redetect that stays visible long enough to be seen, a datasource table with a status column (已导入 / 未导入 / 暂不支持 / 信息不完整) that only lets importable rows be selected, an import result reported as an alert, and the Skill commands with hover copy buttons. SqlxConnectionMapping now reaches the eight engines added for the next SQLX release (Presto, Hive, Kylin, XuguDB, Db2, Informix -- which Chat2DB spells INFOMIX -- SUNDB and GBase 8s), so they import once that release ships instead of being skipped as unsupported. Snowflake, Oscar, Elasticsearch, BigQuery and Redshift stay unsupported and keep reporting their reason. Verified: chat2db-community-sqlx tests (41, including the new engine mapping and the datasource reader that must use the decrypted view), test:sqlx-setting, test:settings-layout, test:i18n, eslint on the changed files, and build:web:community. The desktop app was exercised by hand against a real installation, an update and an import of a MySQL datasource. | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 16 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 28 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 1 个月前 |