t8y2
e4246d204c
feat(sidebar): pass search as filter to listTables, debounce 300ms
2026-06-15 23:45:34 +08:00
Libon
1991bf118b
feat(infinite-scroll): implement infinite scroll feature with customizable max rows
2026-06-15 23:05:35 +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
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
John Jin
1afc271c18
feat: add QuestDB support
...
Thanks @ptma!
2026-06-14 22:58:05 +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
93d2e7dc18
fix(redis): split multi-line commands before execution
2026-06-14 15:43:27 +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
e3b69679c8
fix: restore missing newlines at EOF
2026-06-13 20:45:06 +08:00
Vergil Lai
799d20a2cf
添加 Manticore Search 支持 ( #1145 )
...
* 添加 Manticore Search 支持
* 更新 Manticore Search 文档
2026-06-13 20:23:36 +08:00
t8y2
0b9aef1ca8
feat(settings): split driver store paths
2026-06-13 17:27:58 +08:00
t8y2
d974ad5533
feat(settings): add custom driver store path with migration
2026-06-13 16:54:04 +08:00
t8y2
30afcb8e69
fix(sidebar): page large table groups
2026-06-13 13:40:36 +08:00
t8y2
59107463dc
fix: redis sidebar show total key count only
2026-06-13 13:07:37 +08:00
二丫讲梵
6f804266fc
feat(sidebar): remap connection IDs in imported sidebar layouts
...
Thanks @eryajf for the contribution! Close #1121
2026-06-12 22:41:42 +08:00
t8y2
0d63fcd3a3
fix(oracle): avoid rowid for view data
2026-06-12 21:02:32 +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
t8y2
60632ccfe3
feat(completion): expand sql semantic completion
2026-06-12 19:15:46 +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
3322209578
fix(saved-sql): dedupe concurrent folder creates
2026-06-12 17:04:36 +08:00
t8y2
707f8b53dd
fix: allow empty snippet list in settings
2026-06-12 11:28:17 +08:00
t8y2
19b5b70fb7
feat: confirm before closing unsaved SQL query tabs
2026-06-12 01:09:41 +08:00
haipengno1
7de0de2313
实现 Redis 的查询功能
2026-06-12 00:20:17 +08:00
t8y2
57d03c2f08
feat(sidebar): support nested groups
2026-06-11 22:35:00 +08:00
t8y2
21fd98d0ee
feat: configurable toolbar visibility with settings UI
2026-06-11 13:32:39 +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
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
c9203de1e7
feat(tabs): add duplicate tab feature in context menu
2026-06-11 01:37:58 +08:00
t8y2
9793dc94b7
feat(driver): centralize database capabilities
2026-06-10 22:12:44 +08:00
John Jin
0bd07ccf46
feat: add InfluxDB support ( #980 )
2026-06-10 14:37:53 +08:00
t8y2
8df9484447
feat(ai): support auth methods
2026-06-10 12:14:36 +08:00
t8y2
410e3bbfcb
feat(completion): suggest database qualifiers
2026-06-10 11:08:13 +08:00
t8y2
edba8214b5
feat: show username/password fields for Access database connections
2026-06-10 08:37:18 +08:00
t8y2
9ffa4c41d9
feat: add SQL library panel with folder/file management, rename, and sync support
2026-06-10 02:46:10 +08:00
二丫讲梵
41758e6bb1
✨ feat(connection): 增加可见数据库选择功能 (#944 )
...
感谢 @eryajf 的贡献!此功能允许用户在创建或编辑连接时选择可见的数据库,支持多种数据库类型。
2026-06-09 20:56:39 +08:00
t8y2
426b7911bc
fix(editor): preserve sql tab cursor state
2026-06-09 18:18:18 +08:00
t8y2
e153d88091
fix(editor): preserve sql tab scroll position
2026-06-09 18:04:03 +08:00
t8y2
2050bee75c
feat(query): show elapsed time while executing
2026-06-09 17:57:25 +08:00
cl1107
3995524e5d
feat(import): 添加 DataGrip 连接导入支持 ( #936 )
...
- 新增 datagripImport 模块解析 XML 配置
- 支持从 macOS Keychain 自动填充密码
- 添加 Keychain 读取的 Tauri 命令
- 更新多语言翻译文件
- 集成到侧边栏导入流程中
2026-06-09 16:45:59 +08:00
SuLea-IT
5138c1a702
Add configurable SQL formatter settings ( #908 )
...
Thanks!
2026-06-09 12:05:17 +08:00
t8y2
41c696ef22
perf(editor): optimize sql completion metadata lookup
2026-06-09 11:09:12 +08:00
James-Leong and Claude Opus 4.7
171c7cd8d7
fix(ssh): prevent duplicate SSH tunnels from concurrent pool creation ( #891 )
...
start_tunnel() and start_chain() had a check-then-act race condition:
multiple concurrent callers could all see an empty cache and each
spawn a new SSH tunnel. The tunnel that lost the insert race was
orphaned, causing queries routed through it to fail.
Use double-check locking with stale entry eviction: hold the lock for
the cache lookup, release it during the slow SSH handshake, then
re-check under the lock before inserting. If another caller already
created the tunnel, abort the duplicate and return the existing port.
Also check handle liveness on cache hits so that callers don't get a
dead port back when the background tunnel task has exited.
Add a matching re-check in the MongoDB connection pool creation path.
Add idle_timeout_secs connection option (default 60s) to preempt
server-side connection idle timeouts that cause "unexpected end of
file" errors on pooled MongoDB connections.
Reject MongoDB queries in the generic SQL execution path before any
pool or session-key creation. Previously, a typo in a MongoDB shell
command would fall through to executeMulti / execute_sql_statement,
which called get_or_create_pool_for_session and leaked a session-scoped
MongoDB Client (and SSH tunnel resources) before eventually returning
"Use MongoDB-specific commands".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-09 10:29:42 +08:00
t8y2
c35929da7c
fix(connection): clear errors after disconnect
2026-06-08 23:52:16 +08:00
t8y2
befee2fd4c
feat(postgres): support sequence objects
2026-06-08 22:54:14 +08:00
二丫讲梵
2db46f10ff
🐛 fix(connectionStore): 修复分组连接时树节点的更新逻辑
...
确保连接到分组中的连接时,原地更新现有节点属性,避免添加重复的根节点。
使用 findNode 递归搜索替代 findIndex 只搜索根级别。原地修改节点属性而非替换整个对象,保留父子引用关系。
2026-06-08 20:10:08 +08:00