Add VectorEngine image generation config and raise request timeouts (env + scripts) from 180000 to 1000000ms. Introduce a reusable CreativeImageInputPanel component with tests and wire up mobile keyboard-focus helpers; update generation views and related tests (CustomWorldGenerationView, BarkBattle editor, Match3D, Puzzle flows). Improve API error handling / VectorEngine request guidance (packages/shared http.ts and docs), and apply multiple backend/frontend fixes for puzzle/match3d/prompt handling. Also include extensive docs and decision-log updates describing UI/UX decisions and verification steps.
2.1 KiB
2.1 KiB
资产历史接口补齐拼图封面素材类型
日期:2026-04-27
背景
拼图结果页会通过 /api/assets/history?kind=puzzle_cover_image 读取历史封面素材,供“生成或更换图片”面板复用旧图。
该链路与角色主视觉、场景图共用同一资产历史接口,因此后端白名单一旦漏掉 puzzle_cover_image,前端就会收到 400 Bad Request,表现为拼图封面历史素材列表无法打开。
本次口径
server-rs/crates/api-server/src/assets.rs中的历史素材类型白名单统一收口为单一常量源。- HTTP 层错误文案与实际支持列表由同一函数生成,避免后续再出现“校验改了但提示文案还是旧口径”的漂移。
- 增加
puzzle_cover_image的回归测试,确保拼图封面素材不会再次被历史接口遗漏。 ownerLabel只表示资产归属账号,不是历史图片标题;前端历史素材卡片标题必须从imageSrc的路径末尾推导,例如/generated-puzzle-assets/history/image.png展示为image.png。createdAt / updatedAt可能来自 SpacetimeDB / shared-kernel 的秒级字符串,例如1713686400.000000Z,前端不得只用new Date(value)解析后把它显示成未知时间。- 历史素材选中后仍把
imageSrc作为referenceImageSrc传给生成链路;创作页和关卡详情页的预览必须通过ResolvedAssetImage换签展示,不直接请求裸/generated-*路径。
后续约束
- 新增历史素材类型时,必须同时更新:
api-server的SUPPORTED_ASSET_HISTORY_KINDSspacetime-module的历史素材白名单- 对应前端调用常量与测试
- 如果运行态仍返回旧白名单错误,优先检查本地
api-server.exe是否已按最新源码重新编译并重启,而不是先回退前端类型参数。 - 历史素材列表的 UI 回归测试应覆盖:
- 卡片标题不使用
账号 user-1这类归属文案。 1713686400.000000Z能显示为可读生成时间。- 选中素材后工作台 / 关卡详情展示
历史素材 · image.png,并继续提交原始imageSrc。
- 卡片标题不使用