Commit Graph
1929 Commits
Author SHA1 Message Date
runstone 9939e3191f fix bug 2026-06-12 10:31:15 +08:00
runstone ef1697d8a8 restore ssh_tunnel.rs file 2026-06-12 08:53:54 +08:00
runstone 91f1206783 Merge branch 'main' of https://github.com/Abeautifulsnow/dbx into feat/ai-agent-loop-phase1 2026-06-12 08:48:50 +08:00
t8y2 b18f837b50 fix(editor): improve completion popup overflow 2026-06-12 01:20:11 +08:00
t8y2 4f71bcbff8 fix(connection): extend agent connect timeout 2026-06-12 01:12:06 +08:00
t8y2 cded066fdf feat: add select-filtered button for visible databases search 2026-06-12 01:10:53 +08:00
t8y2 19b5b70fb7 feat: confirm before closing unsaved SQL query tabs 2026-06-12 01:09:41 +08:00
t8y2 51e2ef0d1f fix(postgres): support legacy routine metadata 2026-06-12 00:59:52 +08:00
t8y2 6081ba46f6 fix: prevent freeze when manually editing date cell and clicking away 2026-06-12 00:58:13 +08:00
t8y2 b542f89a0b fix(sql): keep oracle plsql blocks together 2026-06-12 00:47:21 +08:00
t8y2 84aafc7a43 fix: pass jdbc_driver_paths and jdbc_driver_class to agent connect params 2026-06-12 00:46:26 +08:00
haipengno1 7de0de2313 实现 Redis 的查询功能 2026-06-12 00:20:17 +08:00
dbin0123 5aa5ed9cee fix(core): 表结构编辑中字段无长度时扩展属性变更不生成 SQL 2026-06-12 00:20:16 +08:00
t8y2 3f7987aa59 fix(table-data): load metadata before initial query 2026-06-11 23:19:45 +08:00
t8y2 3640541222 fix(ci): update nested layout and grid tests 2026-06-11 22:55:24 +08:00
t8y2 c9d655324d fix(editor): preserve IME composition in comments 2026-06-11 22:55:16 +08:00
t8y2 a017e04d4c feat(structure): auto name new indexes 2026-06-11 22:40:10 +08:00
t8y2 57d03c2f08 feat(sidebar): support nested groups 2026-06-11 22:35:00 +08:00
t8y2 098d125bcb fix(ui): soften overflow scrollbars 2026-06-11 22:20:34 +08:00
haipengno1 cee8cbb95a feat(sidebar): add copy name to database, schema and connection-group context menu 2026-06-11 22:16:13 +08:00
t8y2 c7fb855000 fix(jdbc): simplify driver selection and table edits 2026-06-11 22:13:27 +08:00
t8y2 70f7b464b7 feat(jdbc): install drivers from Maven bundles 2026-06-11 21:41:37 +08:00
t8y2 f969db571c fix(canvas): fallback to DOM scroller size when canvas viewport uninitialized 2026-06-11 20:58:52 +08:00
t8y2 514a01b3b1 feat: shared ErrorBanner component, CustomSaveHandler with preview, and cleanup 2026-06-11 20:24:56 +08:00
t8y2 9fbafa9a6d fix(elasticsearch): strip metadata fields from writes 2026-06-11 19:44:58 +08:00
t8y2 bd3585f057 fix: draw selected cell left border for first visible column in canvas mode 2026-06-11 19:35:08 +08:00
t8y2 7923f4915e fix(elasticsearch): apply document filters in browser 2026-06-11 18:56:38 +08:00
t8y2 3f25a69d23 feat(mysql): add unsigned integer types to column type options 2026-06-11 18:34:51 +08:00
runstone 9ab41795d6 @
feat(ai): add agent loop with tool calling, fix connection routing and Gemini compatibility

## 背景说明
将 dbx AI 助手从单次 SQL 文本生成器升级为具备 tool calling 的数据库 Agent。
Phase 1 实现 Agent Loop 框架 + 只读工具(list_tables、get_columns)。
参考:Pi agent-core,.trellis/tasks/06-11-feat-ai-agent-loop-tool-calling-upgrade

