题目
前端断开连接后,如何恢复事件流并避免重新执行整个任务?
答案
创建任务和订阅结果分开设计。创建成功后返回稳定的 `run_id`,后台独立执行;前端只负责订阅这个任务的事件。
服务端保存带递增 `event_id` 的事件,前端记录最后已消费的位置。断线后携带任务 ID 和游标重新订阅;使用原生 EventSource 时可利用 `Last-Event-ID` 机制,其他客户端则显式传递游标。

重连只补发缺少的事件,不重新创建任务。创建接口本身也应支持请求幂等,处理提交成功但响应丢失的情况。
事件可能重复到达,前端按 ID 去重。若历史已过期,先获取状态和产物快照,再订阅后续事件。每次查询与订阅都检查用户是否有权访问该任务。
