Commit Graph
44 Commits
Author SHA1 Message Date
t8y2 8cebc4a366 fix(query): preserve selected statement source range 2026-07-13 19:57:35 +08:00
zipg d1cce3ed1e fix(kingbase): quote MySQL-compatible identifiers 2026-07-13 18:51:32 +08:00
zipg 16724074c0 feat(grid): improve cell detail panel 2026-07-13 17:16:38 +08:00
Freedom 86dad5db9f feat(editor): show column hints for INSERT values 2026-07-13 00:39:36 +08:00
onenewcode 7a42b1e96b fix(mysql): stop multi-statement execution after first error 2026-07-12 21:30:27 +08:00
miracle 16e879e40e perf(query): optimize result loading and connection reuse 2026-07-12 11:18:52 +08:00
onenewcode 54632f4c16 feat(query): add MySQL standard explain table view 2026-07-11 20:34:54 +08:00
zipg 3747f08baa fix(table): refresh data tabs after clearing tables 2026-07-11 17:48:51 +08:00
t8y2 a1b8174951 fix(doris): preserve external catalog in object browser 2026-07-11 13:34:18 +08:00
zipg 3a5ef776b1 fix(mysql): optimize stored procedure loading 2026-07-11 00:32:49 +08:00
lexmin0412 dd8f4a0f87 fix(ui): deactivate settings when activating tabs 2026-07-11 00:05:05 +08:00
zipg c35e5c560a feat(query): support editing without selected primary keys 2026-07-10 18:57:37 +08:00
SuLea-IT 68cfb5af5c fix(query): reduce retained result memory 2026-07-10 18:15:25 +08:00
t8y2 0431fbea49 fix(ui): preserve tab scroll positions 2026-07-10 00:35:33 +08:00
zipg 67edb94b1d feat(sqlserver): support legacy TLS compatibility 2026-07-09 22:45:54 +08:00
zipg ce8cb2b509 fix(oracle): preserve DATE time in display and export 2026-07-09 15:04:34 +08:00
LRcodingandzero f41c7dd6a0 fix(toolbar): sync SQL file tree visibility setting
Co-authored-by: zero <zero@zeroMacmini.local>
2026-07-07 13:18:42 +08:00
二丫讲梵 18e5df6f5e feat(query-editor): enhance current statement framing 2026-07-06 23:09:21 +08:00
ce096ca21f fix(completion): scoped table lookup, preserve casing, lower Oracle table-function boost
* fix: improve schema-qualified SQL completion

* fix(completion): preserve casing in completion table cache key and relaxed filter

---------

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-06 18:28:23 +08:00
Moe. 51693bf296 fix(connection): allow immediate reconnect after canceling high-latency connection
* Fix: Scope Disconnects To Connection Attempts

- Allow reconnecting while a scoped disconnect is still pending
- Track successful local connection attempts for scoped backend disconnects
- Prevent older disconnect completions from clearing newer reconnect errors
- Update disconnect state immediately while preserving revision-safe cleanup
- Add regression tests for reconnect and pending disconnect race cases

* Fix: Clear Root Metadata Load On Connection Cancel

* Test: Mock Installed Agents In Connection Store Timeout Spec

