Commit Graph
165 Commits
Author SHA1 Message Date
t8y2 08de206644 feat(sidebar): add visible database filters 2026-05-15 17:36:51 +08:00
t8y2 b15e22033e feat(editor): add searchable query selectors 2026-05-15 16:58:23 +08:00
skyler 0099e1a262 feat(ai): add table mentions
Add table mentions to AI context, Ask/Agent mode selection, and related UI/i18n fixes.
2026-05-15 16:46:54 +08:00
t8y2 1563173173 fix(editor): suppress completion after punctuation 2026-05-15 14:56:26 +08:00
t8y2 b06ab4f27f fix(connection): handle stale connection state 2026-05-15 14:39:03 +08:00
t8y2 2973bb1cd5 feat: add Highgo (瀚高) database support
Add full support for Highgo database, a PostgreSQL-compatible Chinese
domestic database. Includes database type definition, connection dialog,
agent driver mapping, and database icon.
2026-05-15 14:35:19 +08:00
t8y2 f91ccf89c4 fix(editor): save object source tabs contextually 2026-05-15 13:28:41 +08:00
t8y2 72dd4d728b fix(editor): route save shortcut by context 2026-05-15 13:10:43 +08:00
t8y2 c2da1f866c feat(objects): show functions and procedures in sidebar tree
Add list_objects support for agent-driven databases (Dameng, Oracle, etc.)
and ExternalDriver plugin connections. SQL Server dbo schema now uses
listObjects to display grouped object nodes including routines.

- Add list_objects RPC to JDBC agent plugin
- Add extract_agent and ExternalDriver branches in list_objects_core
- Add get_object_source support for agent connections
- Click function/procedure nodes to view source via object browser
- Fix duplicate tree node IDs when same name exists as view and function
2026-05-15 13:02:19 +08:00
t8y2 c8ba3dad69 fix(sidebar): preserve searched table children 2026-05-15 12:42:27 +08:00
t8y2 12500c0b2a fix(mongo): support shell find queries 2026-05-15 12:00:49 +08:00
t8y2 b523c39716 fix(connection): parse jdbc connection urls 2026-05-15 11:53:45 +08:00
t8y2 1f2fe25c44 fix(grid): align header at horizontal scroll end 2026-05-15 11:46:59 +08:00
t8y2 c56fe29e17 fix(sidebar): preserve nested pinned tree nodes 2026-05-15 11:26:19 +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
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 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 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 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 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 1eb5b89c17 fix: recognize DM/Dameng connections on Navicat import
Closes #254
2026-05-13 21:04:26 +08:00
t8y2 3803a20d9e fix(h2): add H2 to TREE_SCHEMA_TYPES for correct sidebar structure
H2 uses schemas (PUBLIC) so the sidebar needs the schema layer to
generate correct qualified table names in SQL queries.
2026-05-13 20:56:01 +08:00
t8y2 7f19a0376a fix(trino): support schema-aware table browsing and inserts 2026-05-13 20:46:27 +08:00
t8y2 2ba97869a1 fix(hive): gate row edits by transactional support 2026-05-13 20:17:15 +08:00
t8y2 ea6b2bb36c fix(hive): allow non-transactional grid edits 2026-05-13 20:04:42 +08:00
t8y2 3eb00b7fe2 fix(hive): quote table queries with backticks 2026-05-13 19:55:48 +08:00
t8y2 0172ee50be fix(neo4j): support table querying and editing 2026-05-13 19:30:00 +08:00
t8y2 cb00b27963 fix(sidebar): refresh grouped object nodes 2026-05-13 18:12:55 +08:00
t8y2 e9158390c1 feat(shortcuts): add search focus shortcut 2026-05-13 17:51:20 +08:00
t8y2 42501cc8fb fix(grid): allow generated insert columns 2026-05-13 17:37:29 +08:00
t8y2 80f33b1460 fix(sql): add sql server completions 2026-05-13 17:11:33 +08:00
t8y2 02b257dd0f fix(history): classify and virtualize entries 2026-05-13 17:07:56 +08:00
t8y2 4dc3a1b3c0 feat(redis): add sheet UI components, list set API, and member detail utils
- Add shadcn Sheet UI components for member detail drawer
- Add redisListSet API for editing list items by index
- Add member detail presentation helpers (format, highlight, edit, resize)
- Add tests for redis value presentation
2026-05-13 13:54:59 +08:00
t8y2 fea3552774 feat: add Redis member detail viewer 2026-05-13 11:12:32 +08:00
t8y2 047e8fc2f1 fix: filter SQL completion tables 2026-05-13 11:01:59 +08:00
t8y2 b0a808bc14 feat: add system theme mode 2026-05-13 10:48:34 +08:00
t8y2 7ce2cf2163 feat: add 12 new agent-driven databases, migrate GaussDB to agent
Add H2, Snowflake, Trino, Hive, DB2, Informix, Neo4j, Cassandra,
BigQuery, Apache Kylin, SunDB as new agent-driven database types.
Migrate GaussDB from native rust-gaussdb to JDBC agent.

