docs: refine v0.1 policy and cicd specs
This commit is contained in:
@@ -41,8 +41,8 @@ Runner inbound API 只允许本地或私有诊断,不作为业务客户端入
|
||||
| First real backend | 具体 Agent backend | 保留,P0 | `v0.1` 必须至少证明一个真实 Agent backend;默认候选是 Codex。 | `spec-v01-backend-codex.md` |
|
||||
| AgentRun CLI | CLI/Job 工具 | 保留,P0 | JSON 输出、短返回、run/command/event/runner/backend 操作入口。 | `spec-v01-cli.md` |
|
||||
| Durable store | 数据存储 | 保留,P0 | 保存 runs、commands、events、runners、backends、leases;具体存储可从 file/sqlite/Postgres 起步,但必须有迁移边界。 | `spec-v01-state-store.md` |
|
||||
| Tenant policy boundary | 系统能力 | 保留,P0 | 显式承载 tenantId、projectId、workspaceRef、providerId、backendProfile、executionPolicy、traceSink。 | `spec-v01-tenant-policy.md` |
|
||||
| Observability | 系统能力 | 保留,P1 | event、trace、log、redaction、terminal status 和 failure kind 统一观察。 | `spec-v01-observability.md` |
|
||||
| Tenant policy boundary | Run schema 合同 | 保留,P0 | 作为 `Run` 的必填字段和最小校验存在,不做独立 policy engine;tenant 的业务授权仍由 UniDesk/HWLAB 判定。 | 并入 `spec-v01-agentrun-mgr.md` |
|
||||
| Observability | 最小事件/日志合同 | 保留,P0 子项 | 作为 manager/runner 的 event、terminal status、failureKind、logPath 和 redaction 最小合同,不拆独立观测系统。 | 并入 `spec-v01-agentrun-mgr.md`、`spec-v01-agentrun-runner.md` |
|
||||
| `agentrun-scheduler` | 长驻调度器 | Deferred | M1-M3 稳定后再实现自动 pending scan、capacity selection 和 runner Job 创建。 | `spec-v01-scheduler.md` |
|
||||
| 多 backend 路由 | 系统能力 | Deferred | `v0.1` 不做完整多 backend 调度,只保留 capability 模型。 | 后续版本 spec |
|
||||
| UI | 前端 | Deferred | `v0.1` 不要求独立 UI;UniDesk/HWLAB canary 可通过 CLI/API 验证。 | 后续版本 spec |
|
||||
@@ -75,6 +75,35 @@ POST /api/v1/commands/:commandId/ack
|
||||
|
||||
`v0.1` 禁止用 SSE、WebSocket、long-polling 或长同步 `turn` 请求替代 durable resource 模型。客户端通过分页轮询观察进度。
|
||||
|
||||
## Run Schema 和 Tenant 边界
|
||||
|
||||
`v0.1` 不实现复杂 tenant policy engine,但每个 run 必须显式承载租户边界字段,避免后续 UniDesk/HWLAB canary 接入时无法追责或隔离。
|
||||
|
||||
Run create 的最小字段合同:
|
||||
|
||||
| 字段 | v0.1 规则 |
|
||||
| --- | --- |
|
||||
| `tenantId` | 必填,例如 `unidesk`、`hwlab`;只做 allowlist/schema 校验。 |
|
||||
| `projectId` | 必填,例如 `pikasTech/unidesk`、`pikasTech/HWLAB`。 |
|
||||
| `workspaceRef` | 必填,描述 source/worktree/workspace,不由 runner 猜测。 |
|
||||
| `providerId` | 必填,例如 `G14`、`D601`;只表示目标 provider,不直接授予权限。 |
|
||||
| `backendProfile` | 必填,例如 `codex`;`v0.1` 只要求一个真实 backend 闭环。 |
|
||||
| `executionPolicy` | 必填或由 manager 显式写入默认值,至少包含 sandbox、approval、timeout、network 和 secret scope。 |
|
||||
| `traceSink` | 字段必须存在;可以为 `null` 或显式 sink,表示标准事件是否需要镜像给 tenant。 |
|
||||
|
||||
Manager 负责校验、保存和返回这些字段;runner 只能消费已保存的 run policy,不能自行扩大 workspace、network 或 secret scope。HWLAB live device mutation、UniDesk production deploy、GitHub issue/PR 写入等业务授权仍由 tenant 自己的入口判定,AgentRun 不把这些业务规则内建成通用门禁。
|
||||
|
||||
## 最小 Observability 合同
|
||||
|
||||
`v0.1` 不拆出独立 `spec-v01-observability.md`,也不建设通用日志平台。可观察性只作为 run 生命周期的一部分:
|
||||
|
||||
- `events` 必须 append-only,并按 `seq` 分页读取。
|
||||
- 每个 run 必须最终写出 `terminal_status` 或明确的 non-terminal status。
|
||||
- runner 启动失败、backend 失败、policy/schema 失败必须写入结构化 `failureKind`。
|
||||
- CLI 启动本地 process 或 Kubernetes Job 时必须返回 `logPath` 或 Kubernetes job/pod identity。
|
||||
- event 和日志不得打印 Secret/token 值;只能记录 SecretRef、credential source 或 redacted marker。
|
||||
- redaction 规则只覆盖明显 credential、token、Authorization header 和 URL credential;复杂审计、集中 trace、metrics dashboard 推迟到后续版本。
|
||||
|
||||
## MVP 分期
|
||||
|
||||
| 阶段 | 目标 | 验收重点 |
|
||||
|
||||
Reference in New Issue
Block a user