Commit Graph
93 Commits
Author SHA1 Message Date
miracle 0effda91b3 feat(zookeeper): add agent client browsing and node management 2026-06-25 00:40:48 +08:00
t8y2 bf9ef4365b feat(vector): add weaviate support 2026-06-25 00:31:27 +08:00
t8y2 b89df5a43c feat(sql): save external files locally 2026-06-24 23:13:17 +08:00
zipgandstaff 1cd3406e94 修复驱动管理与侧边栏展开的前台显示问题
* 修复标签页切换和侧边栏展开滚动

* chore: rerun ci

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-24 14:08:58 +08:00
二丫讲梵 3ebfae05a2 feat(nacos): add Nacos management console (#1456) 2026-06-24 01:19:18 +08:00
Spencer.Chang ff1559f018 feat(editor): add View DDL action to query editor context menu (#280) 2026-06-24 00:48:35 +08:00
t8y2 49705a1a8f feat(sqlite): support custom database file suffixes 2026-06-23 20:15:06 +08:00
lexmin0412 ab35fda299 fix(ui): fix dialog stacking order conflict with close action prompt (#1594) 2026-06-23 10:52:22 +08:00
t8y2 7adee1cacf fix(ui): enable text wrapping for toast messages
- Add max-w-3xl to limit toast width (768px on desktop, 90vw on mobile)
- Use whitespace-pre-wrap to allow automatic line breaks
- Add break-words to prevent long words from overflowing
- Long error messages now wrap instead of extending off-screen
2026-06-22 14:58:56 +08:00
t8y2 243b49038a style: format files to fix CI 2026-06-21 00:22:34 +08:00
cherlinbest-pixelandcherlin 28a23de604 feat(desktop): add close behavior prompt with quit-on-close setting
Co-authored-by: cherlin <544026227@qq.com>
2026-06-21 00:04:52 +08:00
uicky 4d2afcad90 feat(editor): add SQL execution target picker with preview decoration
When the user triggers SQL execution via shortcut/toolbar/context-menu
without a manual selection, a floating picker now surfaces the available
execution targets:

- "Current SQL" — the statement at the cursor
- "All SQL"   — the entire editor content

Each candidate is highlighted as a preview decoration in the editor as
the user navigates the picker with arrow keys. Only a single entry is
shown when the cursor statement equals the full document.

前端 SQL 范围解析器 (sqlStatementRanges.ts) 按分号拆分语句,同时跳过
字符串、引号标识符、注释和美元引用体中的分隔符,与后端 dbx-core splitter
逻辑一致。选取器支持键盘导航、鼠标悬停高亮、Enter 确认、Esc/失焦取消。

Changes:
- sqlExecutionTarget.ts: add SqlExecutionCandidate, SqlExecutionOverride types
- sqlStatementRanges.ts: frontend SQL tokeniser (new, 848 lines)
- SqlExecutionTargetPicker.vue: accessible floating listbox (new, 109 lines)
- QueryEditor.vue: preview StateEffect/StateField; requestExecute() replaces
  executeCurrentSql() to route through picker
- ContentArea.vue: expose requestQueryEditorExecute() to parent
- App.vue: toolbar + global shortcut → requestActiveEditorExecute()
- i18n: editor.executionPicker keys for all locales
- tests: 26 new unit tests for sqlStatementRanges (all 1121 tests pass)
2026-06-20 22:28:02 +08:00
ptma 5bc168f20c fix(postgres): strip length from fixed-size types and fix SQL library UX issues
* fix(postgre): Fix the data type syntax when creating tables in PostgreSQL

* fix(ui): Save the state when closing the SQL library through the close button
2026-06-20 22:10:26 +08:00
t8y2 b04d4aa78c fix(frontend): fix quick-open source type 2026-06-20 00:35:10 +08:00
Wakanlolz ebde8b4fa1 feat: add Ctrl+P quick-open for database objects 2026-06-20 00:13:09 +08:00
t8y2 93a6a65707 feat(editor): toggle SQL keyword case 2026-06-19 02:06:12 +08:00
t8y2 7511753f71 fix(desktop): handle object source tab save close 2026-06-18 16:15:58 +08:00
Libon f1b8579994 style: improve UI interface 2026-06-18 02:01:00 +08:00
t8y2 6e7035823a fix(editor): use editor snapshot for SQL execution 2026-06-17 15:30:31 +08:00
Spencer.Chang 598b5dfef8 feat: add query editor view data context action 2026-06-17 14:42:15 +08:00
miracleandt8y2 2a59d3143e feat(mq): implement Apache Pulsar message queue admin
* feat(mq): implement Apache Pulsar message queue admin

- Add complete MQ admin adapter layer with version detection
  * Pulsar adapter with multi-version API support
  * OAuth2 token caching and authentication
  * JWT token signing for Pulsar clients
  * Transport layer (SSH/Proxy) integration

- Implement comprehensive admin operations
  * Tenant, namespace, topic management
  * Subscription and consumer/producer monitoring
  * Rate limits, backlog quotas, retention policies
  * Permissions and role-based access control
  * Raw admin API for advanced operations

- Add desktop UI components
  * MQ admin console with tabbed interface
  * Tenant, namespace, topic panels
  * Subscription management and cursor operations
  * Monitoring panel with stats visualization
  * Policy configuration UI

- Add web routes for MQ admin operations
- Add secret store support for MQ auth credentials
- Add comprehensive test coverage

* fix: del local test files

* fix(mq): mark message queue as unsupported mcpMode in driver manifest

MQ admin connections do not use the MCP query bridge - they use a
separate REST admin API. Mark mcpMode as 'unsupported' to align with
the test expectations and reflect the actual architecture.

Fixes CI test: driver-manifest.test.ts

* fix(mq): fix TypeScript errors in MQ components

- Fix typo in SubscriptionsPanel.vue: messagformatError(e)Id -> message.messageId
- Use formatError() helper in RawApiPanel.vue instead of accessing e?.message
- Fix undefined 'tab' reference in ConnectionTree.vue: use config.db_type instead

Fixes frontend CI TypeScript check errors.

* fix(mcp): add 'mq' to MCP server connection type description

The MCP server's connection type description must include all database
types from the driver manifest. Add 'mq' to the list to fix the test:
'add connection database type description includes every manifest database type'

Fixes: packages/mcp-server/tests/driver-manifest.test.ts

* fix(mq): add missing ConnectionConfig fields for Rust compilation

- Add gbase_server and keepalive_interval_secs fields to all ConnectionConfig
  test constructors in mq/config.rs, mq/service.rs, and storage.rs
- Import uses_bare_mysql_pool in connection.rs tests module

Fixes compilation errors from upstream ConnectionConfig changes.

* chore(ui): simplify Pulsar icon to logo-only version

Remove text from Pulsar icon (127x30 -> 35x30), keeping only
the wave logo symbol for a cleaner, more consistent appearance
with other database icons.

* fix(mq): return removed pools from drain_connection_pools

---------

Co-authored-by: t8y2 <1156263951@qq.com>
2026-06-16 21:57:17 +08:00
t8y2 65114c64c4 fix(sqlite): support .db3 file extension 2026-06-16 20:30:21 +08:00
t8y2 d59ce9f483 fix(desktop): keep driver store open when tabs close on disconnect 2026-06-16 15:51:00 +08:00
t8y2 5f870be0d9 feat(editor): open table ddl panel from SQL 2026-06-16 00:51:34 +08:00
t8y2 54620e1f22 fix(app): avoid reconnecting restored tabs 2026-06-16 00:19:06 +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
t8y2 228a0098f1 fix(ui): increase toast z-index to appear above dialogs 2026-06-14 15:26:26 +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 58a52f65cc fix: enhance contextmenu handler for editable elements 2026-06-13 14:32:34 +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
SuLea-IT 806d7c758b feat: add SQL library history query entry points 2026-06-11 10:53:54 +08:00
Scars 14d11a9933 fix(desktop): prevent app layout from shifting on editor focus 2026-06-10 17:01:31 +08:00
t8y2 b4e8190b52 fix(sqlite): prevent file launch from overwriting existing connections 2026-06-10 10:32:04 +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
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 def1cacf77 feat(ui): add Mod+B shortcut to toggle sidebar 2026-06-09 10:38:03 +08:00
t8y2 a414183ff0 fix(editor): scope SQL formatting to active tab 2026-06-08 23:08:50 +08:00
二丫讲梵 178a800ce8 ✨ feat(shortcuts): 添加打开设置的键盘快捷键
新增 openSettings 快捷键,默认绑定 Mod+,,用于触发设置对话框。

包含所有语言包的翻译、键盘快捷键文档更新,以及测试用例。
2026-06-08 21:52:26 +08:00
t8y2 465ed195cf fix(sql): decode opened SQL files with charset fallback 2026-06-08 17:45:09 +08:00
t8y2 2a3844f2c6 feat(results): add execution summary view 2026-06-08 14:13:47 +08:00
t8y2 03f273bb4d fix(grid): sharpen canvas rendering under ui zoom 2026-06-08 12:46:56 +08:00
Quinlevi 897e6998fd feat(dameng): full DM8 database support
Adds Dameng DM8 explain/autotrace support and user-management SQL support, with backend autotrace safety checks and escaped CREATE USER SQL.
2026-06-08 02:07:00 +08:00
t8y2 3eefe87380 feat(settings): allow disabling update reminders 2026-06-07 01:07:31 +08:00
t8y2 2b5300722f feat: optimize tab result lifecycle caching 2026-06-06 20:30:35 +08:00