# R2.2 原始 HWLAB Event 观察窗报告

## 上下文

- 主问题：
  - [HWLAB #2474](https://github.com/pikasTech/HWLAB/issues/2474)
- 前端设计与最小 seam：
  - [HWLAB #2475](https://github.com/pikasTech/HWLAB/issues/2475#issuecomment-4935381417)

## 完成结果

- 现有产品 EventSource 增加单一 ingress tee：
  - 每个命名 `hwlab.event.v1` frame 在 decode 和 coalesce 前记录一次；
  - 同一次 decode 结果继续进入原生产 reducer；
  - 未增加产品 EventSource、Kafka consumer 或第二事实源。
- 原始观察状态为 bounded 内存：
  - 按到达顺序保留完整 `MessageEvent.data`；
  - 不按 trace、event type 或 reducer 结果做客户端过滤；
  - invalid JSON 和非对象 JSON 保留原文并显示拒绝原因；
  - 淘汰完整 envelope，不截断仍被保留的 envelope；
  - 不写 localStorage、数据库或 canonical Workbench store。
- 隔离调试卡片增加独立子标签：
  - `Trace 卡片` 保留隔离 debug replay 和生产 reducer 卡片；
  - `原始 HWLAB Event` 使用只读纯文本框显示同一产品 ingress；
  - 切换标签不创建或关闭网络连接；
  - 清空观察窗只清原始内存 buffer。
- R2.3 v2 UI 集成点已预留：
  - 支持 `replayId` 和 output barrier query 参数；
  - 接收 `replay-complete.result`；
  - 展示 server `scanned/matched/delivered`；
  - 用明确标注的 client local overlay 展示 `received/decoded/applied`。

## YAML-first

- owning YAML：
  - `deploy/deploy.yaml#lanes.v03.workbench.rawHwlabEventWindow`。
- 独立字段：
  - `enabled`；
  - `maxEntries`；
  - `maxRetainedBytes`。
- 渲染链：
  - deploy schema 校验字段形状；
  - GitOps renderer 生成 Cloud Web env；
  - Cloud Web runtime 注入浏览器配置；
  - 前端只读取显式值，不设置容量默认值。
- 特例分类：
  - `keep-domain-special`：观察窗保持管理员可见、内存只读；
  - `remove-code-default`：容量与开关没有代码默认值；
  - `legacy-retire`：本任务没有新增或保留旧入口。

## 验证

- ingress 与 buffer：
  - 每个产品 frame 恰好产生一条 raw ingress 和一次 reducer delivery；
  - invalid JSON 可见但不进入 reducer；
  - entry/byte eviction 均保持完整 envelope。
- UI：
  - 两个子标签、局部清空和 raw 文本顺序通过；
  - 标签切换期间 EventSource 实例数保持不变。
- 配置与 runtime：
  - Cloud Web runtime：`18 pass`；
  - v03 GitOps render 目标用例：`1 pass`；
  - deploy 合同：`15` 个 JSON 文件验证通过。
- 定向功能测试：
  - Bun 后端、renderer、merge 和 SSE API：`50 pass`；
  - TraceTimeline 与调试面板组件：`4 pass`。
- 已知基线失败：
  - renderer 全套仍有两个与本变更无关的旧断言失败；
  - Web check 的 source-shape、显式 any 扫描和 Vite build 通过；
  - `workbench-isolated-kafka-debug.test.ts:61` 仍有 R2.3 分支已有的类型断言错误。

## 边界

- 未部署 NC01/v03。
- 未修改父 issue [HWLAB #2474](https://github.com/pikasTech/HWLAB/issues/2474)。
- 产品链继续保持纯 Kafka 实时，不增加补洞或投影路径。
