Files
pikasTech-HWLAB/docs/MDTODO/details/pure-kafka-live-single-step-debug/R2.2_Task_Report.md
T

3.1 KiB
Raw Blame History

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

上下文

完成结果

  • 现有产品 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 runtime18 pass
    • v03 GitOps render 目标用例:1 pass
    • deploy 合同:15 个 JSON 文件验证通过。
  • 定向功能测试:
    • Bun 后端、renderer、merge 和 SSE API50 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
  • 产品链继续保持纯 Kafka 实时,不增加补洞或投影路径。