69 Commits
Author SHA1 Message Date
t8y2 3f4521f550 chore(release): bump version to 0.5.28 2026-06-03 12:55:04 +08:00
t8y2 9adf2b8d00 fix(dameng): deduplicate column metadata 2026-06-03 12:38:36 +08:00
t8y2 cc74fabad7 feat(completion): suggest database routines 2026-06-03 11:27:31 +08:00
bea3b45fd8 perf(export): 优化导出ui体验和性能
* docs(getting-started): set brew upgrade to use official homebrew cask

* fix(mysql): make admin show handling dialect aware

* fix(data-compare): create missing target tables during sync

* feat(sql): suggest join conditions from foreign keys

* fix(sidebar): use filtered order for range selection

* fix(tabs): close connection tabs on disconnect

* fix(sqlserver): execute cte queries without wrapping

* fix(opengauss): open table structure editor

* perf(export): 优化导出ui体验和性能

* perf(export): 优化导出ui体验和性能

* fix(export): normalize status casing and fix web route issues

- Add missing table export web routes (POST /export/table, SSE progress, cancel)
- Fix tauri table export Promise to wait for terminal events
- Change cancel to return Ok(()) so it doesn't get overwritten as Error
- Unify ExportStatus to PascalCase across all frontend components
- Fix http.ts table export POST body wrapping
- Fix duplicate pub mod in dbx-web routes

* fix(export): return export file for browser download in web mode

Write table export output to temp dir, register a download endpoint,
and trigger browser download from the frontend when export completes.

* fix(export): avoid table export progress races

---------

Co-authored-by: Francesco Lucarelli <francesco06lucarelli@gmail.com>
Co-authored-by: t8y2 <1156263951@qq.com>
Co-authored-by: dqn <someonegdeng@qq.com>
2026-06-03 10:39:11 +08:00
t8y2 b10e7cb1cf fix(data-compare): create missing target tables during sync 2026-06-02 17:46:30 +08:00
t8y2 6fc8364157 chore(release): bump version to 0.5.27 2026-06-02 04:58:29 +08:00
t8y2 ac7a5b7576 feat(desktop): drop tree schema objects 2026-06-02 00:33:58 +08:00
t8y2 46c05b811f feat(connection): support multi-hop ssh tunnels 2026-06-01 14:48:33 +08:00
t8y2 738696f38e chore(release): v0.5.26 2026-06-01 00:50:24 +08:00
t8y2 da6074caaa refactor(sql-file): share import executor 2026-05-31 11:58:15 +08:00
t8y2 f5cc81f761 perf(sql-file): optimize import batching 2026-05-31 11:14:14 +08:00
t8y2 74b4acba19 chore(release): bump version to 0.5.25 2026-05-30 13:23:42 +08:00
t8y2 13d52514d9 feat(connection): close database scoped pools 2026-05-30 12:34:14 +08:00
t8y2 41e23cccc3 feat(desktop): improve sql file preview 2026-05-30 11:22:17 +08:00
t8y2 b6ac1f177b refactor(agent): consolidate driver architecture 2026-05-29 23:29:27 +08:00
t8y2 4fd8d895f4 fix: cargo fmt formatting in dbx-web main.rs 2026-05-29 15:46:32 +08:00
t8y2 6c0db6f517 feat: add "Copy as SQL ALTER" to DataGrid column header context menu
Right-click a column header in the data grid to copy the ALTER TABLE
statement for that column, making it easy to replicate column definitions
across databases. Supports all major dialects (MySQL, Postgres, SQL Server,
Oracle, ClickHouse, SQLite, DuckDB, H2).

Closes #516
2026-05-29 15:09:10 +08:00
t8y2 521195c801 chore(release): v0.5.24 2026-05-29 02:03:18 +08:00
徐文彬 5ea146e08e fix(mongodb): guard aggregate execution paths 2026-05-28 21:29:08 +08:00
徐文彬andClaude Opus 4.7 c56bcb8e2d feat(mongodb): 支持聚合查询、批量写入和 MCP 集成
- 桌面端:解析 db.<集合>.aggregate([...]) shell 语法,新增 mongoAggregateDocuments
  接口(Tauri + HTTP);mongo 入口统一补 ensureConnected;ObjectId(...) 自动
  转换为 {"\$oid":"..."} 扩展 JSON 表示。
- dbx-core:新增 aggregate_documents、insert/update/delete_documents bulk
  操作;扩展 JSON 解析识别 \$oid;schema list_tables_core 补 MongoDB/Elasticsearch
  分支返回 COLLECTION/INDEX。
- dbx-web / Tauri 命令 / MCP bridge:注册 4 个新 mongo 路由
  (aggregate/insert/update/delete documents);MCP bridge 新增 mongo HTTP 入口
  和 lazy 连接复用。
- node-core (MCP 后端):mongodb 走专属 executeQuery / listTables /
  describeTable;read-only 默认 + DBX_MCP_ALLOW_WRITES /
  DBX_MCP_ALLOW_DANGEROUS_SQL 两级开关;aggregate 含 \$out/\$merge 走同样开关;
  describeTable 抽样 20 条文档推断字段类型,_id 自动标记主键。
- mcp-server:mongodb 跳过 SQL safety evaluator(mongo shell 与 SQL 语法
  不兼容),改由 backend 做命令级 gating;附注释。
- AiAssistant 同时 emit replaceSql + executeSql 让编辑器和结果保持一致;
  App.vue ensureQueryTab 在无上下文时回退到连接默认库;aiMessageRender
  识别 mongodb / mongo 代码块。
