# R3 纯 Kafka 页面刷新重放交付报告

- 上下文：[HWLAB #2486](https://github.com/pikasTech/HWLAB/issues/2486)。

## 完成结果

- 用户输入、助手消息、工具调用与 terminal 均作为正式 Kafka event 进入同一链路。
- 页面刷新使用 Kafka retention 的 exclusive offset barrier 重建 session 历史。
- live listener 在 barrier 前注册，历史 replay 完成后经去重缓冲切换到 shared live fanout。
- replay 与 live 共享同一 SSE writer、Web codec、queue 和 reducer。
- 固定 trace CLI 验证 matched/replayed/applied 为 `381/381/381`，duplicate/rejected 为 `0/0`。
- semantic internal 真实页面刷新验证 matched/replayed 为 `7/7`，唯一产品 EventSource 为 `1`，DOM identity/order 保持，最终 phase 为 `live`。

## 证据入口

- 实现与 CLI 单步证据：[R3.2](./R3.2_Task_Report.md)、[R3.3](./R3.3_Task_Report.md)。
- 自动交付与页面刷新证据：[R3.4](./R3.4_Task_Report.md)。
- issue closeout：[HWLAB #2487](https://github.com/pikasTech/HWLAB/issues/2487)。

## 架构边界

- 数据权威保持 `codex-stdio.raw.v1 -> agentrun.event.v1 -> HWLAB direct mapper -> hwlab.event.v1 retention -> shared live fanout -> SSE -> Web reducer`。
- 未引入 projector、read model、snapshot、sync、gap-fill、finalizer、polling 或 HTTP history fallback。
- refresh replay、live Kafka SSE 与其他能力保持 YAML-first、可组合且可独立开关。
