Skip to content

feat(cli): add safe manual updates for managed Runtime Hosts #3579

Description

@M4n5ter
English

Problem

Maka can install and manage a persistent remote Runtime Host, and #3557 adds the explicit retirement contract required to release its State Root writer. It still cannot safely replace that managed service with the exact package shipped or selected by an operator.

Re-running setup is not an update contract: it does not give the operator a complete stage, retirement, service cutover, replacement verification, and truthful recovery result.

Scope

  • add one machine-readable CLI transaction for an exact-package update;
  • validate and stage the target package beside the active deployment;
  • report the current and target release identities before changing the service;
  • consume the exact-Host retirement contract from [Tracking] Runtime Host maintenance and single-writer retirement #3231;
  • switch the service and verify that the replacement is ready against the expected State Root and is running the target version;
  • never restart the previous package after a target may have opened the State Root, because rollback safety is then unknown;
  • expose the same operation through the Desktop per-Host management surface over SSH.

Boundaries

Done when

  • a Linux managed Host can be manually aligned with an exact package from Desktop or the machine-readable CLI contract;
  • active work is never interrupted without explicit operator authority;
  • success proves that the replacement service is ready against the expected State Root and is running the selected version;
  • interruption or failure gives a safe recovery action without claiming an unsafe rollback.
简体中文

问题

Maka 已能安装和管理持久 remote Runtime Host,#3557 也增加了释放 State Root writer 所需的显式 retirement contract,但 onboarding 后仍不能把 managed service 安全替换为 operator 指定或 Desktop 随附的精确 package。

重新执行 setup 不是更新契约:它没有完整定义 stage、退场、service cutover、replacement 验证与真实的失败恢复结果。

范围

  • 增加一套面向精确 package 更新的 machine-readable CLI transaction;
  • 在 active deployment 旁验证并 stage 目标 package;
  • 修改 service 前报告当前与目标 release identity;
  • 消费 [Tracking] Runtime Host maintenance and single-writer retirement #3231 的 exact-Host retirement contract;
  • 切换 service,并验证 replacement 已针对预期 State Root ready 且实际运行目标版本;
  • 目标 package 一旦可能打开过 State Root,就绝不自动重启旧 package,因为此时无法证明 rollback 安全;
  • 通过 SSH 在 Desktop 的 per-Host 管理界面提供同一操作。

边界

完成标准

  • Linux managed Host 可以从 Desktop 或 machine-readable CLI contract 手动对齐到精确 package;
  • 未经 operator 明确授权绝不中断 active work;
  • 成功结果能证明 replacement service 已针对预期 State Root ready,且实际运行所选版本;
  • 中断或失败时给出安全恢复动作,不虚假声称完成了不安全的 rollback。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions