Commit Graph
29 Commits
Author SHA1 Message Date
t8y2 0e2d0b0413 feat(editor): keep semicolon-gap execution on previous statement 2026-06-24 22:28:21 +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 4558984016 fix(clickhouse): support data grid editing 2026-06-24 13:17:27 +08:00
lexmin0412 941dfd5f82 feat(redis): optimize TTL display with human-readable format (#1689) 2026-06-24 12:53:59 +08:00
二丫讲梵 3ebfae05a2 feat(nacos): add Nacos management console (#1456) 2026-06-24 01:19:18 +08:00
t8y2 cebb39cb80 feat(completion): add scoped metadata assistant 2026-06-24 00:40:28 +08:00
luoianun a36d2f12f7 feat: add selectable database charset options 2026-06-23 21:17:55 +08:00
Abeautifulsnow bbd3ccf864 fix(ai): add inline proposal confirmation buttons
* fix(ai): add quick proposal confirmation buttons (all locales)

When the assistant proposes an action, render Yes/No buttons below the
message so the user does not need to type a short reply — fixing the
issue where short replies caused the LLM to re-ask instead of executing.

- aiProposalDetect.ts: pure detectors for proposal sentences/short replies
- AiAssistant.vue: inline Yes/No buttons on last assistant proposal message
- ai.ts: system-prompt rule to skip re-confirmation on short affirmatives
- i18n: 3 keys added to all 7 locales (en/zh-CN/zh-TW/ja/es/it/pt-BR)

Tests: 55/55. TypeCheck: passed.

* fix(ai): add i18n keys and UI changes for proposal confirmation
2026-06-23 18:25:57 +08:00
t8y2 5c4c87a042 feat(grid): align query result editing 2026-06-23 17:07:30 +08:00
t8y2 e9dafbf38d fix(prestosql): select builtin JDBC driver 2026-06-23 01:28:03 +08:00
luoianun 8cc7a35c1a feat: add PrestoSQL connector 2026-06-23 01:27:08 +08:00
t8y2 7910a2f68e fix(connection): raise default connect timeout 2026-06-22 23:59:42 +08:00
dac97b83a6 feat(editor): execute single SQL directly without picker
* fix(ui): toast 消息支持换行显示

- 添加 max-w-3xl 限制最大宽度
- 使用 whitespace-pre-wrap 允许自动换行
- 添加 break-words 防止长单词溢出

* feat(editor): 单条 SQL 直接执行

---------

Co-authored-by: t8y2 <1156263951@qq.com>
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-22 17:14:36 +08:00
t8y2 9781b0f562 fix(mysql): normalize unsigned column types 2026-06-21 09:02:16 +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
hb 0720a86d25 feat(grid): copy column names and selection with headers 2026-06-20 22:13:00 +08:00
t8y2 dbb3915380 fix(jdbc): detect iris jdbc dialect 2026-06-20 07:35:40 +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 8d4a08c3d5 fix(desktop): sort batch table drop by foreign key dependency 2026-06-16 15:01:21 +08:00
t8y2 90c46d5450 fix(sidebar): reorder pinned tree nodes 2026-06-16 11:13:15 +08:00
t8y2 9c478d1437 fix(connection): respect agent connect timeout 2026-06-15 22:43:05 +08:00
t8y2 0d63fcd3a3 fix(oracle): avoid rowid for view data 2026-06-12 21:02:32 +08:00
t8y2 a84ba4903e fix(chart): improve query chart axis selection 2026-06-12 10:34:37 +08:00
SuLea-IT 89aa315a2d Merge pull request #1037
Thanks!
2026-06-11 11:12:05 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
t8y2 e6062b2b07 feat(etcd): add agent-backed etcd support 2026-06-08 00:58:42 +08:00
t8y2 0f40f6cd0c fix(postgres): support quoted schema autocomplete 2026-06-03 17:00:24 +08:00
t8y2 915728ebec fix(editor): refresh SQL snippet completion after settings changes 2026-05-27 17:46:16 +08:00
t8y2 6107778358 feat: support customizable SQL snippet templates with custom trigger keys
Users can now create, edit, and delete SQL snippet templates from the settings dialog (new "Snippets" tab). Each template has a label, trigger prefix, and SQL body. Built-in defaults are modifiable and can be restored. Templates persist across sessions via the existing settings storage.
2026-05-25 01:43:09 +08:00