t8y2
7bb869d398
fix(mongodb): support legacy driver fallback
2026-06-15 14:07:31 +08:00
Abeautifulsnow
d845a318c6
feat(ai-agent): Phase 3 — explain_query tool, parallel/sequential execution, DB gating ( #1187 )
...
- Add explain_query tool with structured EXPLAIN result, gated on supports_explain_plan()
- Add supports_sql_query() to gate execute_query/get_sample_data for non-SQL DBs (Redis, ES, MongoDB, etc.)
- Split agent loop tool dispatch: execute_query runs sequentially, all others run in parallel via join_all
- Wire explain_query result button to ExplainPlanViewer in AiAssistant + App.vue
- Fix O(n²) agentSteps rebuild: incremental O(1) push per event during streaming
- finally block falls back to full rebuild only when streaming push did not occur
2026-06-15 13:14:59 +08:00
t8y2
aab30d7c44
fix(mysql): prefer text protocol for result sets
2026-06-15 12:07:58 +08:00
John Jin
6f480ca047
fix(influxdb): fix incompatible result sets with older versions
...
Thanks for the fix!
2026-06-15 11:50:15 +08:00
t8y2
941958a512
fix: skip non-JSON stdout lines during agent startup
2026-06-15 11:41:39 +08:00
t8y2
ef426a8218
feat(redis): add Pub/Sub publish and subscribe with WebSocket real-time push
2026-06-15 01:40:06 +08:00
John Jin
1afc271c18
feat: add QuestDB support
...
Thanks @ptma!
2026-06-14 22:58:05 +08:00
t8y2
8932b0a308
fix(mongo): align collection loading state
2026-06-14 17:04:56 +08:00
t8y2
7b2156446c
fix(mongodb): use tls param for form connections
2026-06-14 16:06:37 +08:00
Vergil Lai
f385386284
feat(manticore): add Manticore Search support
...
Add Manticore Search table data editing, structure editing, metadata handling, and SQL completion support.
2026-06-14 16:01:02 +08:00
t8y2
ea85e22ea0
fix: update gbase default agent key test to gbase8a
2026-06-14 12:22:08 +08:00
t8y2
41e4498c7b
fix: add missing gbase_server field in ConnectionConfig tests
2026-06-14 12:09:35 +08:00
t8y2
babdd7f12f
fix(oracle): reuse connection runtime for schemas
2026-06-14 11:40:48 +08:00
t8y2
cbc7f9b0db
fix(gbase): support 8a and 8s profiles
2026-06-14 10:16:24 +08:00
t8y2
7c5021fa91
feat(turso): simplify connection form to URL + token
2026-06-13 20:33:32 +08:00
Vergil Lai
799d20a2cf
添加 Manticore Search 支持 ( #1145 )
...
* 添加 Manticore Search 支持
* 更新 Manticore Search 文档
2026-06-13 20:23:36 +08:00
LC
2d98b9fdd2
feat(sqlite): add database backup action
...
* feat(sqlite): add database backup action
* fix(sqlite): sanitize default backup file name
2026-06-13 18:39:12 +08:00
t8y2
0b9aef1ca8
feat(settings): split driver store paths
2026-06-13 17:27:58 +08:00
t8y2
74546fee5c
fix(storage): persist driver store setting
2026-06-13 17:13:59 +08:00
John Jin
b640cbd0ba
fix: influxdb code removed on merge
...
Thanks for the fix!
2026-06-13 17:03:27 +08:00
t8y2
d974ad5533
feat(settings): add custom driver store path with migration
2026-06-13 16:54:04 +08:00
t8y2
d091b0db85
feat(sidebar): reveal local db file in OS file manager
2026-06-13 16:00:47 +08:00
t8y2
30afcb8e69
fix(sidebar): page large table groups
2026-06-13 13:40:36 +08:00
t8y2
2d1d40f6ab
feat(highgo): geometry/geography map preview via agent column_types
2026-06-13 10:25:12 +08:00
t8y2
ef5b6eb654
fix(transfer): preserve MySQL AUTO_INCREMENT and column defaults in cross-instance copy
2026-06-13 08:24:47 +08:00
t8y2
6e57197072
fix(sqlite): recognize INTEGER PRIMARY KEY as autoincrement in data grid save
2026-06-13 02:30:30 +08:00
t8y2
0767062bdb
fix(agent): retry and rename fallback when removing old JRE on Windows
2026-06-13 01:56:29 +08:00
t8y2
c6e50f80f2
fix(ai): accept thinking/reasoning deltas as first stream chunk in connection test
2026-06-12 20:40:40 +08:00
t8y2
a7ba5b42ef
chore: remove duplicate imports and BOM from PR #1122
2026-06-12 19:58:32 +08:00
skyler
abacac3c07
feat(ai): agent loop Phase 2 — SQL execution tools, risk classification, and streaming tool calls
...
feat(ai): agent loop Phase 2 — SQL execution tools, risk classification, and streaming tool calls
2026-06-12 19:56:36 +08:00
t8y2
484658c6b7
feat(ai): streaming probe for connection test with latency measurement
2026-06-12 19:29:55 +08:00
runstone
40f0f98540
Merge branch 'main' of https://github.com/Abeautifulsnow/dbx into feat/ai-agent-loop-phase1
2026-06-12 18:52:05 +08:00
runstone
100124da3e
feat(ai): Phase 2 SQL 风险分类 + Agent 模式工具调用结果渲染
...
后端:
- 新增 sql_risk.rs:基于 sqlparser AST 的 SQL 风险分类(ReadOnly/Write/Ddl/Transaction)
- agent_tools.rs:新增 execute_query 和 get_sample_data 工具,写操作/DDL 被风险分类阻止
- agent_loop.rs:支持 is_agent_mode 参数,Agent 模式下暴露全部工具,Ask 模式仅暴露只读工具
- agent_loop/web/tauri:mode 参数全链路传递(前端→HTTP→Tauri→Rust)
前端:
- AiAgentStepItem 接口扩展:toolName/toolArgs/toolResult/isError 字段
- AiAssistant.vue:工具调用结果实时+最终渲染,SQL 查询结果/错误信息展示
- ai.ts/http.ts/tauri.ts:mode 参数透传到后端
2026-06-12 17:42:23 +08:00
t8y2
115b539758
fix(core): gate duckdb schema metadata
2026-06-12 17:35:56 +08:00
t8y2
0fdff98200
fix(elasticsearch): route rest queries before sql parsing
2026-06-12 17:15:25 +08:00
polemp and Sam
ef5ed05ae7
feat(schema-diff): professional DDL diff view with deployment-aware colors and custom themes ( #1112 )
...
Co-authored-by: Sam <14344444@@qq.com>
2026-06-12 17:14:05 +08:00
t8y2
2554ed95be
fix(postgres): clear statement cache after ddl
2026-06-12 17:11:37 +08:00
t8y2
250da6e7cb
fix(mysql): generate index COMMENT clause and enable index_comment capability
2026-06-12 16:56:20 +08:00
t8y2
edf9dd88e3
feat(agent): unify oracle driver
2026-06-12 16:34:42 +08:00
t8y2
415d53e8dc
fix(duckdb): interrupt timed out queries
2026-06-12 16:27:33 +08:00
t8y2
2395727b6b
fix(ai): auto-add /v1 prefix for bare-origin OpenAI-compatible endpoints
2026-06-12 16:10:42 +08:00
t8y2
e6db09c638
feat(agent): support language-neutral driver launch
2026-06-12 15:08:31 +08:00
Abeautifulsnow
082e3bb4eb
feat(ai): add agent tool calling loop
2026-06-12 13:18:36 +08:00
runstone
84a9fd6a0f
Merge branch 'main' of https://github.com/Abeautifulsnow/dbx into feat/ai-agent-loop-phase1
2026-06-12 12:52:03 +08:00
runstone
28fc4bc2a9
fix(ai): consolidate consecutive tool_result messages for Claude and Gemini
...
Anthropic and Gemini APIs require ALL tool_result blocks for a given
assistant message to be in a SINGLE user message that immediately follows
the assistant message. Previously, each tool AiMessage was converted to
a separate user message, causing Anthropic to reject multi-turn tool
conversations with 'tool_result must follow a tool_use block' error.
Fix: collect consecutive 'tool' role messages into a buffer, then flush
as a single user message with all tool_result/functionResponse blocks
when a non-tool message is encountered or at end of message list.
- Claude: merge N tool results into 1 user message with N content blocks
- Gemini: merge N tool results into 1 user message with N functionResponse parts
- OpenAI path unchanged (each tool message already has tool_call_id field)
2026-06-12 12:49:49 +08:00
t8y2
b06f935050
chore(release): bump version to 0.5.32
2026-06-12 12:33:03 +08:00
t8y2
a858a6bd18
feat(mysql): edit foreign keys and triggers
2026-06-12 12:29:46 +08:00
t8y2
1d2d348dd8
fix(db): refresh stale native connection pools
2026-06-12 12:29:35 +08:00
runstone
453169ae45
Merge branch 'main' of https://github.com/Abeautifulsnow/dbx into feat/ai-agent-loop-phase1
2026-06-12 12:00:47 +08:00
runstone
61b5e907ce
fix(schema): default to public schema for PG and database for MySQL when schema is empty
...
When the LLM calls `list_tables` tool without a `schema` parameter, the
backend receives an empty string. This caused PostgreSQL and MySQL
metadata queries to return no results because:
- PostgreSQL: `WHERE n.nspname = ''` matches nothing
- MySQL: `WHERE TABLE_SCHEMA = ''` matches nothing
Fix by falling back to sensible defaults:
- PostgreSQL `list_tables`/`get_columns`: empty schema → "public"
- MySQL `list_tables`: empty schema → database name (MySQL schema == database)
2026-06-12 12:00:27 +08:00