# Web 聊天迁移验收 ## 当前成员编辑验收 群聊已支持增减成员。当前管理员不能移除;更换管理员并保存后,原管理员可以作为普通成员移除。下文的固定成员说明为首次迁移的历史验收记录。 - 服务端校验用户归属、管理员保护、已归档角色和人数,保留历史并同步清理自动回复名单。 - 执行中的回复允许完成,移除成员后不再执行其排队回复或接力。 - 浏览器验证只保留管理员、重新打开设置后变更仍在、新增成员正常回复,以及另一页面的群头像同步。 - iOS 模拟器验证管理员开关禁用、普通成员移除后保存并重新打开、重新加入,以及原有导航与聊天历史保持正常。 ## 首次迁移记录 验收日期:2026-09-03。涉及 `hermes-yaoyao` 与 `hermes-mobile`。 ## 自动验证 - `npm run typecheck`:通过。 - `npm test`:84 个测试文件、451 项测试通过。 - `npm run test:e2e:workspace`:生产构建通过,完整浏览器流程通过。 - iOS 模拟器签名构建通过;`WorkspaceChatTests` 的 5 项新协议测试通过。 - 两个仓库的 `git diff --check` 均通过。 服务端回归覆盖用户隔离、固定成员、规则更新、执行中改名、管理员调度、轮数限制、审批、澄清、重复提交、断线不确定状态、按历史恢复且不重发、失效节点的可见失败、附件归档、安全预览、语音密钥和上下文快照。 浏览器用例覆盖创建两个角色、创建群聊、三项混合列表、不可编辑成员、角色单聊隔离、群聊发送、第二页面同步、归档恢复及文件来源返回新聊天。 iOS 新协议用例覆盖应用写入的 Origin/CSRF、跨账号令牌刷新、拒绝直连 9119、新聊天通知路由、归档文件呈现、语音时间戳,以及上游无 Profile 时仍可登录 Web。 ## 界面联调 使用独立 Web 数据目录和标准 Gateway 测试节点;未使用用户当前服务的数据。 已在浏览器和独立的 `Yaoyao Workspace QA` 模拟器中核对:同一账号显示相同的两个角色及一个群聊;iOS 发出的群聊消息、回复及历史在 Web 中可见。浏览器确认已建群的成员选择框禁用,服务端也拒绝成员变更。 这些结果验证应用协议与界面联动,不代表真实模型、真实远端节点或 APNs/FCM 推送供应商的生产验收。此轮没有发布版本、更新现有 Web 服务或安装到真机。 ## 重现 Web:运行上述三个 npm 命令。浏览器用例会自动启动隔离测试服务。 iOS:使用 `YaoYaoAI` scheme 和可用模拟器,运行 `-only-testing:YaoYaoAITests/WorkspaceChatTests`。需要允许模拟器签名以验证钥匙串登录;禁用签名的安装包不能作为登录验收依据。 实现和接口说明见 [聊天契约](workspace-chat.md),部署步骤见 [部署说明](agent-install.md)。 ## v0.3.4 发布验收 - 2026-09-03:完整 Web 测试 85 个文件、460 项通过;发布清单校验、类型检查和生产构建通过。 - `npx playwright test -c playwright.workspace.config.ts`:当前聊天完整端到端流程通过。 - 本次包含原有聊天组件恢复、HTTP 发送修复、置顶修复、动态成员头像、头像状态联动、列表消息时间和扩展头像。