2.0 KiB
2.0 KiB
AIOS Autonomous Release Candidate 架构
本 Candidate 把规划、工作流、凭据引用、原生会话、证据和发布控制拆成独立边界。它只负责验证约束,不拥有生产授权。
信任边界
- Owner Approval 的签名和撤销状态来自外部 HSM/KMS 或可信 Approval Plane。Candidate 只有 verifier,没有 signer。
- Secret Manager V2 只返回
systemd-credential:*或受控的 Candidate reference,不返回认证正文。 - OpenClaw、Codex 和 Gitea provider 身份由管理面供应;模拟 provider 永远不能把原生 canary 标成已验证。
- Writer 只写任务绑定分支和允许路径。生产 main、tag、baseline、registry 和部署不属于 Candidate 权限。
核心模块
models.py:TaskPlan、Approval、Credential、Result 和 ReleasePlan 强类型约束。store.py:私有 SQLite、WAL、全同步、schema 检查、事务和原子 step transition。workflow.py:依赖、claim、lease、retry、timeout recovery 和终态。credential.py/secret_manager.py:reference-only 生命周期、补偿撤销、跨任务拒绝和 post-revocation 验证。native_adapters.py:OpenClaw/Codex 原生 provider ID、parent/child tree、status、interrupt、close 和纯文本回执。gitea_canary.py:仅通过 deploy-key provider 的 list/create/delete 操作完成 canary 与撤销验证。evidence.py:落库的哈希链、重启回放、篡改检测和 required-event closure。artifact.py:确定性 tar、逐文件哈希、package closure、链接/特殊文件/敏感标记拒绝。release.py/release_gate.py:部署审批与回滚审批分离,tag object 与 peeled target 分离验证。
会话真实性
以下状态必须分别记录,不能互相替代:
broker_session_verified
openclaw_native_child_session_verified
codex_child_session_verified
Shadow provider 只能证明 Broker 合同和清理路径,不能证明 OpenClaw 或 Codex 原生会话。