Commit Graph

15 Commits

Author SHA1 Message Date
liumangmang
cf7b564b3a feat: add session tree search functionality
- Add useTreeSearch composable with filtering logic
- Implement search bar with Ctrl+F shortcut
- Show search results with ancestor paths
- Add search match indicator (cyan dot)
- Display "no results" message when search is empty
- Support clear search with X button

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 16:10:49 +08:00
liumangmang
e23ba1c3c9 feat: add keyboard shortcuts and context menu (Phase 6)
Phase 6 - Enhancements:
- Add useKeyboardShortcuts composable for global shortcuts
- Implement keyboard shortcuts: F2 (rename), Delete, Ctrl+N (new folder)
- Add ContextMenu component with positioning logic
- Implement right-click context menu for tree nodes
- Add rename dialog for nodes
- Support delete with confirmation
- Add "new subfolder" action for folders

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:55:39 +08:00
liumangmang
caed481d23 feat: implement drag-drop and data migration (Phase 3 & 5)
Phase 3 - Drag-drop functionality:
- Add useTreeDragDrop composable with drag state management
- Implement drag constraints (prevent dropping on self/descendants)
- Add visual feedback (opacity, drop indicators, highlight)
- Support drop positions: before/after/inside folder

Phase 5 - Data migration and sync:
- Add MigrationPrompt component for first-time users
- Implement bidirectional sync between connections and session tree
- Add syncNewConnections/syncDeletedConnections/syncConnectionName methods
- Create useConnectionSync composable for automatic sync
- Support migration from old layout with user prompt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:46:22 +08:00
liumangmang
2c06329d68 feat: implement MobaXterm-style layout (Phase 1-2-4)
实现 MobaXterm 风格的界面重构,包含会话树、工作区面板和分屏功能。

新增功能:
- 左侧会话树支持文件夹分组和展开/折叠
- 工作区垂直分屏(终端 + SFTP)
- 可拖拽调整分割比例
- 状态持久化到 localStorage
- 顶部工具栏(样式占位)

技术实现:
- 新增 sessionTreeStore 和 workspaceStore 状态管理
- 新增 SessionTree/SessionTreeNode 递归组件
- 新增 SplitPane 可拖拽分割组件
- 重构 SftpPanel 为 props 驱动
- 新增 MobaLayout 主布局
- 路由默认重定向到 /moba

依赖更新:
- 安装 @vueuse/core 用于拖拽功能

待实现:
- Phase 3: 会话树拖拽排序
- Phase 5: 数据迁移
- Phase 6: 快捷键、右键菜单、搜索等优化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:14:36 +08:00
liumangmang
9f133bd337 feat: update monitor, terminal, and SFTP interaction flow 2026-04-01 15:22:51 +08:00
liumangmang
832d55c722 feat: 新增终端顶部实时服务器监控面板 2026-03-30 16:54:56 +08:00
liumangmang
acac45b692 fix: 终端 PTY 尺寸同步
前端在 xterm fit/resize 后通过 WebSocket 发送 resize 控制消息,后端收到后调用 ChannelShell.setPtySize 触发远端重绘,修复 less/vim/top 等全屏程序只显示部分区域的问题。

同时补齐控制消息解析与 PTY resize 的单测,并修正失配的 SftpControllerTest 断言。
2026-03-24 12:03:03 +08:00
liumangmang
aced2871b2 feat: Remote->Many 支持多源文件传输
支持多选源文件并按源文件×目标连接生成任务队列;增加 Directory/Exact Path 目标模式与重名覆盖提示,同时修复传输/上传 SSE 订阅未及时关闭导致的连接堆积。
2026-03-24 10:54:49 +08:00
liumangmang
e2656fb1b5 Fix: 文件选择器进入目录时清空搜索条件
在 SftpFilePickerModal 增加 load() 中 searchQuery.value = '',确保文件选择器打开时或进入目录时重置搜索条件。

改动:
- SftpFilePickerModal.vue 第 60 行:load() 加载前清空 searchQuery
2026-03-20 17:50:39 +08:00
liumangmang
7b7399912b Fix: 修复终端标签切换时重连问题
将终端工作区提升为主布局常驻层,离开终端路由时只隐藏不卸载组件。
新增活动终端显隐状态跟踪,页面恢复时自动重新适配尺寸和聚焦。

改动范围:
- frontend/src/layouts/MainLayout.vue
- frontend/src/views/TerminalWorkspaceView.vue
- frontend/src/components/TerminalWidget.vue
2026-03-20 15:36:47 +08:00
liumangmang
80fc5c8a0f feat: 增强 Transfers 页面文件浏览功能
- 在 SftpFilePickerModal 中添加搜索功能
- 添加显示/隐藏文件切换按钮(参考 SftpView)
- Remote->Many 模式下目标连接列表自动排除源连接
- 全选功能自动排除源连接
- 添加空状态提示信息
- 优化用户体验和交互逻辑
2026-03-12 17:45:07 +08:00
liumangmang
085123697e 增强 SSH/SFTP 稳定性并完善安全校验与前端交互 2026-03-11 23:14:39 +08:00
e5b9399350 Fix accidental close when dragging out of connection form inputs 2026-03-09 00:14:51 +08:00
liumangmang
7e6ebd18a5 Refactor project structure and update .gitignore; enhance README with setup instructions and environment requirements. Clean up backend code for improved readability and maintainability. 2026-02-04 11:07:42 +08:00
liu
1c5a44ff71 Initial commit: SSH Manager (backend + frontend)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 09:10:06 +08:00