mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-23 02:18:06 +00:00
线上实测第二个 bug:转投生效、子也正常处理(日志各 ~3s),但 webui 的 HTTP 请求一直挂着不返回,最终 504。 根因:第一版用 InjectInputTo 转发,它会**重建** InputEvent ⇒ ResponseCh 被丢掉。 而 cli / a2a / webui 这类**同步**调用方正阻塞等这个 channel。 仓库反复警告过同一件事(Agent.Stop 的注释:「带 ResponseCh 的同步注入方 (cli / clawhubadapter 均无超时)会永久挂起」)。 修法:改走既有的跨 agent 投递原语 DeliverRouted —— 它推**原事件**,保留 ResponseCh/RequestID,只往 payload 里补转投标注。 回归测试 TestForwardKeepsResponseCh 断言**最强的那条性质**:真的等同步回执回来。 (不用「读子的 InputChan」来断言:SpawnResident 会启动子自己的调度循环, 它会与测试抢同一个 channel,那样写出来的测试是 flaky 的 —— 我第一版就是这样, 实测挂死过一次。) 已实测该测试对着错误实现会失败(10s 超时)、修后通过。