diff --git a/backend/fleet/README.md b/backend/fleet/README.md index cc0b948..a2a822e 100644 --- a/backend/fleet/README.md +++ b/backend/fleet/README.md @@ -64,6 +64,7 @@ | `fleet.challenge` / `fleet.auth` | 服务端→节点 / 节点→服务端 | 签名认证(`auth` 用途,nonce 30 秒内有效) | | `fleet.hello` | 节点→服务端 | 版本、能力、本地策略摘要、当前时间 → 返回时钟偏差;产品的元数据也放在这里 | | `fleet.heartbeat` | 节点→服务端 | 每 10 秒一次,产品可以附加计数 | +| `fleet.stopping` | 节点→服务端 | 有序关闭前通知服务端,携带 `reason`(例如 `stopping` 或 `updating`),用于准确区分离线和计划停机 | | `fleet.state.sync` | 服务端→节点 | `{version, doc}` → `{applied_version, rejected[]}` | | `fleet.outbox.ack` | 服务端→节点 | `{ids[], duplicates[]}` | | `fleet.revoked` | 服务端→节点 | 节点被禁用或接管,随后断开 | diff --git a/docs/design/protocol.md b/docs/design/protocol.md index 67f1f4c..2776633 100644 --- a/docs/design/protocol.md +++ b/docs/design/protocol.md @@ -28,6 +28,7 @@ MoShiro 的两条控制链路都建立在 Fleet 之上: | 方法 | 方向 | 类型 | 参数与结果 | | --- | --- | --- | --- | +| `moshiro.probe.link_retry` | B→P | 通知 | `agent_id`:Probe 立即重试到该 Agent 的已配置 IP 路径;若列表尚未同步,Probe 在列表更新后补发一次 | | `moshiro.test.run` | B→A | 请求 | `test_id`、`probe_id`(在哪个 Probe 上跑)、`plan`、`phases[]` → `accepted`,或错误 `test_busy`、`probe_offline` | | `moshiro.probe.disconnect` | B→A | 请求 | `probe_id` → `accepted`(Agent 是否真的有这个会话);Agent 关闭该 Probe 的会话 | | `moshiro.test.cancel` | B→A | 请求 | `test_id` |