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
Illuminated2020
6518061008
fix(agent-runtime): 启动恢复后同步运行时快照
2026-05-12 16:52:34 +08:00
Illuminated2020
c144330d79
feat(runtime): 同步前端状态到 agent runtime
...
- 新增 snapshot 构造 helper 和 agent runtime store
- 同步 active tab、连接、库、schema、SQL、选中 SQL、表格选择和结果采样
- 补充 snapshot payload 组装测试
2026-05-12 16:51:34 +08:00
t8y2
90e32ec683
fix(grid): skip null columns in INSERT so database defaults apply
...
When cloning or adding a row, null columns (e.g. auto-increment PKs)
were explicitly inserted as NULL, violating NOT NULL constraints.
Omit them so the database DEFAULT (sequence, now(), etc.) kicks in.
2026-05-12 16:45:53 +08:00
t8y2
53a45330a6
feat(sidebar): group objects by type and add Object Browser context menus ( #222 )
...
Sidebar tree now groups database objects into Tables, Views, Procedures,
and Functions folders instead of a flat list. Empty groups are hidden
and each group shows its item count.
Object Browser rows now have right-click context menus with actions
like View Data, New Query, View Source, and Drop.
2026-05-12 14:33:52 +08:00
t8y2
368fa5a102
feat(redis): add bulk operations and command runner
2026-05-12 13:38:43 +08:00
runstone
3652db8fa3
feat(connection): 为不同数据库类型展示各自对应的 connection URL placeholder
...
## 修改内容
- 新增 connectionUrlPlaceholder 纯函数于 connectionPresentation.ts,根据 db_type 返回对应 URL 格式
- ConnectionDialog.vue 中引用该函数替换原有统一的 i18n placeholder
- 新增 20 个单元测试覆盖所有数据库类型及边界场景
2026-05-12 10:21:19 +08:00
Abeautifulsnow
dddb813fc6
refactor(grid): 提取 cellValue 格式化到共享模块并增加测试 ( #218 )
...
将 CellValue 类型和 displayCellValue(原 formatCell)提取到
src/lib/cellValue.ts,DataGrid.vue 和 useDataGridExport.ts 统一引用,
移除 composable 中冗余的 formatCell 参数传递。
2026-05-11 18:56:08 +08:00
t8y2
e4c1d6639b
fix(sidebar): 保持表列表滚动显示
2026-05-11 17:15:36 +08:00
t8y2
cab0e79dad
fix(oracle): 修复表数据加载与编辑
2026-05-11 16:35:59 +08:00
t8y2
7c38af6cbb
fix(oracle): speed up schema diff and add comment sync ( closes #198 )
...
- Replace ALL_OBJECTS with ALL_TABLES UNION ALL_VIEWS in list_databases
query to avoid slow full scan on large Oracle instances
- Add loading indicator in SchemaDiffDialog during database/schema loading
- Generate COMMENT ON TABLE/COLUMN statements in schema diff sync SQL
- Compare column and table comments in diff detection
2026-05-11 12:59:07 +08:00
t8y2
cb70625bd8
fix(objects): save SQL Server object source definitions
2026-05-11 12:17:18 +08:00
t8y2
03bea705e7
feat(objects): edit database object source
2026-05-11 11:48:46 +08:00
t8y2
f588e03a6b
fix(sidebar): require double click to open object browser
2026-05-11 11:03:18 +08:00
t8y2
d4c2b4af7b
fix(oracle): 简化编辑器选择器并支持 schema 切换 ( closes #205 )
...
Oracle/Dameng 连接隐藏多余的 Database 选择器,只显示 Schema 选择器。
查询执行时通过 ALTER SESSION SET CURRENT_SCHEMA 切换 schema 上下文。
2026-05-11 11:00:16 +08:00
t8y2
e03ce491af
feat(ai): add guarded SQL auto execution
2026-05-11 02:27:56 +08:00
t8y2
9355fa7e93
fix(sidebar): 修复侧边栏树状态显示
2026-05-11 02:16:36 +08:00
t8y2
14680238b8
feat: editor enhancements, DataGrid refactor, and sidebar improvements
...
- Add bracket auto-close and matching to SQL editor (closeBrackets, bracketMatching)
- Show truncation warning banner when query results exceed 10,000 rows
- Extract shared export format functions (CSV/JSON/SQL INSERT) to lib/exportFormats.ts
- Add progressive rendering to sidebar tree (50-node cap with "show more")
- Fix connection node expanding before connect succeeds
- Split DataGrid.vue (3177→2535 lines) into 4 composables:
useDataGridExport, useDataGridColumnResize, useDataGridSelection, useDataGridEditor
2026-05-11 01:08:07 +08:00
t8y2
c43ab681cd
test: add backend API contract coverage
2026-05-10 22:34:37 +08:00
t8y2
c6b6ba5769
feat(connections): import DBeaver connections
2026-05-10 22:10:30 +08:00
t8y2
9661c60812
feat(connections): import Navicat NCX files
2026-05-10 21:51:48 +08:00
t8y2
6d513afc16
feat(objects): show routines in object browser
2026-05-10 21:14:16 +08:00
t8y2
0e0195f734
feat(objects): add virtual object browser
2026-05-10 18:32:24 +08:00
t8y2
f5b36a0f60
feat(history): track database activity
2026-05-10 14:18:20 +08:00
t8y2
10bfede1c7
feat(jdbc): add optional JDBC plugin support
2026-05-10 12:57:38 +08:00
t8y2
8664cc5b48
feat(grid): add clipboard shortcuts
2026-05-10 10:22:17 +08:00
t8y2
0b376c234f
feat(ui): add connection color tinting
2026-05-10 09:19:14 +08:00
t8y2
b013a2ac29
feat(sql): persist SQL library in app database
2026-05-10 00:41:17 +08:00
t8y2
cac383e6bf
feat(sql): add saved SQL library
2026-05-10 00:33:25 +08:00
t8y2
97b77ec46d
feat(diff): add data compare and schema sync coverage
2026-05-09 23:44:49 +08:00
t8y2
a878ec203a
feat(data): support connection URLs and XLSX export
2026-05-09 23:11:15 +08:00
t8y2
bd58ab6312
fix(query): persist unsaved query tabs
2026-05-09 22:50:06 +08:00
t8y2
afb177db85
fix(connection): hide system database objects
2026-05-09 19:50:28 +08:00
t8y2
9b81fa5f38
fix(editor): improve SQL Server editing support
2026-05-09 18:17:56 +08:00
t8y2
5c52560368
feat(schema): 增加数据库对象列表缓存
2026-05-09 17:36:20 +08:00
t8y2
1fd1cb10eb
perf(sidebar): 优化侧边栏搜索匹配性能
2026-05-09 17:36:09 +08:00
t8y2
6a5dd3b51b
feat(sidebar): create connections from group menu
2026-05-09 16:27:25 +08:00
t8y2
af029daf57
fix(db): normalize default database handling
2026-05-09 15:53:06 +08:00
Bacon2994
ce2f97a175
fix(sidebar): 修复默认库过滤数据库树 ( #175 )
2026-05-09 14:42:24 +08:00
t8y2
94927faa4c
feat: add CROSS APPLY / OUTER APPLY support for SQL Server completion ( #168 )
2026-05-09 12:14:42 +08:00
t8y2
1a1f128f2b
feat: Redis browser overhaul — Navicat-style table, editing, and pagination
...
- Unified key table with columns: key, type, value preview, size, TTL
- Top-bottom split layout: key table above, value detail below
- Virtual scrolling via RecycleScroller for large key sets
- ZSet editing: add/remove members with scores
- TTL inline editing: click badge to modify expiration
- Batch key deletion with checkbox selection
- Paginated loading for Hash/Set/ZSet/List values (HSCAN/SSCAN/ZSCAN)
- Debounced auto-search (400ms) for key filtering
- Value previews fetched during key scan for instant display
2026-05-09 11:45:50 +08:00
t8y2
d6e273e136
feat: custom titlebar with integrated window controls
...
- macOS: overlay mode with native traffic lights, toolbar as drag region
- Windows/Linux: frameless window with custom minimize/maximize/close buttons
- Double-click toolbar to toggle maximize
2026-05-09 10:44:34 +08:00
t8y2
9ea098bd57
refactor: use icons for tab mode and Navicat-style tab titles
...
Replace text badges (SQL/表) with icons (Code2/Table2), remove
connection color dot, and adopt table@database.schema naming.
2026-05-09 00:21:56 +08:00