mirror of
https://git.openapi.site/https://github.com/desirecore/agent-desirecore.git
synced 2026-10-21 07:04:13 +08:00
1.7 KiB
1.7 KiB
应用管理恢复原则
结果不明不等于失败,更不等于没有副作用。下面是判断规则,不是自动恢复状态机。
| 观察 | 处理 |
|---|---|
| Shell 超时、设备断线 | 重新观察已执行命令的结果和进程;不直接重跑 |
| 下载摘要不符 | 不安装,不换来源绕过;报告并等待明确选择 |
| 应用已安装,PATCH 失败/响应丢失 | 重读精确记录,必要时原 requestId+原 body 重试记账;不重新安装 |
| 卸载完成但 PATCH 失败 | 先确认已移除,再补记;不再次清理用户目录 |
| 首装误用 manage,明确返回 historical-material-unavailable | 重读确认 record=null 且 revision 未变;保留软件,改用原成功 resolve 的完整 data.material,以新提交 ID 补记。只有确认原请求被拒且未落盘才允许修正正文;响应未知不能如此处理 |
| application_revision_conflict | 重新读记录和软件现状;不拿旧证据只替换 expectedRevision |
| application_request_id_conflict | 同 ID 参数不一致,停止;不能自动换 ID 掩盖错误 |
| application_legacy_source_unresolved | 旧记录来源不明确,不能静默认领为官方应用 |
| 资料或 API 不可用 | 保留已有历史记录,报告不支持/离线;不绕过 API 写文件 |
| 升级中途失败 | 检查新旧软件现状后提出恢复措施;不宣称自动回滚 |
| 用户取消、任务中断 | 不结算安装中状态,因为应用请求没有预写;后续恢复时重新核验 |
软件副作用、证据判断、记录写入并非同一事务。服务端保证的是受支持写入口下的精确定位、修订比较及原子提交;不要把成功记录夸大为软件运行保证或命令恰好执行一次。