Commit Graph
2322 Commits
Author SHA1 Message Date
lexmin0412 ab35fda299 fix(ui): fix dialog stacking order conflict with close action prompt (#1594) 2026-06-23 10:52:22 +08:00
t8y2 2f2fc36b18 fix(data): align table preview ordering 2026-06-23 10:51:30 +08:00
skyler 752a695018 Merge pull request #1588 from luoianun/feat/prestosql-connector
feat: add PrestoSQL connector
2026-06-23 01:39:06 +08:00
t8y2 2594dbaa30 fix(prestosql): apply builtin driver on selection 2026-06-23 01:31:02 +08:00
t8y2 e9dafbf38d fix(prestosql): select builtin JDBC driver 2026-06-23 01:28:03 +08:00
luoianun 8cc7a35c1a feat: add PrestoSQL connector 2026-06-23 01:27:08 +08:00
t8y2 280e94e3c1 fix(postgres): avoid backslash LIKE escape 2026-06-23 00:43:10 +08:00
t8y2 7910a2f68e fix(connection): raise default connect timeout 2026-06-22 23:59:42 +08:00
t8y2 ac3d3a7948 feat(agent): track execution context activity 2026-06-22 23:17:11 +08:00
skyler ee29694776 Merge pull request #1586 from onceMisery/feat/opt-connections
fix: handle connection loss state for new queries
2026-06-22 22:32:02 +08:00
t8y2 099ed62609 fix: preserve known connection loss errors 2026-06-22 22:23:28 +08:00
t8y2 0b6e1579ca feat(agent): add execution context recovery 2026-06-22 22:15:16 +08:00
fagao 718ffde871 test: mock MQ connection health check 2026-06-22 22:02:49 +08:00
fagao c0248cbe8e fix: handle connection loss errors consistently 2026-06-22 21:43:01 +08:00
fagao e2f68de455 fix: resolve MySQL connection state desync after disconnect/reconnect
- Use synchronous pool removal in desktop disconnect_db to prevent
  race condition when user quickly disconnects and reconnects
- Rename recordMetadataLoadError to recordConnectionLostError and
  export it for cross-store reuse
- Sync query execution errors back to connection state via
  recordConnectionLostError in queryStore catch blocks
- Add backend check_connection_health method (dbx-core) with Tauri
  command and web route for proactive pool verification
- Add frontend checkConnectionHealth API (tauri.ts/http.ts/api.ts)
- Enhance ensureConnected to verify backend pool health before
  assuming connection is valid, auto-reconnect if stale
2026-06-22 20:40:40 +08:00
t8y2 e55dbe2acc fix(mysql): avoid key usage join for columns 2026-06-22 18:46:45 +08:00
t8y2 9de738e76c fix(mongo): normalize invalid direct connection URL 2026-06-22 18:43:40 +08:00
lexmin0412 62f46857b8 fix(i18n): add missing ai.copyTestResult key 2026-06-22 18:29:07 +08:00
t8y2 10019e4cc1 fix(clickhouse): create transfer tables in target database 2026-06-22 18:22:20 +08:00
t8y2 f52064bd0e fix(agent): extend metadata RPC timeout 2026-06-22 18:17:11 +08:00
t8y2 988b2ab3da feat(sqlserver): recognize readonly keyword 2026-06-22 17:56:49 +08:00
t8y2 6e6f7bda0b fix(mongo): preserve dates during document edits 2026-06-22 17:50:17 +08:00
74df246d7e feat(ai): improve model selection with searchable dropdown
* fix(ui): toast 消息支持换行显示

- 添加 max-w-3xl 限制最大宽度
- 使用 whitespace-pre-wrap 允许自动换行
- 添加 break-words 防止长单词溢出

* fix(ai): 优化模型选择下拉列表

---------

Co-authored-by: t8y2 <1156263951@qq.com>
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-22 17:22:17 +08:00
t8y2 7e5fd88e63 fix(schema): use sync sql for modified schema diff 2026-06-22 17:21:08 +08:00
dac97b83a6 feat(editor): execute single SQL directly without picker
* fix(ui): toast 消息支持换行显示

- 添加 max-w-3xl 限制最大宽度
- 使用 whitespace-pre-wrap 允许自动换行
- 添加 break-words 防止长单词溢出

* feat(editor): 单条 SQL 直接执行

---------

Co-authored-by: t8y2 <1156263951@qq.com>
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-22 17:14:36 +08:00
t8y2 628fadf517 fix(sqlserver): preserve batch result sets 2026-06-22 17:07:10 +08:00
t8y2 9c116e8f7e fix(editor): keep select column suggestions active 2026-06-22 16:58:32 +08:00
t8y2 df94a7c1bf fix(postgres): export sequences with database dump 2026-06-22 16:47:10 +08:00
t8y2 09d54d09bc feat(mongodb): support use command to switch database 2026-06-22 16:42:38 +08:00
t8y2 d9256fc1ec fix(sql-library): auto-close tabs when deleting saved SQL files
Closes #1566

When a saved SQL file is deleted from the SQL library panel, any open
tabs referencing that file are now automatically closed to maintain
consistency between the library and open tabs.

Changes:
- Modified savedSqlStore.deleteFile() to find and close all tabs with matching savedSqlId
- Tabs are force-closed to avoid unsaved changes prompts for deleted files
2026-06-22 15:18:41 +08:00
t8y2 791d55661e fix(agent): prevent zombie processes on agent cleanup
Root cause:
- AgentDriverClient::kill() is called during Drop to clean up child processes
- Old implementation called child.wait() and ignored errors with let _
- When wait() fails (e.g., process already killed by signal), child is not reaped and becomes zombie

Fix:
- Use try_wait() non-blocking polling, up to 100ms timeout
- Avoid long blocking in Drop during async cleanup
- Still perform final blocking wait() as fallback after timeout
- Log all wait errors for debugging

Impact:
- All JDBC agents (Oracle/DB2/DM8/XuguDB etc.)
- Prevents zombie process accumulation during long-running sessions
2026-06-22 14:59:05 +08:00
t8y2 7adee1cacf fix(ui): enable text wrapping for toast messages
- Add max-w-3xl to limit toast width (768px on desktop, 90vw on mobile)
- Use whitespace-pre-wrap to allow automatic line breaks
- Add break-words to prevent long words from overflowing
- Long error messages now wrap instead of extending off-screen
2026-06-22 14:58:56 +08:00
t8y2 4346192713 feat(mongodb): show collection metadata in sidebar 2026-06-22 12:42:31 +08:00
t8y2 f0d4b66489 fix(grid): unify data grid font size to 13px 2026-06-22 12:35:53 +08:00
t8y2 9418e37c04 feat(settings): add show execution target picker option and related UI elements 2026-06-22 12:05:47 +08:00
t8y2 d7e52779c3 fix(data): refresh table metadata lazily 2026-06-22 11:49:01 +08:00
t8y2 c94cfb6a91 fix(structure): refresh metadata after applying changes 2026-06-22 11:26:07 +08:00
t8y2 72300a2b8f feat(sql-library): add sort by date modified
- Add sort mode toggle button (folder structure / date modified)
- Sort by date: flat list with all folders and files by updatedAt desc
- Most recently modified items appear at top for quick access
- Hide 'Unfiled' label when not dragging (only show as drop target)
- Remove excessive spacing between folder tree and unfiled section
2026-06-22 10:57:31 +08:00
Abeautifulsnow 629c92bf7e feat: prompt input history navigation with ↑/↓ arrow keys in AI assistant 2026-06-22 10:50:18 +08:00
t8y2 58344cdae0 perf: remove transition-colors from interactive list items
- Remove from QuickOpenDialog list items for instant keyboard navigation
- Remove from DatabaseSearchDialog results for immediate click response
- Remove from CustomContextMenu items for instant menu interaction
2026-06-22 10:48:13 +08:00
t8y2 0a652d1b2c feat(sql-library): add batch selection and deletion for SQL Library panel
- Support Ctrl/Cmd+click for multi-select toggle
- Support Shift+click for additive range selection across folders and files
- Add batch delete via right-click context menu with confirmation
- Add active/inactive visual states matching connection sidebar behavior
- Remove transition-colors for instant selection feedback
- Unified selection index system for cross-type range selection
2026-06-22 10:43:26 +08:00
hb 4e07f73157 fix(mysql): preserve temporary tables in client session pools
Disable COM_RESET_CONNECTION for single-connection session pools
(max_connections == 1) so that MySQL session state such as TEMPORARY
TABLEs is not cleared when a connection is returned to the pool.

Closes #1509
2026-06-22 00:37:41 +08:00
t8y2 2fc835060e fix: sync saved sql file connection on tab connection change 2026-06-21 23:49:54 +08:00
t8y2 c9cd80fc79 feat(sql-library): add new query option to folder and panel context menus 2026-06-21 23:43:12 +08:00
hb fa59281ef4 fix: prevent data grid footer controls from wrapping incorrectly 2026-06-21 23:29:59 +08:00
t8y2 0d4e35ee02 fix(core): increase PostgreSQL and MySQL connection pool size
- PostgreSQL: 4 -> 10 connections
- MySQL: 3 -> 10 connections

Fixes #1516
2026-06-21 21:01:15 +08:00
t8y2 fae644b888 fix(redis): exclude empty commands from history navigation
- Empty commands show temporary error hint (1s) but not added to history
- Arrow key navigation skips empty command entries
- Add appendCommandOutput helper for transient feedback
2026-06-21 18:55:01 +08:00
t8y2 dbc8668ced feat(redis): add command history navigation with arrow keys
- Press ↑ to recall previous command, ↓ for next command (terminal-like behavior)
- Press ↓ at end of history to clear input
- Use readonly instead of disabled to maintain cursor focus and blink state
- Semi-transparent visual feedback during command execution
2026-06-21 15:49:57 +08:00
t8y2 c94f04ba9b fix(redis): enable text selection and copy in command terminal
- Add user-select: text CSS to allow text selection
- Optimize click handler to preserve user text selection
2026-06-21 15:49:30 +08:00
t8y2 bd671eb1a5 feat(settings): scope reset defaults to current tab 2026-06-21 13:19:12 +08:00