t8y2
e4246d204c
feat(sidebar): pass search as filter to listTables, debounce 300ms
2026-06-15 23:45:34 +08:00
t8y2
cce7fcc600
fix(mysql): complete database-qualified columns
2026-06-15 23:35:11 +08:00
Libon
1991bf118b
feat(infinite-scroll): implement infinite scroll feature with customizable max rows
2026-06-15 23:05:35 +08:00
t8y2
d053facdd5
fix(connection): allow deleting broken connections
2026-06-15 22:54:08 +08:00
t8y2
59fa888149
fix(dialog): keep drop database confirmation loading
2026-06-15 22:02:59 +08:00
Abeautifulsnow
c300336281
feat(ai): context window management and token usage tracking
...
* @
feat(ai): add conversation context management and token usage tracking (Phase 4)
## Background
Phase 4 of AI agent loop upgrade: token usage extraction from LLM responses,
cost estimation display, and automatic context window management (summarization
when approaching limits).
## Changes
### Backend (Rust)
- New token_usage::TokenUsage — cross-turn token accumulation
- New agent_loop::maybe_compact — proactive context compaction: token estimation
→ cut-point selection → LLM summarization → fallback summary
→ tool-pair integrity protection → drain/insert
- New agent_loop::context_window_for_model — auto-detect context window by model
- New agent_loop::is_context_length_error — detect upstream context-length errors
- New agent_loop::compact_tool_result_for_context — JSON/text sampling for large results
- Modified agent_loop::run_agent_loop — pre-turn compaction check, retry on context error
- Modified agent_events::AgentEnd — split total_tokens into input_tokens/output_tokens
- New agent_events::ContextCompacted — compaction event with metrics
- New AiConfig.context_window — user-configurable context window size
- New AiChatMessage.kind — context summary message marker
- Modified stream_with_tools & 3 provider stream functions — extract TokenUsage
- Claude: message_start(input) + message_delta(output)
- OpenAI: stream_options { include_usage } → final usage chunk
- Gemini: usageMetadata per chunk, keep last
### Frontend (TypeScript/Vue)
- AiAssistant.vue: token + cost display row, estimateCost() with 7 model families,
contextCompacted UI step, pendingCompaction deferred apply,
messagesForAgentHistory post-compaction history reconstruction
- EditorSettingsDialog.vue: contextWindow input (min=1000, auto-detect)
- settingsStore.ts: AiConfig.contextWindow field
- tauri.ts: AgentEvent type updates, AiChatMessage.kind
- i18n: 6 new keys in en.ts and zh-CN.ts
## Fixed Issues
- messages[0] dropped from LLM context after compaction
- estimate_text_tokens hard threshold causing 2.8x estimate jump
- context_compacted event field semantics mismatch with frontend insert position
- validate_summary English-only keywords causing fallback on non-English LLMs
- Stale agentTokens after conversation switch
@
* remove cost computation logic
2026-06-15 18:55:22 +08:00
t8y2
e0d481cc2e
fix(postgres): handle tsvector columns
2026-06-15 16:59:01 +08:00
t8y2
8ee5dd9d35
fix(grid): unify data grid scrollbars
2026-06-15 15:53:51 +08:00
t8y2
60e49128cb
fix(grid): show data grid vertical scrollbar
2026-06-15 15:37:07 +08:00
t8y2
96a01a6050
fix(grid): align data grid editor fonts
2026-06-15 15:30:55 +08:00
t8y2
ab5bd1dd25
fix(redis): batch SCAN server-side to reduce fetch-all latency
2026-06-15 15:01:13 +08:00
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
1a91cb7c77
feat(ui): add copy action to error banners
2026-06-15 12:47:54 +08:00
t8y2
aab30d7c44
fix(mysql): prefer text protocol for result sets
2026-06-15 12:07:58 +08:00
echocde and Echocde
7dc27f8f6d
fix(ui): fix appearance setting page display with text truncation tooltips
...
* chore: test main release token push
* fix(desktop): unify toolbar dropdown tooltips
* chore: test main release token push
* fix(desktop): unify toolbar dropdown tooltips
* fix(ui) Appearance setting page displayed incorrectly.
* fix(ui) Appearance setting page displayed incorrectly.
* fix(ui) Appearance setting page displayed incorrectly.
* Remove unused import
---------
Co-authored-by: Echocde <udixt@outlook.com >
2026-06-15 11:08:27 +08:00
t8y2
8af25343cc
feat(ui): add password visibility toggle to all password inputs
2026-06-15 02:34:19 +08:00
t8y2
29edc7b7b7
fix(redis): disable subscribe inputs when not connected, fix button height jitter
2026-06-15 02:30:33 +08:00
t8y2
c9b3292a2e
fix: resolve Vue warnings, silent PubSub auto-connect, remove 30 meaningless tests
2026-06-15 02:27:07 +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
t8y2
abc7136ed2
feat: sidebar table context menu — smart SQL templates (SELECT/INSERT/UPDATE)
2026-06-14 23:33:37 +08:00
t8y2
d04fc13af4
fix: unify SQL library font size to 13px
2026-06-14 23:09:10 +08:00
John Jin
1afc271c18
feat: add QuestDB support
...
Thanks @ptma!
2026-06-14 22:58:05 +08:00
lexmin0412
0ae720d950
fix(ui): allow mouse interaction with LightTooltip interactive content ( #1120 )
...
Thanks @lexmin0412!
2026-06-14 22:57:00 +08:00
dbin0123
14e095215b
feat(generate): fix date range persistence, add i18n for data generation
...
Thanks @dbin0123!
2026-06-14 22:54:11 +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
SuLea-IT
97192297eb
feat(query): add switchable query result runs and archives
...
* docs: design query result run tabs
* feat(query): add result run model helpers
* feat(query): persist result run metadata
* feat(query): record switchable result runs
* feat(query): sync active result run state
* feat(query): cache result run payloads
* feat(query): render result run tabs
* docs: design query result archives
* feat(query): add result archive codec
* feat(query): restore result archives
* feat(query): add result archive actions
* fix(query): toggle execution summary view
* fix(query): avoid archive compression backpressure
* feat(query): remove result runs
* chore: remove local spec docs from pr
2026-06-14 10:30:50 +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
t8y2
6c57169162
feat(mcp): add one-click install/upgrade button
2026-06-13 20:05:46 +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
48ba76bc9a
feat(data-grid): add row numbering to table info columns tab
2026-06-13 17:02:49 +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
6a87f31fdc
feat(ai): add resizable textarea with drag handle
2026-06-13 15:13:19 +08:00
t8y2
30afcb8e69
fix(sidebar): page large table groups
2026-06-13 13:40:36 +08:00
t8y2
2ec8ed1523
feat(sidebar): locate query table from cursor
2026-06-13 12:45:00 +08:00
dbin0123
2ef29c004a
fix(editor): keep cursor at end of inserted completion text ( #1136 )
...
Thanks @dbin0123!
2026-06-13 11:42:03 +08:00
t8y2
0d63fcd3a3
fix(oracle): avoid rowid for view data
2026-06-12 21:02: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
t8y2
fa4dbb9104
feat(completion): cache foreign key metadata
2026-06-12 19:27:16 +08:00
runstone
094412d956
fix error
2026-06-12 19:00:27 +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
7df7fd9235
feat(ai): add tool result collapsible UI and fix agent mode prompt
...
AiAssistant.vue:
- Tool call steps now support click-to-expand/collapse for SQL args
and results (expandedSteps set); chevron rotates on open
- Remove fixed-open result display (was always visible, no toggle)
- Max result height raised to 48 (max-h-48) with scroll
ai.ts (buildModePromptLines agent branch):
- Replace vague "prioritize SQL" hint with explicit tool-use
instruction: must call execute_query, not just emit SQL text
- List available tools (list_tables, get_columns, execute_query,
get_sample_data) so LLM knows what it can call
- Clarify allowed statement types for execute_query
2026-06-12 18:27:28 +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