Fix/动作 前端展示下载+后端数据结构+精选 的问题 #117

Merged
kdletters merged 50 commits from fix/action-drag-to-canva-and-download into master 2026-08-06 16:57:38 +08:00

50 Commits

Author SHA1 Message Date
k88936 f52947d771 修复后台动作预览提前换签失败
Project CI / Repository checks (pull_request) Successful in 1m10s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 12m47s
Project CI / Frontend tests (pull_request) Successful in 2m37s
提前换签失败时保留真实过期前的已就绪帧并执行有界退避重试
仅在无可用缓存或图片解码失败时标记失败
补充后台角色动作回归测试并同步数据契约文档
2026-08-06 16:20:38 +08:00
k88936 fcb67bc4b0 合并主分支
合入主分支的智能体根任务可观测性、队列恢复与前端状态更新。
保留角色动作正式序列、后台预览换签和画布导出修复。
完成合并树验证并保持现有契约测试。
2026-08-06 15:17:46 +08:00
k88936 80069d2230 修复客户端快照序列字段初始化
为完美像素项目资源快照补齐正式序列字段
为完美像素账号素材快照补齐正式序列字段
2026-08-06 14:18:29 +08:00
k88936 97067f4c36 合并远端主分支并融合角色动作契约
合并游戏创作条件任务图路由与恢复逻辑
保留正式角色动作序列契约并融合逐帧稳定引用
移除 frameIndex 缺失式断言并保留正向契约验证
修正后台动作预览测试中的过期签名地址
合并画布素材导出分片读取修复
2026-08-06 13:52:36 +08:00
k88936 d20f7b5d41 合并远端主分支并融合编辑器契约
合入 origin/master 的游戏创作、完美像素、资源依赖和工程守卫更新

融合角色动作正式序列字段与完美像素只读预检和原子持久化

保留外部编辑器输入清理、画布占位恢复和素材标签修复契约
2026-08-06 11:37:37 +08:00
k88936 331b74146a 规范角色动作预览视频生成与序列字段持久化
清理角色动作预览视频生成输入,并确保正式序列字段仅在最终资源上持久化;新增相关单测并同步更新数据契约和架构文档。
2026-08-06 10:33:08 +08:00
k88936 9690f27930 保留并修复不兼容标签图层
前端按媒体族禁用不兼容标签,并在更新入口再次校验。

重载历史非法覆盖时保留图层、回退资源默认类型并显示提示。

只重写命中的布局项并自动保存清理后的覆盖,保留其他历史项。

补充标签矩阵、菜单限制及保存重载回归测试并同步架构决策文档。
2026-08-05 20:34:25 +08:00
k88936 ca19a3cca3 修复画布素材标签跨媒体覆盖
后端按图片、动作、视频和音频媒体族校验图层素材类型覆盖。

不兼容覆盖清空并回退资源默认类型,保存请求继续成功。

动作资源回退时清理布局媒体副本并补充结构化画布回归测试。

同步更新后端数据契约中的兼容与降级规则。
2026-08-05 20:32:47 +08:00
k88936 ab5f2cbba1 修复正式序列帧稳定引用持久化
正式序列帧强制携带 objectKey 与 assetObjectId,并按 objectKey 重建持久路径

同步收紧 External v1 OpenAPI 并补充签名 URL 负向测试

