What's fixed
- The operator-only orange Meta-ad info card is now sticky across read/unread cycles. Previously, when an operator switched away from a CTWA-attributed conversation the auto mark-read refresh returned a conversation payload without the merged
attributionfield, so the local state lost the card and it didn't come back on the next visit. hydrateConversationRow(used bymarkConversationRead,markConversationUnread,getConversationById, andstartConversationForContact) now fetches and merges theconversation_attributionsrow alongside messages, labels, and contacts. The single-conversation refresh payload now matches the listConversations payload exactly.
Notes
This release fixes a regression in the v0.15.60 CTWA hardening rollout where attribution merging was implemented in the list path but not in the single-conversation hydrator.