lhk229
6d6b09b7a0
Project CI / Repository checks (pull_request) Successful in 1m10s
Project CI / Frontend tests (pull_request) Successful in 2m51s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Successful in 13m14s
读边界只放宽对象字段的 null,Task 判据改用生成模型
两处评审都成立,且都源自同一个毛病:修复时选错了作用范围/抽象层级。
一、数组元素的 null 不该跟着放宽
上一版把「无差别删 null」整体改成「只删本次抹掉的内联媒体」,连数组元素一起放宽了。
布局数组是唯一没有元素级 shape 校验的写入口(legacy layout_storage_version=0 是新画布的
默认状态,写侧 serialize_editor_layers 只挡内联媒体、不校验元素形状),读回的 null 元素会让
前端 canvasLayoutItemId / isCanvasSettingsLayoutItem 抛 TypeError,整次项目套用被 Promise
catch 吞成静默失败;generationInputs 的 fields / references 里混进 null 元素也会让整份元数据
被 isRecord 判非法丢弃——与本来要修的 SFX 症状同类。现在数组元素照旧过滤 null,放宽严格
限定在对象字段(requestedDurationSeconds 这种有意义的空值)。
二、Task 判据从资源分类换成生成模型
assetKind 是 assetKindOverride ?? resourceAssetKind,用户改一次「素材标签」就翻转;换成
resolveLayerResourceAssetKind 仍不够:legacy 布局快照没有 assetKindOverride 键时,旧的
assetKind 会被水合成 override 而 resourceAssetKind 落成 null,资源行查不到时同样是 null——
恰恰是元数据缺失最常伴随的形态。判据要回答的是「这个 taskId 由谁生成」,所以落在 model 上:
资源行权威字段,registered 图层的 serializeLayer 不回写,改标签不影响,后端
canonicalize_editor_sound_effect_model 只接受 eleven_text_to_sound_v2 一个取值。
- 新增后端回归:布局数组与 fields 数组里的 null 元素被过滤,对象字段的 null 原样保留
- 新增前端回归:资源类型不可解析(resourceAssetKind 为 null)的音效层仍显示完整 taskId
- 既有的「改标签」两向回归保持不变,在新判据下同样成立
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 19:36:57 +00:00
..
2026-06-25 20:10:18 +08:00
2026-06-07 22:20:58 +08:00
2026-05-28 15:42:46 +08:00
2026-08-08 21:54:30 +08:00
2026-08-07 12:18:01 +08:00
2026-06-30 19:33:37 +08:00
2026-08-08 21:54:30 +08:00
2026-08-08 21:54:30 +08:00
2026-07-27 18:28:26 +08:00
2026-06-03 22:21:00 +08:00
2026-08-08 21:54:30 +08:00
2026-07-23 14:52:57 +08:00
2026-07-28 16:20:43 +08:00
2026-07-28 16:20:43 +08:00
2026-08-06 16:57:38 +08:00
2026-07-03 15:19:44 +08:00
2026-06-09 15:36:58 +08:00
2026-07-18 21:17:35 +08:00
2026-05-17 20:52:15 +08:00
2026-08-08 05:33:40 +00:00
2026-08-08 18:16:31 +08:00
2026-07-22 18:25:52 +08:00
2026-07-15 21:06:05 +08:00
2026-06-05 23:41:24 +08:00
2026-07-23 14:52:57 +08:00
2026-05-15 08:43:21 +08:00
2026-06-30 20:58:33 +08:00
2026-07-18 22:02:22 +08:00
2026-07-18 22:02:22 +08:00
2026-06-11 15:55:23 +08:00
2026-07-23 18:06:29 +08:00
2026-04-28 19:36:39 +08:00
2026-06-30 19:33:37 +08:00
2026-06-25 20:10:18 +08:00
2026-08-08 11:43:45 +08:00
2026-07-17 22:07:52 +08:00
2026-08-08 05:33:40 +00:00
2026-04-28 10:57:40 +08:00
2026-04-26 18:06:23 +08:00
2026-04-26 18:06:23 +08:00
2026-07-23 14:52:57 +08:00
2026-07-27 18:28:26 +08:00
2026-07-08 11:26:41 +08:00
2026-05-08 11:44:42 +08:00
2026-06-19 10:47:56 +08:00
2026-06-30 19:33:37 +08:00
2026-04-27 14:23:19 +08:00
2026-06-30 19:33:37 +08:00
2026-07-15 21:06:05 +08:00
2026-07-27 18:28:26 +08:00
2026-04-26 18:06:23 +08:00
2026-07-15 21:06:05 +08:00
2026-06-08 21:05:37 +08:00
2026-08-08 21:54:30 +08:00
2026-08-08 05:33:40 +00:00
2026-08-08 22:03:50 +08:00
2026-07-31 13:40:28 +08:00
2026-08-08 22:04:42 +08:00
2026-08-08 19:36:57 +00:00
2026-07-27 18:28:26 +08:00
2026-07-15 21:06:05 +08:00
2026-08-08 21:54:30 +08:00
2026-05-14 14:56:36 +08:00
2026-07-20 20:57:34 +08:00
2026-04-26 18:06:23 +08:00
2026-07-23 18:06:29 +08:00
2026-08-08 10:25:42 +08:00
2026-06-21 13:40:09 +08:00
2026-07-10 18:28:06 +08:00
2026-08-08 21:54:30 +08:00
2026-07-08 22:16:51 +08:00
2026-08-08 21:54:30 +08:00
2026-08-08 10:26:38 +00:00
2026-08-07 19:21:34 +08:00
2026-08-03 12:03:50 +08:00
2026-07-08 11:26:41 +08:00
2026-07-17 22:07:52 +08:00
2026-06-07 22:20:58 +08:00
2026-06-10 11:35:39 +08:00
2026-08-06 17:54:40 +08:00
2026-05-26 13:18:13 +08:00
2026-07-04 12:03:58 +08:00
2026-07-20 20:57:34 +08:00
2026-07-17 22:07:52 +08:00
2026-08-06 14:04:36 +00:00
2026-07-15 21:06:05 +08:00
2026-06-30 20:58:33 +08:00
2026-06-30 20:58:33 +08:00
2026-08-08 21:54:30 +08:00
2026-06-30 19:33:37 +08:00
2026-07-17 22:07:52 +08:00
2026-07-21 17:06:39 +08:00
2026-07-23 14:52:57 +08:00
2026-07-23 14:52:57 +08:00
2026-07-23 14:52:57 +08:00
2026-08-06 11:33:26 +08:00
2026-07-23 10:50:02 +08:00
2026-07-23 14:52:57 +08:00
2026-07-13 13:39:59 +08:00
2026-07-14 19:20:25 +08:00
2026-06-25 20:10:18 +08:00
2026-04-30 17:49:07 +08:00
2026-07-03 15:19:44 +08:00
2026-06-08 21:05:37 +08:00
2026-07-16 17:07:13 +08:00
2026-06-30 20:58:33 +08:00
2026-05-14 14:21:17 +08:00
2026-07-20 20:57:34 +08:00
2026-04-26 18:06:23 +08:00
2026-06-09 15:36:58 +08:00
2026-06-30 19:33:37 +08:00
2026-06-30 19:33:37 +08:00
2026-07-17 16:56:46 +08:00
2026-07-31 13:04:27 +08:00
2026-06-09 15:36:58 +08:00
2026-07-18 22:02:22 +08:00
2026-04-26 18:06:23 +08:00
2026-05-06 12:52:47 +08:00
2026-06-10 22:00:19 +08:00
2026-08-08 21:54:30 +08:00
2026-07-21 19:40:38 +08:00
2026-07-21 19:40:38 +08:00
2026-07-23 18:06:29 +08:00
2026-07-17 16:56:46 +08:00
2026-08-06 14:04:36 +00:00
2026-08-07 09:30:03 +00:00
2026-07-01 14:40:27 +08:00
2026-07-23 14:52:57 +08:00
2026-07-08 22:16:51 +08:00
2026-07-17 22:07:52 +08:00
2026-07-16 17:07:13 +08:00
2026-07-17 22:07:52 +08:00
2026-05-25 14:03:38 +08:00