保留异步生成紧凑结果中的逐帧 assetObjectId 并更新架构文档
2026-08-05 20:08:23 +08:00
k88936 eac2c19a72 修正外部媒体序列契约
角色动作素材与项目资源创建请求强制提交完整序列字段
非角色动作类型禁止携带图片序列字段
增加两类请求的正反向 OpenAPI 契约测试
2026-08-05 19:41:06 +08:00
k88936 731bc02b5c 修复后台动作预览签名地址过期复用
缓存序列帧换签响应的过期时间并复用统一安全窗口
临近过期时自动换签并保持已就绪帧可见
补充跨五分钟回绕播放与缓存边界回归测试
同步后台素材预览架构约束修复 migration blocker。
2026-08-05 19:22:39 +08:00
k88936 c76d0a8835 修正音频时长缺省导出断言
更新画布素材导出测试,缺少展示字段时不再期待时长占位值。
明确素材详情与 ZIP 元数据只透传 generationInputs.fields 中实际存在的时长。
同步后端架构文档与共享决策记录。
2026-08-05 16:31:17 +08:00
k88936 1693047fc9 合并主分支并融合托管 MCP 更新
同步主分支的 Runner GUI owner 修复与托管 MCP 开发访问支持。
保留角色动作素材分支的现有实现。
2026-08-05 15:43:18 +08:00
k88936 dcf77ad7a8 统一音视频时长展示元数据
删除 EditorAsset、CanvasLayer 与画布布局中的通用 durationSeconds 链路。
将上传及生成请求时长统一写入 generationInputs.fields,并由服务端去重补齐。
音频播放只使用 loadedmetadata,素材详情、导出和精选成本读取展示字段。
补充前后端回归测试并同步架构文档与共享决策。
2026-08-05 15:22:24 +08:00
k88936 a3d3a1b8ba 修复后台角色动作预览换签缓存
将序列帧 signed URL、解析与加载状态统一上移到预览父组件。

按当前序列限制缓存并在序列、token 或弹窗生命周期结束时清理在途请求。

新增跨三帧窗口延迟换签与回绕复用的回归测试,并同步架构文档。
2026-08-05 14:25:59 +08:00
k88936 ff582404d1 收紧外部角色动作素材契约
复用按素材类型校验的生成输入序列化器,提前拒绝角色动作旧运行字段。

同步 External v1 OpenAPI 条件约束、契约测试和外部接入文档。

确认站内 Web、AI Game Creator 与 Python helper 无需调用迁移。
2026-08-05 13:56:09 +08:00
k88936 d297c8e268 补充角色动作安全边界文档
记录画布完成请求的计费前项目校验

记录迁移返回归一化和循环游标拒绝规则
2026-08-05 13:26:35 +08:00
k88936 afc0ed6d3d 完善序列预览控件可达性
允许后台窄屏播放与重试控件换行

补齐主站播放按钮的移动端触控宽度
2026-08-05 13:26:34 +08:00
k88936 3c148e18b9 移除后台预览无效解析状态
删除调用方未消费的 isResolving 状态

减少签名地址解析过程中的无效渲染
2026-08-05 13:26:34 +08:00
k88936 4b568daef3 移除素材导出无效刷新参数
删除未被资源读取链消费的 refreshKey

保留现有对象键导出读取行为
2026-08-05 13:26:07 +08:00
k88936 3d341b8fc5 提示生成素材保存失败
保留登录失效处理并显式展示其它保存错误

避免角色动作素材创建成功后校验失败被静默吞掉
2026-08-05 13:26:05 +08:00
k88936 60d3e0c58e 拒绝序列帧进入单文件上传
显式拒绝将图片序列映射为普通图片素材

补充上传媒体类型映射回归测试
2026-08-05 13:26:04 +08:00
k88936 b6f0ab48d8 收口角色动作提交前校验异常
将角色动作提交计划构建纳入失败状态处理

仅在计划校验通过后切换生成中状态

补充损坏动作来源的用户错误回归测试
2026-08-05 13:26:02 +08:00
k88936 f0f555ad0b 修复旧媒体图层恢复类型
在缺少权威素材类型时保留历史音视频媒体类型

拆分图层恢复中的嵌套状态判定

补充旧音视频恢复回归测试
2026-08-05 13:25:17 +08:00
k88936 4d76e36d06 前移角色动作画布完成校验
在来源解析和预扣泥点前拒绝缺少项目的画布完成请求

补充校验顺序回归测试
2026-08-05 13:25:16 +08:00
k88936 47743d086d 修复角色动作迁移分页安全
统一 HTTP 对象与 CLI tuple 的批次哈希字段

拒绝迁移 procedure 返回重复分页游标