- Review 修复:合并两份重复的 evaluateMongo*Safety 实现(同时修复 web-backend
  用字符串比较导致空 filter 检查可被空格绕过的 bug);ObjectId 正则兼容
  单/双引号;mongo_ops 错误文案 "MCP" 改为 "bulk";补 aggregate 解析测试用例。

测试:pnpm test 911 通过;vue-tsc 通过;cargo check -p dbx-core 通过。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 21:25:43 +08:00
t8y2 e725dd0379 fix(connection): keep config after disconnect 2026-05-28 18:48:53 +08:00
t8y2 486d9bb3a6 fix(connection): move query timeout into per-connection settings 2026-05-28 18:18:45 +08:00
t8y2 d35aeaa08c fix: continue transfer after table failure 2026-05-28 16:11:29 +08:00
t8y2 f40745fbd1 chore: bump version to 0.5.23 2026-05-28 01:32:54 +08:00
t8y2 0ffc0dbca8 fix(ci): add missing redis cluster test config field 2026-05-28 01:20:24 +08:00
t8y2 c952c65483 feat: upgrade data compare sync planning 2026-05-28 01:05:15 +08:00
t8y2 eefe17f480 chore: bump version to 0.5.22 2026-05-27 03:15:09 +08:00
t8y2 7a93e69d7b fix: add font runtime deps to docker image 2026-05-26 21:42:02 +08:00
t8y2 195e6b218f fix: decode sql files before execution 2026-05-26 15:43:07 +08:00
t8y2 c2d5b3aea3 chore: bump version to 0.5.21 2026-05-26 12:41:23 +08:00
t8y2 6d6ba34cac fix: satisfy clippy for jdbc plugin upload 2026-05-26 11:39:57 +08:00
t8y2 6e0f4e1dc3 feat: enable driver management on web version
- Extract JDBC driver/plugin logic from Tauri commands to dbx-core::jdbc
- Add web API routes for JDBC drivers, JDBC plugin, Agent JAR import, system fonts
- Upgrade zip crate from v2 to v4 in dbx-core
- Replace http.ts stubs with real HTTP calls (support File and string paths)
- Remove isWeb restrictions in DriverStoreDialog, add browser file picker support
- Fix Mac traffic light inset incorrectly applied on web version
- Show driver management toolbar button on web version
2026-05-26 01:23:26 +08:00
t8y2 fe2ecd60d2 feat: add ClickHouse TLS connection support 2026-05-25 21:07:22 +08:00
t8y2 792c816a17 feat: make query timeout configurable via global settings (default 30s)
Add queryTimeoutSecs to editor settings with UI control in the settings
dialog. 0 means no timeout. Applied to all query execution paths including
sidebar table data loading and EXPLAIN queries.

Closes #441.
2026-05-25 18:30:55 +08:00
t8y2 d326cb0ced fix: scope query connections by client session 2026-05-25 17:23:36 +08:00
WangXinandClaude Opus 4.7 67572cd685 fix(mysql): degrade gracefully when routines lookup fails
Split the object browser query into separate TABLES and ROUTINES
fetches. Some MySQL-compatible servers (sharding proxies, restricted
accounts, OceanBase/TiDB variants) reject information_schema.ROUTINES
with ER_UNKNOWN_ERROR (1105 HY000), which previously took down the
entire object browser. Now ROUTINES failures are logged and the user
still gets tables and views.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 11:10:17 +08:00
t8y2 1f666f99b3 fix(duckdb): support multiple schemas beyond default "main"
DuckDB was not recognized as a schema-aware database, so only the
default "main" schema was shown in the object tree and schema selector.
Added DuckDB to schema-aware type lists, implemented schema listing via
information_schema.schemata, and replaced hardcoded table_schema = 'main'
with parameterized queries.
2026-05-24 10:26:09 +08:00
t8y2 d326519247 fix(core): reduce async blocking and allocation hotspots 2026-05-23 14:45:45 +08:00
t8y2 658a14f290 ci: split CI jobs, add clippy/test, upgrade actions
- Split single check job into frontend / rust / jdbc parallel jobs
- Add concurrency group to cancel redundant CI runs
- Add pnpm cache via setup-node
- Add cargo clippy and cargo test to CI
- Unify Node version to 22 across all workflows
- Upgrade pnpm/action-setup to v6
- Fix clippy never_loop errors (while let → if let)
2026-05-23 14:11:46 +08:00
t8y2 b088858dcf chore(release): bump version to 0.5.19 2026-05-23 13:36:31 +08:00
t8y2 7a3ff3bff9 refactor(sql): move builders to Rust 2026-05-23 01:28:52 +08:00
t8y2 d7dc4c959a feat(driver-store): add storage usage breakdown 2026-05-22 18:05:59 +08:00
t8y2 3f14585a2a feat(diff): move schema and data diff to Rust 2026-05-22 16:20:11 +08:00
t8y2 c91fbc9fd6 feat(export): move text exports to Rust 2026-05-22 15:41:33 +08:00
t8y2 209eff528d feat(query): move grid save prep to Rust 2026-05-22 15:31:50 +08:00
t8y2 cb3e1d6e9f feat(query): move SQL editability analysis to Rust 2026-05-22 15:09:31 +08:00
t8y2 1ef09e8975 fix(app-settings): persist and prune pinned tree nodes 2026-05-22 14:28:40 +08:00
t8y2 0e189ba0cc feat(editor): add SQL semantic diagnostics 2026-05-22 14:22:58 +08:00
t8y2 7353f126d8 chore(release): bump version to 0.5.18 2026-05-22 12:11:14 +08:00
t8y2 a08d2aaab9 fix(agents): align managed JRE with Java 21 drivers 2026-05-21 22:11:00 +08:00