feat(remote-device): 支持从控制端远程升级被控设备上的 Cindy
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 401
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 使用场景 / Use case
使用 Cindy 管理异地、无显示器或不方便现场操作的远程设备时,希望控制端发现被控设备运行的是旧版 Cindy 后,可以直接发起客户端升级,无需再通过其他远控工具进入被控设备手动安装。
## 当前问题 / Current limitation
目前控制端似乎无法查看被控设备上 Cindy 的版本和更新状态,也不能远程触发升级。设备较多或不在身边时,逐台同步版本的成本较高;当远程协议或功能依赖新版时,也可能必须先人工处理被控端才能恢复使用。
## 期望方案 / Proposed solution
建议支持:
- 在远程设备详情中显示当前版本、可用版本和更新状态;
- 从控制端对单台远程设备发起升级,并在执行前二次确认;
- 被控端仅接受官方签名且校验通过的安装包,并遵循现有权限模型;
- 展示下载、安装、重启、重连和失败状态;失败时给出明确原因以及安全的重试或恢复入口;
- 被控端正在使用或系统需要提权时,根据平台能力请求本地确认,避免静默中断工作。
MVP 可以先支持同账号下已授权的在线设备,以及单设备升级;批量升级、定时升级和分批发布可以后续再考虑。
## 已考虑的替代方案 / Alternatives considered
目前可以通过 SSH、RDP 等方式手动登录被控设备,或现场重新安装 Cindy,但对于无显示器、异地或多设备场景操作成本较高。
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by locating the remote-device detail and authorized-device control flows, then trace the existing permission and update mechanisms. Done means an online authorized device can report versions, perform a confirmed single-device upgrade, show progress and failure states, and handle signing, privilege, restart, and reconnection requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100