1.9 KiB
1.9 KiB
RPG 生成流程刷新恢复与即时持久化设计(2026-04-24)
背景
- RPG 共创从 Agent 聊天页触发
draft_foundation后进入生成过程页。 - 旧实现只持久化
activeSessionId与activeOperationId,刷新时恢复入口会无条件回到 Agent 聊天页。 - operation 失败后继续创作也会因为 operation 指针被清空而缺失生成页上下文。
目标
- 生成中刷新网页后仍停留在生成过程页。
- 生成完成后结果页内容第一时间落入作品持久化链路。
- 生成失败后从创作入口继续处理该草稿时,优先回到生成过程页展示失败状态,而不是 Agent 聊天页。
落地规则
- 前端只保存恢复指针,不在 UI 持久层复制世界数据。
sessionStorage与 URL query 中增加生成页来源字段customWorldGenerationSource,当前仅支持agent-draft-foundation。- 初始恢复时:
- 若存在
activeOperationId且来源为agent-draft-foundation,先进入custom-world-generating。 - 否则若 session 已经可构建结果预览,进入
custom-world-result。 - 其他情况进入
agent-workspace。
- 若存在
- operation 进入
completed或failed后仍保留activeOperationId,直到用户离开、重新发起操作或清理工作区,保证刷新和继续创作能恢复完成/失败状态。 - 生成完成后由
useRpgCreationResultAutosave在结果页立即保存。生成页跳结果页前必须先同步最新 session 并写入generatedCustomWorldProfile,确保自动保存消费的是最新快照。
验收点
- 生成中刷新:URL/sessionStorage 可恢复
custom-world-generating,页面显示“世界草稿生成进度”。 - 生成失败刷新或继续创作:页面仍显示生成过程页和失败信息,不展示 Agent 聊天页。
- 生成完成:跳到结果页后触发
upsertRpgWorldProfile,保存请求带sourceAgentSessionId。