# R1.2 AgentRun stdio Kafka 源码重建 CLI 报告

## 结论

已提供可直接按既有 stdio Kafka sessionId 调用生产 `CodexStdioEventReducer` 的命令：

```bash
./scripts/agentrun kafka regenerate agentrun \
  --session-id <ses_agentrun_...> \
  --trace-id <trc_...>
```

命令直接读取 `codex-stdio.raw.v1` 或离线 JSONL，默认只写隔离 topic `agentrun.event.debug.v1`。产品 `agentrun.event.v1` 永久禁止作为输出，无 override。

## 合同与实现

- PR: pikasTech/agentrun#278；部署 source `021db77f6e564bf73183cf53214f56e22fac0d0b`。
- producer 生命周期修复: pikasTech/agentrun#279；部署 source `ef241221ecd1ecbecc69a294c261b9c254f67550`。
- 输出 schema: `agentrun.event.reconstruction.v1`。
- 重建类型: `stdio-derived partial reconstruction`。
- 不伪造 `eventId`、`outboxSeq`、`event.id` 或完整 lifecycle；这些字段保持 `null`。
- 严格 UUID 形式的 AgentRun session 可逆派生 HWLAB session；其他 session 只保留原始 lineage。
- CLI 不调用 manager/runner/数据库 API。在线验证在已部署源码容器内执行只是为了使用 YAML 注入的 Kafka DNS/config，不依赖服务 HTTP 路径。

## 真实验证

冻结断点 `trc_mretx18t3jl4tg`：

- 扫描 3611 条 Kafka record，选择 74 个 stdio frame。
- 生成并发布 16 个 debug event，其中 terminal 1 个。
- producer 修复上线后命令打印结果并以 exit 0 自行退出，不再需要 Ctrl-C。

最终新 turn `trc_mrew3yvpvv2ep6`：

- Workbench session: `ses_63ac7b49-a693-4e1b-80c0-f45ca96c773a`。
- stdio Kafka session: `ses_agentrun_63ac7b49_a693_4e1b_80c0_f45ca96c773a`。
- 选择 22 个 stdio frame，生成并发布 11 个 debug event。
- 类型分布为 `backend_status=7`、`assistant_message=3`、`terminal_status=1`。

定向源码回归 22/22 通过。运行面 PaC、Argo 与 manager source 均 exact 对齐 `ef241221...`。

## 独立支线

KafkaJS 2.2.4 的空 pending queue 会触发 1ms timer 自循环和负 timeout warning；它不影响本次事件计数或映射正确性，也与 producer 未释放不是同一问题。依赖硬化已由 pikasTech/unidesk#1704 独立跟踪。
