Auto-open draft result after foundation completes
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# RPG 生成流程刷新恢复与即时持久化设计(2026-04-24)
|
||||
|
||||
## 背景
|
||||
- RPG 共创从 Agent 聊天页触发 `draft_foundation` 后进入生成过程页。
|
||||
- 旧实现只持久化 `activeSessionId` 与 `activeOperationId`,刷新时恢复入口会无条件回到 Agent 聊天页。
|
||||
- operation 失败后继续创作也会因为 operation 指针被清空而缺失生成页上下文。
|
||||
|
||||
## 目标
|
||||
1. 生成中刷新网页后仍停留在生成过程页。
|
||||
2. 生成完成后结果页内容第一时间落入作品持久化链路。
|
||||
3. 生成失败后从创作入口继续处理该草稿时,优先回到生成过程页展示失败状态,而不是 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`。
|
||||
Reference in New Issue
Block a user