Remove rust-gaussdb dependency. Total agent-driven databases: 17.
2026-05-13 09:47:22 +08:00
t8y2 c50323cd6c feat(agent): migrate Oracle to JDBC agent, add install progress bar and toast
- Migrate Oracle from rust-oracle to JDBC agent (ojdbc11)
- Delete oracle_driver.rs (567 lines) and rust-oracle dependency
- Add streaming download progress bar for driver/JRE installation
- Add toast notifications for install/uninstall success/failure
- Add "update available" badge in driver manager
2026-05-13 09:20:06 +08:00
t8y2 e85f9df1fe feat(agent): pluggable database drivers via JDBC agent subprocess
Migrate domestic database support (DaMeng, KingBase, Vastbase, GoldenDB) from
built-in ODBC/protocol drivers to standalone Java agent processes communicating
via stdin/stdout JSON-RPC 2.0. Agents are distributed as fat JARs with embedded
JDBC drivers, downloaded on-demand from GitHub Releases with proxy fallback.

- Add AgentDriverClient for subprocess lifecycle + JSON-RPC communication
- Add AgentManager for JRE/JAR install state management
- Add Tauri commands for driver install/uninstall/list
- Add DriverManager UI panel in settings dialog
- Extend DatabaseType with Kingbase, Vastbase, Goldendb variants
- Migrate Dameng from ODBC (dm_driver.rs) to JDBC agent
- Delete dm_driver.rs (343 lines)
- Add GitHub proxy fallback for downloads (update.hwdns.net, gh-proxy.org)

Agent code lives at https://github.com/t8y2/dbx-agents
2026-05-13 04:44:52 +08:00
t8y2 74ad4369f4 perf(ai): parallelize schema metadata loading for AI context
buildAiContext previously loaded table metadata sequentially in a
for-loop (3 API calls per table × up to 50 tables = 150 serial
round-trips). Now uses Promise.all to fetch all tables' columns,
indexes, and foreign keys concurrently, reducing total wait time
from O(n × latency) to O(latency).
2026-05-13 01:15:59 +08:00
t8y2 9ba2976d11 feat: export entire database as SQL file
Add a new "Export Database" feature accessible from the sidebar
right-click menu on database/schema nodes. Generates a .sql file
containing CREATE TABLE DDL, batched INSERT statements, and
view/procedure/function source code.

Backend (database_export.rs):
- Stream-writes SQL to file with configurable batch size
- Supports all SQL database types via existing DDL/INSERT generators
- Progress events with cancellation support
- Graceful error handling (continues on per-table failures)

Frontend (DatabaseExportDialog.vue):
- Connection/database/schema selector
- Checkboxes: structure, data, objects
- Real-time progress with current table and row count
- Cancel button

Wired up through Tauri commands, Web SSE routes, and API layer.
2026-05-13 01:08:16 +08:00
t8y2 bf58045a28 Revert "feat(cli): add dbx-cli runtime and agent integration (#229)"
This reverts commit 58c47adef5, reversing
changes made to 3bcec8ef7f.
2026-05-12 17:31:54 +08:00
skyler 58c47adef5 feat(cli): add dbx-cli runtime and agent integration (#229)
Feature/dbx cli runtime
2026-05-12 17:22:36 +08:00
t8y2 62a79ab611 fix(grid): exclude columns with defaults from NOT NULL validation
The save validator rejected NULL in NOT NULL columns even when the
column has a DEFAULT (e.g. serial/sequence). Skip those columns so
cloned rows with auto-increment PKs pass frontend validation.
2026-05-12 17:00:42 +08:00
Illuminated2020 af2d874883 fix: harden handoff status transitions 2026-05-12 16:52:35 +08:00
Illuminated2020 780311a542 feat(agent-runtime): 接入 handoff 审阅状态
- 支持 handoff queued/shown 状态加载、mark shown 和 reject 持久化

- 为 Tauri/API/Pinia store 接入 handoff 审阅状态流转

- 新增 AgentHandoffDialog 审阅 UI,拒绝操作不执行 SQL
2026-05-12 16:52:34 +08:00