补充对象返回和循环游标回归测试
2026-08-05 13:25:14 +08:00
k88936 5097580d79 合并主分支并融合硬截止测试更新
同步主分支的游戏创作硬截止恢复测试修正。
保留角色动作素材分支的现有实现。
2026-08-05 11:59:01 +08:00
k88936 673bc71295 修复 migration blocker。
- preview MP4 规划为 video,且 layout 是普通 video:跳过动作清理。
- layout 明确是 image-sequence 却指向 video:继续 blocker。
- 原始动作资源本身规划失败:继续 blocker,不静默跳过。
- 正式图片序列:正常清理 legacy layout 字段。
- apply 仍要求前置 scope 已物理落库。
2026-08-05 11:56:10 +08:00
k88936 0fcba40b1b 合并主分支
合入主分支的游戏创作生成任务、续写来源匹配与运行进度修复。
保留角色动作正式序列字段、后台预览与迁移门禁。
融合画布资源持久化回归测试与文档。
2026-08-05 10:24:51 +08:00
k88936 d7c63c872d 合并主分支并融合画布资源持久化
保留角色动作资源表作为正式序列结果的权威来源

融合图层素材类型覆盖与资源持久化状态

兼容并严格校验历史本地自包含图片序列

补齐前后端回归测试与后端契约文档
2026-08-04 19:42:54 +08:00
k88936 74d4972ecc 修复角色动作元数据迁移与画布归一化
迁移按计划态分类排除同任务预览视频并区分零候选与多候选。

历史画布迁移忽略复制的来源链,正式生成继续保持严格血缘校验。

逐帧核验登记对象并补齐对象路径与对象 ID,支持前置 scope 的安全 dry-run。

补充迁移 HTTP 调用、撤权能力、回归测试和长期数据契约。
2026-08-04 19:05:21 +08:00
k88936 e472b8d22d 合并远端master并保留角色动作正式契约
保留外部生成异步提交、幂等轮询与托管MCP能力

融合角色动作正式序列帧资源与素材持久化契约

保留内部处理元数据脱敏与图集批量持久化门禁

补齐画布资源权威恢复、测试与Skill文档
2026-08-04 16:11:47 +08:00
k88936 b7b53a937d 修正角色动作迁移参数线名
按生成绑定使用 expected_batch_sha_256 SATS 字段调用规范化 procedure。
同步更新 dry-run、apply 哈希绑定和批次顺序测试断言。
2026-08-04 14:36:04 +08:00
k88936 da42876c63 补齐角色动作预览失败重试
后台和创作主页序列播放器识别换签失败与图片解码失败并跳过故障帧。

全部帧失败时停止播放,弹窗显示失败帧数量并允许重新换签加载。

卡片全帧失败时引导打开预览重试,避免嵌套交互按钮。

补充故障帧跳过、手动重试和预读窗口恢复回归测试与项目记忆。
2026-08-04 12:12:59 +08:00
k88936 351f41fd12 恢复普通媒体画布时长状态
非角色动作图层继续从画布布局恢复音频和视频运行时秒数。

账号素材转图层时保留前端临时媒体时长,不写入角色动作正式字段。

补充音频图层时长恢复回归测试。
2026-08-04 11:42:07 +08:00
k88936 7b1adbd5a2 修复无项目角色动作血缘与导出提示
无项目生成返回正式账号素材时沿用素材记录的直接来源资源。

序列帧导出失败提示只按帧源是否存在分类,不把可选时长误报为缺帧。

补充账号素材独立返回时的动作血缘回归测试和角色动作方案说明。
2026-08-04 11:41:48 +08:00
k88936 f5b13915e0 优化角色动作预览加载与交互
后台和创作主页播放器只挂载当前帧与有界预读帧,避免一次换签全部序列。

浏览器播放间隔限制在定时器安全上限,不恢复已移除的最低帧间隔。

创作主页分别跟踪悬停和焦点,并遵循系统减少动态效果偏好。

后台播放按钮扩展为触控友好的四十四像素点击区域。

补充预读窗口、交互状态和减少动态效果回归测试与项目记忆。
2026-08-04 11:41:34 +08:00
k88936 ab4868d432 清理角色动作持久化映射冗余
通用 JSON 解析辅助函数改用准确命名并与 active mapper 保持一致。

持久化序列帧时直接消费输入字段,避免深拷贝完整帧数组。
2026-08-04 11:41:21 +08:00
k88936 325b3fc967 收紧后台角色动作序列帧契约
新增后台序列帧强类型共享载荷,缺失可选引用时保持原 JSON 线格式。

后台素材与精选映射统一输出经过规范化的强类型帧数组。

