Commit Graph
1765 Commits
Author SHA1 Message Date
t8y2 2a7b26baad fix: add missing idle_timeout_secs in ConnectionConfig constructors and fix clippy warnings 2026-06-09 11:56:39 +08:00
t8y2 e76a223e8a fix(redis): allow resizing zset score column 2026-06-09 11:56:25 +08:00
t8y2 41c696ef22 perf(editor): optimize sql completion metadata lookup 2026-06-09 11:09:12 +08:00
t8y2 d4c87f5a4c fix(ui): increase shortcut pill width to prevent text clipping on Windows 2026-06-09 10:41:19 +08:00
t8y2 def1cacf77 feat(ui): add Mod+B shortcut to toggle sidebar 2026-06-09 10:38:03 +08:00
James-LeongandClaude Opus 4.7 171c7cd8d7 fix(ssh): prevent duplicate SSH tunnels from concurrent pool creation (#891)
start_tunnel() and start_chain() had a check-then-act race condition:
multiple concurrent callers could all see an empty cache and each
spawn a new SSH tunnel. The tunnel that lost the insert race was
orphaned, causing queries routed through it to fail.

Use double-check locking with stale entry eviction: hold the lock for
the cache lookup, release it during the slow SSH handshake, then
re-check under the lock before inserting. If another caller already
created the tunnel, abort the duplicate and return the existing port.

Also check handle liveness on cache hits so that callers don't get a
dead port back when the background tunnel task has exited.

Add a matching re-check in the MongoDB connection pool creation path.

Add idle_timeout_secs connection option (default 60s) to preempt
server-side connection idle timeouts that cause "unexpected end of
file" errors on pooled MongoDB connections.

Reject MongoDB queries in the generic SQL execution path before any
pool or session-key creation. Previously, a typo in a MongoDB shell
command would fall through to executeMulti / execute_sql_statement,
which called get_or_create_pool_for_session and leaked a session-scoped
MongoDB Client (and SSH tunnel resources) before eventually returning
"Use MongoDB-specific commands".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 10:29:42 +08:00
DengQingNiananddqn 32164d5aea feat(grid): add layer preview for geometry columns with Leaflet map (#892)
* feat(grid): add layer preview for geometry columns with Leaflet map

* fix: restore dev:backend script with env vars and cargo watch

* chore: update pnpm-lock.yaml for leaflet and dom-to-image-more dependencies

---------

Co-authored-by: dqn <someonegdeng@qq.com>
2026-06-09 10:12:56 +08:00
DengQingNiananddqn 65d7a0ab8f feat(structure): add DDL tab to table structure editor (#893)
Closes #836

Co-authored-by: dqn <someonegdeng@qq.com>
2026-06-09 10:12:22 +08:00
t8y2 80895fe273 fix(mongodb): support replica set connection URL parsing and timeout
Frontend: add regex-based MongoDB URL parser to handle multi-host URIs
that the WHATWG URL parser rejects. Backend: separate
server_selection_timeout from connect_timeout for multi-host URIs to
prevent topology discovery from being cancelled by tokio timeout.
2026-06-09 01:02:11 +08:00
t8y2 0ce6fde347 fix(grid): unify selected cell border thickness in DOM and canvas mode
DOM mode: replace box-shadow with outline to avoid stacking with row border-b.
Canvas mode: draw row border before selected cell overlay so selection uses
uniform color on all four sides; clamp top edge to prevent canvas clipping.
2026-06-09 01:01:50 +08:00
t8y2 45a6bb8a58 fix: parse PG brace-style array text in cell coercion to prevent false dirty
coercePostgresArrayValue() only handled JSON [...] format but editor
outputs PG {...} format.  When the user entered and exited edit mode
without changes, the string "{1,2,3}" failed to parse back to an
array, creating a false dirty detection via strict equality.

Add parsePostgresArrayText() recursive descent parser and return
oldValue reference when parsed result is equivalent.
2026-06-09 01:00:19 +08:00
t8y2 619573a69d fix(oracle): skip SQL pagination clauses for Oracle 11g compatibility
Oracle 11g does not support FETCH FIRST / LIMIT syntax. Skip appending
pagination clauses at SQL level and rely on JDBC setMaxRows for row
limiting, which already works across all Oracle versions.
2026-06-09 00:44:20 +08:00
t8y2 025a4fdcce fix: support tree-schema default DB selection in AI assistant 2026-06-09 00:44:04 +08:00
t8y2 03ade2ebba fix: allow custom theme editor to scroll 2026-06-09 00:25:11 +08:00
t8y2 c35929da7c fix(connection): clear errors after disconnect 2026-06-08 23:52:16 +08:00
t8y2 a414183ff0 fix(editor): scope SQL formatting to active tab 2026-06-08 23:08:50 +08:00
t8y2 befee2fd4c feat(postgres): support sequence objects 2026-06-08 22:54:14 +08:00
二丫讲梵 178a800ce8 ✨ feat(shortcuts): 添加打开设置的键盘快捷键
新增 openSettings 快捷键,默认绑定 Mod+,,用于触发设置对话框。

包含所有语言包的翻译、键盘快捷键文档更新,以及测试用例。
2026-06-08 21:52:26 +08:00
t8y2 19139a9b34 feat(docs): add offline driver downloads 2026-06-08 21:50:00 +08:00
t8y2 87b8f1f462 fix(ai): support proxied API channels 2026-06-08 20:32:54 +08:00
二丫讲梵 2db46f10ff 🐛 fix(connectionStore): 修复分组连接时树节点的更新逻辑
确保连接到分组中的连接时,原地更新现有节点属性,避免添加重复的根节点。

使用 findNode 递归搜索替代 findIndex 只搜索根级别。原地修改节点属性而非替换整个对象,保留父子引用关系。
2026-06-08 20:10:08 +08:00
t8y2 9dfc2ba294 feat: support H2 file connections 2026-06-08 20:09:27 +08:00
t8y2 7a2ed233be ci(release): add Windows ARM64 build target
- Add aarch64-pc-windows-msvc to release build matrix
- Make portable ZIP arch dynamic (x64/arm64)
- Update Scoop manifest for arm64 architecture
2026-06-08 19:18:53 +08:00
t8y2 a3f045822c fix(dialog): adjust layout for DialogContent component 2026-06-08 18:45:30 +08:00
t8y2 5ec50ba15b fix(postgres): support editing array cells 2026-06-08 18:31:05 +08:00
Yong Studt 2628fb8374 feat(elasticsearch): add SQL-model execution with mapping-aware completion
- Route SELECT * FROM <index> through /_search for simple browses; aggregates/projections stay on /_sql
- Drive completion columns from /_mapping (flattened dotted fields, multi-fields)
- Switch editor completion to SQL when the active statement starts with SELECT/WITH on ES
- Skip generic SQL semantic diagnostics for ES (hyphenated wildcard indices caused 500s)
- Wire ES into server-side pagination plan; derive completion context from line blocks
- Fix result-grid pagination exceeding in-memory result sets (allRowsLoaded)
2026-06-08 17:53:05 +08:00
t8y2 465ed195cf fix(sql): decode opened SQL files with charset fallback 2026-06-08 17:45:09 +08:00
t8y2 3fc6c0eaba fix(ai): use local provider icons 2026-06-08 17:11:12 +08:00
t8y2 531634d9b6 fix(import): accept JSON files with UTF-8 BOM 2026-06-08 17:07:17 +08:00
t8y2 433c38473a fix(goldendb): quote identifiers with backticks 2026-06-08 16:42:45 +08:00
t8y2 83c3be5a67 fix(trino): pass SSL options to agent JDBC URL 2026-06-08 16:25:56 +08:00
t8y2 90a1316037 fix(jdbc): avoid IRIS max rows SQL rewrite 2026-06-08 16:17:27 +08:00
t8y2 ab739e9dcb fix(duckdb): render complex values as json 2026-06-08 14:45:26 +08:00
t8y2 2b0af57be8 fix(mysql): handle common connection URL params 2026-06-08 14:34:56 +08:00
t8y2 58c3887464 fix(editor): bundle SQL formatter for offline use 2026-06-08 14:15:16 +08:00
t8y2 2a3844f2c6 feat(results): add execution summary view 2026-06-08 14:13:47 +08:00
t8y2 f1a94262b5 feat(user-admin): add database user privilege management 2026-06-08 13:47:56 +08:00
t8y2 03f273bb4d fix(grid): sharpen canvas rendering under ui zoom 2026-06-08 12:46:56 +08:00
t8y2 afc8d8f3c1 fix(mysql): preserve session variables across query runs 2026-06-08 12:39:18 +08:00
t8y2 57fe578789 fix: hide YashanDB recyclebin objects 2026-06-08 12:35:14 +08:00
t8y2 b777cddde5 feat: add user-facing debug logs 2026-06-08 12:16:49 +08:00
t8y2 c38994d02b fix: expand tilde in file path validation for SSH keys and TLS certs
`validate_file_path` now expands leading `~` to the user's home directory
before checking file existence, so paths like `~/.ssh/id_rsa` work on macOS
and Linux. Also fixes error messages that incorrectly said "Database file".
2026-06-08 11:14:11 +08:00
github-actions[bot] b200d5b041 chore(packages): release 0.4.7 [skip node-packages-release] packages-v0.4.7 2026-06-08 01:54:21 +00:00
github-actions[bot] f3858eb271 chore(jdbc): bump plugin version [skip ci] 2026-06-07 18:26:47 +00:00
t8y2 47ee9c6d58 chore: release 0.5.30 v0.5.30 2026-06-08 02:26:25 +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
t8y2 c54e43e4b9 fix: exclude etcd from driver store and fix CI test overlap 2026-06-08 02:08:08 +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 a5659d7637 fix(mongodb): support getIndexes shell command 2026-06-08 01:25:44 +08:00
t8y2 fabf2172e4 chore: migrate test runner from node:test/tsx to vitest
155 files, 1091 tests, 4.3s (2x faster than previous 9.1s).
2026-06-08 01:17:27 +08:00