t8y2
f2e8b49df7
feat(settings): improve settings dialog links
2026-05-12 13:02:36 +08:00
skyler
30f9b4ab8c
Merge pull request #224 from Abeautifulsnow/fix/db-placement-copy
...
feat(connection): 为不同数据库类型展示各自对应的 connection URL placeholder
2026-05-12 10:58:26 +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
skyler
57874ce33c
Merge pull request #221 from rarnu/feat/ai-thinking-option
...
feat: 为AI设置增加了thinking的开关
2026-05-12 09:43:06 +08:00
rarnu
4f0a13f24f
add: 为AI设置增加了thinking的开关
2026-05-12 01:16:40 +08:00
t8y2
8cf0f612d4
fix(tree): Modify the shouldVirtualizeFlatTree function to support virtualization for non-empty trees.
2026-05-12 01:12:18 +08:00
rarnu
c18593d003
add: 修改布局方案中选中项的样式为浅蓝色(与AI内API选项的样式一致)
2026-05-11 23:33:27 +08:00
rarnu
e8ab15140a
add: 将AI大模型的设置移至设置页
2026-05-11 23:25:27 +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
79277c660f
feat(proxy): 增加数据库和 AI 代理支持
2026-05-11 15:05:25 +08:00
Alexandr
1d5a2b2220
Fixed single quotes causing build failures ( #214 )
...
* i18n for redis key browser;
* Fixed single quotes causing build failures
2026-05-11 13:49:10 +08:00
Alexandr
6de801557a
i18n for redis key browser; ( #213 )
2026-05-11 13:26:28 +08:00
t8y2
39f33e15d4
fix(sidebar): allow search to find tables hidden behind object browser
...
When a database has more than 15 tables, only the first 15 are shown
in the tree with an "object browser" entry for the rest. The sidebar
search could not find tables beyond the first 15.
Store hidden table nodes on the object-browser TreeNode and search
through them in filterTree when a query is active.
2026-05-11 13:21:19 +08:00
t8y2
7197f83eda
perf(sidebar): fix UI lag with 100+ databases ( closes #201 )
...
- Lower virtual scrolling threshold from 400 to 100 nodes so
RecycleScroller activates earlier with many databases
- Memoize getConfig() with a computed Map to avoid O(n) linear
search on every TreeItem computed property evaluation
2026-05-11 13:08:57 +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
1934205c86
feat(grid): add LIKE, NOT LIKE, <, > context menu filters
...
Add four new filter options to the right-click context menu in table
data view: contains (LIKE), does not contain (NOT LIKE), less than (<),
and greater than (>). Includes en/zh-CN/es translations.
2026-05-11 12:39:31 +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
8032c63727
fix(grid): persist WHERE filter input across tab switches ( closes #210 )
...
whereFilterInput was a component-local ref that got lost when switching
tabs because DataGrid is destroyed and recreated via :key binding.
Store whereInput in the QueryTab state and pass it as initialWhereInput
prop so it survives tab switches.
2026-05-11 12:24:08 +08:00
t8y2
cb70625bd8
fix(objects): save SQL Server object source definitions
2026-05-11 12:17:18 +08:00
Marcos Leandro Bonilla Borges and Copilot 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
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
9413df686e
fix(grid): Enter 键优先选中自动补全建议项 ( closes #202 )
...
WHERE 和 ORDER BY 输入框中,有自动补全建议显示时按 Enter 键
现在会选中当前高亮的建议项,而不是直接执行查询。
2026-05-11 11:00:02 +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
043bd5dd8d
fix: make GitHub link clickable in settings about page
2026-05-11 01:41:17 +08:00
t8y2
b0480494ff
feat: add MongoDB table view with inline editing support
...
- Add document/table view toggle to MongoDocBrowser
- Convert MongoDB documents to DataGrid format (union of all top-level keys)
- Add customSave prop to DataGrid for pluggable save backends
- MongoDB grid save converts dirty rows to mongoUpdateDocument calls
- Enable transaction-mode toolbar (commit/rollback) for customSave
2026-05-11 01:38:24 +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
49f03b0c69
feat: add loading overlay with elapsed timer to DataGrid
...
Show a semi-transparent overlay with a spinning loader and elapsed
time counter while queries are executing, preventing accidental
interaction with the grid content.
2026-05-11 00:30:46 +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
741783445d
feat: add XLSX export to table context menu
...
Add XLSX export option to the sidebar table name right-click menu,
unifying export capabilities with the data grid context menu. Also
add toast notifications for all sidebar data export operations.
2026-05-10 23:38:53 +08:00
t8y2
bafb424b23
perf: full-stack performance optimization
...
Frontend:
- Debounce queryStore tab persistence (remove flush:sync deep watcher)
- Eliminate unnecessary object spreading in connectionStore error handling
- Use in-place delete for completion cache invalidation
- Deduplicate schema cache prefix API calls
- Split echarts, reka-ui, marked, @codemirror/commands into separate chunks
- Lazy-load xlsxExport and markdownTable in DataGrid
- Lazy-load marked parser in UpdateDialog
Backend:
- Replace tokio::sync::Mutex with RwLock for AppState connections/configs
(60+ concurrent reads no longer block each other)
- Parallelize PostgreSQL DDL metadata queries with tokio::try_join!
2026-05-10 23:23:22 +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
d917842fca
perf(oracle): speed up initial table loading
2026-05-10 20:47:54 +08:00
t8y2
61bd7480f4
fix(oracle): refresh schema cache and complete table lists
2026-05-10 20:05:11 +08:00
t8y2
0e0195f734
feat(objects): add virtual object browser
2026-05-10 18:32:24 +08:00
t8y2
1cd358f3c1
fix(sidebar): allow collapsing search results
2026-05-10 14:43:49 +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
3a6078e10c
fix(sidebar): remove tinted row rounding
2026-05-10 10:32:58 +08:00
t8y2
939f36bda6
fix(redis): align key table columns
2026-05-10 10:26:14 +08:00
t8y2
8664cc5b48
feat(grid): add clipboard shortcuts
2026-05-10 10:22:17 +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