Merge pull request #1329 from pikasTech/post-task-1328-resource-timing

docs(webdev): 固化 Workbench timing 内存诊断口径
This commit is contained in:
Lyon
2026-07-01 02:14:42 +08:00
committed by GitHub
@@ -253,6 +253,8 @@ Workbench 至少覆盖:
- completed turn / Trace 重放 / deep link 验收必须用 fresh browser context 或等价 fresh login 直接打开 `/workbench/sessions/<sessionId>`,不能只用同页 reload。
- 0repair 验收必须用 fresh context 直达 session/deep link,或从当前 session 显式切换到目标 session;不得依赖测试 helper 选择、reload、切走再切回、`sessionRepair``realignFreshSession` 修正页面后再判通过。旧 session 的延迟 detail、turn、trace、SSE 或 refreshSessions 晚到,只能更新该 session cache/list,不能改变 active URL、active tab、current messages 或 composer。
- Workbench reducer/selectors/0repair 收敛类 closeout 必须做负向源码扫描并在 issue/PR 证据里写明结果;至少覆盖直接写服务端事实和旧 repair 名称,例如 `messages.value =``messages.value.push``sessions.value =``previousMessages``previousSessionId``restorePrevious``restoreMessagesTraceAuthority``repairWorkbenchMessagePage``findMessageTextFallback``projectionCatchup``PROJECTION_CATCHUP` 和组件侧 `workbench.messages`。这些扫描是辅助证据,不能替代 fake-server Playwright 与 public web-probe。
- Workbench 浏览器卡死、CDP metrics timeout 或内存持续增长时,优先排查并修应用侧真实压力源,例如请求风暴、未清理的 `PerformanceObserver` / `ResourceTiming` buffer、长列表同步扫描、低层 performance beacon 重试和高基数字段聚合;不得通过降低 web-probe 采样、改浏览器 baseline、自动刷新、fallback、隐藏红灯或放宽 analyzer 让 smoke 通过。使用 `browser-process.jsonl` 取证时按 `pageRole`/`pageId` 和单页面口径分析,预算阈值、baseline 扣除和 kill/red 策略只从 YAML/SPEC 读取,不能把 control+observer 双页面总 RSS 直接当成单页超标。
- Workbench RUM/API timing 采集必须保持低基数且有界:同源 API route label 要模板化或脱敏,不能把 session/trace/query 写入聚合标签;从浏览器 ResourceTiming enrich 请求耗时时,应单 pass 选择候选、读完后清理或轮转 resource timing buffer,并用最小单元测试覆盖 buffer 清理和 route label 归一化,避免多轮 Workbench 把诊断采样本身变成内存增长或主线程卡顿来源。
- Trace 实时性要用间隔采样,区分“加载中”和“思考中”;终态卡片不得继续保留“思考中”空态。
- 用户反馈“当前 session 不刷新、切走再切回才刷新”时,证据必须成对采集:直达目标 URL、原地等待、切到其他 session、切回目标 session 的 DOM 截图;同时记录 session list、session detail、messages、turn snapshot 和 trace event page 的状态。issue 正文要明确这是事件投影/重放问题,不能只登记成普通 deep link 或单接口 404。