diff --git a/docs/reference/hwlab.md b/docs/reference/hwlab.md index 4a6c1d28..4c0f55e3 100644 --- a/docs/reference/hwlab.md +++ b/docs/reference/hwlab.md @@ -122,6 +122,8 @@ Workbench prompt、TraceTimeline、final response、详情弹窗或工具调用 详情弹窗和恢复会话类验收还应覆盖“从持久化 conversation 恢复”的路径,而不是只在刚完成 turn 的内存态截图。若用户报告的原始 conversation 对当前验收 actor 不可见,但同一 trace 的 `result` 可读,可以创建当前 actor 可见的临时 conversation,消息中挂载同一个真实 `traceId` 和最小 terminal agent message,再在 Web 中选择该临时会话、打开运行详情并等待 result 诊断自动补齐;验收后删除临时 conversation。closeout 必须写明这是同 trace 的恢复路径验证,不能声称修改或读取了原始用户 conversation。 +Completed turn、Trace 重放或 session deep link 类 issue 关闭前,必须用新的浏览器上下文或等价 fresh login 直接打开 `/workbench/sessions/?projectId=`。同一 SPA 页面内发送后再 `reload` 只能证明当前内存态和同页缓存没有立即丢失,不能替代 fresh deep link 复测;fresh deep link 必须重新通过 conversation detail、turn/trace replay 或等价事件重放恢复用户消息、terminal agent message、Trace rows、active tab 和 `running=false` 终态。若同页 reload 正常但 fresh deep link 下 `/v1/agent/conversations/` 或 `/v1/agent/turns/` 返回 404,且 DOM `messageCount=0` / `traceRowCount=0`,该 issue 仍未通过,必须保持打开或重开。 + Session 切换、session rail 或 Workbench 恢复路径类问题必须同时验证点击态和持久化恢复态。浏览器证据应在同一 public origin 中选择一个非当前 session,等待足够覆盖 `hydrate`、`select-conversation`、active trace repair 等异步返回的空闲窗口,确认 active tab 没有回退;随后读取 `/v1/workbench/workspace?projectId=` 确认后端 `selectedConversationId` 已改变并持久化;最后刷新页面并再次等待 session tabs,确认同一个 session 仍是 active。若当前 selected conversation 没有出现在 `/v1/agent/conversations` 当前列表窗口中,前端必须把 workspace 当前选中 conversation 合入 session rail;刷新后没有 active tab、状态显示“等待 workspace”,或只靠内存态显示成功,均不能作为通过证据。session rail 的刷新列表只是候选窗口,不是 selected session 的完整真相;list API 临时缺当前 conversation 时,不得清空当前 tab、取消 active 状态或让标签在刷新/深链恢复中闪烁消失。自定义 Playwright 验收不要只按 tab index 或重复标题判断,应锁定唯一 title、conversationId 或后端 selected id,并记录 `select-conversation` response;与 session 切换无关的 health/RPC 噪声应拆成独立 issue,不阻塞已经通过的切换闭环。 线上 session rail 当前列表窗口可能只有空会话,或包含已经过期的 stale conversation。选择非空、running 或 terminal 会话作为验收候选时,应先通过 `/v1/agent/conversations?projectId=&limit=` 扩大候选范围,再对候选逐个读取 `/v1/agent/conversations/?projectId=`;只有 detail 200 且消息/trace shape 满足目标场景的会话才可作为正向切换、reload 或 terminal replay 证据。detail 404 的候选本身是 stale/list-window 负向信号,应用于验证隔离路径,而不能继续当作正向 reload 样本。