diff --git a/app/utils/sync.ts b/app/utils/sync.ts index fed030679..db2cbd37e 100644 --- a/app/utils/sync.ts +++ b/app/utils/sync.ts @@ -131,10 +131,21 @@ const MergeStates: StateMerger = { const finalIds: Record = {}; localState.sessions = localState.sessions.filter((localSession) => { + // 去除掉重复的会话 if (finalIds[localSession.id]) { return false; } finalIds[localSession.id] = true; + + // 去除掉非首个空会话,避免多个空会话在中间,不方便管理 + if ( + localSession.messages.length === 0 && + localSession != localState.sessions[0] + ) { + return false; + } + + // 去除云端删除并且删除时间小于本地修改时间的会话 return ( (remoteDeletedSessionIds[localSession.id] || -1) <= localSession.lastUpdate