# R2.4 纯 Kafka Trace 可读性闭环报告

- 上下文：
  - [HWLAB #2474](https://github.com/pikasTech/HWLAB/issues/2474)
  - [HWLAB PR #2484](https://github.com/pikasTech/HWLAB/pull/2484)
- 合入提交：`55f85a164d0e219b648c3639f6a1d3fa1463bf49`
- 固定 trace：`trc_fb6031c28d79495e`

## 完成结果

- CLI 直接读取持久 `hwlab.event.v1`，并复用 Web 的 decoder、reducer、row model 和 Markdown renderer。
- Kafka 扫描只有抵达 captured end-offset barrier 才声明完整；timeout、limit 或缺失 barrier 均返回 typed partial。
- Final Response 只在 Trace 外层显示一次，不再作为内部助手行重复渲染。
- tool-call summary 显示命令、输出摘要、耗时和 exit code，不再只有 `commandExecution` 名称。
- 每个正式 HWLAB SSE ingress 都刷新 `lastEventAt`，terminal 后到达的新事件仍更新时间。
- 产品链继续保持 projection 关闭，不引入 snapshot、sync、gap-fill、finalizer 或 HTTP 历史拼接。

## 验证证据

- PR #2484 已合入 `v0.3`，提交 `55f85a16` 属于 `origin/v0.3`。
- 固定 trace 的后续 retention 重放再次确认：
  - `finalResponsePresent=true`；
  - `finalResponseInTrace=false`；
  - tool rows 为 `111`；
  - assistant rows 为 `80`；
  - terminal 状态为 `completed`。
- 页面刷新 retention bootstrap 属于 R3，不把 R2.4 的既有可读性修复改造成第二事实源。