## 修改内容
- 新增 agent_loop.rs:Agent Loop 核心,支持 OpenAI/Claude/Gemini Provider 的 tool calling,最大 10 轮,Ollama 自动降级为 text-only
- 新增 agent_tools.rs:read_only_tools (list_tables, get_columns) 的工具定义与执行器
- 新增 agent_events.rs:AgentEvent/ToolCall/ToolResult/ToolDefinition 类型定义
- 修改 ai.rs:AiMessage 新增 tool_call_id 字段
- 修改 lib.rs:注册 agent_events、agent_loop、agent_tools 模块
- 修改 routes/ai.rs & commands/ai.rs:新增 ai_agent_stream SSE 端点
- 修改 tauri.ts & http.ts:新增 AgentEvent 类型与 aiAgentStream 函数
- 修改 api.ts:注册 aiAgentStream 转发
- 修改 ai.ts:新增 runAgentStream,AiContext 增加 connectionId 字段
- 修改 AiAssistant.vue:接入 runAgentStream,解析 AgentEvent 渲染工具调用步骤
- 修改 en.ts / zh-CN.ts:新增 agentSteps 国际化文案

## 修复的问题
- [#I01] connectionName 误传为 connectionId → add connectionId to AiContext
- [#I02] agent loop 取消操作无效 → add cancel checks before each turn
- [#C01] TODO 缺少 issue 引用 → add PRD reference to TODO
- [#C02] stream_with_tools 命名不准确 → add clarifying doc comment
- [#C03] Gemini functionResponse.name 解析错误 → fix tool_call_id format and extraction

## 测试建议
- execute_get_columns:合法表名/空表名/SQL 注入字符拒绝
- call_openai_with_tools:空 choices/空 tool_calls/非 JSON arguments
- call_gemini_with_tools:空 candidates/parts 无 functionCall
- runAgentStream:有效 connectionId 正常调用
@
2026-06-11 18:27:24 +08:00
t8y2 edeee4f7d9 fix(mongo): preserve bson date fields 2026-06-11 18:09:41 +08:00
Doracoin c7c71850d4 fix(windows-build): ssh-agent err when building on windows 2026-06-11 17:29:40 +08:00
t8y2 759cab9088 docs: add dbx-agents side-by-side workspace setup 2026-06-11 15:28:44 +08:00
t8y2 36e08d6741 fix(jdbc): format date values by column type 2026-06-11 15:20:27 +08:00
t8y2 a9882d5312 feat(sidebar): show table comments on hover 2026-06-11 15:09:56 +08:00
t8y2 c10d2d9586 refactor(mysql): extract temporal value serialization, fix DATE display 2026-06-11 14:12:05 +08:00
t8y2 a4768db69c fix(docs): remove non-existent initials property in homepage 2026-06-11 14:11:57 +08:00
t8y2 97ccd56299 fix(docs): remove non-existent initials property in databases page 2026-06-11 14:01:02 +08:00
t8y2 a81286fed7 feat(build): gate DuckDB behind optional feature, support --no-default-features 2026-06-11 13:58:44 +08:00
t8y2 65f6e866b1 feat(docs): expand database support page to 50+ engines 2026-06-11 13:49:43 +08:00
t8y2 21fd98d0ee feat: configurable toolbar visibility with settings UI 2026-06-11 13:32:39 +08:00
t8y2 4a264d638c feat: reorganize toolbar with more dropdown and add theme to appearance settings 2026-06-11 13:13:23 +08:00
t8y2 26d714909e feat(elasticsearch): model indices as first-class nodes 2026-06-11 12:52:47 +08:00
t8y2 6f253abe55 fix: paginate contributor wall and add static fallback 2026-06-11 12:45:42 +08:00
t8y2 521a3021c4 fix(clickhouse): load table index metadata 2026-06-11 12:23:28 +08:00
t8y2 293df56274 fix(ai): relax connection test token limit 2026-06-11 11:59:23 +08:00
SuLea-IT 5cf736ad96 feat: optimize data compare memory usage
Thanks @SuLea-IT for the contribution! This significantly reduces memory usage (53% lower RSS peak) by avoiding per-row HashMap materialization and cloning. Appreciate the detailed memory audit docs as well.
2026-06-11 11:57:22 +08:00
t8y2 66237d7160 feat(project): set assigned issues in progress 2026-06-11 11:54:24 +08:00
t8y2 6f15fa303c feat: support empty redis key separator for flat key display 2026-06-11 11:28:43 +08:00
SuLea-IT 89aa315a2d Merge pull request #1037
Thanks!
2026-06-11 11:12:05 +08:00
t8y2 2b7264a531 feat: data grid search also matches column names 2026-06-11 11:08:51 +08:00