makecindy / makecindy/cindy

feat(remote-device): 支持从控制端远程升级被控设备上的 Cindy

Open
#788 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.