# Bot 模式会话列表排序 Web、桌面、iOS、Android 共用以下规则: 1. `pinned` 为 true 的会话优先。 2. 同一置顶分组内,按 `lastMessageAt` 倒序;缺失时使用 `createdAt`,数值 0 不算缺失。 3. 时间相同按会话 ID 升序。服务端 UUID 使用确定性的字符顺序,不使用用户界面语言相关排序。 列表时间也取相同的会话时间,不使用配置修改时间 `updatedAt`,也不使用本机当前选择的群聊任务时间。任务选择与文字预览仍可保留本地状态。 ## 执行位置 - 服务端常规列表与首次/重连快照复用 `compareWorkspaceConversations`。 - Web 与桌面共享 `WorkspaceTranscriptStore`,每次替换会话数组均排序;页面读取排序后的数组。 - iOS 在快照、刷新、会话增量事件三处执行 `WebWorkspaceConversation.precedes`。 - Android 在快照、刷新、会话增量事件三处执行 `workspaceConversationOrder`。 - 三端刷新期间若游标已因新事件推进,丢弃旧列表响应,避免回退刚同步的置顶或时间。 - 同步范围仍由服务端与账号决定;本次不修改账号隔离、置顶持久化或事件协议。 ## 验证 - Web:40 项相关测试通过;服务端测试同时检查列表接口、快照接口和两个独立状态仓库接收置顶/新消息事件后的顺序。客户端覆盖反向初始数组、时间并列、空会话、时间为 0、置顶/取消置顶、新会话与重复事件。 - iOS:51 项 WorkspaceChatTests 通过,覆盖快照与刷新一致、增量重排、新会话、旧任务时间不影响列表、旧刷新响应不能覆盖新置顶事件。 - Android:51 项 core:model 测试通过,包含同一组跨端排序数据;app Debug Kotlin 编译通过。 - Web 生产构建通过。以上为代码、隔离用例和构建验证,未修改线上会话,未发布新版本或安装到真实设备。