Commit Graph
444 Commits
Author SHA1 Message Date
t8y2 0a652d1b2c feat(sql-library): add batch selection and deletion for SQL Library panel
- Support Ctrl/Cmd+click for multi-select toggle
- Support Shift+click for additive range selection across folders and files
- Add batch delete via right-click context menu with confirmation
- Add active/inactive visual states matching connection sidebar behavior
- Remove transition-colors for instant selection feedback
- Unified selection index system for cross-type range selection
2026-06-22 10:43:26 +08:00
t8y2 c9cd80fc79 feat(sql-library): add new query option to folder and panel context menus 2026-06-21 23:43:12 +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
林剑凛 9d329920b9 feat(grid): add drag-and-drop column reordering with persistence
* feat: support data grid column reordering

* fix: improve column visibility footer layout
2026-06-20 21:50:59 +08:00
t8y2 954dba1e13 feat(export): support multi-result xlsx export 2026-06-19 14:05:08 +08:00
uicky 0f1b5f8b53 fix(export): resolve query result export progress 2026-06-19 11:15:18 +08:00
t8y2 e27d34a34a feat(vector): add qdrant and milvus support 2026-06-19 10:07:56 +08:00
t8y2 93a6a65707 feat(editor): toggle SQL keyword case 2026-06-19 02:06:12 +08:00
t8y2 88659ba789 fix(grid): limit field count badge to data tabs 2026-06-18 14:57:54 +08:00
t8y2 c155443d4b feat(grid): add pinned query result history 2026-06-18 14:57:54 +08:00
t8y2 13636452d4 fix: implement responsive overflow for right toolbar icons 2026-06-18 12:33:15 +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 5f870be0d9 feat(editor): open table ddl panel from SQL 2026-06-16 00:51:34 +08:00
t8y2 aab30d7c44 fix(mysql): prefer text protocol for result sets 2026-06-15 12:07:58 +08:00
t8y2 c9b3292a2e fix: resolve Vue warnings, silent PubSub auto-connect, remove 30 meaningless tests 2026-06-15 02:27:07 +08:00
t8y2 d04fc13af4 fix: unify SQL library font size to 13px 2026-06-14 23:09:10 +08:00
dbin0123 14e095215b feat(generate): fix date range persistence, add i18n for data generation
Thanks @dbin0123!
2026-06-14 22:54:11 +08:00
t8y2 8932b0a308 fix(mongo): align collection loading state 2026-06-14 17:04:56 +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 cbc7f9b0db fix(gbase): support 8a and 8s profiles 2026-06-14 10:16:24 +08:00
t8y2 0d63fcd3a3 fix(oracle): avoid rowid for view data 2026-06-12 21:02:32 +08:00
polempandSam ef5ed05ae7 feat(schema-diff): professional DDL diff view with deployment-aware colors and custom themes (#1112)
Co-authored-by: Sam <14344444@@qq.com>
2026-06-12 17:14:05 +08:00
t8y2 3bf243a4a6 fix(layout): constrain query result splitter 2026-06-12 10:37:41 +08:00
t8y2 a84ba4903e fix(chart): improve query chart axis selection 2026-06-12 10:34:37 +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
t8y2 098d125bcb fix(ui): soften overflow scrollbars 2026-06-11 22:20:34 +08:00
t8y2 7923f4915e fix(elasticsearch): apply document filters in browser 2026-06-11 18:56:38 +08:00
t8y2 21fd98d0ee feat: configurable toolbar visibility with settings UI 2026-06-11 13:32:39 +08:00
t8y2 4a264d638c feat: reorganize toolbar with more dropdown and add theme to appearance settings 2026-06-11 13:13:23 +08:00
t8y2 26d714909e feat(elasticsearch): model indices as first-class nodes 2026-06-11 12:52:47 +08:00
SuLea-IT 806d7c758b feat: add SQL library history query entry points 2026-06-11 10:53:54 +08:00
t8y2 8b58db30e8 fix(grid): remove redundant table data badge from toolbar 2026-06-11 01:44:16 +08:00
t8y2 d28c21f433 fix(tabs): use table icon for mongo and redis tabs 2026-06-11 01:39:25 +08:00
t8y2 c9203de1e7 feat(tabs): add duplicate tab feature in context menu 2026-06-11 01:37:58 +08:00
t8y2 922971fdd3 feat: add clear button to database selector in query editor 2026-06-11 01:10:05 +08:00
t8y2 e3b4aac84c fix(desktop): tighten frontend transitions 2026-06-10 19:20:30 +08:00
t8y2 c4839b6d13 fix(sql-library): use string compare instead of extname for import folder 2026-06-10 16:49:47 +08:00
Abeautifulsnow 1ca3081c2f feat(ui): add readonly mode visual badge to sidebar and tab bar
Add visual indicators so users can distinguish readonly connections from
read-write connections at a glance:

- Sidebar: show a lock icon badge on readonly connection nodes
- Tab bar: show a lock icon with tooltip on tabs with readonly connections
- Add isConnectionReadonly() helper in tabPresentation.ts
- Add readOnlyBadge i18n key for all 6 locales (en, zh-CN, zh-TW, es, it, pt-BR)
2026-06-10 15:56:37 +08:00
Scars cb6c09e346 fix(desktop): add scrollable query result tabs (#986)
Thanks for the contribution!
2026-06-10 15:13:17 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
t8y2 1be4c6afcc fix: resolve clippy, typecheck, and test failures in CI (#933) 2026-06-10 04:40:23 +08:00
t8y2 d08385e75f feat: add Turso/libSQL database support
Turso is a distributed SQLite database built on libSQL, offering HTTP-based
connectivity with auth token authentication. This change adds full support:

- New DatabaseType::Turso and PoolKind::Turso variants
- TursoClient driver using libSQL HTTP pipeline API (/v2/pipeline)
- Bearer token auth via password or url_params (auth_token=)
- Multi-statement batch pipeline for transactional integrity
- Standalone BEGIN/COMMIT/ROLLBACK treated as no-ops (pipeline is auto-commit)
- Full metadata support: tables, columns, indexes, foreign keys, triggers, DDL
- Frontend: connection form, SQL completion (SQLite syntax), capability sets
- Built-in databases (SQLite/Turso/DuckDB/RQLite/Access) placed first in selector
- Unit tests (15) + integration tests against live libsql-server (12)
- Single connection pool, skips TCP probe

Closes #948
2026-06-10 04:18:05 +08:00
t8y2 d5bc3d065a feat: collapse less-used toolbar buttons into More menu when width < 1000px 2026-06-10 03:04:17 +08:00