liumangmang
e418e6ecc2
feat: add port forwarding and optimize connection status checks
2026-06-11 14:10:30 +08:00
liumangmang
4a17f0106e
feat: 主题切换 + 浅色模式适配,SFTP/批量命令/Webhook/仪表盘全面升级
2026-06-10 14:33:47 +08:00
liumangmang
507d59d633
fix ssh auth and transfer modal state
2026-05-29 17:44:53 +08:00
liumangmang
9243a3e271
chore: 去掉登录页默认账号密码
...
登录页不再预填 admin/admin123,不再显示默认账号提示。首次使用引导用户注册。
2026-05-28 15:34:59 +08:00
liumangmang
1f1d1db65a
feat: 多用户管理与公开注册功能
...
- 后端:User 实体新增 role/enabled 字段、UserController CRUD、UserService
- 安全:SecurityConfig /api/users/** 要求 ROLE_ADMIN、JWT 过滤器检查账号状态
- 注册:POST /api/auth/register 公开注册,固定 ROLE_USER
- 保护:删除/禁用/降级最后 admin 均拒绝,DataInitializer 含 backfill
- 前端:用户管理页面、登录/注册切换、admin 专属导航入口
- 测试:UserServiceTest 19 个 + UserControllerTest 6 个 + AuthControllerTest 适配
2026-05-28 09:13:27 +08:00
liumangmang
d038dabc44
Please provide the code changes or file diffs you would like me to summarize.
2026-05-07 15:44:35 +08:00
liumangmang
25cfe2ae0b
Please provide the file changes or a description of the modifications so I can generate the appropriate commit message for you.
2026-05-07 14:33:39 +08:00
liumangmang
2d9011b606
Please provide the code changes or file diffs you would like me to summarize.
2026-05-07 14:12:54 +08:00
liumangmang
3f0ebe24e0
Please provide the code changes or file diffs you would like me to summarize.
2026-05-07 13:43:31 +08:00
liumangmang
f24d0f69ed
Please provide the specific file changes or a description of the modifications you have made so I can generate the commit message for you.
2026-05-07 10:09:40 +08:00
liumangmang
165cc0e35b
feat: refine sftp pane upload workflow
2026-04-22 17:59:07 +08:00
liumangmang
423cca97a6
feat: rebuild frontend with react
2026-04-22 09:53:06 +08:00
liumangmang
42836aa4c3
Add password-bootstrap SSH setup for new connections
2026-04-21 16:32:46 +08:00
liumangmang
05b835eb02
Refine workspace toolbar and file distribution UI
2026-04-21 00:42:50 +08:00
liumangmang
00ccd33961
chore: trim repo for customer delivery
2026-04-17 17:53:06 +08:00
liumangmang
fa1b6707f7
chore: focus delivery on source and docker
2026-04-17 09:31:45 +08:00
liumangmang
37dc4d8216
feat: prepare sellable source delivery edition
2026-04-16 23:28:26 +08:00
liumangmang
f606d20000
feat: unify moba workspace and persist session tree layout
2026-04-10 11:04:21 +08:00
liumangmang
bba36a2e12
docs: update implementation status - Phase 6 complete
2026-04-03 16:17:44 +08:00
liumangmang
4af11fb043
feat: add expand/collapse all functionality
...
- Add expandAll() and collapseAll() methods to sessionTree store
- Add toggle button in toolbar to expand/collapse all folders
- Track expansion state with allExpanded ref
- Improve toolbar layout with flex spacing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 16:14:14 +08:00
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
55953dce83
docs: update implementation status - all phases complete
2026-04-03 15:58:35 +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
ba1acdc2dd
fix: 修复懒加载组件keep-alive不生效问题
2026-03-30 16:41:16 +08:00
liumangmang
e895124831
fix: SFTP标签页离开后返回刷新状态丢失问题
2026-03-30 16:18:00 +08:00
liumangmang
78e6fc3e47
feat: allow multiple terminal tabs per connection
2026-03-26 18:04:39 +08:00
liumangmang
93cc13ddd0
docs: 添加 sftp 标签页规格与计划文档
2026-03-24 17:52:28 +08:00
liumangmang
43207e24bf
feat: 为文件视图添加侧边栏标签页
2026-03-24 17:34:27 +08:00
liumangmang
f7fd41b88f
docs: 添加 nav swap 规格与计划文档
2026-03-24 15:09:47 +08:00
liumangmang
6f8edcec33
fix: reorder sidebar navigation items
2026-03-24 14:47:39 +08:00
liumangmang
b236386273
docs: 完善 AGENTS 仓库指引
2026-03-24 13:52:24 +08:00
liumangmang
c8fa3de679
docs: 添加 superpowers 规格与计划文档
...
记录 Remote->Many 多文件与相关实现计划/设计,便于后续追踪与复盘。
2026-03-24 13:43:08 +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
d4dc8a6da9
Fix: 进入目录时清空搜索条件
...
在 SftpView 增加 loadPath() 中 searchQuery.value = '',确保进入新目录时重置搜索条件。
改动:
- SftpView.vue 第 196 行:loadPath() 加载前清空 searchQuery
- 进入目录后不再受上次搜索条件影响
- 返回上一级也清空搜索条件
- 用户手动输入搜索仍可正常使用
2026-03-20 17:03:10 +08:00
liumangmang
a9cfef37c2
feat: 连接列表搜索高亮匹配文字
...
高亮匹配的搜索关键词(名称、主机、用户名、端口)。
- 连接名称、主机名、用户名、端口中的匹配文本会高亮为青色
- 使用 v-html 渲染高亮内容
- 转义正则特殊字符避免注入风险
2026-03-20 15:53:22 +08:00
liumangmang
1020d78b91
feat: 搜索词同步到 URL 查询参数
...
搜索词现在会同步到 URL 查询参数 ?q=xxx,刷新页面后保留搜索状态。
-连接列表页 ()
- 监听 URL 查询参数变化,初始化搜索框
- 搜索InputChange 时更新 URL
- 清空搜索时移除 URL 查询参数
2026-03-20 15:50:40 +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
c1efd72d6d
feat: 为连接列表添加搜索
...
在连接列表页加入前端即时搜索,支持按名称、主机、用户名和端口过滤连接。补充分离的无结果状态与清空操作,提升连接较多时的查找效率。
2026-03-18 23:59:26 +08:00
liumangmang
77518b3f97
Fix: 修复 Docker 上传目录解析错误
...
将 multipart 上传目录改为基于 DATA_DIR 的绝对路径,避免 Tomcat 在容器内把相对路径解析到临时目录。同步让上传控制器复用该配置并补充错误日志,确保本地文件在异步上传期间可用。
2026-03-18 23:46:05 +08:00
liumangmang
6dbd5ae694
Merge: 修复文件上传临时文件丢失问题
2026-03-18 23:25:37 +08:00
liumangmang
e0c734d3d9
Config: 配置 multipart 持久化临时目录
2026-03-18 23:25:14 +08:00
liumangmang
e2f600c264
Fix: 修复文件上传临时文件丢失问题
...
问题:
- Docker 环境下上传文件时出现 FileNotFoundException
- Tomcat 在异步任务执行前清理了临时文件 /tmp/tomcat.xxx/work/...
解决方案:
1. 配置 multipart.location 为持久化目录 ./data/upload-temp
2. 设置 file-size-threshold: 0 强制立即写入磁盘
3. 修改 SftpController.upload() 方法:
- 在异步任务执行前将 MultipartFile 保存到持久化位置
- 异步任务从保存的文件读取而非 MultipartFile.getInputStream()
- 上传完成或失败后自动清理临时文件
影响范围:
- backend/src/main/resources/application.yml
- backend/src/main/java/com/sshmanager/controller/SftpController.java
2026-03-18 23:24:53 +08:00
liumangmang
f892810763
Merge: 将终端标签页移至左侧边栏
2026-03-18 23:17:01 +08:00
liumangmang
c01c005c07
feat: 将终端标签页移至左侧边栏
...
- 在 MainLayout 侧边栏添加终端标签区域
- 标签纵向排列在连接列表下方
- 点击标签自动切换到终端工作区并激活
- 简化 TerminalWorkspaceView 移除顶部标签栏和返回按钮
- 不用返回就能切换连接和打开新终端
2026-03-18 23:16:54 +08:00