# R5 任务报告：纯 Kafka 实时与刷新回访正确性收口

## 范围

本轮只完成 [HWLAB #2498](https://github.com/pikasTech/HWLAB/issues/2498)、[HWLAB #2499](https://github.com/pikasTech/HWLAB/issues/2499) 与 [HWLAB #2500](https://github.com/pikasTech/HWLAB/issues/2500) 已登记的主线问题：用户/代理顺序、刷新稳定 identity、临近终态 assistant 重复和 tool summary 可见性。未执行新支线。

## 已完成子项

- R5.1：修复 AgentRun 正式用户事件源序、stdio 同 publisher Kafka publish 顺序与 Web live/replay 稳定 messageId。
- R5.2：tool summary 收敛为“时间 + 实际命令”，状态仅用颜色、动效与 ARIA 语义表达。
- R5.3：按正式 itemId 收敛 completed 后 late delta，消除临近终态 assistant 重复。

## 最终端到端证据

最终实时 command `cmd-mrgs7itk-cc7434` 通过，报告 SHA256 为 `329f422acf7f2c3ab34ce20adc78120d60804fb14f37e1ecbb59952f374e905d`。两轮 stdio frameSeq 严格递增，AgentRun → HWLAB → SSE lineage/fingerprint 精确一致；单页只使用一个 session EventSource，两个 terminal 均完成。

随后在同一 session 上只刷新、不提交输入，command `cmd-mrgsc5ps-34fdcd` 通过，报告 SHA256 为 `d80f149b73c5536773d257a0f3c695b5cca14bdc7c84471975497cb1f911cade`。刷新前后均为 4 条消息，identity 与顺序完全一致：

`user(trace1) → agent(trace1) → user(trace2) → agent(trace2)`

Kafka retention matched/replayed 为 `53/53`，buffer/live/deduplicated 均为 0；SSE failures 与 forbidden requests 均为 0。

## 架构结论

最终链路保持：

`codex-stdio.raw.v1 → agentrun.event.v1 → HWLAB direct mapper → hwlab.event.v1 retention → shared live fanout → SSE → 同一 Web codec/queue/reducer/row model`

未引入 projector/read model/snapshot/sync/gap-fill/finalizer、polling、HTTP history fallback、正文/时间戳去重或下游重排补洞。本轮主线目标已完成，可以停止。
