Commit Graph

212 Commits

Author SHA1 Message Date
t8y2 660ba07264 feat(sidebar): add compact object display mode 2026-05-29 01:17:46 +08:00
t8y2 c7b7bed140 feat(editor): add extended column properties support for MySQL, PostgreSQL, and SQL Server
MySQL: AUTO_INCREMENT, ON UPDATE CURRENT_TIMESTAMP
PostgreSQL: GENERATED AS IDENTITY (BY DEFAULT / ALWAYS)
SQL Server: IDENTITY(seed, increment)
2026-05-29 00:41:51 +08:00
t8y2 e15e99aeb5 fix(ci): make Emitter import unconditional and update defineExpose test regex
- Move Emitter import out of macos-only cfg so emit() works on Linux
- Update test regex to include scrollCursorIntoView in defineExpose
2026-05-28 22:09:54 +08:00
徐文彬 5ea146e08e fix(mongodb): guard aggregate execution paths 2026-05-28 21:29:08 +08:00
徐文彬 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 f45ee8f272 feat(settings): keep dialog open after apply 2026-05-28 20:36:56 +08:00
t8y2 f41601e4dc fix(grid): improve column selection and transpose highlights 2026-05-28 20:09:35 +08:00
t8y2 c124ce3b69 fix(desktop): persist tray icon preference 2026-05-28 19:21:43 +08:00
t8y2 3f64e830f8 fix(grid): show cell highlight for row multi-select 2026-05-28 19:03:21 +08:00
t8y2 30a48a878c fix(query): reload connection config before execute 2026-05-28 18:54:51 +08:00
t8y2 a036ea1e8d fix(grid): sync value editor with selected cell 2026-05-28 18:31:57 +08:00
t8y2 486d9bb3a6 fix(connection): move query timeout into per-connection settings 2026-05-28 18:18:45 +08:00
t8y2 4de788ada2 fix(ci): align desktop tests with zoom changes 2026-05-28 17:51:36 +08:00
t8y2 f7f5758c85 feat(desktop): add global UI zoom settings and shortcuts 2026-05-28 17:43:06 +08:00
t8y2 d35aeaa08c fix: continue transfer after table failure 2026-05-28 16:11:29 +08:00
t8y2 c952c65483 feat: upgrade data compare sync planning 2026-05-28 01:05:15 +08:00
t8y2 bd78436ab1 feat: add query editor context menu 2026-05-28 00:29:02 +08:00
t8y2 797c0d8d21 Add Redis cluster support and improve key loading 2026-05-28 00:08:59 +08:00
t8y2 ac4313afee fix(sqlserver): avoid false unknown column diagnostics 2026-05-27 23:07:47 +08:00
t8y2 6d35dcfda8 fix: fix cargo fmt and update tests for completion/snippet changes
- Run cargo fmt on duckdb_driver.rs
- Update test expectations for snippet→function type changes
- Fix snippet icon color test (emerald→violet)
- Fix error result message format test
- Fix keyword suggestion test to handle snippet boost priority
2026-05-27 18:26:22 +08:00
t8y2 915728ebec fix(editor): refresh SQL snippet completion after settings changes 2026-05-27 17:46:16 +08:00
t8y2 e9a2c08a46 feat(db): support TLS client certificates 2026-05-27 13:54:32 +08:00
t8y2 12abe9d0e0 feat: add configurable find/replace shortcuts with Mod-R routing
Add find and replace shortcut definitions to the shortcut registry with
Mod+F and Mod+R defaults. Route Mod-R through App → ContentArea to
dispatch to either the query editor replace panel or data grid refresh
based on focus context. Add isModRShortcut helper and tests.
2026-05-27 12:20:20 +08:00
t8y2 20fcea82b4 feat: extract EditorSearchPanel into reusable component
Move search/replace panel from QueryEditor into EditorSearchPanel.vue,
and use it in both QueryEditor and cell detail editor via programmatic
mounting. Removes dependency on CodeMirror's built-in search panel in
the cell detail editor, giving it the same custom search UI.
2026-05-27 12:14:38 +08:00
t8y2 22e8fece1c feat: add query editor replace shortcut 2026-05-27 10:50:54 +08:00
t8y2 455f04a874 fix: support DuckDB extensions in macOS builds 2026-05-27 10:43:20 +08:00
t8y2 e6e5309807 fix: flatten duckdb primary schemas in sidebar 2026-05-27 02:33:21 +08:00
vvrf 3a595c8efb
fix: render binary values as hex (#465) 2026-05-26 22:46:00 +08:00
t8y2 2038501b53 fix: use system proxy for app updates 2026-05-26 20:12:41 +08:00
t8y2 32273b4d6e feat: support Redis Sentinel connections 2026-05-26 19:44:23 +08:00
t8y2 a68af9c740 fix: honor editor font in redis views 2026-05-26 18:44:00 +08:00
t8y2 0e67f19117 feat: improve data grid selection and copy 2026-05-26 18:26:31 +08:00
t8y2 f9b58993b4 fix: add TLS connection settings 2026-05-26 17:32:05 +08:00
t8y2 32a4a5b1ec fix: normalize temporal column precision 2026-05-26 14:38:53 +08:00
t8y2 ce22d6a046 fix: focus new structure column input 2026-05-26 12:30:12 +08:00
t8y2 309c2d1555 fix: restore structure editor vertical scrolling 2026-05-26 12:26:21 +08:00
t8y2 76a0b9f76d fix: let users opt into system databases 2026-05-26 12:06:48 +08:00
t8y2 7bdacc52ba fix: align sidebar search matching 2026-05-26 11:57:12 +08:00
t8y2 8baa752721 feat: add compact data grid header controls 2026-05-25 21:29:37 +08:00
t8y2 718f0c1679 fix: prevent browser reload shortcuts in desktop app 2026-05-25 21:09:02 +08:00
t8y2 fe2ecd60d2 feat: add ClickHouse TLS connection support 2026-05-25 21:07:22 +08:00
t8y2 eb1a04b005 fix: move gaussdb and opengauss to direct query types in diagnostics 2026-05-25 19:30:19 +08:00
t8y2 25bf3c035e test: fix pagination page size test after executionOptions refactor
The query timeout feature moved clientSessionId to the outer executionOptions
object, which broke the single-line regex assertion. Split into individual
assertions that track each field independently.
2026-05-25 19:25:38 +08:00
t8y2 d326cb0ced fix: scope query connections by client session 2026-05-25 17:23:36 +08:00
t8y2 ac65508ddb fix: preserve Windows data during upgrades 2026-05-25 16:52:43 +08:00
t8y2 0354fe7050 fix: keep existing SQL Server TOP clauses 2026-05-25 16:51:18 +08:00
t8y2 c9f584d350 feat(grid): add compact filter builder 2026-05-25 11:57:36 +08:00
t8y2 e5e86eda30 fix: avoid derived table wrapping for SQL Server TOP pagination
Replace derived table wrapping with direct TOP injection for SQL Server
to prevent error 8155 when inner SELECT produces unnamed columns (e.g.
SELECT @@version). Also preserves ORDER BY that was incorrectly stripped
by the previous approach.
2026-05-25 11:28:02 +08:00
t8y2 dbd2b2bab5 fix: update tests for table structure editor tab conversion and type/length split
- Remove deleted Dialog.vue references from dialogOpenWatcher and structure tests
- Update presentation test assertions for tab layout and SearchableSelect
- Add schema to newQueryContext expected results (schema propagation)
- Make queryStore i18n resilient to missing Vue app context (tests)
- Fix regex patterns for oxfmt-formatted code
2026-05-24 22:52:58 +08:00
t8y2 872569265d fix(sql): add databaseType parameter to findStatementAtCursor function 2026-05-24 10:30:58 +08:00