diff --git a/docs/aios-v2/07-SUPERVISION-STATUS.md b/docs/aios-v2/07-SUPERVISION-STATUS.md new file mode 100644 index 0000000..8dc1f1e --- /dev/null +++ b/docs/aios-v2/07-SUPERVISION-STATUS.md @@ -0,0 +1,224 @@ +# AIOS V2R1 监督状态与阻塞处置清单 + +- 文档版本:`V2R1C0-candidate` +- 快照时间:`2026-07-20 17:03:53 CST` +- 候选分支:`integration/aios-v2r1-cto-production-candidate-20260720` +- 候选 OID:`634f6b164f5b20372ab9ec8144bbf76df97de335` +- 当前决策:`STOP_PREPRODUCTION` +- 当前状态:`BLOCKED` + +## 1. 执行摘要 + +AIOS V2R1 的核心代码、完整中文文档、任务合同、部署资产和 GitOps 证据机制已经形成。OpenClaw 与 Codex 已经领取任务并向 Gitea 提交监督证据,三个关键分支的本地 OID 与 Gitea OID 已一致。 + +当前仍不允许进入预发布,原因不是主体功能缺失,而是安全、签名材料、Candidate 合并、执行来源证明和 Controller 健康检查五项高风险门禁未通过。 + +当前禁止: + +- 进入 Gate A–D; +- 执行在线 Runtime 联调; +- 执行重启恢复和回滚演练; +- 合并 `main`; +- 创建 Tag; +- 正式部署或切换流量。 + +## 2. 权威仓库与执行状态 + +| 项目 | 当前值 | +|---|---| +| 权威 Bare Repo | `/data/aios-gitops/repo.git` | +| OpenClaw Worktree | 独立且 clean | +| Codex Worktree | 独立且 clean | +| Gitea Remote | `https://g.cnnetmkt.top/git/aios/aios.git` | +| Candidate OID | `634f6b164f5b20372ab9ec8144bbf76df97de335` | +| OpenClaw Task OID | `bd2784015d40c328d158cd52ebd8683b6e56b3ad` | +| Codex Task OID | `e28245f411dd85ff9384ed595dacc53aab8a91ba` | +| 三分支 Gitea 同步 | `local_oid == gitea_oid` | +| OpenClaw 状态 | `blocked` | +| OpenClaw Heartbeat | 有记录,但 `valid_for_running=false` | +| Codex 状态 | `blocked` | +| Codex Heartbeat | 新鲜 | +| Codex 发布建议 | `STOP_PREPRODUCTION` | + +## 3. 已完成的安全与运行修复 + +### 3.1 Gitea 凭据轮换 + +已完成: + +- 旧 `owner/openclaw-deploy-cli`、`scope=all` 凭据 live count 为 `0`; +- 新凭据:`gitops-bot/openclaw-deploy-cli-v2-20260720`; +- 新凭据作用域:`write:repository`; +- 凭据文件权限:`root:gitops 0640`; +- 令牌值未进入 Git、日志、Evidence 或报告。 + +### 3.2 Gitea 与执行服务 + +已完成: + +- 验证 Gitea SSH 指纹; +- 备份并修复 `known_hosts`; +- 恢复 `aios-agent-command-watcher`; +- 恢复 `aios-autonomous-controller`; +- 两项服务均为 `active`; +- OpenClaw/One API 真实模型调用返回 HTTP 200; +- OpenClaw/Codex claim、heartbeat、progress、blockers、result、status 已提交并同步 Gitea。 + +## 4. 当前开放阻塞 + +### 4.1 BLK-OPENCLAW-PLAINTEXT-SECRETS + +- 严重级别:高 +- 状态:开放 +- 现象:OpenClaw 受管配置仍发现 3 处 `PLAINTEXT_FOUND`。 +- 风险:明文 Secret 可能进入配置、日志、命令参数或执行证据。 +- 解除条件: + 1. 三处明文内容全部迁移为 SecretRef、systemd Credential、只读 Secret Volume 或仓库外受保护文件; + 2. 旧值完成撤销和轮换; + 3. Secret Scanner 复验通过; + 4. Git 历史、日志和 Evidence 不包含明文。 + +### 4.2 BLK-AIOS-V2-SIGNING-MATERIAL-MISSING + +- 严重级别:高 +- 状态:开放 +- 现象:`/etc/aios-v2/aios-v2.env` 已存在且权限合规,但 `/etc/aios-v2/openclaw-signing-material.bin` 不存在。 +- 风险:无法验证 OpenClaw 签名命令、Key ID 与真实 Runtime 身份链。 +- 外部受信输入:批准的签名材料。 +- 解除条件: + 1. 签名材料由批准的 Secret/Key 交付链安装到仓库外; + 2. 权限为 `0600` 或更严格; + 3. 运行用户可读; + 4. Key ID 与材料匹配; + 5. execute/status 路径完成真实签名验证; + 6. 不输出材料内容、Hash 或长度特征。 + +### 4.3 BLK-CANDIDATE-NOT-MERGED + +- 严重级别:高 +- 状态:开放 +- 现象:OpenClaw Task 尚未包含当前 Candidate,`merge-base --is-ancestor` 未通过。 +- 风险:后续测试和部署不能证明当前 Candidate 可用。 +- 解除条件: + 1. 保护已有 `.agent/` Evidence; + 2. 普通 Merge 当前 Candidate 到 OpenClaw Task; + 3. 解决冲突并由 Codex 审查; + 4. 更新所有 Evidence 中的 `candidate_commit`; + 5. 本地与 Gitea OID 再次一致。 + +### 4.4 BLK-OPENCLAW-RUN-PROVENANCE-MISSING + +- 严重级别:高 +- 状态:开放 +- 现象:OpenClaw 写工具被 `run_provenance_missing` 策略拒绝。 +- 风险:无法证明写操作来自已领取、已授权、可审计的执行会话。 +- 外部受信输入:允许七个 `.agent` JSON 写入的 OpenClaw Provenance 授权。 +- 解除条件: + 1. 创建带任务 ID、执行器实例、Claim OID、Candidate OID 和授权主体的 Run Provenance; + 2. Provenance 与七个 `.agent` JSON 写入范围绑定; + 3. 权限仅覆盖当前任务分支和 Evidence 路径; + 4. 由 Owner 或批准策略签发; + 5. 写入、Commit、Push 和审计链验证通过。 + +### 4.5 BLK-CONTROLLER-LEGACY-GITEA-CHECK + +- 严重级别:高 +- 状态:开放 +- 现象:Controller 健康检查仍硬编码旧 `aios-v23`,并返回 `gitea=false`、`branch_sync=false`。 +- 风险:健康状态与当前 AIOS V2R1 仓库不一致,可能错误阻止或错误放行发布。 +- 解除条件: + 1. 移除旧仓库硬编码; + 2. 从配置读取权威仓库、Remote 和目标分支; + 3. 健康检查分别报告 `local_sync`、`gitea_sync` 和 `oid_match`; + 4. 不再把本地 Bare Repo 更新当作完全同步; + 5. 增加回归测试; + 6. 更新中文文档和追踪矩阵。 + +## 5. 模型审查策略修正 + +`gpt-5.3-codex-spark` 是子 Agent 审查的优先推荐模型,不是强制依赖。 + +执行规则: + +1. Spark 可用时优先使用; +2. Spark 不可用时,使用模型注册表中已批准、已启用且优先级最高的合适模型; +3. 必须记录实际 `model_id`、模型名称和审查结果; +4. 禁止冒充使用不存在的模型; +5. 只有完全没有可用审查模型时,模型能力才构成阻塞。 + +当前五个 Spark 角色的独立结论一致为“禁止生产放行”,该结论作为已有审查证据保留;后续复验可使用任何满足上述规则的批准模型。 + +## 6. Gate 状态 + +| Gate | 当前状态 | 说明 | +|---|---|---| +| Gate A:文档与设计 | 未运行 | Candidate 未合并到任务,阻塞未解除 | +| Gate B:代码与测试 | 未运行 | 不能基于不完整任务分支测试 | +| Gate C:预发布 | 禁止 | Secret、签名、Provenance、Controller Health 未通过 | +| Gate D:发布审查 | `STOP_PREPRODUCTION` | Codex 明确停止预发布 | +| Gate E:生产发布 | 禁止 | 未满足任何生产 Gate | + +## 7. 阻塞解除顺序 + +必须按以下顺序处理,避免重复测试和错误放行: + +```text +1. 清除 3 处明文 Secret + ↓ +2. 安装批准的签名材料 + ↓ +3. 签发最小范围 Run Provenance + ↓ +4. 修复 Controller 旧仓库健康检查 + ↓ +5. Merge 当前 Candidate 到 OpenClaw Task + ↓ +6. 校验 local_oid == gitea_oid + ↓ +7. 执行 Gate A:文档—代码检查 + ↓ +8. 执行 Gate B:单元与集成测试 + ↓ +9. 执行离线全量验收 + ↓ +10. 执行在线 Runtime 联调 + ↓ +11. 执行重启恢复与回滚 + ↓ +12. Codex 重新审查并给出发布建议 +``` + +## 8. 外部受信输入 + +目前仅有两项确实需要外部受信输入: + +1. **批准的签名材料** + - 不得通过聊天、Git 或普通日志传递; + - 必须通过批准的 Secret/Key 交付链安装。 + +2. **OpenClaw Run Provenance 授权** + - 仅允许当前任务所需的七个 `.agent` JSON 写入; + - 必须绑定任务、执行器实例、Claim、Candidate 和分支; + - 不得授予通用生产写权限。 + +其余阻塞均可由 OpenClaw、Codex、Windows ChatGPT Owner 和 GitOps 运维流程处理。 + +## 9. 监督结论 + +当前状态保持: + +```text +BLOCKED +STOP_PREPRODUCTION +``` + +虽然三分支已经同步 Gitea、凭据已经最小权限轮换、执行服务已经恢复,但当前尚无足够证据允许执行 Gate A–D 或进入预发布。 + +任何后续状态更新必须同步: + +- OpenClaw `.agent/status.json`、`blockers.json`、`progress.json`、`result.json`; +- Codex 对应监督 Evidence; +- 本文档; +- `05-TRACEABILITY-MATRIX.md`; +- `AIOS-V2R1-PRODUCTION-CANDIDATE.md`; +- 如涉及架构或发布语义,更新 ADR。