t8y2
3bf243a4a6
fix(layout): constrain query result splitter
2026-06-12 10:37:41 +08:00
t8y2
a84ba4903e
fix(chart): improve query chart axis selection
2026-06-12 10:34:37 +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
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
6081ba46f6
fix: prevent freeze when manually editing date cell and clicking away
2026-06-12 00:58:13 +08:00
haipengno1
7de0de2313
实现 Redis 的查询功能
2026-06-12 00:20:17 +08:00
t8y2
3f7987aa59
fix(table-data): load metadata before initial query
2026-06-11 23:19:45 +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
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
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
a9882d5312
feat(sidebar): show table comments on hover
2026-06-11 15:09:56 +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
521a3021c4
fix(clickhouse): load table index metadata
2026-06-11 12:23:28 +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
t8y2
bd66904c86
fix(grid): suppress drawer context menu
2026-06-11 11:04:06 +08:00
SuLea-IT
806d7c758b
feat: add SQL library history query entry points
2026-06-11 10:53:54 +08:00
SuLea-IT
634e26e8e7
Merge PR #1024
2026-06-11 10:47:42 +08:00
t8y2
8b58db30e8
fix(grid): remove redundant table data badge from toolbar
2026-06-11 01:44:16 +08:00
t8y2
d28c21f433
fix(tabs): use table icon for mongo and redis tabs
2026-06-11 01:39:25 +08:00
t8y2
c9203de1e7
feat(tabs): add duplicate tab feature in context menu
2026-06-11 01:37:58 +08:00
t8y2
922971fdd3
feat: add clear button to database selector in query editor
2026-06-11 01:10:05 +08:00
haipengno1
6265571182
feat(ssh): add ssh-agent authentication support ( #1023 )
...
Thanks for adding ssh-agent support, this is a great addition!
2026-06-11 00:39:30 +08:00
Scars
215b0cf7d4
fix(desktop): show horizontal data grid scrollbar ( #1018 )
2026-06-10 22:35:38 +08:00
t8y2
9f0dae1754
fix(grid): preserve table filter builder state
2026-06-10 20:08:18 +08:00
t8y2
e3b4aac84c
fix(desktop): tighten frontend transitions
2026-06-10 19:20:30 +08:00
t8y2
d353d4673f
feat(redis): add configurable key namespace separator
2026-06-10 17:46:48 +08:00
t8y2
c4839b6d13
fix(sql-library): use string compare instead of extname for import folder
2026-06-10 16:49:47 +08:00
t8y2
ca1d420d91
feat(grid): add enum column select editor for MySQL
2026-06-10 16:39:24 +08:00
Abeautifulsnow
1ca3081c2f
feat(ui): add readonly mode visual badge to sidebar and tab bar
...
Add visual indicators so users can distinguish readonly connections from
read-write connections at a glance:
- Sidebar: show a lock icon badge on readonly connection nodes
- Tab bar: show a lock icon with tooltip on tabs with readonly connections
- Add isConnectionReadonly() helper in tabPresentation.ts
- Add readOnlyBadge i18n key for all 6 locales (en, zh-CN, zh-TW, es, it, pt-BR)
2026-06-10 15:56:37 +08:00
Scars
cb6c09e346
fix(desktop): add scrollable query result tabs ( #986 )
...
Thanks for the contribution!
2026-06-10 15:13:17 +08:00
John Jin
0bd07ccf46
feat: add InfluxDB support ( #980 )
2026-06-10 14:37:53 +08:00
t8y2
500d7c614b
fix: resolve vue-tsc type errors in SqlPreviewPanel and DataGrid
2026-06-10 12:41:24 +08:00
t8y2
42a7ecdbed
fix(grid): prevent scrollbar flicker during sidebar resize
2026-06-10 12:35:13 +08:00
t8y2
8df9484447
feat(ai): support auth methods
2026-06-10 12:14:36 +08:00
t8y2
8599ab8200
feat(data-grid): add SQL preview panel for pending data changes
2026-06-10 12:06:36 +08:00
t8y2
bfec556e9b
feat(readonly): add read-only mode for all database connections
...
- Add read_only field to ConnectionConfig with backward-compatible serde defaults
- SQL classifier with first-keyword + embedded keyword defense layers
- PRAGMA white-listing for safe read-only operations
- Guard all write entry points: SQL, Mongo, Redis, etcd, MCP Bridge
- 16 unit tests covering edge cases (CTE, case insensitivity, string masking)
- 7-language i18n support
- Fast-fail at command/route level before pool creation
Closes #889
2026-06-10 11:58:18 +08:00