diff --git a/config/hwlab-web-probe-sentinel/check-catalog.yaml b/config/hwlab-web-probe-sentinel/check-catalog.yaml index 81a99b24..028631ac 100644 --- a/config/hwlab-web-probe-sentinel/check-catalog.yaml +++ b/config/hwlab-web-probe-sentinel/check-catalog.yaml @@ -20,148 +20,148 @@ sentinel: - code: WBC-001 id: workbench-terminal-api-dom-not-refreshed-in-place level: error - titleZh: 终端未原地刷新 - summaryZh: API 已变化但终端 DOM 未同步。 + titleZh: 刷新后终端内容没更新 + summaryZh: 后台已有新内容,但页面终端区域仍显示旧内容。 blocking: true order: 10 - code: WBC-002 id: workbench-terminal-trace-not-hydrated-in-place level: error - titleZh: 终端 Trace 未水合 - summaryZh: Trace 数据存在但终端区域未原地渲染。 + titleZh: 终端记录缺失 + summaryZh: 会话已有过程记录,但终端区域没有显示出来。 blocking: true order: 20 - code: WBC-003 id: quick-verify-no-business-turn level: error - titleZh: 快速验证无业务回合 - summaryZh: 快速验证未形成稳定会话、trace 或最终回复。 + titleZh: 快速验证没有有效对话 + summaryZh: 快速验证没有看到稳定会话、过程记录或最终回复。 blocking: true order: 30 - code: WBC-004 id: quick-verify-command-sequence-failed level: error - titleZh: 快速验证命令失败 - summaryZh: 快速验证命令序列未能完成。 + titleZh: 快速验证步骤失败 + summaryZh: 快速验证的操作步骤没有完整执行。 blocking: true order: 40 - code: WBC-005 id: quick-verify-observer-start-failed level: error - titleZh: 观察器启动失败 - summaryZh: 快速验证前观察器未成功启动。 + titleZh: 页面观察未启动 + summaryZh: 快速验证前未能打开页面观察环境。 blocking: true order: 50 - code: WBC-006 id: quick-verify-account-secret-missing level: error - titleZh: 账号密钥缺失 - summaryZh: 快速验证所需账号或 Secret 未配置。 + titleZh: 验证账号未配置 + summaryZh: 快速验证所需账号或密钥缺失。 blocking: true order: 60 - code: WBC-007 id: prompt-chat-submit-failed level: error - titleZh: Prompt 提交失败 - summaryZh: sendPrompt 未观察到成功的 chat 请求。 + titleZh: 消息发送失败 + summaryZh: 用户消息提交后没有观察到成功发送结果。 blocking: true order: 70 - code: WBC-008 id: observer-command-failed level: error - titleZh: 观察命令失败 - summaryZh: web-probe observe 命令执行失败。 + titleZh: 页面操作失败 + summaryZh: 自动页面操作没有成功执行。 blocking: true order: 80 - code: WBC-009 id: route-active-session-mismatch level: error - titleZh: 路由会话不一致 - summaryZh: URL 路由会话与活动会话不一致。 + titleZh: 当前会话不一致 + summaryZh: 地址栏中的会话与页面当前会话不一致。 blocking: true order: 90 - code: WBC-010 id: workbench-message-order-user-clustered-after-navigation level: warning - titleZh: 导航后消息顺序异常 - summaryZh: 导航或刷新后用户消息聚集,需核对会话投影。 + titleZh: 返回页面后消息顺序异常 + summaryZh: 导航或刷新后,消息顺序看起来不符合对话顺序。 blocking: false order: 100 - code: WBC-011 id: cross-page-projection-divergence level: error - titleZh: 跨页面投影分叉 - summaryZh: control 与 observer 在同一会话看到不同投影。 + titleZh: 两个页面内容不一致 + summaryZh: 同一会话在两个页面中显示了不同内容。 blocking: true order: 110 - code: WBC-012 id: cross-page-projection-transient-divergence level: info - titleZh: 跨页面短暂分叉 - summaryZh: 页面切换附近出现短暂投影差异。 + titleZh: 页面切换时短暂不一致 + summaryZh: 页面切换附近短时间显示了不同内容。 blocking: false order: 120 - code: WBC-013 id: cross-page-projection-controlled-navigation-hydration level: info - titleZh: 导航水合期差异 - summaryZh: 导航水合期间 control 与 observer 暂时不同步。 + titleZh: 返回页面后内容短暂不同步 + summaryZh: 导航返回后,页面内容短时间没有完全同步。 blocking: false order: 130 - code: WBC-014 id: cross-page-projection-app-shell-not-ready level: info - titleZh: Shell 未就绪差异 - summaryZh: 投影差异由页面 Shell 未挂载解释。 + titleZh: 页面未完全打开导致差异 + summaryZh: 内容差异发生在页面主体尚未完全打开时。 blocking: false order: 140 - code: WBC-015 id: cross-page-trace-visibility-divergence level: info - titleZh: Trace 可见性差异 - summaryZh: 两页只在可见 Trace 行数上不同。 + titleZh: 两个页面记录数量不同 + summaryZh: 两个页面显示的过程记录数量不同。 blocking: false order: 150 - code: WBC-016 id: workbench-app-shell-not-ready level: error - titleZh: Workbench Shell 未就绪 - summaryZh: Workbench 路由已加载但应用 Shell 未挂载。 + titleZh: Workbench 页面未打开完整 + summaryZh: Workbench 地址已打开,但主要工作区没有正常显示。 blocking: true order: 160 - code: WBC-017 id: workbench-app-shell-transient-not-ready level: info - titleZh: Shell 短暂未就绪 - summaryZh: Workbench Shell 启动期间短暂不可用。 + titleZh: Workbench 短暂未显示 + summaryZh: Workbench 打开过程中短时间没有显示主要工作区。 blocking: false order: 170 - code: WBC-018 id: trace-without-terminal level: warning - titleZh: Trace 缺少终端态 - summaryZh: 已看到 Trace 行但未看到终端状态。 + titleZh: 过程记录缺少结束状态 + summaryZh: 页面显示了过程记录,但没有看到对应的结束状态。 blocking: false order: 180 - code: WBC-019 id: turn-trace-id-missing level: error - titleZh: 回合缺少 Trace ID - summaryZh: Code Agent 回合可见但缺少可追踪 Trace ID。 + titleZh: 对话回合缺少追踪编号 + summaryZh: 页面显示了对话回合,但缺少可用于排查的编号。 blocking: true order: 190 - code: WBC-020 id: trace-assistant-message-duplicates-final-response level: warning - titleZh: Trace 回复重复 - summaryZh: Trace Frame 渲染了重复助手最终回复。 + titleZh: 最终回复重复显示 + summaryZh: 页面上重复显示了助手最终回复。 blocking: false order: 200 - code: WBC-021 id: final-response-flicker level: error - titleZh: 最终回复闪烁 - summaryZh: Final Response 在采样期间不稳定。 + titleZh: 最终回复显示不稳定 + summaryZh: 最终回复在观察期间出现闪烁或变化。 blocking: true order: 210 - code: WBC-022 @@ -174,183 +174,183 @@ sentinel: - code: WBC-023 id: trace-events-page-read-404-root-cause level: error - titleZh: Trace 分页 404 - summaryZh: Trace events 分页读取命中 404。 + titleZh: 过程记录页面打不开 + summaryZh: 打开更早的过程记录时返回未找到。 blocking: true order: 230 - code: WBC-024 id: trace-events-page-read-http-error-root-cause level: error - titleZh: Trace 分页 HTTP 错误 - summaryZh: Trace events 分页读取返回 HTTP 错误。 + titleZh: 过程记录加载失败 + summaryZh: 打开更早的过程记录时页面返回错误。 blocking: true order: 240 - code: WBC-025 id: trace-events-page-read-requestfailed-root-cause level: warning - titleZh: Trace 分页网络失败 - summaryZh: Trace events 分页读取出现 requestfailed。 + titleZh: 过程记录加载中断 + summaryZh: 打开更早的过程记录时网络请求中断。 blocking: false order: 250 - code: WBC-026 id: runtime-http-errors level: warning - titleZh: 页面 HTTP 错误 - summaryZh: 观察期间页面请求返回 HTTP 错误状态。 + titleZh: 页面请求返回错误 + summaryZh: 页面加载过程中有请求返回错误状态。 blocking: false order: 260 - code: WBC-027 id: runtime-requestfailed level: warning - titleZh: 页面请求失败 - summaryZh: 浏览器捕获 requestfailed 事件。 + titleZh: 页面请求中断 + summaryZh: 页面加载过程中有网络请求未完成。 blocking: false order: 270 - code: WBC-028 id: runtime-dom-diagnostics level: warning - titleZh: DOM 诊断文本 - summaryZh: 页面 DOM 中出现错误或警告类诊断文本。 + titleZh: 页面出现错误提示 + summaryZh: 页面内容中出现错误或警告提示文本。 blocking: false order: 280 - code: WBC-029 id: runtime-execution-errors level: error - titleZh: 运行面执行错误 - summaryZh: Workbench 渲染了执行失败或错误行。 + titleZh: 任务执行失败 + summaryZh: Workbench 页面显示任务执行失败。 blocking: true order: 290 - code: WBC-030 id: runtime-console-alerts level: warning - titleZh: Console 告警 - summaryZh: 浏览器 console 捕获警告或错误。 + titleZh: 浏览器记录到告警 + summaryZh: 浏览器运行日志记录到警告或错误。 blocking: false order: 300 - code: WBC-031 id: browser-console-or-page-errors level: warning - titleZh: 页面运行错误 - summaryZh: pageerror 或 runner error 被捕获。 + titleZh: 页面运行异常 + summaryZh: 页面运行过程中捕获到异常。 blocking: false order: 310 - code: WBC-032 id: page-performance-slow-same-origin-api level: error - titleZh: 同源 API 过慢 - summaryZh: 同源 API 资源耗时超过 YAML 预算。 + titleZh: 页面响应过慢 + summaryZh: 页面加载数据的耗时超过配置预算。 blocking: true order: 320 - code: WBC-033 id: page-performance-slow-long-lived-stream-open level: error - titleZh: 长连接打开过慢 - summaryZh: 长连接打开耗时超过 YAML 预算。 + titleZh: 实时连接建立过慢 + summaryZh: 页面建立实时连接的耗时超过配置预算。 blocking: true order: 330 - code: WBC-034 id: page-performance-long-lived-streams level: info - titleZh: 长连接上下文 - summaryZh: 页面存在同源长连接,作为性能上下文保留。 + titleZh: 页面存在实时连接 + summaryZh: 页面打开了用于持续更新内容的连接,作为上下文保留。 blocking: false order: 340 - code: WBC-035 id: page-provenance-segments level: info - titleZh: 页面资产分段 - summaryZh: 观察跨越多个页面资产版本段。 + titleZh: 页面版本发生切换 + summaryZh: 观察期间页面资源版本发生变化,排查时需要注意前后差异。 blocking: false order: 350 - code: WBC-036 id: natural-api-dom-lag-baseline level: info - titleZh: API-DOM 基线 - summaryZh: 已收集自然 API 与 DOM 滞后基线。 + titleZh: 已收集页面更新基线 + summaryZh: 已收集后台数据变化到页面显示变化的基础样本。 blocking: false order: 360 - code: WBC-037 id: natural-api-dom-lag-candidates level: info - titleZh: API-DOM 滞后候选 - summaryZh: 自然 API 与 DOM 投影滞后候选样本。 + titleZh: 页面更新可能滞后 + summaryZh: 后台数据变化后,页面显示可能存在滞后样本。 blocking: false order: 370 - code: WBC-038 id: turn-timing-total-elapsed-zero-reset level: warning - titleZh: 总耗时归零 - summaryZh: Code Agent 总耗时从非零跳回 0。 + titleZh: 总耗时突然归零 + summaryZh: 已显示的总耗时突然回到 0。 blocking: false order: 380 - code: WBC-039 id: turn-timing-total-elapsed-decrease level: warning - titleZh: 总耗时回退 - summaryZh: Code Agent 总耗时在相邻样本间降低。 + titleZh: 总耗时倒退 + summaryZh: 相邻观察点中,总耗时变小。 blocking: false order: 390 - code: WBC-040 id: turn-timing-total-elapsed-forward-jump level: warning - titleZh: 总耗时前跳 - summaryZh: Code Agent 总耗时增长快于采样间隔。 + titleZh: 总耗时突然跳大 + summaryZh: 总耗时增长速度明显快于实际观察间隔。 blocking: false order: 400 - code: WBC-041 id: turn-timing-terminal-elapsed-growth level: warning - titleZh: 终态耗时增长 - summaryZh: 回合终态后总耗时仍继续变化。 + titleZh: 完成后耗时仍增长 + summaryZh: 回合完成后总耗时仍继续变化。 blocking: false order: 410 - code: WBC-042 id: turn-timing-recent-update-sawtooth-jump level: warning titleZh: 最近更新跳变 - summaryZh: 最近更新时间显示出现锯齿跳变。 + summaryZh: 最近更新时间显示出现异常跳变。 blocking: false order: 420 - code: WBC-043 id: turn-elapsed-severe-timeout level: warning - titleZh: 回合耗时超阈值 - summaryZh: 回合总耗时超过 YAML 配置告警阈值。 + titleZh: 回合耗时过长 + summaryZh: 回合总耗时超过配置的告警阈值。 blocking: false order: 430 - code: WBC-044 id: page-loading-visible-over-budget level: error - titleZh: 加载态超时 - summaryZh: 页面可见加载态持续时间超过 YAML 预算。 + titleZh: 页面一直显示加载中 + summaryZh: 页面可见加载状态持续时间超过配置预算。 blocking: true order: 440 - code: WBC-045 id: page-loading-concurrent level: info - titleZh: 多加载态并发 - summaryZh: 同一采样点出现多个加载中指示。 + titleZh: 页面同时显示多个加载中 + summaryZh: 同一时刻页面出现多个加载中提示。 blocking: false order: 450 - code: WBC-046 id: session-rail-title-fallback-root-cause level: error - titleZh: 会话标题回退 - summaryZh: 会话栏标题从 facts 回退,已定位为根因。 + titleZh: 会话标题显示为兜底内容 + summaryZh: 会话栏没有显示正常标题,而是显示了兜底内容。 blocking: true order: 460 - code: WBC-047 id: scroll-jump-top level: warning - titleZh: 滚动跳顶 - summaryZh: 页面滚动位置无命令触发地跳到顶部附近。 + titleZh: 页面滚动位置异常跳动 + summaryZh: 没有明显用户操作时,页面滚动位置跳到顶部附近。 blocking: false order: 470 - code: WBC-048 id: code-agent-card-duration-mismatch level: warning titleZh: 卡片耗时不一致 - summaryZh: Code Agent 卡片耗时与观测回合耗时不一致。 + summaryZh: 页面卡片上的耗时与实际观察到的耗时不一致。 blocking: false order: 480 - code: WBC-049 @@ -377,49 +377,49 @@ sentinel: - code: WBC-052 id: no-samples level: error - titleZh: 无采样数据 - summaryZh: 观察器未产生任何可分析样本。 + titleZh: 没有采样数据 + summaryZh: 本次观察没有产生可分析的页面样本。 blocking: true order: 520 - code: WBC-053 id: jsonl-read-issues level: error - titleZh: JSONL 读取异常 - summaryZh: analyzer 读取或解析 JSONL 样本失败。 + titleZh: 样本文件读取失败 + summaryZh: 观察样本文件无法读取或解析。 blocking: true order: 530 - code: WBC-054 id: prompt-routed-to-steer level: warning - titleZh: Prompt 走 steer - summaryZh: sendPrompt 被路由到 steer,需确认上一回合状态。 + titleZh: 消息发送路径异常 + summaryZh: 用户消息走了非预期发送路径,需要确认上一回合状态。 blocking: false order: 540 - code: WBC-055 id: tool-runner-heartbeat-stale level: error - titleZh: Runner 心跳过期 - summaryZh: web-probe runner 心跳超过预算未更新。 + titleZh: 观察程序心跳过期 + summaryZh: 页面观察程序长时间没有更新心跳。 blocking: true order: 550 - code: WBC-056 id: tool-pending-commands-unconsumed level: error - titleZh: 命令未消费 - summaryZh: runner 存在未消费的待执行命令。 + titleZh: 页面操作未被执行 + summaryZh: 存在等待执行但页面尚未处理的操作。 blocking: true order: 560 - code: WBC-057 id: tool-commands-abandoned level: info - titleZh: 命令被遗留 - summaryZh: 历史命令被遗留,作为工具上下文保留。 + titleZh: 历史页面操作遗留 + summaryZh: 观察过程中发现遗留的历史页面操作。 blocking: false order: 570 - code: WBC-058 id: tool-runner-force-stopped level: info - titleZh: Runner 被强制停止 - summaryZh: runner 由控制面强制停止,作为观察上下文保留。 + titleZh: 观察程序被强制停止 + summaryZh: 页面观察程序被控制面强制停止,作为上下文保留。 blocking: false order: 580 diff --git a/scripts/assets/web-probe-sentinel-monitor-web/monitor-web.js b/scripts/assets/web-probe-sentinel-monitor-web/monitor-web.js index 97443e37..8f5b0767 100644 --- a/scripts/assets/web-probe-sentinel-monitor-web/monitor-web.js +++ b/scripts/assets/web-probe-sentinel-monitor-web/monitor-web.js @@ -654,8 +654,11 @@ function clamp(value, min, max) { } function rootCauseText(item) { - if (item?.rootCause) return `根因: ${item.rootCause}`; - return item?.checkSummaryZh || item?.summary || item?.evidenceSummary || "尚未记录根因,等待下一次 OTel/报告归因。"; + if (item?.checkSummaryZh) return item.checkSummaryZh; + if (item?.summary) return item.summary; + if (item?.evidenceSummary) return item.evidenceSummary; + if (item?.rootCause) return "已记录内部根因,见报告详情。"; + return "尚未记录用户可见问题摘要。"; } function findingTitle(item) {