- Shipped
- September 8, 2026 at 12:43 AM UTC
- Author
- Kamo
- Commit
- ac50a37
SmsThread loads its page and REPLACED the list with it. A message landing between the query executing and its response arriving was appended by the live subscription and then wiped out by that replace — and it is never a random message. The window was raised BY that arrival, so the one text the member was just chimed at and shown a window for is precisely the one at risk. The fetched page still wins; it just no longer deletes. Only messages NEWER than the whole page are carried over, because getMessages returns the most RECENT page: a cached message the page omits is otherwise simply one that scrolled off, and keeping it would append an ancient message underneath the newest ones. Committed by pathspec in one step — see the shared-checkout rule; the previous commit here was made with a separate `git add` and swept a concurrent agent's staged work in with it.