From 0bca0a4034f9b162d6f3c09491e42362f4472be8 Mon Sep 17 00:00:00 2001 From: pikastech Date: Tue, 21 Jul 2026 13:45:44 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=8B=86=E5=88=86=20Workbench=20?= =?UTF-8?q?=E5=9B=9E=E6=94=BE=E9=AA=8C=E6=94=B6=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/unidesk-webdev/SKILL.md | 4 +++- docs/reference/hwlab.md | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.agents/skills/unidesk-webdev/SKILL.md b/.agents/skills/unidesk-webdev/SKILL.md index d1eb8f2f..c7e1f039 100644 --- a/.agents/skills/unidesk-webdev/SKILL.md +++ b/.agents/skills/unidesk-webdev/SKILL.md @@ -209,7 +209,9 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web - session 切换或重连期间的 replay 可见性以 `docs/reference/hwlab.md#纯-kafka-页面刷新与实时交接合同` 为唯一权威: - connected 前允许后台追赶,但页面必须保留切走前的稳定投影,不得显示历史前缀导致最近更新时间倒退; - handoff 完成后只把待处理 frame 交给原 reducer 一次发布,失败或 scope 替换时丢弃未完成事务; - - L1 先用 `validateExistingSessionRefresh` 证明单 EventSource、retention→live 和禁止恢复请求,再对真实运行中 session 用 `switchAwayAndBack --session-id ` 验证用户操作路径; + - L1 验收分为两个现有 typed command: + - 先用 `validateExistingSessionRefresh` 证明单 EventSource、retention→live 和禁止恢复请求; + - 再对真实运行中 session 用 `switchAwayAndBack --session-id ` 验证用户操作路径; - 在统一 typed command 尚未提供切换期间的时间标签采样前,L0 可见性测试是“不回退”的主证据,L1 两条 typed command 只补真实入口和 transport 合同,禁止把最终截图冒充过程证据; - 已有 session 的 rail、turn card、Final Response 或回放提示不一致时: - 先执行一次 `workbench events inspect --over-api` 证明服务端 connected、核心事件族和 terminal; diff --git a/docs/reference/hwlab.md b/docs/reference/hwlab.md index bba0a18a..e6cced72 100644 --- a/docs/reference/hwlab.md +++ b/docs/reference/hwlab.md @@ -481,7 +481,9 @@ HWLAB v0.3 订阅 AgentRun Kafka event 的权威输入是 `agentrun.event.v1`, - retention replay 的页面可见性采用单一事务边界: - 返回已有 session 或 SSE 重连时,connected 前的 Kafka business frame 可以在后台追赶,但不得逐帧发布历史前缀到当前可见 session bucket; - 追赶期间必须保留切走前的稳定消息、Trace、terminal 和最近更新时间,错误与基础设施诊断仍应立即可见; - - 只有同一 session scope 的 `workbench.connected` 证明 retention 到 live handoff 完成后,才能在同一浏览器任务内把待处理 frame 交给原生产 reducer 并一次发布最终投影; + - replay 提交必须同时满足以下条件: + - 同一 session scope 的 `workbench.connected` 已证明 retention 到 live handoff 完成; + - 待处理 frame 在同一浏览器任务内交给原生产 reducer,并且只发布一次最终投影; - scope 被替换、连接失败或 handoff 合同无效时必须丢弃未完成事务,禁止提交部分历史前缀; - 该事务只控制同一 Kafka+SSE reducer 的可见时机,不得演变为 snapshot、HTTP history、时间戳仲裁、第二 reducer 或第二状态权威。 - 单一路径禁止用状态优先级伪装: @@ -496,7 +498,10 @@ HWLAB v0.3 订阅 AgentRun Kafka event 的权威输入是 `agentrun.event.v1`, - 关闭此类问题时先用 repo-owned CLI 复用生产 bootstrap/codec/reducer,披露 scanned、matched、applied、barrier、buffered、deduplicated、terminal 与 stable identity: - CLI 通过后,使用 semantic internal WebProbe 在同一已有 session 上执行只刷新、不提交新输入的验收; - 刷新前后 user/agent identity 和可见顺序必须一致,retention 与产品 SSE envelope 多重集必须精确相等; - - 涉及 session 切换时,必须在真实运行中 session 上执行切走再切回,并证明 handoff 前可见最近更新时间不回退、handoff 后继续接收 live event; + - 涉及 session 切换时: + - 必须在真实运行中 session 上执行切走再切回; + - 必须证明 handoff 前可见最近更新时间不回退; + - 必须证明 handoff 后继续接收 live event; - OTel 应只出现 direct publish、shared fanout receive 和 product SSE write,projector/projection write span 必须为 0。 纯 Kafka 调试分成三个可复用入口,不以临时脚本作为长期路径。AgentRun 使用 `./scripts/agentrun kafka regenerate agentrun --session-id --trace-id `,从 stdio Kafka/JSONL 调用生产 reducer,只输出 `agentrun.event.debug.v1` 并明示 partial reconstruction;HWLAB 使用 `hwlab-cli kafka regenerate hwlab --from kafka|jsonl --session-id --trace-id ` 调用生产 mapper,只输出 `hwlab.event.debug.v1`。原 Workbench 页面的管理员 YAML 调试开关只在显式点击后按当前 traceId 建立唯一 debug group,清空隔离面板并复用生产 reducer/card;正式浏览器验收使用 `web-probe observe command --type validateWorkbenchKafkaDebugReplay`。typed command 继承 observer 的 YAML `internal|public` origin,不接受 URL/IP 来选择内外网。