docs: add v0.1 component specs

This commit is contained in:
Codex
2026-05-29 10:11:17 +08:00
parent 535d0c3f80
commit f896439940
14 changed files with 604 additions and 38 deletions
+9 -9
View File
@@ -19,7 +19,7 @@
- `agentrun-mgr`Run schema、tenant fields、idempotency、command 状态机、event seq、claim/lease 冲突、failureKind。
- `agentrun-runner`claim/poll/report client、heartbeat、backend event normalization、interrupt/cancel、logPath、Secret redaction。
- backend adapter:输入输出转换、assistant/tool/error/terminal event、provider auth failure 分类、API Key 不进 event/log。
- backend adapter:输入输出转换、assistant/tool/error/terminal event、provider auth failure 分类、provider credential 不进 event/log。
- CLI:默认 JSON、空 stdout 失败、长操作短返回、错误结构化。
- Postgres adaptermigration、事务、run/command/event round-trip、重启后可查询。
- Secret 分发:SecretRef schema、missing secret failure、redaction。
@@ -37,9 +37,9 @@
- 真实 `v0.1-gitops` artifact catalog 与 `deploy/gitops/g14/runtime-v01/**`
- 真实 Argo CD Application `agentrun-g14-v01` 同步到 `agentrun-v01`
- 真实 `agentrun-v01-postgres` StatefulSet、PVC、Service 和 migration ledger。
- 真实 Kubernetes SecretRef 注入 Postgres DSN 和 Code Agent API Key
- 真实 Kubernetes SecretRef 注入 Postgres DSN 和 Code Agent provider credentialCodex 测试凭据必须来自 `~/.codex/auth.json``~/.codex/config.toml` 的 Kubernetes Secret projection
- 真实 `agentrun-mgr`、runner Job 或受控 runner process、真实 backend adapter。
- 至少一个真实 Code Agent provider turn;如果 API Key SecretRef 缺失,综合联调必须标记 blocked,不能降级为 mock pass。
- 至少一个真实 Code Agent provider turn;如果 provider credential SecretRef 缺失,综合联调必须标记 blocked,不能降级为 mock pass。
综合联调最小闭环:
@@ -50,7 +50,7 @@
5. runner 使用真实 SecretRef 调用真实 backend provider,完成一个最短 turn。
6. manager 可查询 command state、append-only events、terminal_status 和 redacted logPath/job identity。
7. 重启 `agentrun-mgr` 后,run、command、events 和 terminal_status 仍可从 Postgres 查询。
8. 日志、event、CLI 输出和 health 中没有 API Key、DSN password、token 或 URL credential 明文。
8. 日志、event、CLI 输出和 health 中没有 provider credential、DSN password、token 或 URL credential 明文。
### CLI 交互联调标准
@@ -62,12 +62,12 @@ CLI 交互联调必须满足:
- 每个 CLI 调用默认输出 JSON,stdout 不为空,且 60 秒内返回;长时间模型 turn 必须通过后续 status/events 命令观察。
- 创建类命令必须返回 `runId``commandId`、status、job/process identity、logPath 和下一步 poll command;查询类命令必须返回当前 state、terminal_status、failureKind 和 event cursor。
- CLI 输出、日志摘要和错误信息必须保留可观测性,不能只返回成功/失败布尔值;错误必须能区分 missing SecretRef、provider auth failure、runner lease conflict、backend failure 和 infra failure。
- CLI 不得输出 API Key、Postgres DSN password、token、URL credential 或 Secret value;只能输出 redacted value 或 SecretRef。
- CLI 不得输出 provider credential、Postgres DSN password、token、URL credential 或 Secret value;只能输出 redacted value 或 SecretRef。
- 重启或滚动 `agentrun-mgr` 后,CLI 仍能查询同一 run、command、events 和 terminal_status,证明结果来自 Postgres 而不是进程内存。
### RESTful API 交互联调标准
RESTful API 交互联调验证 `agentrun-mgr` 对外 HTTP JSON 合同,而不是 CLI wrapper。它必须直接访问真实 `agentrun-v01` runtime 中的 manager API,且使用同一个真实 runner、backend adapter 和 provider API Key 完成一个 run 生命周期。
RESTful API 交互联调验证 `agentrun-mgr` 对外 HTTP JSON 合同,而不是 CLI wrapper。它必须直接访问真实 `agentrun-v01` runtime 中的 manager API,且使用同一个真实 runner、backend adapter 和 provider credential 完成一个 run 生命周期。
RESTful API 交互联调必须满足:
@@ -94,7 +94,7 @@ CLI 与 RESTful API 可以复用同一个真实 run 做联调。若两者观察
- 本地临时 Postgres 或 sqlite 测试成功。
- GitOps branch 已推送但 Argo 未同步。
- Argo Synced 但没有真实 run terminal_status。
- provider API Key 缺失时的跳过结果。
- provider credential 缺失时的跳过结果。
- 只读 health 成功但没有完成真实 Code Agent turn。
## 测试规格
@@ -105,7 +105,7 @@ CLI 与 RESTful API 可以复用同一个真实 run 做联调。若两者观察
### T2 综合联调真实性
阅读本文,然后执行一次综合联调,确认所有关键依赖均为真实 `agentrun-v01` runtime、Postgres、SecretRef、runner、backend 和 provider API Key任何缺失必须返回 blocked 或 failed。
阅读本文,然后执行一次综合联调,确认所有关键依赖均为真实 `agentrun-v01` runtime、Postgres、SecretRef、runner、backend 和 provider credentialCodex 测试凭据必须通过 Kubernetes Secret projection 注入 `~/.codex/auth.json``~/.codex/config.toml`任何缺失必须返回 blocked 或 failed。
### T3 发布判定
@@ -113,7 +113,7 @@ CLI 与 RESTful API 可以复用同一个真实 run 做联调。若两者观察
### T4 CLI 交互联调
阅读 `AGENTS.md`、本文和 [cli.md](cli.md),然后用 AgentRun CLI 手动测试以下内容:在真实 `agentrun-v01` 运行面创建 run,提交一个 `turn` command,启动或触发真实 runner,并轮询 command status 与 run events 直到出现 terminal_status。确认每个步骤只使用正式 CLI 命令,不使用 debug 子命令或 mock/fake backend;每次调用 60 秒内返回非空 JSON,包含 runId、commandId、status、job/process identity、logPath 或下一步 poll command;日志、event 和 CLI 输出不得出现 API Key、DSN password、token 或 URL credential 明文。最后重启或滚动 `agentrun-mgr`,再用 CLI 查询同一个 run,确认 command state、events 和 terminal_status 仍可见。
阅读 `AGENTS.md`、本文和 [cli.md](cli.md),然后用 AgentRun CLI 手动测试以下内容:在真实 `agentrun-v01` 运行面创建 run,提交一个 `turn` command,启动或触发真实 runner,并轮询 command status 与 run events 直到出现 terminal_status。确认每个步骤只使用正式 CLI 命令,不使用 debug 子命令或 mock/fake backend;每次调用 60 秒内返回非空 JSON,包含 runId、commandId、status、job/process identity、logPath 或下一步 poll command;日志、event 和 CLI 输出不得出现 provider credential、DSN password、token 或 URL credential 明文。最后重启或滚动 `agentrun-mgr`,再用 CLI 查询同一个 run,确认 command state、events 和 terminal_status 仍可见。
### T5 RESTful API 交互联调