人设同步测试(testing)
目标版本:0.0.23.0。测试地址:https://yumina-testing.up.railway.app 。部署成功后刷新一次页面。testing 使用独立账号与数据库,生产中的 Misa 会话不一定存在。
准备
在测试账号的「我」页面准备两个人设:小月、月月。给它们填写容易区分的背景故事,例如小月「职业:天文学家」、月月「职业:花店店主」。备注只用于自己区分,不会发给 AI。
先选小月,创建两个测试聊天室 A/B,并各发一条消息。记录变量数值、加载一页旧消息;如作品有背景音乐,可以保持播放。
必测
- 个人设置 → 旧聊天室:在「我」选择月月,返回 A 和 B。两处都应显示月月,无须重新创建聊天室。退出重进和刷新网页后仍是月月。
- 截图中的入口:在世界的会话列表右上角点击人设图标。菜单应提示切换会同步到所有新旧聊天室。选小月后,进入旧 A/B 和新建 C,都应使用小月;「我」中也应选中小月。
- 聊天室内 → 设置:在 A 的输入区域「+」→ 人设选择月月。回「我」应选中月月,B 再次打开也应变成月月。
- 实际 AI 身份:切换后发送「根据我的人设资料,我叫什么、职业是什么?」。名称和职业应对应当前人设。在发送前的提示词预览或调试面板(如账号有此入口)检查人设区块更可靠;单次模型回答可能受历史剧情影响。备注不应进入提示词。
- 同名人设:再创建一个也叫月月的人设,填写不同背景和私人备注。切换两个同名条目,检查当前勾选、背景和下一次提示词随 ID 改变,不能只改名字。
- 不使用人设:选择「不使用人设」,旧/新聊天室都应回到账号身份;不会恢复旧快照或世界绑定的人设。
边界验证
- 跨标签页:标签页 1 留在旧聊天室,标签页 2 在设置切换人设;切回标签页 1,应刷新当前人设。如果它正在生成,等生成结束后再检查。进行中的请求使用发起时的身份,下一次请求使用新身份。
- 快速关弹窗:选人设后马上关闭弹窗,保存完成后聊天室仍应更新;跳到另一聊天室时,旧请求不能覆盖新聊天室。
- 断网失败:临时断网后切换,不能出现已成功选中的假象;应保留原选择并显示错误。恢复网络可重试。
- 资料编辑:修改当前人设的名字/背景,聊天室显示和之后的提示词应更新。只修改私人备注不会改变提示词。
- 回退、分支、重开、续写、重新生成:都应使用当前全局人设,不应恢复历史人设。请在测试副本中进行会改变故事进度的操作。
- 数据保留:普通切换不得删除消息、丢失已经加载的旧消息页、改动游戏变量或重置音频。既有消息和记忆中的名字不会自动改写。
自动验证
- 服务端:
node packages/server/scripts/test-local.mjs src/lib/persona-follow-profile.test.ts src/lib/session-persona.test.ts src/lib/persona-metadata.test.ts src/lib/persona-prompt.test.ts src/routes/personas.test.ts src/routes/sessions-branch.test.ts src/routes/sessions-revert.test.ts - 前端:
pnpm --filter @yumina/app exec tsx --tsconfig tsconfig.app.json --test src/stores/personas.test.ts src/features/chat/world-persona-menu.test.ts src/features/chat/persona-manager-dialog.test.ts src/lib/chat-persona-controller.test.ts src/lib/refresh-chat-persona.test.ts src/lib/persona-binding-i18n.test.ts - 构建和类型:
pnpm build、pnpm typecheck。
服务端测试使用隔离的内存 PGlite,禁止加载真实数据库凭据。无需人设数据迁移或批量重写生产会话。
testing 分支验证结果(0.0.23.0)
- 人设相关服务端回归:40/40;前端回归:24/24。
- 生命周期回归:7/7;最终构建:5/5 个任务通过;类型检查:8/8 个任务通过。
- 前端全量:1,323/1,325。另两项导航/页面背景样式断言在原 testing 代码上也失败。
- 服务端全量发现 13 个测试文件退出码 99,均已在原 testing 代码上复现;因此不将全量测试标记为通过。
- 回退测试额外发现了事务内读取全局人设造成的等待,已改为事务前读取,并由真实数据库回归测试验证。
- 尚未代替用户执行浏览器内手工验收;请按上述步骤测试。
main 发布(0.0.29.0)
本修复从 testing 单独移入 main,保留 main 现有的记忆、编辑器和会话实现。生产地址为 https://yumina.io;发布后可按上面的步骤验证。历史消息和记忆保持原文。
- main 适配后的服务端人设/回退/分支回归:39/39。
- 前端同步及保留的旧版绑定请求竞态回归:28/28。
- 上述 testing 全量测试记录对应 testing 基线,不代表本次 main 的全量测试结果。
