docs: capture web-probe runtime config pitfalls

This commit is contained in:
Codex
2026-06-18 16:39:50 +00:00
parent 8bc4fe10bd
commit bd4af7fadd
2 changed files with 4 additions and 0 deletions
+2
View File
@@ -66,7 +66,9 @@ 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 })`
- `safeEvaluate` 返回结构化包装对象;脚本断言前必须解包,例如 `const evaluated = await safeEvaluate(...); const dom = evaluated?.value ?? evaluated;``recordStep` 可以记录包装对象用于诊断,但行为断言不要直接读包装对象的业务字段,避免把已通过的 DOM 误判成 `undefined`
- 脚本中用 `recordStep(name, data)` 保存关键 DOM/API partial evidenceAPI 批量探测优先用 `fetchApiMatrix(paths)`,单个 API 失败不应让后续证据丢失。
- 验证 Cloud Web runtime config 或 HTML 注入时,优先加 cache-busting query 和 `cache-control: no-cache`,并按层拆开判断:Deployment env、Pod 内 `127.0.0.1` HTML、公网原始 HTML、浏览器 DOM。不要只凭一次 web-probe DOM 缺字段就判定 rollout 失败;先确认是运行面未渲染、Pod 未滚动、边缘缓存,还是脚本读取层级错误。
- web-probe 只能观察、截图和断言,不得用 `sessionRepair``realignFreshSession`、自动点击 session、reload 循环或 workspace selection repair 作为通过条件。发现 `routeSessionId``activeSessionId``activeConversationId`、message session 或 trace session 不一致时,必须记录 mismatch 并失败;截图和 API 摘要是证据,不是修复动作。
- 失败证据至少保留 `failureKind``errorMessage``scriptSha256``runDir``lastUrl``lastScreenshot``probe.summary``reportPath`/`reportSha256`;默认失败截图是 `failure.png`