From 2c57edd59d9298dffe3415a814443d7076f2f7f7 Mon Sep 17 00:00:00 2001 From: kdletters Date: Thu, 6 Aug 2026 12:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=B8=83=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E5=AF=BC=E5=87=BA=E5=88=86=E7=89=87=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补齐 OSS 响应体失败与局部 206 的同源字节兜底 保留角色动作逐帧 objectKey 与 assetObjectId 补充导出、Abort、契约回归与文档 --- docs/project-memory/shared-memory/pitfalls.md | 12 +- ...端架构】图片画布素材导出方案-2026-06-15.md | 3 +- ...】server-rs与SpacetimeDB数据契约-2026-05-15.md | 2 +- .../src/character_animation_assets.rs | 88 +++++++- .../crates/shared-contracts/src/assets.rs | 14 ++ .../ImageCanvasExportModel.test.ts | 72 +++++++ src/services/assetReadUrlService.test.ts | 197 ++++++++++++++++++ src/services/assetReadUrlService.ts | 36 +++- vitest.config.ts | 1 + 9 files changed, 413 insertions(+), 12 deletions(-) diff --git a/docs/project-memory/shared-memory/pitfalls.md b/docs/project-memory/shared-memory/pitfalls.md index d17e5211b..be3961396 100644 --- a/docs/project-memory/shared-memory/pitfalls.md +++ b/docs/project-memory/shared-memory/pitfalls.md @@ -403,10 +403,18 @@ - 现象:产品要求画板 `生成角色动作` 返回后按透明序列帧播放和下载,但旧实现或旧测试可能继续把结果当作预览视频处理。 - 原因:后端仍需要先生成 `previewVideoPath` 再抽帧、绿幕去背和落 OSS;如果前端把预览视频当主媒体,就会绕过已经扣绿幕的 PNG 帧,也无法按序列帧打包下载。 -- 处理:角色动作结果图层主 `src` 使用 `frames[0].imageSrc`,`mediaType` 固定为 `image-sequence`,`assetKind` 固定为 `character-animation`,完整帧列表写入 `imageSequenceFrames`,`previewVideoPath` 只作为来源信息保留。单图层下载必须生成序列帧 ZIP;画布素材 ZIP 中角色动作写入 `sequences/<编号-标题>/frames/`。不得移除后端原有视频生成、抽帧、绿幕去背和帧落盘流程。 -- 验证:`ImageCanvasGenerationLayerModel` 应断言动作结果 `src` 为首帧且 `mediaType="image-sequence"`;画布集成测试应出现 `画布序列帧:角色动作` 图片播放器,不应出现角色动作 `