Commit Graph
921 Commits
Author SHA1 Message Date
t8y2 218042cfd2 fix: show schemas directly under connection for DM8 and Oracle (#259)
Single-database types (DM8, Oracle) now use list_schemas instead of
list_databases when expanding a connection, matching Navicat/DataGrip
behavior and returning the complete schema list.
2026-05-14 23:32:43 +08:00
t8y2 164fd7fb82 feat: auto-open Driver Manager when driver is not installed
When a connection fails because the agent driver or JRE is not
installed, automatically open the Driver Manager page so users
can install it without navigating manually.
2026-05-14 22:40:31 +08:00
t8y2 c49811cf5a feat(editor): add middle-mouse-button rectangular selection in SQL editor
Closes #266
2026-05-14 22:33:51 +08:00
t8y2 bb6627cf54 fix(clickhouse): make table data fully read-only
Add readonly flag to TableDataCapability and check it in
isTableDataEditable and canEditExistingTableRows to prevent
cell editing for databases like ClickHouse that don't support
row-level UPDATE/DELETE.
2026-05-14 22:21:09 +08:00
t8y2 1f6fb863f4 fix(clickhouse): validate auth in test_connection and disable transactions
- test_connection now uses SELECT 1 instead of /ping which doesn't
  require authentication, so wrong passwords are caught early
- Disable transaction support for ClickHouse (no BEGIN/COMMIT)
- Mark ClickHouse tables as non-insertable (no row-level operations)
2026-05-14 22:11:03 +08:00
t8y2 8aff08c6d8 fix: add kingbase and vastbase to TREE_SCHEMA_TYPES for proper schema listing (#203) 2026-05-14 21:59:36 +08:00
t8y2 b6c88d7b65 feat: add persistent selected node highlight in sidebar tree
- Track selectedTreeNodeId in connection store
- Highlight any clicked tree node with focused (blue) / unfocused (gray) styles
- Use CSS :focus-within for automatic focus state switching
2026-05-14 21:52:06 +08:00
t8y2 bf99e2609a style: increase selected row and cell highlight contrast 2026-05-14 20:58:19 +08:00
t8y2 bb766228e6 fix: use SELECT 1 for ClickHouse connection test and check response status 2026-05-14 20:58:08 +08:00
t8y2 03e2c0bea1 feat: persist page size setting across restarts
Store the data grid page size in EditorSettings (localStorage) so the
user's chosen rows-per-page survives app restarts.
2026-05-14 20:48:28 +08:00
t8y2 8305b9670f feat(ci): integrate Codecov for test coverage reporting 2026-05-14 20:33:26 +08:00
t8y2 ecb878315c chore: add startup timing diagnostics for #270
Add [STARTUP] timing logs to Rust setup (plugin registration, storage
open, migration) and Vue frontend (onMounted, initFromStorage,
initFromDisk) to help diagnose slow startup reported in #270.
2026-05-14 19:35:34 +08:00
t8y2 c37caeba78 fix: apply only visible checked values when local filter has active search
When a user searches in the column filter dialog, non-visible options
retained their selected state, making it impossible to filter to just
the searched values. Now when a search query is active, only visible
checked items are included in the applied filter.
2026-05-14 19:19:21 +08:00
t8y2 6ea6e45bcd feat(ci): add Linux ARM64 build target (#272)
Add aarch64-unknown-linux-gnu to the release build matrix using
GitHub's native ARM runner (ubuntu-22.04-arm).
2026-05-14 18:55:30 +08:00
t8y2 f491ea1e43 fix: keep saved-sql-root first after database pin/unpin (#267)
orderPinnedFirst preserves relative order but doesn't account for
saved-sql-root needing to stay first. After reordering pinned children,
move saved-sql-root back to index 0 if it was displaced.
2026-05-14 18:50:24 +08:00
t8y2 c8f6f39fbb fix: resolve SQL file dialog dropdown and footer styling issues (#271)
Use popper positioning for connection Select to prevent item-aligned
mode from hiding the dropdown when few options exist. Align
DialogScrollContent padding with DialogContent (p-4) so DialogFooter
negative margins reach dialog edges correctly.
2026-05-14 18:45:24 +08:00
t8y2 4562646253 refactor(ci): make publish-packages manual with R2 upload before release promotion
- Remove automatic release event trigger, keep workflow_dispatch only
- Run R2 upload and homebrew/scoop publish in parallel
- Add promote-release job to convert prerelease to release after all uploads complete
2026-05-14 18:01:25 +08:00
t8y2 febfbdb5a5 feat: migrate all downloads to R2 CDN with race_download
- Remove update.hwdns.net proxy, add dl.dbxio.com R2 CDN
- Remove deprecated race_github_proxies, replace with race_download
- Update Tauri updater endpoints to prioritize R2
- Migrate update check, JDBC plugin download to race_download
- Add R2 upload job to publish-packages workflow
2026-05-14 16:45:55 +08:00
t8y2 242720cc3c feat: use race_download with R2 for agent/JRE downloads 2026-05-14 16:45:55 +08:00
t8y2 6994b4549e feat: add R2 CDN race_download function and remove update.hwdns.net proxy 2026-05-14 16:45:55 +08:00
Abeautifulsnow 919c3d58c1 feat(redis): add key statistics tracking for database browser (#269)
## 背景说明
为 Redis 数据库浏览器增加键统计功能,显示已加载 key 数/总 key 数,
并在动态加载、删除、清空时实时更新。

## 修改内容
- 新增 \RedisDatabaseInfo\ 结构体(db + keys),替代原来的 \Vec<u32>\
- \list_databases\ 返回每个 db 的 key 数量(解析 INFO keyspace)
- \scan_keys_page\ 增加 DBSIZE 调用获取 total_keys
- 前端 TreeNode 增加 loadedKeyCount/totalKeyCount 字段
- 树节点标签动态显示 \db0 (loaded/total)\ 格式
- 新增 \updateRedisDbKeyStats\ 在加载/删除/清空时更新统计

## 测试
- 建议补充 list_keyspace_databases 解析异常输入的单测
- 建议补充 redisDbLabel 边界值测试
2026-05-14 16:24:46 +08:00
t8y2 7faa9ec818 fix(mongo): complete agent fallback for all connection paths
- Fix connect_db and test_connection to also fallback to agent when
  native driver fails with wire version error
- Route MongoDB agent through mongo_ops in schema.rs list_databases
- Update MongoDB legacy hint text to mention Driver Manager
2026-05-14 16:16:33 +08:00
t8y2 1e8ce6673f fix(postgres): use pg_catalog instead of information_schema for table/schema listing
information_schema views apply permission filtering that causes empty
results on openGauss/GaussDB for non-owner users. Switching to pg_catalog
(pg_class + pg_namespace) matches the behavior of Navicat and DataGrip.
2026-05-14 15:14:07 +08:00
t8y2 a0bcb1d889 feat(mongo): fallback to agent driver for pre-4.2 MongoDB
When native Rust MongoDB driver fails with wire version error,
automatically fall back to the Java agent driver which supports
older MongoDB versions. All mongo_ops route through agent RPC
when the connection pool is Agent-backed.
2026-05-14 15:04:02 +08:00
t8y2 88ad579a27 feat(mongo): add filter/sort support and fix table view editing
- Add filter and sort parameters to MongoDB find_documents across the
  full stack (driver, ops, tauri cmd, web routes, frontend API)
- Add find/sort input bar to MongoDocBrowser table view via DataGrid
  search-bar slot, matching WHERE/ORDER BY positioning
- Fix table view editing: allow cell editing when customSave is provided
  (bypasses primary key requirement for MongoDB)
- Fix replace_one WriteError 66 by removing _id from replacement doc
- Align action buttons (refresh, add row, commit) to the right in grid
2026-05-14 14:43:26 +08:00
t8y2 12fec968fe fix(grid): remove WHERE and ORDER BY input placeholders 2026-05-14 14:05:22 +08:00
t8y2 04e6e03d38 docs(readme): rename WeChat to 微信群 and open community links in new tab 2026-05-14 12:18:34 +08:00
t8y2 527bcab245 docs(readme): add WeChat group badge to community section 2026-05-14 12:16:01 +08:00
t8y2 7e4274094d fix(updates): delay first update check by 10s after startup
Prevents the update checker from blocking UI rendering on startup,
especially for users with slow GitHub connectivity.
2026-05-14 12:02:20 +08:00
t8y2 b3bcb82586 feat(dependencies): add iana-time-zone to Cargo.lock 2026-05-14 11:46:31 +08:00
t8y2 081a356832 feat(plugins): support local JDBC plugin installation
Add a "local install" button that lets users install the JDBC plugin
from a local zip file when online download fails (e.g. draft release).
2026-05-14 11:42:21 +08:00
t8y2 3c0d0fbad9 fix(postgres): sync client timezone on connect
Set PostgreSQL session timezone to the client's local timezone via
after_connect, matching Navicat's behavior. (closes #262)
2026-05-14 11:34:27 +08:00
t8y2 51ee08a578 feat(completion): add MySQL JSON functions and common built-in functions
Add JSON_EXTRACT, JSON_SET, JSON_CONTAINS and other MySQL JSON functions,
plus common string, date, math, and crypto functions. (closes #263)
2026-05-14 11:22:53 +08:00
t8y2 abd3450814 feat(connection): make driver manager link clickable in install hint v0.5.6 2026-05-14 11:03:12 +08:00
t8y2 e61efdea12 fix(i18n): translate backend error messages in connection failure toasts 2026-05-14 11:00:52 +08:00
t8y2 43bd3a9ef8 feat(drivers): add upgrade all drivers button
Add a batch upgrade command that sequentially updates all drivers with
available updates, with per-driver progress tracking in the UI.
2026-05-14 10:58:47 +08:00
t8y2 56f04dc8d4 chore: bump version to 0.5.6 2026-05-14 02:26:28 +08:00
yavon007 eefa054778 perf(redis): speed up key browser scans (#256) 2026-05-14 02:21:53 +08:00
t8y2 433297e549 fix(connection): hide installed driver hint 2026-05-14 01:10:01 +08:00
t8y2 05effc8edf fix(informix): 支持表格直接编辑 2026-05-14 01:05:01 +08:00
t8y2 ce69af1de0 feat(updates): add hourly update badge 2026-05-13 23:47:20 +08:00
t8y2 3d7b149e53 feat(agents): support system Java runtime 2026-05-13 23:30:55 +08:00
t8y2 530cfa0b7c fix(grid): reserve header control width 2026-05-13 23:29:49 +08:00
t8y2 5832e1b194 refactor(frontend): centralize database feature capabilities 2026-05-13 22:14:33 +08:00
t8y2 298f57c160 refactor(core): centralize database capabilities 2026-05-13 22:14:21 +08:00
t8y2 8021990495 fix: add CSS containment to TreeItem to reduce virtual list flicker 2026-05-13 22:12:54 +08:00
t8y2 deca7dbb41 feat(grid): add draggable resize for transpose panel 2026-05-13 22:09:39 +08:00
t8y2 8d5c096895 fix(grid): keep row position after commit and preserve dirty cell color
- Don't reload data after committing edits, merge dirty data in place
- Preserve dirty cell yellow highlight when row/cell is selected
- Use original row data for search filtering to prevent row shifting
2026-05-13 22:02:14 +08:00
t8y2 e92f1ccdf5 feat(grid): replace toolbar search with Ctrl+F floating overlay
- Remove always-visible search box from toolbar
- Add floating search overlay triggered by Ctrl+F/Cmd+F
- Highlight matching cells in yellow, current match with ring
- Navigate matches with Enter/Shift+Enter
- Show match count (e.g. 1/5) in overlay
- Escape closes overlay and clears search
- Color WHERE label blue and ORDER BY label orange
2026-05-13 21:41:26 +08:00
t8y2 1eb5b89c17 fix: recognize DM/Dameng connections on Navicat import
Closes #254
2026-05-13 21:04:26 +08:00