feat: add task artifact validation for code runs
This commit is contained in:
@@ -19,12 +19,12 @@
|
||||
- Stream Controller 已具备 SSE headers、abort propagation、backpressure pipeline。
|
||||
- Redis Router 已启用,承担 worker runtime state。
|
||||
- Goose Worker Pool 已从固定单点走向四 worker 可观测调度。
|
||||
- Aider/OpenHands 已从普通聊天默认能力中剥离,进入 code mode 和后端灰度门禁;P6.3 已把 code run 从 goosed session extension 外移到 `agent-run-v1` Tool Gateway 协议,P6.4 已完成 Aider 真实执行 canary,P6.5 已完成 OpenHands 真实执行 canary,P6.6 已完成 external worker 精确接管 code-run canary,P6.7 已加入 Tool Gateway 产物校验与输出审计,P6.8 已安装 external worker LaunchAgent,P6.9 已完成带 validation 的 external worker 灰度 canary,P6.10 已加入 external worker 只读观测脚本,P6.11 已加入放量策略门禁,P6.12 已开启全用户长期灰度并通过普通测试用户真实路径,P6.13 已安装自动暂停 guard,P6.15 已让 H5 code-run 自动补 receipt validation 并恢复后端 required validation,P6.17/P6.18 已把 external worker 并发 2 通过 canary 并固化为当前 all-user gray 策略,P8.1 已加入 stale running recovery,P8.2 已完成 Portal DB/Auth 瞬时错误兜底。
|
||||
- Aider/OpenHands 已从普通聊天默认能力中剥离,进入 code mode 和后端灰度门禁;P6.3 已把 code run 从 goosed session extension 外移到 `agent-run-v1` Tool Gateway 协议,P6.4 已完成 Aider 真实执行 canary,P6.5 已完成 OpenHands 真实执行 canary,P6.6 已完成 external worker 精确接管 code-run canary,P6.7 已加入 Tool Gateway 产物校验与输出审计,P6.8 已安装 external worker LaunchAgent,P6.9 已完成带 validation 的 external worker 灰度 canary,P6.10 已加入 external worker 只读观测脚本,P6.11 已加入放量策略门禁,P6.12 已开启全用户长期灰度并通过普通测试用户真实路径,P6.13 已安装自动暂停 guard,P6.15 已让 H5 code-run 自动补 receipt validation 并恢复后端 required validation,P6.17/P6.18 已把 external worker 并发 2 通过 canary 并固化为当前 all-user gray 策略,P6.19 已加入 task-level artifact validation,P8.1 已加入 stale running recovery,P8.2 已完成 Portal DB/Auth 瞬时错误兜底。
|
||||
- PG 和 MindSpace 仍保持生产数据边界,SLO 报告只做统计读取;P6.3-P6.15 不新增 schema migration,不删除或修改既有用户数据。
|
||||
|
||||
整体执行评分: 9.95 / 10。
|
||||
|
||||
可以支撑当前 H5 streaming 稳定性改造的基础目标。自动采样、worker sidecar heartbeat、SLO 只读快照、SLO 日报定时器、SLO 日报保留策略、first-token EWMA、first-token p50/p95 窗口趋势、Tool Gateway Queue v0、外部 worker 接管入口、真实 worker canary、后端 code-mode canary、code-run 用户级灰度 gate、H5 页面编辑 UI canary、P6.3 Tool Gateway 协议化、P6.4 Aider 真实 canary、P6.5 OpenHands 真实 canary、P6.6 external worker code-run canary、P6.7 Tool Gateway guardrails、P6.8 worker LaunchAgent、P6.9 validated external worker canary、P6.10 worker observability、P6.11 rollout policy gates、P6.12 all-user gray、P6.13 auto-pause guard、P6.15 H5 validation metadata、P6.17/P6.18 worker concurrency 2、P8.1 stale running recovery 和 P8.2 Portal DB/Auth transient hardening 已经落地。主要剩余差距转为更细粒度的任务级产物规范和用户可见进度/失败说明。
|
||||
可以支撑当前 H5 streaming 稳定性改造的基础目标。自动采样、worker sidecar heartbeat、SLO 只读快照、SLO 日报定时器、SLO 日报保留策略、first-token EWMA、first-token p50/p95 窗口趋势、Tool Gateway Queue v0、外部 worker 接管入口、真实 worker canary、后端 code-mode canary、code-run 用户级灰度 gate、H5 页面编辑 UI canary、P6.3 Tool Gateway 协议化、P6.4 Aider 真实 canary、P6.5 OpenHands 真实 canary、P6.6 external worker code-run canary、P6.7 Tool Gateway guardrails、P6.8 worker LaunchAgent、P6.9 validated external worker canary、P6.10 worker observability、P6.11 rollout policy gates、P6.12 all-user gray、P6.13 auto-pause guard、P6.15 H5 validation metadata、P6.17/P6.18 worker concurrency 2、P6.19 task-level artifact validation、P8.1 stale running recovery 和 P8.2 Portal DB/Auth transient hardening 已经落地。主要剩余差距转为用户可见进度/失败说明,以及后续更细任务类型的校验策略扩展。
|
||||
|
||||
## 实测结果
|
||||
|
||||
@@ -941,13 +941,40 @@ Data boundary:
|
||||
- guard `shouldPause=false`
|
||||
- SLO `ok=true`, `failures=[]`
|
||||
|
||||
## 下一步执行建议
|
||||
|
||||
### P6.19 Task-level Artifact Validation
|
||||
|
||||
- receipt 继续作为兜底。
|
||||
- 页面编辑任务追加目标 `public/*.html` 校验。
|
||||
- 文件/仓库任务根据任务参数声明目标相对路径。
|
||||
结果: 通过,H5 默认 code-run 在 receipt 之外追加 task-level expectedFiles,生产真实 canary 已验证三项产物校验同时通过。
|
||||
|
||||
- receipt 继续作为兜底:
|
||||
- `.memind/agent-runs/<requestId>.json`
|
||||
- 普通 H5 code-run:
|
||||
- 从用户输入、MindSpace 上下文和公开链接中提取 `public/*.html`。
|
||||
- 将可推断的目标 HTML 文件追加到 `metadata.memindRun.validation.expectedFiles`。
|
||||
- 页面编辑 code-run:
|
||||
- 传入 `pageId`、`pageTitle` 和 MindSpace context。
|
||||
- 追加 `.memind/agent-runs/<requestId>-page-edit.json`,内容必须包含 `pageId`。
|
||||
- 测试:
|
||||
- `npm run build`
|
||||
- `node --test agent-run-gateway.test.mjs agent-run-routes.test.mjs`,29 tests pass。
|
||||
- `npx tsc --noEmit` 仍被既有历史 TS 问题阻断,本次相关返回类型已收紧。
|
||||
- 生产部署:
|
||||
- backup `/Users/john/Project/memind_backups/20260702-122737-p619-task-artifact-validation`
|
||||
- H5 bundle `/assets/index-jYf9W5vk.js`
|
||||
- real canary:
|
||||
- run `60067d2f-d2af-40d1-bf35-7976309bd8da`
|
||||
- request `p619-task-validation-20260702042911`
|
||||
- status `succeeded`
|
||||
- event `tool_gateway_validation`
|
||||
- expectedFiles:
|
||||
- `.memind/agent-runs/p619-task-validation-20260702042911.json`
|
||||
- `public/p619-task-validation-20260702042911.html`
|
||||
- `.memind/agent-runs/p619-task-validation-20260702042911-page-edit.json`
|
||||
- post-check:
|
||||
- runtime/status all-user gray unchanged
|
||||
- guard `shouldPause=false`
|
||||
- `failedRecentCount=0`
|
||||
|
||||
## 下一步执行建议
|
||||
|
||||
### P6.22 Task Artifact UX and Failure Messages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user