Commit Graph
1008 Commits
Author SHA1 Message Date
LRcoding 21cec24e75 fix(mysql): support cleartext password auth option (#2499) 2026-07-03 13:47:47 +08:00
t8y2 3d3b0a688f fix(mysql): preserve copied BLOB hex literals 2026-07-03 12:24:21 +08:00
t8y2 b6274858fe fix(agent): preserve JDBC decimal precision 2026-07-03 11:41:36 +08:00
t8y2 9676ed764e fix(agent): validate selected driver artifact 2026-07-03 10:31:52 +08:00
t8y2 b51d6f02df chore: bump module versions 2026-07-03 01:06:54 +08:00
LRcoding f16454a403 fix(app): preserve object source formatting 2026-07-02 20:21:22 +08:00
Abeautifulsnow e7dffeca37 fix(ai): tool call status cards, table overflow, streaming TextDelta
* fix(ai): merge tool call status cards

* fix(ai): constrain markdown table overflow

* fix(ai): restore streaming of answer text via TextDelta events

The on_chunk closure was missing live AgentEvent::TextDelta emission for text content, causing the AI answer text to appear all at once after the turn completed. Reasoning deltas were unaffected.

Root cause: commit c30033628 rewrote the on_chunk closure and accidentally dropped the TextDelta emit line while keeping ReasoningDelta intact.

Fix: restore TextDelta emit in on_chunk for incremental streaming, and remove the post-turn full-TextDelta workaround which would duplicate content.

* test(ai): extract chunk_to_events and add streaming event tests

Extract the event-generation logic from the on_chunk closure into a pure function chunk_to_events() to make it testable, and add 6 unit tests covering all chunk content combinations: text-only, reasoning-only, mixed, empty, and edge cases.

This ensures a regression like the one fixed in the previous commit (where TextDelta emission was dropped while ReasoningDelta was kept) would be caught by tests.
2026-07-02 18:49:50 +08:00
t8y2 d35c966390 fix(redis): batch sparse key searches 2026-07-02 18:41:25 +08:00
t8y2 44c91ae47d fix(connection): default Vastbase agent database 2026-07-02 18:40:12 +08:00
t8y2 3e01840825 fix(ai): remove temperature from AI requests 2026-07-02 17:58:35 +08:00
Tony Tang 23b9228f82 feat(connection): add StarRocks TLS support 2026-07-02 16:37:20 +08:00
ptma 424a7a1b42 feat(influxdb): improve InfluxDB error message extraction 2026-07-02 14:46:33 +08:00
Abeautifulsnow a0754206d3 feat(ai-config): persist AI settings per provider (#2412)
## 背景说明
AI 设置原本只有一个配置槽,切换模型厂商时会覆盖之前填写的 endpoint、API Key、model 等信息。本次改动让每个模型厂商各自保存一份配置,并在设置页和对话窗口提供已配置状态与快速切换能力。

## 修改内容
- 新增 ai_provider_configs 存储表,用于按 provider 保存独立 AI 配置
- 新增 Tauri/Web API:保存和加载 provider 级 AI 配置
- 设置页 provider 下拉展示“当前/已配置”状态
- 设置页切换 provider 前会先保存当前表单编辑内容,避免未保存输入丢失
- 对话窗口模型选择器支持查看并切换已配置过的其他 provider
- provider 配置保存时强制 config.provider 与 provider key 一致,避免错位配置污染
- 所有语言补齐新增 i18n 文案

## 修复的问题
- 切换模型厂商时原厂商配置会丢失
- 设置页切换 provider 时本地表单编辑态可能未保存
- provider key 与 config.provider 不一致时可能激活错误厂商
- 对话窗口模型选择器只能看到当前 provider 的模型,不能看到其他已配置厂商

## 测试
- npx tsc --noEmit
- cargo check -p dbx-core
- cargo check -p dbx-web
- cargo check --manifest-path src-tauri/Cargo.toml
2026-07-02 14:24:57 +08:00
clj1566317 486b9ee8ed fix redis sentinel tunnel route 2026-07-02 14:21:52 +08:00
lexmin0412 3888be8e5e feat(vector): add vector search for Qdrant, Milvus, Weaviate and ChromaDB (#2408) 2026-07-02 13:58:03 +08:00
LRcodingandzero 4fdfbf61c5 fix(app): 支持 GoldenDB 和 Vastbase 新建数据库入口 (#2361)
Co-authored-by: zero <zero@zeroMacmini.local>
2026-07-02 13:44:42 +08:00
t8y2 643b397f06 fix(sql-file): retry mysql statement once on transient connection error 2026-07-02 13:23:12 +08:00
onenewcode 71e618dd46 fix: support mysql install scripts without selected database (#2356) 2026-07-02 13:18:49 +08:00
miracle 72a7207283 fix(kafka): improve mq admin compatibility 2026-07-02 12:58:33 +08:00
zipgandstaff d9f50644eb fix(oracle): 修复时间字段编辑和表结构修改报错
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-02 12:09:05 +08:00
lexmin0412 24d952dc12 feat(vector): add Qdrant/Milvus collection dimension display (#2396) 2026-07-02 12:08:30 +08:00
t8y2 2c9f07755f chore(release): bump app version to 0.5.43 2026-07-02 02:55:25 +08:00
Abeautifulsnow d55a708d6a feat(query): add manual transaction controls 2026-07-02 01:30:31 +08:00
二丫讲梵 f871e00330 feat(ai): support OpenAI max completion tokens 2026-07-02 01:15:49 +08:00
t8y2 a435c76250 fix(transfer): skip create DDL for existing targets 2026-07-02 00:49:32 +08:00
t8y2 bd659c322c fix(mongodb): treat SRV URLs as seed lists 2026-07-02 00:49:05 +08:00
t8y2 0c4ae7caf6 fix(mongodb): support shell delete commands 2026-07-01 20:23:51 +08:00
zipgandstaff 30f1c58e9d Fix:修复SQL INSERT导出时间格式
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 19:42:42 +08:00
luoianun 95e3cb6571 fix(presto): optimize metadata completion 2026-07-01 19:05:45 +08:00
onenewcode 93eeeaa9c6 feat(mongo): add dropIndex and dropIndexes support across full stack 2026-07-01 17:53:09 +08:00
onenewcode e09ec3cd7a fix(mongo): preserve BSON types in MongoDB-to-MongoDB transfer 2026-07-01 16:31:39 +08:00
zipgandstaff 4da237d955 fix(app): 修复 Oracle 表结构已有字段识别
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 16:05:01 +08:00
ptma 889d0af92c perf(structure): minimize column reorder SQL generation 2026-07-01 14:38:34 +08:00
miracle 0c91fecf5d feat(editor): add table copy/paste keyboard shortcuts
* feat: add table copy/paste with configurable structure and data options

- Implement Navicat-style table copy/paste functionality
- Support multi-table selection and batch operations
- Configurable paste modes: structure+data (default), structure only, data only
- Backend: add build_copy_table_data_sql API (INSERT INTO ... SELECT)
- TreeItem.vue: copy/paste context menus, paste dialog with mode selection
- ObjectBrowser.vue: batch toolbar buttons, context menu, paste dialog
- Refactor TreeClipboard type to support multi-table entries
- Add i18n keys for all 7 locale files (en, zh-CN, zh-TW, ja, es, it, pt-BR)

* Fix table paste shortcuts

* Fix Kafka MQ sidebar detection

* Restrict table paste scope

* Support data copy for primary SQL databases
2026-07-01 12:49:37 +08:00
zipgandstaff 5d2ce9f189 fix(sqlserver): restrict identity to compatible column types
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 12:48:37 +08:00
zipgandstaff a224a6747c fix: handle oracle plsql statement ranges
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 12:26:03 +08:00
t8y2 3d5e873837 fix(ci): sync agent protocol contract 2026-07-01 09:15:21 +08:00
t8y2 3d6c609f42 chore(release): prepare v0.5.42 2026-07-01 02:20:43 +08:00
t8y2 e83f41c63c fix(sqlserver): use numeric literals for bitn 2026-07-01 02:10:47 +08:00
t8y2 6d9132e2a9 fix(mongo): support legacy agent bulk updates 2026-07-01 01:52:32 +08:00
zipg b11ab2ddff fix(core): restore Oracle object browser metadata 2026-07-01 01:09:21 +08:00
t8y2 299a9843f3 fix(elasticsearch): pass routing for document writes 2026-07-01 00:43:14 +08:00
zipgandstaff ea2b5d1bfd Fix:支持 SQL Server 新增字段设置自增 (#2254)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 23:30:50 +08:00
onenewcode b90e4fd64e feat(mongodb): support createIndex shell command (#2187) 2026-06-30 21:34:58 +08:00
zipgandstaff c38bc05417 Fix:修复 SQL 子查询语义诊断误报 (#2184)
* Fix:修复 SQL 子查询语义诊断误报

* Improve:添加 SQL 语义诊断开关

* Improve:优化 SQL 语义诊断开关说明

* Fix:收紧 SQL 语义诊断飘红范围

* Improve:调整 SQL 语义诊断默认策略

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 20:15:59 +08:00
zipgandstaff 73a996ebe6 Fix: 修复 SQL Server 修改默认值时报错 (#2190)
* Fix SQL Server default constraint DDL

* Polish SQL Server default display

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 20:14:50 +08:00
t8y2 25dcbeb7e4 feat(oscar): add OSCAR database support 2026-06-30 20:07:55 +08:00
weihan d3272b4750 fix(postgres): 修复 GaussDB Schema 浏览对象报错 (#2186)
- GaussDB 复用 PostgreSQL 对象浏览查询,但带时间戳的元数据 SQL 依赖 pg_stat_file、pg_xact_commit_timestamp 等函数,在 prepare 阶段失败,导致原有 fallback 无法触发。
- 让 fallback 覆盖 prepare 和 query 阶段。查询失败时降级到无时间戳查询,保证表、视图、函数、序列仍可正常展示。
2026-06-30 20:06:23 +08:00
zipgandstaff ce72468e5a Fix:修复 Kingbase 新增字段 SQL 语法 (#2180)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 20:05:24 +08:00
jischeng c6719eec55 fix(ai): preserve tool name when OpenAI-compatible provider re-sends empty id (#2196)
GLM-5.2 (and potentially other OpenAI-compatible providers) send id="" on
every tool-call delta after the first, while only the first delta carries
function.name. The streaming parser treated Some("") as a valid id and
emitted ToolCallStart for every chunk; the accumulator's insert then
overwrote the previously-correct name with "", producing "Unknown tool:"
errors and trapping the agent in a retry loop until the 30-turn limit.

Two fixes, mutually reinforcing:

1. OpenAI parser: only treat a non-empty id as a genuine tool-call start
   (filter out id=""), so subsequent deltas no longer trigger ToolCallStart.

2. Accumulator: merge ToolCallStart into an existing entry instead of
   blind insert — keep the known name when the new one is empty, and
   preserve accumulated arguments. Defense in depth for any other provider
   that re-sends id or splits name across chunks.

Added a regression test that feeds a re-sent ToolCallStart with an empty
name and asserts the name and arguments survive.

Verified end-to-end with the real GLM-5.2 provider: Unknown tool count
dropped from 12+ to 0, and the agent completed in 3 turns instead of
hitting the 30-turn safety limit.
2026-06-30 19:52:43 +08:00