会话列表更新补丁。简单的 UI 渲染可以直接使用 ConversationListUpdatePayload.items;只有在需要保留业务层自定义本地字段,或进行精细化数据合并时,才需要读取该补丁。

interface ConversationListUpdatePatch {
    reset: boolean;
    upserted: readonly ConversationItem[];
    removed: readonly ConversationIdentifier[];
    affectedKeys: readonly string[];
    orderChanged: boolean;
}

Properties

reset: boolean

是否为一次整体基线重置。为 true 时,表示 SDK 重新建立或替换了会话列表基线(例如登录后加载缓存、服务端全量同步、回退到全量刷新等)。业务层若自行维护带本地自定义字段的列表,此时应将 items 视为唯一的权威快照,并按会话 Key 重新挂载本地字段;简单 UI 直接使用 items 渲染即可。

upserted: readonly ConversationItem[]

本次新增或 SDK 字段发生变化的会话。

removed: readonly ConversationIdentifier[]

本次移除的会话标识。

affectedKeys: readonly string[]

本次受影响的会话 key,格式为 ${conversationType}:${conversationId}

orderChanged: boolean

本次是否改变了会话列表顺序。可能只有排序变化而没有 upserted 内容变化,例如置顶、最后消息时间或服务端排序基线变化。按补丁合并的业务在该值为 true 时,应按 items 中的顺序重排本地列表;直接使用 items 的业务无需额外处理。