fix: improve web-probe evidence summaries (#466)

Co-authored-by: Codex <codex@noreply.local>
This commit is contained in:
Lyon
2026-06-18 11:33:57 +08:00
committed by GitHub
parent 343c13aa98
commit 384cb9dfb8
3 changed files with 526 additions and 18 deletions
+8 -2
View File
@@ -38,9 +38,14 @@ bun scripts/cli.ts hwlab nodes web-probe run --node D601 --lane v03
```bash
bun scripts/cli.ts hwlab nodes web-probe script --node D601 --lane v03 <<'JS'
export default async ({ page, gotoStable, screenshot, fetchJson, safeEvaluate }) => {
export default async ({ page, gotoStable, screenshot, fetchJson, fetchApiMatrix, recordStep, safeEvaluate }) => {
await page.route('**/v1/agent/conversations**', route => setTimeout(() => route.continue(), 1000));
await gotoStable('/workbench');
const apiMatrix = await fetchApiMatrix([
'/v1/workbench/workspace?projectId=prj_hwpod_workbench',
'/auth/session'
]);
recordStep('workbench-ready', { url: page.url(), apiMatrixOk: apiMatrix.ok });
return {
url: page.url(),
workspace: await fetchJson('/v1/workbench/workspace?projectId=prj_hwpod_workbench'),
@@ -57,7 +62,8 @@ JS
- 先通过 `gotoStable``waitWorkbenchReady` 或等价导航进入目标 origin,再用 `fetchJson` 读同源 API;不要在 `about:blank` 上请求 `/v1/...`
- Workbench 有 SSE/长轮询时不要用 `networkidle` 判断通过;用明确 DOM/API 条件,如 final URL、route conversationId、active tab、message card、trace row 或 workspace `selectedConversationId`
- Playwright `page.evaluate` 只能传一个可序列化参数;多个值包成对象,或用 `safeEvaluate(fn, { a, b })`
- 失败证据至少保留 `failureKind``errorMessage``scriptSha256``runDir``lastUrl``lastScreenshot`;默认失败截图是 `failure.png`
- 脚本中用 `recordStep(name, data)` 保存关键 DOM/API partial evidenceAPI 批量探测优先用 `fetchApiMatrix(paths)`,单个 API 失败不应让后续证据丢失
- 失败证据至少保留 `failureKind``errorMessage``scriptSha256``runDir``lastUrl``lastScreenshot``probe.summary``reportPath`/`reportSha256`;默认失败截图是 `failure.png`
## Fake-Server Playwright