Commit Graph
133 Commits
Author SHA1 Message Date
t8y2 cb9863b6bb feat(drivers): prompt for agent driver updates 2026-05-17 17:06:59 +08:00
t8y2 7188465161 feat(app): open sql files in editor 2026-05-17 13:59:42 +08:00
t8y2 f031fe85ae feat(history): add AI analysis action 2026-05-15 19:53:32 +08:00
t8y2 6db2430994 feat(settings): add custom shortcut settings 2026-05-15 17:53:51 +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 164fd7fb82 feat: auto-open Driver Manager when driver is not installed
When a connection fails because the agent driver or JRE is not
installed, automatically open the Driver Manager page so users
can install it without navigating manually.
2026-05-14 22:40:31 +08:00
t8y2 ecb878315c chore: add startup timing diagnostics for #270
Add [STARTUP] timing logs to Rust setup (plugin registration, storage
open, migration) and Vue frontend (onMounted, initFromStorage,
initFromDisk) to help diagnose slow startup reported in #270.
2026-05-14 19:35:34 +08:00
t8y2 7e4274094d fix(updates): delay first update check by 10s after startup
Prevents the update checker from blocking UI rendering on startup,
especially for users with slow GitHub connectivity.
2026-05-14 12:02:20 +08:00
t8y2 abd3450814 feat(connection): make driver manager link clickable in install hint 2026-05-14 11:03:12 +08:00
t8y2 e61efdea12 fix(i18n): translate backend error messages in connection failure toasts 2026-05-14 11:00:52 +08:00
t8y2 ce69af1de0 feat(updates): add hourly update badge 2026-05-13 23:47:20 +08:00
t8y2 5832e1b194 refactor(frontend): centralize database feature capabilities 2026-05-13 22:14:33 +08:00
t8y2 e9158390c1 feat(shortcuts): add search focus shortcut 2026-05-13 17:51:20 +08:00
t8y2 e513c260b5 feat: driver store UX improvements and multi-row range copy
- ESC key closes driver store before closing tabs
- Auto-scroll to driver store tab when opened
- Deactivate query tab highlight when driver store is open
- Support copying range-selected rows as JSON
- Add multiRowCount/isMultiRow computed properties for DataGrid
2026-05-13 16:34:56 +08:00
t8y2 5e30e97be4 fix: driver store scroll and replace installed text with check icon 2026-05-13 16:25:17 +08:00
t8y2 4d4c8f4224 feat: extract driver management into standalone tab page with registry cache
Move driver management (Agent + JDBC) out of the settings dialog into a
dedicated tab page accessible from the top toolbar. Agent drivers are shown
as a compact horizontal list; JDBC plugin/driver management is on a second
tab. Add 5-minute in-memory cache for the agent registry to avoid repeated
GitHub requests on install/uninstall/refresh operations.
2026-05-13 11:05:21 +08:00
t8y2 b0a808bc14 feat: add system theme mode 2026-05-13 10:48:34 +08:00
t8y2 1380cfe04e feat(toolbar): add Compare Databases and Compare Data buttons
Expose Schema Diff and Data Compare dialogs from the top toolbar
so they can be opened without pre-selecting a connection in the
sidebar. Connections are chosen inside the dialog.
2026-05-12 17:38:13 +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 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 01c4b744ef fix(updater): show real app version and release notes 2026-05-12 15:15:46 +08:00
t8y2 9463ff07a7 fix(grid): preserve page size when reloading data after save
The reload event did not carry limit/offset, so buildTableSelectSql
always fell back to its default LIMIT 100, resetting 1000-row pages
back to 100 after every commit.
2026-05-12 13:55:15 +08:00
t8y2 1b0c17315b feat(i18n): replace locale toggle with dropdown menu and country flags
Replace the single-click locale cycle button with a dropdown menu
showing all available languages with their country flag emoji.
Locale switching logic moved from App.vue into AppToolbar.vue.
2026-05-11 12:30:04 +08:00
t8y2 cb70625bd8 fix(objects): save SQL Server object source definitions 2026-05-11 12:17:18 +08:00
Marcos Leandro Bonilla BorgesandCopilot Autofix powered by AI 3c0dbb3e30 feat(i18n): add Spanish localization and improve locale switching (#212)
* feat(i18n): add Spanish localization and improve locale switching

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 12:09:13 +08:00
t8y2 03bea705e7 feat(objects): edit database object source 2026-05-11 11:48:46 +08:00
t8y2 e03ce491af feat(ai): add guarded SQL auto execution 2026-05-11 02:27:56 +08:00
t8y2 f456ddd979 perf: full-stack performance and security hardening
Frontend performance:
- Debounce DataGrid search (150ms) and replace O(n) row wrapping with index array
- Replace QueryStore deep watcher with targeted field-level persistence snapshot
- Extract shared nodeConfig computed in TreeItem (eliminates 15x redundant getConfig calls)
- Clear tab result data on close to free memory
- Add LRU eviction for completion caches (50 entry cap)
- Replace savedSql version string join with numeric counter

Memory leak fixes:
- Store Tauri event unlisten handles and clean up on unmount
- Clean up DataGrid search timer on unmount

Backend security & resource management:
- Add 50MB request body size limit
- Reject file uploads >100MB and SQL files >200MB
- Clean up SSE channels after transfer/import completes
- Recover from poisoned mutex instead of panicking
- Delete temporary upload files after preview
- Validate SQL file paths to prevent directory traversal
2026-05-11 00:18:09 +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 5a15d7a424 fix(ui): refine layout polish 2026-05-10 10:17:18 +08:00
t8y2 ebc905a478 feat(ui): add layout preference 2026-05-10 10:11:55 +08:00
t8y2 28f8c88ea9 feat(ui): refine panel and tab chrome 2026-05-10 09:54:21 +08:00
t8y2 cb7428b5a3 feat(ui): refine app chrome layout 2026-05-10 09:37:02 +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
rarnu 9261cb71a2 1. src/components/grid/DataGrid.vue
- 左侧搜索框:移除了 WHERE 支持(isWhereSearch 永远返回 false),现在是纯客户端文本过滤。保留了列名代码提示功能(Tab 补全、箭头导航)。
       - WHERE 框:新增列名代码提示(独立的下拉建议面板),支持单双引号和小括号自动配对,Enter 直接应用过滤。
       - ORDER BY 框:新增列名代码提示(同样的建议面板),Enter 直接应用排序。
       - 刷新/回滚/提交:reload emit 现在传递 4 个参数 (sql, searchText, whereInput, orderBy),确保刷新后所有条件不丢失。
       - 分页/排序:统一使用新的 currentWhereInput() 函数,替代已废弃的 activeWhereInput。
       - 删除了 applyWhereSearch() 和 onSearchEnter()(左侧搜索不再需要执行 WHERE 查询)。

    2. src/composables/useDataGridActions.ts
       - onReloadData() 签名改为接受 4 个参数 (sql, searchText, whereInput, orderBy)。
       - table-data 模式刷新时,用 buildTableSql(tab, { whereInput, orderBy }) 重建 SQL,保留 WHERE 和 ORDER BY 条件。

    3. src/components/layout/ContentArea.vue
       - reload emit 签名同步更新为 4 个参数。
       - results 模式和 table-data 模式两个 DataGrid 的 @reload 处理器都转发全部 4 个参数。

    4. src/App.vue
       - ContentArea 的 @reload 处理器转发 4 个参数给 onReloadData()。
2026-05-09 15:04:06 +08:00
t8y2 4c5de25f95 fix: enable tab context menu (close all/close others/close right) 2026-05-09 11:56:09 +08:00
t8y2 acfe9d1b23 fix: disable native context menu and add sidebar refresh button (#159)
Prevent browser native "Reload" from resetting app state in Tauri,
and add a refresh button to the sidebar header for convenience.
2026-05-08 19:05:21 +08:00
t8y2 92fe47b913 fix: pass SQL directly in AI execute to avoid stale state (#153)
When executing SQL from the AI panel, pass the SQL string directly to
tryExecute() instead of relying on the executableSql computed property,
which could use stale selectedSql or cursorPos values.
2026-05-08 16:45:01 +08:00
rarnu 47ad960bbb Fix: DataGrid数据集和工具栏的修复及加强 (#157)
* fix: 修复结果集内的数据过滤功能

* add: 将原先误删的WHERE查询加回

* add: 合并事务栏和搜索栏,并且在结果集中不启用搜索功能

* add: 修复在表数据和结果集模式下,DataGrid刷新时未保留查询条件的问题,将表数据和结果集的处理逻辑进行拆分

* add: 与主分支合并,解决冲突

* add: 恢复i18n

* add: 恢复useDataGridActions.ts

* add: 恢复ContentArea.vue

* add: 恢复DataGrid.vue

* fix: 修复括号自动配对的bug

* add: 将DDL按钮移到表数据编辑的第一行尾,并且不在DataGrid中显示
2026-05-08 16:04:21 +08:00
t8y2 52add6a503 fix: raise toast z-index above dialog overlay 2026-05-07 23:30:34 +08:00
Bacon2994 f9d6edb136 feat(connection): 支持设置默认数据库
统一新建查询的默认数据库选择逻辑,减少重复手动选择。
2026-05-07 16:49:56 +08:00
t8y2 629bd02b0f refactor: centralize database type groups into databaseCapabilities.ts
Extract all inline database type checks (schema-aware, pagination style,
feature support sets, etc.) into a single source of truth. Adding a new
database type now requires updating only one file instead of 15+.
2026-05-07 02:36:50 +08:00
rarnu 969f441753 add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息 (#122)
* add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息

* add: 修复联表情况下获取列信息的问题

* fix: 修复联表场景下的SQL语句提示

* remove: 移除不需要的调试打印

* add: 补充'列详情'多语言字段

* remove: 移除不必要的函数

* remove: 移除不必要的导入

* add: 目前会分析SQL语句内引用的表,并且只加载对应的表内的列信息,不再对全表做列信息拉取
2026-05-07 01:04:52 +08:00
t8y2 b6a39c1fa0 feat(query): set schema context (search_path) before query execution (#113)
Add schema selector to the editor toolbar for schema-aware databases
(PostgreSQL, SQL Server, Oracle). When a schema is selected, the backend
sets the appropriate search_path before executing queries so users no
longer need to write schema-qualified table names.
2026-05-06 18:22:41 +08:00
t8y2 0f40488bf1 feat(web): add password setup page, change password, and settings tabs
- First-time visitors see a password setup page instead of open access
- Password persisted to SQLite (env var DBX_PASSWORD takes priority)
- Add change password in settings dialog (Security tab, web only)
- Split settings dialog into Editor and Security tabs
- Argon2 hashing for all password storage
2026-05-05 22:22:04 +08:00
skyler 6918903cad Merge pull request #95 from wu-clan/optimize-conn-error
feat: optimize connection error alerts
2026-05-05 17:35:03 +08:00