From cc01e304c08c4ee4d03b0cd520efc35632ef0927 Mon Sep 17 00:00:00 2001 From: kdletters <61648117+kdletters@users.noreply.github.com> Date: Mon, 28 Sep 2026 17:07:33 +0800 Subject: [PATCH] =?UTF-8?q?External=20=E5=9C=BA=E6=99=AF=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E9=87=8C=E7=A8=8B=E7=A2=91=EF=BC=9A=E8=B4=A6=E6=9C=AC=E4=BE=A7?= =?UTF-8?q?=E5=8F=96=E8=AF=81=E8=A1=A5=E5=85=A8=EF=BC=8C=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E8=AF=B7=E6=B1=82=E6=9E=84=E9=80=A0=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E6=9C=AA=E5=8B=BE=E9=80=89=E5=B9=B6=E5=86=99=E6=98=8E=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 补记两条实跑通过的账本侧用例:retained_stage_recovery_accepts_the_same_reference_contract_as_submission 与 legacy_route_background_registration_still_counts_as_valid_base - 写明客户端「背景阶段命中新路由且为结构化字段」缺用例的技术原因:场景分支是内联字面量,且 Scene 必须带规范图引用,单独立用例需要先补规范图上传夹具;不使用镜像断言凑验收 --- .../plans/【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md | 3 ++- .../plans/【里程碑】ExternalV1游戏场景生成路由-2026-09-24.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/project-memory/plans/【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md b/docs/project-memory/plans/【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md index 9d678d6c9..6030aeec5 100644 --- a/docs/project-memory/plans/【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md +++ b/docs/project-memory/plans/【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md @@ -51,5 +51,6 @@ - 客户端:`canvas_generation.rs` 的 Scene 专属分支(新路由 + `sceneContent`)、保留账本匹配器(`canvas_generation.rs` 的 endpoint/`sceneContent` 判定)、`external_generation_state.rs`、`runtime_driver/recovery_scan.rs`、`direct_runtime/mod.rs` 的背景身份常量都与线上口径一致。 - 本轮实测:`cargo test -p api-server --manifest-path server-rs/Cargo.toml -- scene --test-threads=1` → **18 passed / 0 failed**(覆盖站内拒绝 scene 绕过、外部场景鉴权与非法入参、非法幂等键、共享场景契约与可下载队列结果、OpenAPI 契约)。 - 客户端账本与身份契约:`cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --offline -- external_generation_state --test-threads=1` → **10 passed**(覆盖生成账本身份、复用与并发认领口径;场景路由的账本匹配器就在这个模块里)。 -- 仍未取得(勾选状态保持未完成):客户端「背景阶段请求命中新场景路由且为结构化字段」与 `reuse-or-create` / `regenerate` 的端到端回归没有独立用例,本轮只在代码层确认分支存在;「本地真实栈 + 测试 Key 受理」smoke 同样未执行。 +- 仍未取得(勾选状态保持未完成):客户端「背景阶段请求命中新场景路由且为结构化字段」这一条**没有现成用例**。`canvas_generation.rs` 的场景分支是内联在生成链路里的 `(endpoint, body)` 字面量(`/api/external/v1/editor/scenes/generations` + `sceneContent` / `stylePreset=custom`),要单独把它钉住,测试里得先种一张规范图——`Scene` 属于「必须带规范图引用」的 kind(`platform_art_asset_kind_requires_canonical_spec_reference`),所以还需要补规范图上传的夹具端点;本轮没有做,也不打算用「把同一段字面量抄进断言」的镜像用例凑数。 +- `reuse-or-create` / `regenerate` 的端到端回归与「本地真实栈 + 测试 Key 受理」smoke 同样未执行。 - 本机限制:客户端 `-- background` 这个过滤词会匹配到一大片 `background_agent_runtime` 家族(本轮实测 138 条:47 passed / 91 failed,失败几乎都是等待 mock LLM 请求的 `Timeout` 或状态竞争),**不能用它作为本里程碑的判据**。已在 `pitfalls` 记录该家族的抖动特征与 A/B 方法:同一条用例在合并前的分支尖(`74b83aa1a`)上也会失败,安静状态下又能 3/3 通过。 \ No newline at end of file diff --git a/docs/project-memory/plans/【里程碑】ExternalV1游戏场景生成路由-2026-09-24.md b/docs/project-memory/plans/【里程碑】ExternalV1游戏场景生成路由-2026-09-24.md index d5f2afcb5..489cbbd64 100644 --- a/docs/project-memory/plans/【里程碑】ExternalV1游戏场景生成路由-2026-09-24.md +++ b/docs/project-memory/plans/【里程碑】ExternalV1游戏场景生成路由-2026-09-24.md @@ -54,5 +54,6 @@ - 客户端:`canvas_generation.rs` 的 Scene 专属分支(新路由 + `sceneContent`)、保留账本匹配器(`canvas_generation.rs` 的 endpoint/`sceneContent` 判定)、`external_generation_state.rs`、`runtime_driver/recovery_scan.rs`、`direct_runtime/mod.rs` 的背景身份常量都与线上口径一致。 - 本轮实测:`cargo test -p api-server --manifest-path server-rs/Cargo.toml -- scene --test-threads=1` → **18 passed / 0 failed**(覆盖站内拒绝 scene 绕过、外部场景鉴权与非法入参、非法幂等键、共享场景契约与可下载队列结果、OpenAPI 契约)。 - 客户端账本与身份契约:`cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --offline -- external_generation_state --test-threads=1` → **10 passed**(覆盖生成账本身份、复用与并发认领口径;场景路由的账本匹配器就在这个模块里)。 -- 仍未取得(勾选状态保持未完成):客户端「背景阶段请求命中新场景路由且为结构化字段」与 `reuse-or-create` / `regenerate` 的端到端回归没有独立用例,本轮只在代码层确认分支存在;「本地真实栈 + 测试 Key 受理」smoke 同样未执行。 +- 仍未取得(勾选状态保持未完成):客户端「背景阶段请求命中新场景路由且为结构化字段」这一条**没有现成用例**。`canvas_generation.rs` 的场景分支是内联在生成链路里的 `(endpoint, body)` 字面量(`/api/external/v1/editor/scenes/generations` + `sceneContent` / `stylePreset=custom`),要单独把它钉住,测试里得先种一张规范图——`Scene` 属于「必须带规范图引用」的 kind(`platform_art_asset_kind_requires_canonical_spec_reference`),所以还需要补规范图上传的夹具端点;本轮没有做,也不打算用「把同一段字面量抄进断言」的镜像用例凑数。 +- `reuse-or-create` / `regenerate` 的端到端回归与「本地真实栈 + 测试 Key 受理」smoke 同样未执行。 - 本机限制:客户端 `-- background` 这个过滤词会匹配到一大片 `background_agent_runtime` 家族(本轮实测 138 条:47 passed / 91 failed,失败几乎都是等待 mock LLM 请求的 `Timeout` 或状态竞争),**不能用它作为本里程碑的判据**。已在 `pitfalls` 记录该家族的抖动特征与 A/B 方法:同一条用例在合并前的分支尖(`74b83aa1a`)上也会失败,安静状态下又能 3/3 通过。 \ No newline at end of file