t8y2
4a14cf3f3e
chore: update README screenshots with higher resolution
2026-06-16 11:55:49 +08:00
t8y2
a23897c203
feat: add priority dropdown to issue templates
2026-06-16 11:26:51 +08:00
t8y2
9b8aa4292d
feat(release): bump version to 0.5.33
2026-06-16 11:26:41 +08:00
John Jin
13108eb9bb
fix: use tabular variant first to prevent canvas edit jitter
2026-06-16 11:13:52 +08:00
t8y2
90c46d5450
fix(sidebar): reorder pinned tree nodes
2026-06-16 11:13:15 +08:00
t8y2
48d2e41cb0
fix: use tabular variant first to prevent canvas edit jitter
2026-06-16 11:12:01 +08:00
t8y2
05a98f6f4f
feat: use Geist Variable 12.5px for data grid tables
2026-06-16 11:10:05 +08:00
t8y2
9a2a21c09a
fix(test): avoid iris alias formatting assertion
2026-06-16 10:54:28 +08:00
t8y2
47915c243d
fix(connection): avoid blocking disconnect cleanup
2026-06-16 10:45:14 +08:00
haipengno1
80a390a4c0
feat(redis): add Redis syntax checking for query editor
...
- Built-in metadata for ~200 Redis commands (arity/group/safety), available offline
- Add diagnostic builder: unknown command name, arity errors, unclosed quotes, danger/write command highlighting
- Reuse existing diagnostic pipeline and integrate underlines + hover tips in QueryEditor
2026-06-16 10:31:09 +08:00
Abeautifulsnow
a1f15f6c45
fix(ai): propagate explainData and add missing agent i18n keys
...
Thanks @Abeautifulsnow!
2026-06-16 10:28:35 +08:00
t8y2
000c236619
feat(connection): add keepalive interval
2026-06-16 10:23:49 +08:00
t8y2
9b4e16500e
fix(postgres): show connection failure details
2026-06-16 01:05:48 +08:00
t8y2
6052e18f69
fix: remove flaky connectionAttemptTimeout test
2026-06-16 01:01:45 +08:00
t8y2
c57e18bf3e
fix: resolve clippy warnings and missing struct fields in tests
2026-06-16 00:55:32 +08:00
t8y2
5f870be0d9
feat(editor): open table ddl panel from SQL
2026-06-16 00:51:34 +08:00
haipengno1
7d797df4f8
fix(redis): sync SELECT database to toolbar and tab
...
修复顶部 SQL 编辑器执行 SELECT 后 db 未联动,导致后续命令写入错库
2026-06-16 00:22:40 +08:00
t8y2
54620e1f22
fix(app): avoid reconnecting restored tabs
2026-06-16 00:19:06 +08:00
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
t8y2
3574113feb
fix(iris): qualify selected schema tables
2026-06-15 23:16:29 +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
8c9b1dbd15
docs: add debug log export instructions to bug report template
2026-06-15 22:53:11 +08:00
t8y2
9c478d1437
fix(connection): respect agent connect timeout
2026-06-15 22:43:05 +08:00
t8y2
59fa888149
fix(dialog): keep drop database confirmation loading
2026-06-15 22:02:59 +08:00
t8y2
7926da7c0c
fix(postgres): disconnect sessions before drop database
2026-06-15 22:02:52 +08:00
t8y2
048549ec0e
fix(elasticsearch): encode index path segments
2026-06-15 21:28:25 +08:00
t8y2
a18b076057
fix(xugu): qualify schema-aware table selects
2026-06-15 21:06:21 +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
6672acf42c
docs: add optional build speed-up hints to cargo config
2026-06-15 18:52:18 +08:00
t8y2
21b7125638
feat: add landing page footer with repo links
2026-06-15 18:31:47 +08:00
t8y2
46ddcaba56
fix: normalize channel_binding=require to prefer for postgres
2026-06-15 17:44:00 +08:00
t8y2
3ee2514d07
fix(databend): enable editing and procedures
2026-06-15 17:43:44 +08:00
cwatanab
1debfef284
feat(i18n): add Japanese translation support ( #1211 )
2026-06-15 17:27:06 +08:00
David Bottiau
921dff5ffe
feat: allow password protection to be disabled ( #1201 )
...
Thanks @Odonno!
2026-06-15 17:01:01 +08:00
t8y2
e0d481cc2e
fix(postgres): handle tsvector columns
2026-06-15 16:59:01 +08:00
t8y2
f2a0c65724
fix(ssh): support legacy kex algorithms
2026-06-15 16:15:44 +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
026a0d2b12
fix(data): preserve unsafe int64 display
2026-06-15 15:14:38 +08:00
t8y2
ab5bd1dd25
fix(redis): batch SCAN server-side to reduce fetch-all latency
2026-06-15 15:01:13 +08:00
t8y2
08fb5bbf4d
fix(query): avoid retrying local query timeouts
2026-06-15 14:42:03 +08:00
t8y2
8eb5f22069
fix(iris): clone table with valid false predicate
2026-06-15 14:23:40 +08:00
t8y2
a32ead56b9
fix(query): skip comment-only SQL execution
2026-06-15 14:18:40 +08:00
t8y2
7bb869d398
fix(mongodb): support legacy driver fallback
2026-06-15 14:07:31 +08:00
lexmin0412
090f073206
fix(ui): prevent click handler from firing on macOS Ctrl+click ( #1188 ) ( #1189 )
...
* fix(ui): allow mouse interaction with LightTooltip interactive content (#1120 )
- Remove pointer-events-none from tooltip content so mouse can enter it
- Add tooltipRef to detect hover state on the tooltip itself
- Replace immediate close with scheduleClose (100ms delay) on mouse leave
- Add onPointerDown handler that skips close for clicks inside tooltip
- Extend isTriggerActive() to check tooltip hover alongside trigger hover
Fixes #1120
* fix(ui): prevent click handler from firing on macOS Ctrl+click (#1188 )
macOS: Ctrl+click fires both click and contextmenu events.
Elements with both @click and @contextmenu would trigger unwanted
navigation (ObjectBrowser table row, SqlLibraryPanel folder/file,
QueryHistory entry) alongside the context menu.
Fix: add a capture-phase click listener that stops propagation
when ctrlKey is true. This prevents the click from reaching Vue
handlers while the separate contextmenu event is unaffected.
2026-06-15 13:25:27 +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
a3c972c367
fix: allow text selection in toast notifications
2026-06-15 13:13:00 +08:00