Repository navigation
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
SDK Size Comparison 📏
|
|
|
Closing this. The reasoning behind it did not survive scrutiny and I cannot demonstrate a path that reaches the state it guards against. What I claimed:
There is also no evidence the state ever occurred. The only message dumps in the report show A smoke test on the merged v6 produced the exact shape this was about, a permanently failed message with The change is still defensible in isolation, since discarding a date the message already carries is wrong, but merging it implies a user facing bug we cannot show is reachable. Keeping the analysis in AND-1547, which stays open. If a client log ever shows a null |



Goal
A message that fails to send can render above messages that were sent before it.
updateStatecopiescreatedLocallyAtfrom the message already in state, and sets it to null when the state does not hold themessage. A failed send has no
createdAteither, so its sort key becomes null andsortedByplaces it first.Closes AND-1547
Implementation
Fall back to the message's own
createdLocallyAtinstead of dropping it.getMessageByIdreads in-memory state only, so the message is missing whenever it is not currently loaded,which includes the window right after a reconnect replaces the message list.
Testing
The two tests that covered the missing-message case asserted the date was dropped, so they now assert it is
kept. Both fail without the fallback.