From 31393340e7de241b3db72dce9ef954f2620ce89d Mon Sep 17 00:00:00 2001 From: kdletters Date: Sun, 26 Apr 2026 17:06:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BD=92=E9=9B=B6=E7=8E=A9=E6=B3=95?= =?UTF-8?q?=E5=88=9B=E4=BD=9C=E5=88=9D=E5=A7=8B=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...L_CREATION_PROGRESS_ZERO_FIX_2026-04-26.md | 28 +++++++++++++++++++ .../spacetime-module/src/big_fish/session.rs | 3 +- .../crates/spacetime-module/src/puzzle.rs | 3 +- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 docs/technical/PUZZLE_BIG_FISH_INITIAL_CREATION_PROGRESS_ZERO_FIX_2026-04-26.md 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,