diff --git a/docs/technical/PUZZLE_BIG_FISH_INITIAL_CREATION_PROGRESS_ZERO_FIX_2026-04-26.md b/docs/technical/PUZZLE_BIG_FISH_INITIAL_CREATION_PROGRESS_ZERO_FIX_2026-04-26.md new file mode 100644 index 00000000..9d595594 --- /dev/null +++ b/docs/technical/PUZZLE_BIG_FISH_INITIAL_CREATION_PROGRESS_ZERO_FIX_2026-04-26.md @@ -0,0 +1,28 @@ +# 拼图与大鱼吃小鱼初始创作进度归零修复 2026-04-26 + +## 背景 + +拼图与大鱼吃小鱼 Agent 新建会话时,后端会先写入欢迎消息和初始锚点草稿。此前这两个模板把欢迎消息和种子推断视为创作推进,导致新会话一进入工作区就显示非 `0%` 的创作进度。 + +这与创作工作区的统一约束冲突:新会话必须如实展示后端 session 的 `progressPercent`,初始值为 `0` 时前端数字与进度条都保持 `0%`,不能让用户误判已经完成了创作推进。 + +## 设计约束 + +1. 拼图与大鱼吃小鱼新建 Agent session 时,`progress_percent` 固定写入 `0`。 +2. 欢迎消息、种子文本和初始锚点推断只作为对话上下文与占位结构,不计入创作进度。 +3. 首次用户消息提交后,进度才允许由模型回包或后续 action 写回推进。 +4. 前端不为这两个模板额外兜底抬高初始进度,进度真相继续来自 `server-rs` 的 SpacetimeDB session。 + +## 落地点 + +1. `server-rs/crates/spacetime-module/src/big_fish/session.rs` + - `create_big_fish_session_tx` 初始化 `progress_percent = 0`。 +2. `server-rs/crates/spacetime-module/src/puzzle.rs` + - `create_puzzle_agent_session_tx` 初始化 `progress_percent = 0`。 + +## 验收 + +1. 新建大鱼吃小鱼创作工作区后,顶部创作进度显示 `0%`。 +2. 新建拼图创作工作区后,顶部创作进度显示 `0%`。 +3. 发送第一条用户消息后,进度按模型回包或后续操作正常推进。 +4. 生成草稿、生成资产、发布等后续阶段的进度值不受本次调整影响。 diff --git a/server-rs/crates/spacetime-module/src/big_fish/session.rs b/server-rs/crates/spacetime-module/src/big_fish/session.rs index 39454643..206fb5b3 100644 --- a/server-rs/crates/spacetime-module/src/big_fish/session.rs +++ b/server-rs/crates/spacetime-module/src/big_fish/session.rs @@ -182,7 +182,8 @@ pub(crate) fn create_big_fish_session_tx( owner_user_id: input.owner_user_id.clone(), seed_text: input.seed_text.trim().to_string(), current_turn: 0, - progress_percent: 20, + // 中文注释:欢迎语和种子推断只是初始上下文,不代表创作者已经推进了共创流程。 + progress_percent: 0, stage: BigFishCreationStage::CollectingAnchors, anchor_pack_json: serialize_anchor_pack(&anchor_pack) .map_err(|error| error.to_string())?, diff --git a/server-rs/crates/spacetime-module/src/puzzle.rs b/server-rs/crates/spacetime-module/src/puzzle.rs index 36819917..c5d7890d 100644 --- a/server-rs/crates/spacetime-module/src/puzzle.rs +++ b/server-rs/crates/spacetime-module/src/puzzle.rs @@ -473,7 +473,8 @@ fn create_puzzle_agent_session_tx( owner_user_id: input.owner_user_id.clone(), seed_text: input.seed_text.clone(), current_turn: 1, - progress_percent: 18, + // 中文注释:欢迎语和初始锚点推断不计入创作进度,新会话必须从 0% 开始。 + progress_percent: 0, stage: PuzzleAgentStage::CollectingAnchors, anchor_pack_json: serialize_json(&anchor_pack), draft_json: None,