Commit Graph
44 Commits
Author SHA1 Message Date
二丫讲梵 60f941aa27 feat(connection): 添加子组时支持定义组名称
- 在创建新子组时,自动展开其父组,支持自定义组名
2026-07-02 10:33:35 +08:00
miracle 0c91fecf5d feat(editor): add table copy/paste keyboard shortcuts
* feat: add table copy/paste with configurable structure and data options

- Implement Navicat-style table copy/paste functionality
- Support multi-table selection and batch operations
- Configurable paste modes: structure+data (default), structure only, data only
- Backend: add build_copy_table_data_sql API (INSERT INTO ... SELECT)
- TreeItem.vue: copy/paste context menus, paste dialog with mode selection
- ObjectBrowser.vue: batch toolbar buttons, context menu, paste dialog
- Refactor TreeClipboard type to support multi-table entries
- Add i18n keys for all 7 locale files (en, zh-CN, zh-TW, ja, es, it, pt-BR)

* Fix table paste shortcuts

* Fix Kafka MQ sidebar detection

* Restrict table paste scope

* Support data copy for primary SQL databases
2026-07-01 12:49:37 +08:00
zipg 267768ecbd Fix: keep simple sidebar table pagination bounded (#2092) 2026-06-30 00:08:41 +08:00
zipgandstaff dbfe284ca9 fix: 修复侧边栏定位表节点异常及连接配置测试字段缺失
* Fix: 修复侧边栏定位表节点异常

* Fix: 修复连接配置测试字段缺失

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 13:59:29 +08:00
zipg 4d000c88fa fix(sidebar): improve scrollbar hover display 2026-06-26 01:52:03 +08:00
lexmin0412 c2376494d3 feat(vector): add ChromaDB support 2026-06-26 01:41:36 +08:00
zipg 0f312084ff fix(sidebar): paginate table list by page size 2026-06-25 23:54:09 +08:00
zipgandstaff c63c9e451c fix: 优化侧边栏数据库吸顶效果
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-25 22:17:40 +08:00
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
haipengno1 41ab2fae2a feat(sidebar): pin database row while scrolling the tree 2026-06-25 00:20:32 +08:00
zipg 5846f85ce6 fix(sidebar): fix advanced view sidebar table search scope 2026-06-24 16:04:03 +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
t8y2 e27d34a34a feat(vector): add qdrant and milvus support 2026-06-19 10:07:56 +08:00
Spencer.Chang fae454f96a feat: add sidebar type-to-search 2026-06-18 13:13:45 +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 8339d23df5 fix: distinguish materialized view from regular view 2026-06-16 21:23:42 +08:00
t8y2 e4246d204c feat(sidebar): pass search as filter to listTables, debounce 300ms 2026-06-15 23:45:34 +08:00
t8y2 cbc7f9b0db fix(gbase): support 8a and 8s profiles 2026-06-14 10:16:24 +08:00
t8y2 2ec8ed1523 feat(sidebar): locate query table from cursor 2026-06-13 12:45:00 +08:00
t8y2 26d714909e feat(elasticsearch): model indices as first-class nodes 2026-06-11 12:52:47 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
14fa15531f fix(sidebar): multi-select drag, blank-click deselect, empty-group-name (#681) (#823)
Three independent connection-list bugs:

1. Multi-select drag only moved one row. The drag system tracks a single
   draggedId and ignored selectedTreeNodeIds. The drop callback now expands
   to the full selection when the grabbed row is part of it, and the store
   gains reorderSidebarEntries() to move them together.

2. Clicking the blank tree area didn't clear the selection (notably in
   double-click activation mode). Row clicks now stopPropagation and the
   tree containers clear the selection on click, so only blank clicks reset.

3. Creating a group then submitting an empty name dissolved ALL groups.
   Enter (@keydown.enter) and the following @blur both fired finishRenameGroup;
   the first call rebuilt the tree and recycled props.node onto another group,
   so the second deleted the wrong one, cascading. Guard against double
   invocation and treat an empty name as a cancel (never delete here — deleting
   a group stays in the context menu).

Verified end-to-end on the web build: multi-select drag nests both
connections under the group; blank-click clears selection; empty-name Enter
keeps all groups intact. pnpm check is green.

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 02:09:26 +08:00
094dfb1f06 fix(sidebar): locate-in-sidebar reaches the table after a stale tree cache (#715) (#822)
After an app update (typically >15min since last use), the on-disk schema
tree cache is past its TTL and counts as stale. When "locate in sidebar"
loads the connection's databases, the stale cache is served synchronously
and an async `refreshStaleTreeNode` fires in the background; that refresh
replaces the database node with a fresh one whose tables haven't loaded
yet, evicting the node that locate just populated. By the time
`findNodePathForActiveTab` runs, the target table isn't in the tree, so
locate only reaches the database. After a restart the cache is fresh, no
refresh races, and locate works — matching the report.

Make `ensureTreeLoadedForTab` accept `{ force }` (loads everything via
awaited calls, bypassing the stale-cache fire-and-forget path) and, in
`locateActiveTabInSidebar`, retry once with force when the first
`findNodePath` misses. Fresh-cache locates still succeed on the first
pass and never force (no regression); `refreshStaleTreeNode` is untouched.

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:08:23 +08:00
t8y2 a2c9503a3d perf(sidebar): reduce tree selection overhead 2026-06-05 14:30:25 +08:00
t8y2 120566b1fd fix: improve JDBC dialect handling 2026-06-04 19:40:52 +08:00
t8y2 4d50af05fd fix(sidebar): keep connection search results visible 2026-06-03 20:52:57 +08:00
t8y2 e67894bea7 chore: upgrade frontend tooling and speed up checks 2026-06-03 12:20:27 +08:00
t8y2 53239d91fb fix(sidebar): use filtered order for range selection 2026-06-02 18:13:13 +08:00
t8y2 ce411f27e9 fix(sidebar): reorder connection toolbar actions 2026-06-01 13:55:55 +08:00
vrustx 9d603b617d Refine overflow navigation review feedback 2026-05-31 11:47:44 +08:00
vrustx e94de447c9 Fix sidebar and tab overflow navigation 2026-05-31 02:41:43 +08:00
t8y2 0c806be274 feat(sidebar): add locate-in-sidebar button to find active tab's node
Add a crosshair button next to the "New Group" button that scrolls the
sidebar tree to the table/database/collection corresponding to the
currently active tab. Auto-expands collapsed ancestors, reconnects
disconnected connections, and highlights the target node with an amber
flash that fades after 1.8s.
2026-05-30 16:46:53 +08:00
t8y2 6b8ca6af87 fix(sidebar): scroll to newly created groups 2026-05-30 16:09:34 +08:00
t8y2 133f3cfc04 perf(desktop): use lightweight dropdown menus 2026-05-30 11:02:16 +08:00
t8y2 f0be94096c fix: exclude disconnected connections from sidebar search results 2026-05-27 16:34:49 +08:00
t8y2 5537fa1b3c fix(sidebar): avoid scroll jumps on expansion 2026-05-23 01:35:53 +08:00
t8y2 5f19dccdc1 fix(sidebar): keep connection expansion stable 2026-05-23 01:32:51 +08:00
t8y2 3dc4f40e7f feat(sidebar): select active tab node 2026-05-21 23:32:07 +08:00
t8y2 eef217d6eb feat(sidebar): add node-type search scopes for tree filtering 2026-05-21 22:38:18 +08:00
t8y2 f7f622229b fix(sidebar): show group action without connections 2026-05-18 19:23:55 +08:00
t8y2 ab87de4054 fix(sidebar): reveal expanded tree items 2026-05-18 16:35:09 +08:00
t8y2 06683c57b1 chore(repo): move desktop app under apps 2026-05-18 02:35:39 +08:00