- `input.steered: bool` = 本回合在**回合内边界**吃过新到达的用户消息时出现;纯增量、可选, 标记只并入既有 input 节点(不新建节点、不改标签,图仍一条主干) - 依据:`internal/runtime/loop/flow.go` 的 MarkInputSteered(nil/白名单外为空操作) - 同步(DevDocs,不进 git):design/15 末节接口表改为实态 —— 转向源是**按回合挂在 ctx 上**的 `loop.WithSteerSource`/`SteerSourceFrom`(不是构造期注入的 HistoryReader),理由=「哪些消息是本回合 新到的」是按回合的状态、单例 loop 无法持有 ⇒ 组合根零改动;`steer_ack` 写法改为帧壳 + data 实态; 并修 §2.4 的「按 created_at 去重」口径(实现只按转录行 id 去重 + (内容,图片) 配对,**不用时间戳**)