imOutboundListSummary
出站消息在列表摘要、Dexie 合并与 client_message_id 去重中的纯逻辑。
函数
typescript
function isDeliveredServerMessage(m: ImMessage): boolean
function shouldPreserveLocalOutboundDraftOnSync(m: ImMessage): boolean
function shouldPreserveLocalOutboundOnApiMerge(existing: ImMessage, incoming: ImMessage): boolean
function shouldPreserveLocalConversationLastMessage(lm: ImMessage): boolean
function isFailedOutboundSupersededForListAnchor(
failed: ImMessage,
messages: readonly ImMessage[],
myUserId: string,
): boolean
function isSuccessfulSelfOutbound(m: ImMessage, myUserId: string): boolean
function preferImMessageForClientMessageIdDedupe(a: ImMessage, b: ImMessage): ImMessage
function pickPreferredImMessageRow(rows: ImMessage[]): ImMessage | undefined
function imMessagesSameForListSummary(a: ImMessage, b: ImMessage): boolean
function shouldUseFailedMessageAsListTail(
failed: ImMessage,
tail?: ImMessage | null,
): boolean
function shouldAnchorFailedPrefixOnListTail(
failed: ImMessage,
tail?: ImMessage | null,
): boolean