补充共享契约与后台映射序列化回归测试。
2026-08-04 11:41:09 +08:00
k88936 c6dc6b0c50 修复角色动作精选逐帧读取授权
生成端把每帧已确认的 objectKey 与 assetObjectId 写入正式序列载荷。
精选公开授权按稳定对象引用逐帧核验,避免仅首帧可读。
补充后端、SpacetimeDB 回归测试和契约文档。
2026-08-04 10:49:33 +08:00
k88936 471ab58ec2 优化动画帧播放间隔计算,移除最低间隔限制
使用序列总时长除以帧数计算真实播放间隔。
删除四十毫秒下限,保持高帧率动画的实际节奏。
2026-08-04 10:47:47 +08:00
k88936 17fcbc19df 修复素材图层创建失败时误切换上传目录
将上传目录切换延后到素材图层构建成功之后。
构建失败时保持原目录并展示错误,补充回归测试。
2026-08-04 10:45:47 +08:00
k88936 33f8e85a6e 修复编辑器素材动画元数据误判
补充非角色动作 generationInputs 顶层 frames、fps 与 durationSeconds 保持原样的回归测试。
2026-08-04 10:44:58 +08:00
k88936 73848e5174 更新角色动作正式字段与迁移文档
记录正式图片序列数据契约、placement-only 布局边界和无运行时 fallback 约束。
补充四阶段迁移执行顺序、blocker 处理、批次哈希门禁和发布维护窗口。
同步项目记忆中的长期决策与排障经验。
2026-08-04 10:44:08 +08:00
k88936 be63c54a84 升级角色动作外部接口与辅助工具
外部接口返回正式 resource 与 asset,并以数组顺序表达动作帧。
helper 只调用一次动作生成接口并直接消费正式结果,不再二次创建资源或兼容旧运行字段。
同步 OpenAPI、接口选择说明与 helper 自测。
2026-08-04 10:33:19 +08:00
k88936 00cff24cc1 完善角色动作精选与后台预览
精选与后台素材查询透传正式序列帧和毫秒时长。
列表仅加载首帧,激活预览后再逐帧换签并按完整时长播放。
创作首页与后台复用各自现有媒体组件,损坏动作不回退普通图片。
补齐精选模型、公开卡片和后台审核预览测试。
2026-08-04 10:25:38 +08:00
k88936 8c2f48d816 统一角色动作画布持久化与交互
前端只从正式 resource 或 asset 的图片序列字段恢复、复用、播放和导出角色动作。
动作 layout 只保存资源引用与 placement,不复制帧、时长、生成输入或 mediaType。
项目生成必须绑定正式资源,无项目放置必须绑定正式账号素材,缺失时失败关闭。
补齐素材库拖放、序列 ZIP、画布播放、保存恢复与生成工作流测试。
2026-08-04 10:21:46 +08:00
k88936 8a4ba6283b 收紧角色动作后端正式字段契约
角色动作生成只持久化并返回正式 project resource 与 account asset。
删除 API、后台 mapper 对 generationInputs 和布局动作结果的运行时回退。
动作 generationInputs 旧运行字段、screenColorHex 与正式帧 frameIndex 明确拒绝。
动作画布完成项只写资源引用与 placement,普通 layer 响应移除顶层 mediaType。
2026-08-04 10:20:24 +08:00
k88936 230613b07a 新增角色动作存量数据规范化迁移
新增 migration operator 专用 asset、project-resource、showcase、canvas 四阶段 procedure。
顶层旧字段仅在动作身份已证明后解释,正式与旧版冲突形成 blocker。
apply 绑定同批 dry-run SHA-256,并在结束后执行零匹配与零 blocker 复核。
新增迁移脚本、SATS 解析测试、生成绑定和生产制品门禁。
2026-08-04 10:17:10 +08:00
k88936 7d46bd8185 统一角色动作正式数据结构
为项目资源、账号素材和精选快照新增正式图片序列帧与毫秒时长字段。
统一 Rust DTO、SpacetimeDB 表、迁移默认值、typed client mapper 与生成绑定。
数组顺序作为唯一帧序,不持久化 frameIndex、frameCount、fps 或通用媒体时长。
2026-08-04 10:11:51 +08:00