bf8f96c115
- 新增 direct_thread_id_for_project:订阅、回合事件写入与兜底释放共用一个线程身份 - 订阅命令改用同一个身份函数,删掉命令层自己那套路径归一 - 用户消息落盘后立刻作为 item.completed 下发,前端用同一个 itemId 合并乐观气泡与历史条目 - 采集终态事件是否已经下发,缺失时按成功 / 失败补一条 turn.completed,避免前端永远停在运行中 - 取消回合的 Stale 分支补一条 turn.completed(aborted)