Commit Graph
50 Commits
Author SHA1 Message Date
Eddy Lei a5e46fd659 feat(query): show database server messages in query results 2026-08-07 15:18:32 +08:00
lizujie 2e9dcdc26b fix(mcp): preserve DML results and returning rows 2026-08-02 16:35:04 +08:00
amwps290 a6a072294a feat(spatial): add SRID-aware geometry previews 2026-07-31 22:31:51 +08:00
Guoyu Su d0a55b1b07 fix(sqlite): normalize database context routing 2026-07-30 03:12:02 +08:00
dbin0123 002a2c85c0 feat(schema-diff): preserve dialect-specific DDL semantics 2026-07-29 03:47:19 +08:00
zipg 89c69ebe65 fix(completion): include PostgreSQL function parameters 2026-07-28 21:25:30 +08:00
weiyong a49137ae8b feat(elasticsearch): add custom checks and tabular REST results 2026-07-27 18:55:37 +08:00
t8y2 083ffe7a35 fix(ci): split checks and enforce warning-free Rust builds 2026-07-20 13:45:59 +08:00
二丫讲梵 85836f8e95 feat(sqlite): support attached database schema changes 2026-07-20 10:51:16 +08:00
DengQingNian e429c8945b feat(mysql): edit column charset and collation 2026-07-10 15:13:57 +08:00
onenewcode 1b13d2176b fix(metadata): unify enum column metadata 2026-07-08 21:02:53 +08:00
Guoyu Su 016821122c fix(sqlite): open SQLCipher databases with configured key (#2807) 2026-07-08 00:13:25 +08:00
t8y2 df1f53acb8 feat(sqlite): support WSL UNC network paths 2026-07-07 10:41:12 +08:00
t8y2 e84fb12fcc feat(sqlite): support SQLCipher encrypted databases 2026-07-06 14:24:28 +08:00
t8y2 564c5beeff fix(sqlite): decode text-affinity blobs 2026-07-06 13:56:05 +08:00
t8y2 7ce0addb61 fix(sqlite): add if and unistr compatibility functions 2026-06-28 12:16:07 +08:00
t8y2 cebb39cb80 feat(completion): add scoped metadata assistant 2026-06-24 00:40:28 +08:00
t8y2 49705a1a8f feat(sqlite): support custom database file suffixes 2026-06-23 20:15:06 +08:00
t8y2 558b9301a2 feat(sqlite): create empty database file on connect if missing 2026-06-16 13:55:44 +08:00
t8y2 6e57197072 fix(sqlite): recognize INTEGER PRIMARY KEY as autoincrement in data grid save 2026-06-13 02:30:30 +08:00
t8y2 a858a6bd18 feat(mysql): edit foreign keys and triggers 2026-06-12 12:29:46 +08:00
John Jin 354d21d086 feat(grid): 列是否可排序 (#935) 2026-06-09 16:43:53 +08:00
54de28d583 feat(grid): show column data types in result header (#669) (#820)
The data grid header only showed column names, and column types were
available only via tableMeta (open-table view). Arbitrary query results
(e.g. `select * from pg_depend`) therefore showed no type at all, which
is exactly the case the reporter hit.

Backend: add `column_types` to QueryResult (serde-default, backward
compatible) and populate it for the native drivers where the type is
readily available — PostgreSQL, MySQL, SQL Server, ClickHouse. Other
drivers leave it empty for now (no behavior change); schemaless stores
(Mongo/Redis/ES) have no column types.

Frontend: render a type row under each column name in the grid header,
color-coded by type. The type is resolved from tableMeta first (richer,
includes precision) and falls back to the query result's column_types by
index. Add a `showColumnTypesInHeader` setting (default on) and keep the
msgpack tab-result cache compatible. The source-selection logic is
extracted to lib/dataGridColumnType.ts with unit tests.

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 22:45:46 +08:00
e9ee982843 Preserve ordered SSH and proxy connection layers (#802)
* Preserve ordered SSH and proxy connection layers

Replace separate SSH/proxy connection fields with ordered transport_layers while keeping legacy migration and secret fallback paths intact. The UI now edits SSH tunnel/proxy layers in configured order without a global SSH enable gate.

Constraint: Existing saved SSH tunnels, proxy settings, and secret-store keys must continue to load through migration.
Rejected: Folding proxy fields into SshTunnelConfig | mixes proxy semantics into an SSH-specific structure.
Confidence: high
Scope-risk: moderate
Directive: Keep SSH/proxy structs provider-specific; put cross-layer chaining in transport_layer_tunnel orchestration.
Tested: git diff --check; cargo fmt --check; cargo check --workspace; cargo test -p dbx-core --lib; vue-tsc --noEmit --project apps/desktop/tsconfig.json; tsc -p packages/node-core/tsconfig.json --noEmit; oxlint --vue-plugin apps/desktop/src; tsx --tsconfig apps/desktop/tsconfig.json --test packages/app-tests/*.test.ts; tsx --test packages/node-core/tests/*.test.ts
Not-tested: Live external SSH/proxy/database endpoint integration.

* Keep ordered transport changes CI-format clean

Constraint: CI pnpm check failed only on oxfmt formatting for two desktop TypeScript files
Confidence: high
Scope-risk: narrow
Directive: Keep generated/editor config changes out of this PR fix commit
Tested: PATH="/Volumes/data/code/rust/dbx/node_modules/.bin:/Users/hekx/.codex/tmp/arg0/codex-arg0nuL34n:/Users/hekx/.cargo/bin:/Users/hekx/.local/bin:/opt/homebrew/opt/llvm/bin:/opt/homebrew/opt/libpq/bin:/Volumes/data/Users/hekx/.opencode/bin:/Users/hekx/.bun/bin:/Volumes/data/sdks/flutter/bin:/Volumes/data/Users/hekx/.cargo/bin:/Users/hekx/.local/bin:/opt/homebrew/opt/llvm/bin:/opt/homebrew/opt/libpq/bin:/Volumes/data/Users/hekx/.opencode/bin:/Users/hekx/.bun/bin:/Volumes/data/Users/hekx/Library/pnpm:/Volumes/data/sdks/flutter/bin:/Volumes/data/Users/hekx/.cargo/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/go/bin:/opt/homebrew/bin:/opt/podman/bin:/Applications/Ghostty.app/Contents/MacOS" rtk node scripts/run-check.mjs
Not-tested: GitHub Actions rerun not observed locally

* Keep Rust checks warning-clean

Constraint: cargo clippy --workspace --all-targets --all-features -- -D warnings failed across core, web, and tauri crates
Rejected: Broad workspace-level clippy suppression | kept allows local to long-argument command/API boundaries
Confidence: high
Scope-risk: moderate
Directive: Preserve src-tauri/tauri.conf.json as an unrelated local change outside this commit
Tested: rtk cargo clippy --workspace --all-targets --all-features -- -D warnings
Not-tested: Full GitHub Actions rerun not observed locally

* Reuse existing proxy tunnels on retry

Proxy tunnel startup now mirrors SSH tunnel behavior by returning the existing local port for an active connection id instead of replacing the managed handle. A second map check aborts a just-spawned duplicate handle if a concurrent retry won the race before insertion, preventing orphaned listeners while keeping the change narrow.

Constraint: Reviewer requested proxy tunnel behavior align with SSH local-port reuse

Rejected: Always overwrite and abort the previous handle | less consistent with SSH behavior and churns listeners during retries

Confidence: high

Scope-risk: narrow

Tested: cargo fmt --check --all

Tested: cargo test -p dbx-core db::proxy_tunnel::tests::start_tunnel_reuses_existing_local_port

Tested: cargo clippy -p dbx-core --all-targets -- -D warnings

---------

Co-authored-by: hekx <hekx@momandeMac-mini.local>
Co-authored-by: caisin <caisin@caisins-Mac-mini.local>
2026-06-06 23:22:29 +08:00
t8y2 84f83d4d49 ci: speed up rust checks 2026-06-03 12:43:08 +08:00
t8y2 a54c8cfd93 feat(sql): suggest join conditions from foreign keys 2026-06-02 18:08:06 +08:00
t8y2 2f1a6875b7 feat(sqlite): support loading extension libraries 2026-06-01 22:40:29 +08:00
vrustx 7c0ed986c1 fix: enable SQLite math functions (#553) 2026-05-30 23:22:44 +08:00
vrustx fa08ed56a0 fix: display partition tables hierarchically 2026-05-30 21:51:21 +08:00
vvrf 3a595c8efb fix: render binary values as hex (#465) 2026-05-26 22:46:00 +08:00
t8y2 b77c02c829 refactor(sqlite): migrate to rusqlite, fix sql statement splitter
Fix SqlStatementSplitter.push_current_statement to preserve leading
comments with their following SQL statement instead of stripping them.
2026-05-24 15:47:36 +08:00
t8y2 777cb11081 fix(sqlite): rewrite if()→IIF() and substring()→substr() for cross-DB view compatibility 2026-05-23 23:26:32 +08:00
t8y2 bae487867b feat(connection): support in-memory sqlite and duckdb 2026-05-19 11:33:17 +08:00
t8y2 261d43c1b7 fix(grid): respect page size row limits 2026-05-19 11:31:38 +08:00
t8y2 f4566221b1 feat(query): add paged result fetching 2026-05-17 00:10:18 +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
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 feff43c459 style: 恢复 hook 后 Rust 格式化 2026-05-12 16:49:29 +08:00
Illuminated2020 5b62f936d1 style: 应用 Rust 格式化 2026-05-12 16:49:29 +08:00
Illuminated2020 4267c6f1e0 style: 应用 CLI 相关 Rust 格式化 2026-05-12 16:49:29 +08:00
Illuminated2020 2f23df9675 fix(cli): 修复 headless 查询安全与 limit 下推
- 对 schema snapshot 和 safe-query 的内部失败使用安全错误映射

- 为 SQLite/DuckDB 嵌入式连接展开 tilde 路径

- 新增 limit-aware 查询执行接口并让 safe-query 传入读取上限

- 补充 SQLite 大结果集、错误清洗和 tilde 路径回归测试
2026-05-12 16:49:28 +08:00
t8y2 f4f3193994 fix(sql): detect result queries after comments 2026-05-10 00:48:24 +08:00
t8y2 f9993dd3f8 perf(query): stream rows with result limit 2026-05-09 15:57:55 +08:00
t8y2 2083f48add fix: preserve bigint precision for values exceeding JS safe integer range
Closes #137
2026-05-07 18:12:23 +08:00
t8y2 75d7edda27 fix: add missing comment field to TableInfo initializers
The comment field was added to TableInfo but not updated in
clickhouse, gaussdb, oracle, sqlite, sqlserver, dm, and schema drivers.
2026-05-07 14:35:09 +08:00
Agent-43 80e1cf927e Formatted 2026-05-05 13:58:14 +05:30
Agent-43 419a3cf069 issue-88 fix 2026-05-05 12:12:50 +05:30
t8y2 41445ff474 chore: add rustfmt.toml and apply unified code formatting 2026-05-05 14:16:18 +08:00
t8y2 edcdd652ae fix(connection): reduce failed connection timeout
Closes #86
2026-05-05 14:13:07 +08:00
t8y2 cf4f25fd52 feat: extract dbx-core crate for web deployment support
Refactor all database drivers, query execution, schema operations, and
business logic into a shared `dbx-core` crate. The Tauri desktop app
becomes a thin shell delegating to dbx-core, enabling future web and
CLI frontends to reuse the same core.
2026-05-05 03:16:24 +08:00