* Test: Mock listInstalledAgents in connection store timeout tests
2026-07-06 18:06:05 +08:00
miracle 4afc3297e1 feat(duckdb): add worker concurrency setting 2026-07-06 00:13:11 +08:00
t8y2 e74782f651 feat(metadata): optimize agent metadata loading 2026-07-05 12:09:24 +08:00
t8y2 6b13564180 fix(desktop): persist UI state asynchronously 2026-07-05 02:22:13 +08:00
zipgandstaff 5c35755219 Feature:新增多套应用配色主题 (#2559)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-05 00:34:47 +08:00
Moe. 8a1a791927 feat(connection): add connection attempt cancellation 2026-07-04 23:47:53 +08:00
miracle 454457f191 fix(duckdb): add worker process isolation 2026-07-04 23:43:22 +08:00
t8y2 7e7c4944e9 refactor(desktop): organize lib modules by domain 2026-07-04 13:53:52 +08:00
t8y2 32a9496d2a fix(tabs): close dropped table tabs 2026-07-04 12:21:44 +08:00
t8y2 d8047a77b4 feat(grid): add configurable table search mode 2026-07-04 12:02:55 +08:00
miracle 30b9460442 fix(dbx-core): improve duckdb query cancellation 2026-07-04 02:31:32 +08:00
t8y2 6f2e4774f4 feat(updates): add AtomGit update download source 2026-07-03 11:01:27 +08:00
47dc35ccb2 feat(settings): 启动时标签页恢复策略三选项 (all/pinned/none) (#2395)
* feat(settings): 添加启动标签页恢复策略

* i18n: 补齐启动标签页恢复策略 5 个 locale 译文

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-02 12:23:24 +08:00
ff1a0f5eda fix: 隔离 MySQL 大库场景前台查询与后台元数据加载 (#2354)
* fix: isolate data tab mysql queries from metadata loads

* refactor(completion): drop unused limiter snapshot and share concurrency constant

---------

Co-authored-by: zero <zero@zeroMacmini.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-01 20:03:09 +08:00
luoianun 95e3cb6571 fix(presto): optimize metadata completion 2026-07-01 19:05:45 +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
二丫讲梵 2e8d399dab feat(queryStore): 添加数据库打开状态跟踪功能 (#2251)
- 新增 isDatabaseOpen 方法,用于检查特定连接的数据库是否处于打开状态
- 在 TreeItem 组件中显示数据库打开指示器
- 添加 queryStore.database-open.spec.ts 测试文件,验证数据库打开状态的逻辑
2026-06-30 22:43:38 +08:00
zipgandstaff c38bc05417 Fix:修复 SQL 子查询语义诊断误报 (#2184)
* Fix:修复 SQL 子查询语义诊断误报

* Improve:添加 SQL 语义诊断开关

* Improve:优化 SQL 语义诊断开关说明

* Fix:收紧 SQL 语义诊断飘红范围

* Improve:调整 SQL 语义诊断默认策略

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 20:15:59 +08:00
eryajf 76e2d33cd3 feat(update): add configurable update download source 2026-06-26 22:25:42 +08:00
miracleandonceMisery d128604743 fix(connection): 修复数据库连接超时后无法可靠恢复的问题
* feat(core): implement PIP-0001 database connection timeout recovery

- Add DbOperationBudget struct for unified execution budget model
- Add deadpool create/recycle timeout for PostgreSQL pools
- Add checkout_postgres_client helper replacing 14 bare pool.get() calls
  with timeout + cancel token support
- Fix PostgreSQL TLS cancel: rebuild TLS connector from stored context,
  fallback to NoTls on failure
- Add timeout to MySQL kill_query and kill_query_with_opts (5s)
- Extend is_connection_error to match deadpool pool timeout messages
- Unify keepalive default to 30s (was 60s Rust / 0s frontend mismatch)
- Inject PostgreSQL TCP keepalive params (idle=30s, interval=10s, retries=3)
- Inject MySQL tcp_keepalive=30s in OptsBuilder
- Make MySQL inactive_connection_ttl configurable from idle_timeout_secs
- Add stage-based structured logging for pool.checkout/health.check/cancel
- Store PostgresCancelContext in AppState for TLS cancel reconstruction
- Clean up cancel contexts on pool removal/drain
- Add unit tests for DbOperationBudget and pool timeout error detection

* fix(core): align timeout recovery with PIP-0001

* fix(core): handle timeout recovery review issues

* fix(core): complete connection timeout recovery

* fix(core): fall back postgres cancel connector build

* refactor: revert comment translations to English in connection.rs and query.rs

- Revert DbOperationBudget doc comments to English (query.rs)
- Revert PostgresCancelContext and TLS cancel comments to English (connection.rs)
- Keep Chinese error-matching strings in is_connection_error unchanged

---------

Co-authored-by: onceMisery <onceMisery@users.noreply.github.com>
2026-06-26 21:41:56 +08:00
zipgandstaff d6052cff8b fix: 避免过期连接尝试残留错误提示
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 12:32:02 +08:00
luoianunandt8y2 b8511051cd feat(editor): auto alias SQL table completions
* feat: auto alias SQL table completions

* fix: preserve alias suggestion fallback order

---------

Co-authored-by: t8y2 <1156263951@qq.com>
2026-06-24 14:48:47 +08:00
t8y2 cebb39cb80 feat(completion): add scoped metadata assistant 2026-06-24 00:40:28 +08:00
fagao 718ffde871 test: mock MQ connection health check 2026-06-22 22:02:49 +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