}\n label=\"积分与会员中心\"\n onClick={() => {\n onClose();\n onOpenMember();\n }}\n />\n
} label=\"订阅与开发票\" onClick={() => toast.info(\"订阅"
+ },
+ {
+ "owner": "AccountPopover",
+ "line": 25783,
+ "tag": "AccountMenuButton",
+ "handler": "onClick={() => toast.info(\"退出登录接口待接入。\")}",
+ "snippet": "
\n
}\n label=\"积分与会员中心\"\n onClick={() => {\n onClose();\n onOpenMember();\n }}\n />\n
} label=\"个人中心\" onClick={() => toast.info(\"个人中心入口待接入。\")} />\n
} label=\"创建团队\" onClick={() => toast.info(\"创建团队接口待接入。\")} />\n
} label=\"订阅与开发票\" onClick={() => toast.info(\"订阅"
+ },
+ {
+ "owner": "AccountMetricCard",
+ "line": 25805,
+ "tag": "button",
+ "handler": "onClick={() => toast.info(`${label}接口待接入。`)}",
+ "snippet": "
"
+ },
+ {
+ "owner": "SupportPanel",
+ "line": 25859,
+ "tag": "button",
+ "handler": "onClick={() => toast.info(`${title}入口待接入。`)}",
+ "snippet": "
"
+ },
+ {
+ "owner": "PublishModal",
+ "line": 26112,
+ "tag": "button",
+ "handler": "onClick={() => toast.info(\"发布接口待接入。\")}",
+ "snippet": "
"
+ },
+ {
+ "owner": "PublishModal",
+ "line": 26125,
+ "tag": "button",
+ "handler": "onClick={() => toast.info(\"服务协议入口待接入。\")}",
+ "snippet": "
"
+ },
+ {
+ "owner": "UploadBox",
+ "line": 26142,
+ "tag": "button",
+ "handler": "onClick={() => toast.info(`${label}接口待接入。`)}",
+ "snippet": "
"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/video-canvas-repairs-2026-09-17.md b/docs/video-canvas-repairs-2026-09-17.md
index c68769909..4a7b18d7c 100644
--- a/docs/video-canvas-repairs-2026-09-17.md
+++ b/docs/video-canvas-repairs-2026-09-17.md
@@ -1,5 +1,7 @@
# 视频画布修复记录 — 2026-09-17
+后续全面验证扫描见 [2026-09-17 扫描报告](video-canvas-validation-scan-2026-09-17.md):仍存在任务恢复、取消等未完成项,不能以本文作为全功能验收通过证明。
+
基于 `e5b2de3c` 的 231 项对照检查继续修复。本文记录已修改的具体行为和验证边界;**不表示 231 项全部完成,也不表示与 LibTV 像素级一致**。代码在 `codex/video-canvas-parity-0916`;本轮没有部署、重启 48 服务器或修改生产数据库。
## 生成与参数
diff --git a/docs/video-canvas-validation-matrix-2026-09-17.md b/docs/video-canvas-validation-matrix-2026-09-17.md
new file mode 100644
index 000000000..330b3a3a9
--- /dev/null
+++ b/docs/video-canvas-validation-matrix-2026-09-17.md
@@ -0,0 +1,285 @@
+# 视频画布验证矩阵 · 2026-09-17
+
+逐项核对原 231 项。分类表示**证据和剩余工作**,不是完成率;“有部分证据”包括历史实测、契约单测和代码检查,均不能单独代替本次端到端验收。详细说明见同名扫描报告与 JSON。
+
+## 01 画布、节点和项目
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 01-01 | 项目/标题 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-02 | 项目/多画布切换 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-03 | 视图/工作流 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-04 | 视图/故事板 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-05 | 故事板/关键元素 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-06 | 故事板/音频 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-07 | 故事板/对话引用 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-08 | 故事板/剪辑 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-09 | 添加/基本节点 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-10 | 添加/智能剪辑 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-11 | 添加/逐帧拉片 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-12 | 添加/脚本版本 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-13 | 添加/搜索 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-14 | 画布/平移缩放 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-15 | 画布/小地图 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-16 | 画布/网格吸附 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-17 | 画布/连线显隐 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-18 | 画布/整理 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-19 | 画布/分组解组 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-20 | 画布/撤销重做 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-21 | 右键/评级 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-22 | 右键/复制粘贴 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-23 | 右键/资产沉淀 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-24 | 右键/全景预览 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-25 | 右键/素材校验 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-26 | 快捷键/一致性 | 有部分证据,未完整验收 | 本轮代码检查 | 全画布撤销、分组等原参考能力未实现。 |
+| 01-27 | 持久化/完成结果恢复 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 01-28 | 持久化/后台与刷新中任务 | 仍有问题(F01) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 02 文本和提示词
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 02-01 | 文本/手工编写 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-02 | 文本/文生视频 | 仍有问题(F03) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-03 | 文本/图片反推 | 仍有问题(F03) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-04 | 文本/文字生音乐 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-05 | 提示词/优化 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-06 | 提示词/翻译 | 仍有问题(F07) | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-07 | 提示词/@引用 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-08 | 提示词/AutoLink | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 02-09 | 提示词/联网搜索 | 缺失或停用 | 修复记录;本轮活动代码检查 | 联网搜索与供应商合规检查服务未实现。 |
+| 02-10 | 提示词/自动校验素材 | 缺失或停用 | 修复记录;本轮活动代码检查 | 联网搜索与供应商合规检查服务未实现。 |
+| 02-11 | 提示词/文本模型显示 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 03 图片生成与编辑
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 03-01 | 图片/模型选择 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-02 | 图片/1K 2K 4K | 有部分证据,未完整验收 | 本轮 generation-contract 回归通过 | 供应商逐模型规格、实际多张生成和页面端到端未逐一验收。 |
+| 03-03 | 图片/画质 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-04 | 图片/透明背景 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-05 | 图片/比例 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-06 | 图片/数量 | 有部分证据,未完整验收 | 本轮 generation-contract 回归通过 | 供应商逐模型规格、实际多张生成和页面端到端未逐一验收。 |
+| 03-07 | 图片/替换素材 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-08 | 图片/人像调节 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-09 | 图片/情绪调节 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-10 | 图片/全景生成 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-11 | 图片/全景沉浸预览 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-12 | 多角度/七种预设 | 有部分证据,未完整验收 | 本轮浏览器:鱼眼→右箭头→提交 preset=自定义、horizontalAngle=10;本轮角度映射回归通过 | 未验证全部预设的供应商实际画面效果。 |
+| 03-13 | 多角度/环绕俯仰缩放 | 有部分证据,未完整验收 | 本轮浏览器:鱼眼→右箭头→提交 preset=自定义、horizontalAngle=10;本轮角度映射回归通过 | 未验证全部预设的供应商实际画面效果。 |
+| 03-14 | 多角度/预览 | 有部分证据,未完整验收 | 此前组件浏览器验收 | 不是实时角度渲染;多分辨率布局仍待验。 |
+| 03-15 | 打光/智能模式 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-16 | 打光/亮度颜色 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-17 | 打光/六方向 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-18 | 打光/轮廓光 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-19 | 高清/专用模型 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-20 | 高清/倍率 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-21 | 宫格预设/11 类 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-22 | 宫格预设/禁用状态 | 有部分证据,未完整验收 | 本轮代码检查 | 后台开关与页面端到端尚未专项验收。 |
+| 03-23 | 宫格切分/固定规格 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-24 | 宫格切分/自定义 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-25 | 宫格切分/边界与选中 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-26 | 元素编辑/点选 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-27 | 元素编辑/框选 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-28 | 元素编辑/画笔 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-29 | 图层分离/物体拆分 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-30 | 图片/扩图重绘擦除抠图 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-31 | 图片/下载预览 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 03-32 | 图片/小屏弹窗 | 有部分证据,未完整验收 | 此前组件浏览器验收 | 不是实时角度渲染;多分辨率布局仍待验。 |
+| 03-33 | 图片/空参考输入 | 有部分证据,未完整验收 | 本轮 generation-contract 回归通过 | 供应商逐模型规格、实际多张生成和页面端到端未逐一验收。 |
+
+## 04 视频生成和模型匹配
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 04-01 | 视频/文生视频 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-02 | 视频/首帧生成 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-03 | 视频/首尾帧 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-04 | 视频/多图参考 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-05 | 视频/全能参考 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-06 | 视频/5 分钟长视频 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-07 | 视频/模型目录 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-08 | 视频/按功能过滤模型 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-09 | 视频/无兼容模型 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-10 | 视频/比例规格 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-11 | 视频/清晰度 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-12 | 视频/时长 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-13 | 视频/生成音频 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-14 | 视频/生成数量 | 有部分证据,未完整验收 | 本轮代码检查 | 混合失败、排队中删除、重复提交、断线恢复未验收。 |
+| 04-15 | 视频/参考选择 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-16 | 视频/标记引用 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-17 | 视频/运镜库 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-18 | 视频/运镜引用 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-19 | 视频/角色素材 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-20 | 视频/特效库 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-21 | 视频/生成任务恢复 | 仍有问题(F01,F02) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 04-22 | 视频/结果归档 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 05 视频后期、智能剪辑和拉片
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 05-01 | 后期/工具栏结构 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-02 | 后期/时间裁剪 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-03 | 后期/空间裁剪 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-04 | 后期/视频高清 | 缺失或停用 | 本轮代码检查 | 专用超分、去字幕、人声/背景分离服务尚未接通。 |
+| 05-05 | 后期/补帧 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-06 | 后期/慢放 | 有部分证据,未完整验收 | 本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨 | 实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。 |
+| 05-07 | 后期/片段重拍 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-08 | 后期/智能续写 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-09 | 后期/智能去字幕 | 缺失或停用 | 本轮代码检查 | 专用超分、去字幕、人声/背景分离服务尚未接通。 |
+| 05-10 | 后期/框选去字幕 | 缺失或停用 | 本轮代码检查 | 专用超分、去字幕、人声/背景分离服务尚未接通。 |
+| 05-11 | 后期/音视频分离 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-12 | 后期/人声提取 | 缺失或停用 | 本轮代码检查 | 专用超分、去字幕、人声/背景分离服务尚未接通。 |
+| 05-13 | 后期/背景音提取 | 缺失或停用 | 本轮代码检查 | 专用超分、去字幕、人声/背景分离服务尚未接通。 |
+| 05-14 | 后期/主体消除 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-15 | 后期/截取帧 | 有部分证据,未完整验收 | 本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨 | 实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。 |
+| 05-16 | 后期/截图规格显示 | 有部分证据,未完整验收 | 本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨 | 实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。 |
+| 05-17 | 智能剪辑/四种模板 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-18 | 智能剪辑/讲解模板 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-19 | 智能剪辑/多素材编排 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-20 | 逐帧拉片/输入信息 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-21 | 逐帧拉片/拆解维度 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 05-22 | 逐帧拉片/结果继续创作 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 06 脚本的三层流程
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 06-01 | 脚本/模型生成 | 仍有问题(F04) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-02 | 脚本/手工编写 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-03 | 确认镜头/字段 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-04 | 确认镜头/单元格编辑 | 有部分证据,未完整验收 | 此前组件浏览器编辑刷新恢复 | 数据库持久化、行删除后的资产/分镜同步仍需端到端。 |
+| 06-05 | 确认镜头/添加镜头 | 有部分证据,未完整验收 | 此前组件浏览器编辑刷新恢复 | 数据库持久化、行删除后的资产/分镜同步仍需端到端。 |
+| 06-06 | 确认镜头/拖动排序 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-07 | 确认镜头/行操作 | 有部分证据,未完整验收 | 此前组件浏览器编辑刷新恢复 | 数据库持久化、行删除后的资产/分镜同步仍需端到端。 |
+| 06-08 | 准备资产/角色场景道具 | 有部分证据,未完整验收 | 此前浏览器资产引用与计数;本轮代码检查 | 上传成功/失败、AI 生成及所有资产类型未完整验收。 |
+| 06-09 | 准备资产/真实来源 | 有部分证据,未完整验收 | 此前浏览器资产引用与计数;本轮代码检查 | 上传成功/失败、AI 生成及所有资产类型未完整验收。 |
+| 06-10 | 准备资产/新增 | 有部分证据,未完整验收 | 此前浏览器资产引用与计数;本轮代码检查 | 上传成功/失败、AI 生成及所有资产类型未完整验收。 |
+| 06-11 | 准备资产/替换清除删除 | 有部分证据,未完整验收 | 此前浏览器资产引用与计数;本轮代码检查 | 上传成功/失败、AI 生成及所有资产类型未完整验收。 |
+| 06-12 | 准备资产/资产生成参数 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-13 | 准备资产/完成状态 | 有部分证据,未完整验收 | 此前浏览器资产引用与计数;本轮代码检查 | 上传成功/失败、AI 生成及所有资产类型未完整验收。 |
+| 06-14 | 合成提示词/完成门槛 | 有部分证据,未完整验收 | 本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2;此前浏览器风格编辑与刷新 | 仅验证本地失败分支;真实合成成功与批量部分失败未验收。 |
+| 06-15 | 合成提示词/单镜合成 | 有部分证据,未完整验收 | 本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2;此前浏览器风格编辑与刷新 | 仅验证本地失败分支;真实合成成功与批量部分失败未验收。 |
+| 06-16 | 合成提示词/全部合成 | 有部分证据,未完整验收 | 本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2;此前浏览器风格编辑与刷新 | 仅验证本地失败分支;真实合成成功与批量部分失败未验收。 |
+| 06-17 | 合成提示词/风格来源 | 有部分证据,未完整验收 | 本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2;此前浏览器风格编辑与刷新 | 仅验证本地失败分支;真实合成成功与批量部分失败未验收。 |
+| 06-18 | 输出/批量分镜 | 仍有问题(F05) | 本轮执行链检查 | 不是完整自动批量生成;无首帧时仍选择首帧模型,时长未按离散规格约束。 |
+| 06-19 | 输出/批量视频 | 仍有问题(F05) | 本轮执行链检查 | 不是完整自动批量生成;无首帧时仍选择首帧模型,时长未按离散规格约束。 |
+| 06-20 | 输出/导出 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 06-21 | 脚本/旧版 | 仍有问题(F04,F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 07 音频、配音和音色
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 07-01 | 音频/模型选择 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-02 | 音频/生成提交 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-03 | 音频/草稿恢复 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-04 | 音频/停顿语气 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-05 | 音频/翻译 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-06 | 音频/语速声调音量 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-07 | 音频/音高强度音色 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-08 | 音频/音效 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-09 | 音频/重置 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-10 | 音频/语言 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-11 | 音频/采样率 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-12 | 音频/格式 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-13 | 音色/列表 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-14 | 音色/试听选择 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-15 | 音色/搜索筛选 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-16 | 音色/收藏分页 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-17 | 音色/克隆 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-18 | 音乐/生成 | 缺失或停用 | 本轮代码检查 | TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。 |
+| 07-19 | 音频生视频/模型匹配 | 仍有问题(F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 07-20 | 音频/播放已上传音轨 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 08 3D 导演台:场景与角色
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 08-01 | 场景/真实渲染 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-02 | 场景/视角 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-03 | 场景/对象搜索 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-04 | 场景/显隐锁定 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-05 | 场景/重命名 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-06 | 场景/移动旋转缩放 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-07 | 场景/旋转单位 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-08 | 场景/统一缩放 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-09 | 场景/颜色 | 有部分证据,未完整验收 | 本轮场景序列化回归通过;此前代码检查 | 需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。 |
+| 08-10 | 角色/八种体型 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-11 | 角色/二十种姿势 | 有部分证据,未完整验收 | 本轮姿势数据/往返回归;此前浏览器 T 型、招手姿势 | 其余 10 种姿势逐一视觉检查未做;参考站 20 姿势及手工关节编辑未齐。 |
+| 08-12 | 角色/身体躯干头部 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-13 | 角色/肩肘髋膝 | 有部分证据,未完整验收 | 本轮姿势数据/往返回归;此前浏览器 T 型、招手姿势 | 其余 10 种姿势逐一视觉检查未做;参考站 20 姿势及手工关节编辑未齐。 |
+| 08-14 | 角色/群众阵列 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-15 | 角色/本地模型 | 有部分证据,未完整验收 | 此前真实 GLB 链路;本轮 GLB 完整性/代理契约回归 | 弱网、损坏文件、超大 GLB、WebGL 丢失与导入中关闭的实际浏览器行为待验。 |
+| 08-16 | 角色/几何模型 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-17 | 全景/上传背景 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-18 | 全景/历史记录 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-19 | 全景/AI 生成 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-20 | AI 导入/图源选择 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-21 | AI 导入/插入与覆盖 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 08-22 | AI 导入/关闭继续任务 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 09 3D 导演台:机位、轨迹、输出
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 09-01 | 机位/预设 | 有部分证据,未完整验收 | 此前浏览器正面预设与环绕导出;本轮相机数据回归;此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 12 机位逐项视觉和小屏布局未全验;不是自动跟随。 |
+| 09-02 | 机位/切换 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-03 | 机位/位置与注视坐标 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-04 | 机位/手动旋转 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-05 | 机位/跟随对象 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-06 | 机位/注视对象 | 有部分证据,未完整验收 | 此前浏览器正面预设与环绕导出;本轮相机数据回归;此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 12 机位逐项视觉和小屏布局未全验;不是自动跟随。 |
+| 09-07 | 机位/FOV | 有部分证据,未完整验收 | 此前浏览器正面预设与环绕导出;本轮相机数据回归;此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 12 机位逐项视觉和小屏布局未全验;不是自动跟随。 |
+| 09-08 | 机位/画幅比例 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-09 | 时间轴/布局 | 有部分证据,未完整验收 | 此前浏览器正面预设与环绕导出;本轮相机数据回归;此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 12 机位逐项视觉和小屏布局未全验;不是自动跟随。 |
+| 09-10 | 时间轴/播放暂停跳转 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-11 | 时间轴/总时长 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-12 | 时间轴/单位与缩放 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-13 | 时间轴/自动帧 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-14 | 时间轴/多轨 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-15 | 时间轴/属性轨 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-16 | 关键帧/编辑删除 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-17 | 轨迹/圆环直线矩形 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-18 | 轨迹/铅笔钢笔 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-19 | 轨迹/变换与朝向 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-20 | 轨迹/查看全路径 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-21 | 轨迹/平滑插值 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-22 | 轨迹/JSON 导入导出 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-23 | 输出/机位截图 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商) | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-24 | 输出/运镜视频 | 有部分证据,未完整验收 | 此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商);本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-25 | 输出/AI 生视频 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 09-26 | 输出/取消与切后台 | 有部分证据,未完整验收 | 本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
+## 10 素材、历史、模板与公共入口
+
+| ID | 子功能 | 验证结论 | 证据 | 剩余工作 |
+|---|---|---|---|---|
+| 10-01 | 模板/工具箱 | 仍有问题(F03) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-02 | 模板/我的工具箱 | 仍有问题(F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-03 | 风格/广场分类 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-04 | 风格/收藏最近 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-05 | 特效/收藏最近 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-06 | 角色库/筛选 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-07 | 角色库/四类图片 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-08 | 运镜库/自定义收藏 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-09 | 历史/全部与本画布 | 有部分证据,未完整验收 | 此前空素材浏览器验收;本轮源码复核 | 素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。 |
+| 10-10 | 历史/示例混入 | 有部分证据,未完整验收 | 此前空素材浏览器验收;本轮源码复核 | 素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。 |
+| 10-11 | 历史/分页数量 | 仍有问题(F06) | 此前空素材浏览器验收;本轮源码复核 | 素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。 |
+| 10-12 | 历史/日期与排序 | 有部分证据,未完整验收 | 此前空素材浏览器验收;本轮源码复核 | 素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。 |
+| 10-13 | 历史/批量下载 | 有部分证据,未完整验收 | 本轮原始音频字节下载回归 | 认证下载/ZIP 部分失败、大文件、过期URL、Safari 下载本轮未端到端。 |
+| 10-14 | 历史/删除 | 有部分证据,未完整验收 | 本轮代码检查 | 非源文件删除;隐藏状态在数据库保存/刷新未本轮验收。 |
+| 10-15 | 历史/评级保存资产 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-16 | 资产管理/节点定位 | 有部分证据,未完整验收 | 本轮浏览器收起→节点消失→展开恢复;本轮浏览器:画布脚本筛选→素材默认全部→视频筛选→画布仍脚本 | 跨项目个人/Agent 资产库未实现;定位、重命名、下载仍需完整应用验收。 |
+| 10-17 | 资产管理/列表宫格 | 待专项验证 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-18 | 资产管理/个人与Agent | 有部分证据,未完整验收 | 本轮浏览器收起→节点消失→展开恢复;本轮浏览器:画布脚本筛选→素材默认全部→视频筛选→画布仍脚本 | 跨项目个人/Agent 资产库未实现;定位、重命名、下载仍需完整应用验收。 |
+| 10-19 | 资产管理/文件夹上传 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-20 | 分享/公开链接 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-21 | 发布/发布作品 | 仍有问题(F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-22 | Agent/对话及引用 | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-23 | Agent/Skills | 缺失或停用 | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-24 | Agent/生成权限与通知 | 仍有问题(F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+| 10-25 | 帮助/快捷键教程 | 有部分证据,未完整验收 | 本轮代码检查 | 全画布撤销、分组等原参考能力未实现。 |
+| 10-26 | 账户/积分 | 仍有问题(F07) | 基线代码对照;缺少可复验的专项结果 | 需要逐状态功能验收;不能以存在代码作为通过依据。 |
+
diff --git a/docs/video-canvas-validation-scan-2026-09-17.json b/docs/video-canvas-validation-scan-2026-09-17.json
new file mode 100644
index 000000000..2f66478c4
--- /dev/null
+++ b/docs/video-canvas-validation-scan-2026-09-17.json
@@ -0,0 +1,3151 @@
+{
+ "date": "2026-09-17",
+ "baseline": "f10e6b7c plus current scan fixes",
+ "scope": "视频画布原有 231 项逐项证据核对;活动代码和相关 API 检查、回归和本地组件补验。不是 231 项逐项浏览器通过。",
+ "counts": {
+ "待专项验证": 56,
+ "缺失或停用": 79,
+ "有部分证据,未完整验收": 80,
+ "仍有问题": 16
+ },
+ "findings": [
+ {
+ "id": "F01",
+ "features": [
+ "01-28",
+ "04-21"
+ ],
+ "priority": "P1",
+ "description": "生成任务刷新/重开恢复未实现;pending 快照会继续本地递增到 96%,未重新订阅视频任务。"
+ },
+ {
+ "id": "F02",
+ "features": [
+ "04-21"
+ ],
+ "priority": "P1",
+ "description": "取消生成确定按钮仅关闭弹窗,没有取消请求或任务。"
+ },
+ {
+ "id": "F03",
+ "features": [
+ "10-01",
+ "02-02",
+ "02-03"
+ ],
+ "priority": "P1",
+ "description": "快捷模板仍注入示例;角色三视图和首帧模板含 generated:true。"
+ },
+ {
+ "id": "F04",
+ "features": [
+ "06-01",
+ "06-21"
+ ],
+ "priority": "P1",
+ "description": "脚本弹窗重新生成走 runNode;有图片/视频输入时选择 image-to-prompt/agent-plan,与工具栏 story-script 路径不一致;空成功响应也可标完成。"
+ },
+ {
+ "id": "F05",
+ "features": [
+ "06-18",
+ "06-19"
+ ],
+ "priority": "P1",
+ "description": "批量仅创建节点;无参考也选首帧模型,镜头时长仅 clamp 2–15,未遵循离散规格。"
+ },
+ {
+ "id": "F06",
+ "features": [
+ "10-11"
+ ],
+ "priority": "P1",
+ "description": "素材选择器仍有无效分页、15条/页和无行为图标,列表无明确 overflow-y-auto。"
+ },
+ {
+ "id": "F07",
+ "features": [
+ "02-06",
+ "06-21",
+ "07-19",
+ "10-02",
+ "10-21",
+ "10-24",
+ "10-26"
+ ],
+ "priority": "P2",
+ "description": "旧脚本、音频生视频和公共入口仍有仅 toast 或无处理函数的按钮;主视频提示词翻译已接通不能等同这些入口。"
+ }
+ ],
+ "rows": [
+ {
+ "id": "01-01",
+ "group": "01 画布、节点和项目",
+ "feature": "项目/标题",
+ "baselineStatus": "接通",
+ "baselineObservation": "已接标题编辑与保存",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-02",
+ "group": "01 画布、节点和项目",
+ "feature": "项目/多画布切换",
+ "baselineStatus": "缺失",
+ "baselineObservation": "顶部无对应切换;侧栏“画布 1”固定按钮",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-03",
+ "group": "01 画布、节点和项目",
+ "feature": "视图/工作流",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有节点、连线及媒体结果",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-04",
+ "group": "01 画布、节点和项目",
+ "feature": "视图/故事板",
+ "baselineStatus": "缺失",
+ "baselineObservation": "活动 TopBar 无故事板切换和相应视图",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-05",
+ "group": "01 画布、节点和项目",
+ "feature": "故事板/关键元素",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有对应故事板资源组织层",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-06",
+ "group": "01 画布、节点和项目",
+ "feature": "故事板/音频",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有对应故事板音轨区",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-07",
+ "group": "01 画布、节点和项目",
+ "feature": "故事板/对话引用",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有这套故事板到 Agent 引用链路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-08",
+ "group": "01 画布、节点和项目",
+ "feature": "故事板/剪辑",
+ "baselineStatus": "部分",
+ "baselineObservation": "已有单视频裁剪,不等同故事板剪辑",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-09",
+ "group": "01 画布、节点和项目",
+ "feature": "添加/基本节点",
+ "baselineStatus": "接通",
+ "baselineObservation": "均有基本入口",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-10",
+ "group": "01 画布、节点和项目",
+ "feature": "添加/智能剪辑",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地仍是“视频合成”空节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-11",
+ "group": "01 画布、节点和项目",
+ "feature": "添加/逐帧拉片",
+ "baselineStatus": "缺失",
+ "baselineObservation": "只有视频解析,缺独立节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-12",
+ "group": "01 画布、节点和项目",
+ "feature": "添加/脚本版本",
+ "baselineStatus": "部分",
+ "baselineObservation": "已有两个入口,深层能力见脚本组",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-13",
+ "group": "01 画布、节点和项目",
+ "feature": "添加/搜索",
+ "baselineStatus": "部分",
+ "baselineObservation": "命令菜单与侧栏搜索存在,交互范围不同",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-14",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/平移缩放",
+ "baselineStatus": "接通",
+ "baselineObservation": "平移、滚轮、比例和适屏已有实现",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-15",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/小地图",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有可点击概览",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-16",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/网格吸附",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有吸附开关及坐标处理",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-17",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/连线显隐",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有显隐和连接点交互",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-18",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/整理",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有整理预览、保留和恢复",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-19",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/分组解组",
+ "baselineStatus": "部分",
+ "baselineObservation": "有预设分组外观,未找到通用分组编辑链路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-20",
+ "group": "01 画布、节点和项目",
+ "feature": "画布/撤销重做",
+ "baselineStatus": "部分",
+ "baselineObservation": "局部字幕框有撤销;不等于全画布操作历史",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-21",
+ "group": "01 画布、节点和项目",
+ "feature": "右键/评级",
+ "baselineStatus": "缺失",
+ "baselineObservation": "活动右键无评级",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-22",
+ "group": "01 画布、节点和项目",
+ "feature": "右键/复制粘贴",
+ "baselineStatus": "部分",
+ "baselineObservation": "复制节点有实现;复制到剪贴板仅名称",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "01-23",
+ "group": "01 画布、节点和项目",
+ "feature": "右键/资产沉淀",
+ "baselineStatus": "缺失",
+ "baselineObservation": "活动菜单无这两个业务动作",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-24",
+ "group": "01 画布、节点和项目",
+ "feature": "右键/全景预览",
+ "baselineStatus": "缺失",
+ "baselineObservation": "生成全景图不等于球面预览",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-25",
+ "group": "01 画布、节点和项目",
+ "feature": "右键/素材校验",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地输入数量校验不是该素材校验服务",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "01-26",
+ "group": "01 画布、节点和项目",
+ "feature": "快捷键/一致性",
+ "baselineStatus": "部分",
+ "baselineObservation": "活动监听主要 Space、L、删除、Esc,保存另有监听",
+ "currentImplementation": "快捷键说明仅列真实绑定",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "全画布撤销、分组等原参考能力未实现。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "01-27",
+ "group": "01 画布、节点和项目",
+ "feature": "持久化/完成结果恢复",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地上一轮真实链路刷新恢复通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "01-28",
+ "group": "01 画布、节点和项目",
+ "feature": "持久化/后台与刷新中任务",
+ "baselineStatus": "待验",
+ "baselineObservation": "保存快照存在;未完成任务断线恢复需专项实测",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F01"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "02-01",
+ "group": "02 文本和提示词",
+ "feature": "文本/手工编写",
+ "baselineStatus": "接通",
+ "baselineObservation": "创建文本资源节点并可编辑",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "02-02",
+ "group": "02 文本和提示词",
+ "feature": "文本/文生视频",
+ "baselineStatus": "部分",
+ "baselineObservation": "能建立节点关系,但快捷入口带示例提示词",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F03"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "02-03",
+ "group": "02 文本和提示词",
+ "feature": "文本/图片反推",
+ "baselineStatus": "部分",
+ "baselineObservation": "有视觉分析链路;快捷入口仍插入示例图片",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F03"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "02-04",
+ "group": "02 文本和提示词",
+ "feature": "文本/文字生音乐",
+ "baselineStatus": "占位",
+ "baselineObservation": "音频生成面板无真实提交,不能算完成",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "02-05",
+ "group": "02 文本和提示词",
+ "feature": "提示词/优化",
+ "baselineStatus": "实测",
+ "baselineObservation": "官方千问 3.8 已有真实返回记录",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "02-06",
+ "group": "02 文本和提示词",
+ "feature": "提示词/翻译",
+ "baselineStatus": "实测",
+ "baselineObservation": "中英翻译有实际返回、预览与应用",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "02-07",
+ "group": "02 文本和提示词",
+ "feature": "提示词/@引用",
+ "baselineStatus": "部分",
+ "baselineObservation": "已有图片、角色、标记引用;不等同完整 AutoLink",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "02-08",
+ "group": "02 文本和提示词",
+ "feature": "提示词/AutoLink",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有与参考站等价的自动素材关联执行层",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "02-09",
+ "group": "02 文本和提示词",
+ "feature": "提示词/联网搜索",
+ "baselineStatus": "占位",
+ "baselineObservation": "只保存 searchEnabled,视频请求未传入执行",
+ "currentImplementation": "已删除未执行开关;保留基本输入校验",
+ "evidence": [
+ "修复记录;本轮活动代码检查"
+ ],
+ "remaining": "联网搜索与供应商合规检查服务未实现。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "02-10",
+ "group": "02 文本和提示词",
+ "feature": "提示词/自动校验素材",
+ "baselineStatus": "占位",
+ "baselineObservation": "有基本输入约束,但开关未驱动独立素材校验",
+ "currentImplementation": "已删除未执行开关;保留基本输入校验",
+ "evidence": [
+ "修复记录;本轮活动代码检查"
+ ],
+ "remaining": "联网搜索与供应商合规检查服务未实现。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "02-11",
+ "group": "02 文本和提示词",
+ "feature": "提示词/文本模型显示",
+ "baselineStatus": "部分",
+ "baselineObservation": "主服务用我方模型;局部文案仍写 GVLM 等固定名",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-01",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/模型选择",
+ "baselineStatus": "接通",
+ "baselineObservation": "主图片入口匹配我方图片/图片编辑模型",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-02",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/1K 2K 4K",
+ "baselineStatus": "占位",
+ "baselineObservation": "已检查的主图片 composer 提交未传 settings.resolution,选择未落实",
+ "currentImplementation": "图片请求传清晰度/数量,保留多张结果,不再给空参考注入示例",
+ "evidence": [
+ "本轮 generation-contract 回归通过"
+ ],
+ "remaining": "供应商逐模型规格、实际多张生成和页面端到端未逐一验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-03",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/画质",
+ "baselineStatus": "部分",
+ "baselineObservation": "主面板无相同五档的完整参数闭环",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-04",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/透明背景",
+ "baselineStatus": "缺失",
+ "baselineObservation": "未看到相同背景模式控件及请求映射",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-05",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/比例",
+ "baselineStatus": "部分",
+ "baselineObservation": "已有比例选择;各线路支持范围需逐一配置",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-06",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/数量",
+ "baselineStatus": "部分",
+ "baselineObservation": "主 composer 提交 imageCount,但结果仅取 getFirstGeneratedImageUrl",
+ "currentImplementation": "图片请求传清晰度/数量,保留多张结果,不再给空参考注入示例",
+ "evidence": [
+ "本轮 generation-contract 回归通过"
+ ],
+ "remaining": "供应商逐模型规格、实际多张生成和页面端到端未逐一验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-07",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/替换素材",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地上传和历史资源选取;历史含示例数据问题",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-08",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/人像调节",
+ "baselineStatus": "缺失",
+ "baselineObservation": "活动工具栏无对应完整调节功能",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-09",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/情绪调节",
+ "baselineStatus": "缺失",
+ "baselineObservation": "未发现对应活动入口与执行链路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-10",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/全景生成",
+ "baselineStatus": "接通",
+ "baselineObservation": "以参考图加提示词调用图片模型",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-11",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/全景沉浸预览",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地普通图片展示,缺球面交互预览",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-12",
+ "group": "03 图片生成与编辑",
+ "feature": "多角度/七种预设",
+ "baselineStatus": "占位",
+ "baselineObservation": "按钮只改 activeTab,未改变提交角度参数",
+ "currentImplementation": "七预设和参数映射接通;本轮修正方向箭头未切换自定义",
+ "evidence": [
+ "本轮浏览器:鱼眼→右箭头→提交 preset=自定义、horizontalAngle=10",
+ "本轮角度映射回归通过"
+ ],
+ "remaining": "未验证全部预设的供应商实际画面效果。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-13",
+ "group": "03 图片生成与编辑",
+ "feature": "多角度/环绕俯仰缩放",
+ "baselineStatus": "接通",
+ "baselineObservation": "有数值状态并提交 angle 参数",
+ "currentImplementation": "七预设和参数映射接通;本轮修正方向箭头未切换自定义",
+ "evidence": [
+ "本轮浏览器:鱼眼→右箭头→提交 preset=自定义、horizontalAngle=10",
+ "本轮角度映射回归通过"
+ ],
+ "remaining": "未验证全部预设的供应商实际画面效果。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-14",
+ "group": "03 图片生成与编辑",
+ "feature": "多角度/预览",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地中心仍是静态参考图,不能当生成后视角预览",
+ "currentImplementation": "中央明确参考原图,弹窗受视口约束",
+ "evidence": [
+ "此前组件浏览器验收"
+ ],
+ "remaining": "不是实时角度渲染;多分辨率布局仍待验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-15",
+ "group": "03 图片生成与编辑",
+ "feature": "打光/智能模式",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地主要是预设提示词调用",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-16",
+ "group": "03 图片生成与编辑",
+ "feature": "打光/亮度颜色",
+ "baselineStatus": "缺失",
+ "baselineObservation": "缺专用参数面板与映射",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-17",
+ "group": "03 图片生成与编辑",
+ "feature": "打光/六方向",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地“打光”通用生成,未复刻这些参数",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-18",
+ "group": "03 图片生成与编辑",
+ "feature": "打光/轮廓光",
+ "baselineStatus": "缺失",
+ "baselineObservation": "无等价细项",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-19",
+ "group": "03 图片生成与编辑",
+ "feature": "高清/专用模型",
+ "baselineStatus": "部分",
+ "baselineObservation": "我方增强或通用图片线路,不能声称等效 Topaz",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-20",
+ "group": "03 图片生成与编辑",
+ "feature": "高清/倍率",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地没有同一组倍率的完整规格约束",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-21",
+ "group": "03 图片生成与编辑",
+ "feature": "宫格预设/11 类",
+ "baselineStatus": "接通",
+ "baselineObservation": "均已定义对应功能提示词与路由",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-22",
+ "group": "03 图片生成与编辑",
+ "feature": "宫格预设/禁用状态",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地部分分支 shouldGenerate=false 仍标 complete",
+ "currentImplementation": "禁用宫格功能在创建结果前拦截",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "后台开关与页面端到端尚未专项验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-23",
+ "group": "03 图片生成与编辑",
+ "feature": "宫格切分/固定规格",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地四组切分与结果节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-24",
+ "group": "03 图片生成与编辑",
+ "feature": "宫格切分/自定义",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地自定义 rows/columns 与网格框",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-25",
+ "group": "03 图片生成与编辑",
+ "feature": "宫格切分/边界与选中",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地边界识别、单格/批量输出;本轮不重跑算法",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-26",
+ "group": "03 图片生成与编辑",
+ "feature": "元素编辑/点选",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地局部区域编辑,缺同等点选分割能力",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-27",
+ "group": "03 图片生成与编辑",
+ "feature": "元素编辑/框选",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有局部框选和真实编辑 API",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-28",
+ "group": "03 图片生成与编辑",
+ "feature": "元素编辑/画笔",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地矩形区域不能代替任意蒙版笔刷",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-29",
+ "group": "03 图片生成与编辑",
+ "feature": "图层分离/物体拆分",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地未找到对应多图层分离节点链路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "03-30",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/扩图重绘擦除抠图",
+ "baselineStatus": "待验",
+ "baselineObservation": "我方已有各 route 配置;本轮参考覆盖不足",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-31",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/下载预览",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地下载辅助函数与预览存在",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "03-32",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/小屏弹窗",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地多角度固定 1200×768,存在纵向溢出风险",
+ "currentImplementation": "中央明确参考原图,弹窗受视口约束",
+ "evidence": [
+ "此前组件浏览器验收"
+ ],
+ "remaining": "不是实时角度渲染;多分辨率布局仍待验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "03-33",
+ "group": "03 图片生成与编辑",
+ "feature": "图片/空参考输入",
+ "baselineStatus": "占位",
+ "baselineObservation": "主 composer 无参考时 sourceUrl 回退 CHARACTER_IMAGE_URL 并传给生成",
+ "currentImplementation": "图片请求传清晰度/数量,保留多张结果,不再给空参考注入示例",
+ "evidence": [
+ "本轮 generation-contract 回归通过"
+ ],
+ "remaining": "供应商逐模型规格、实际多张生成和页面端到端未逐一验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-01",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/文生视频",
+ "baselineStatus": "实测",
+ "baselineObservation": "VIP98K Veo 3.1 Fast 已产出真实视频",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-02",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/首帧生成",
+ "baselineStatus": "实测",
+ "baselineObservation": "阿里云 Wan 2.6 i2v flash 真实链路通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-03",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/首尾帧",
+ "baselineStatus": "部分",
+ "baselineObservation": "输入契约和路由已接,历史实测遇上游失败",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-04",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/多图参考",
+ "baselineStatus": "部分",
+ "baselineObservation": "已接契约;不代表所有模型线路成功",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-05",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/全能参考",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地主模式以图片为主,未等价覆盖全模态参考",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-06",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/5 分钟长视频",
+ "baselineStatus": "缺失",
+ "baselineObservation": "无对应长视频编排节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "04-07",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/模型目录",
+ "baselineStatus": "部分",
+ "baselineObservation": "使用我方可执行适配器目录,数量不作为复刻标准",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-08",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/按功能过滤模型",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地按 supportedModes 和 provider adapter 过滤",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-09",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/无兼容模型",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地显示暂无可用模型并拦截",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-10",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/比例规格",
+ "baselineStatus": "接通",
+ "baselineObservation": "动态读取模型能力;阿里首帧比例跟随输入",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-11",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/清晰度",
+ "baselineStatus": "接通",
+ "baselineObservation": "仅展示我方线路支持清晰度,不能盲加 4K",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-12",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/时长",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地能力驱动离散按钮,交互不一样",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-13",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/生成音频",
+ "baselineStatus": "实测",
+ "baselineObservation": "主视频和阿里链路已传 generateAudio",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-14",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/生成数量",
+ "baselineStatus": "占位",
+ "baselineObservation": "count 保存到 settings,但只执行一次 generateVideo",
+ "currentImplementation": "1/2/4 个串行提交,成功失败分别记录",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "混合失败、排队中删除、重复提交、断线恢复未验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-15",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/参考选择",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地实际参考选择、首尾图数量验证",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "04-16",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/标记引用",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地有识别和标记服务;效果本轮未对拍",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-17",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/运镜库",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地配置预设、搜索与自定义已有;收藏仅 localStorage",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-18",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/运镜引用",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地转语义提示词;不等同相机轨迹精确控制",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-19",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/角色素材",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地配置角色描述、图片与参考拼接",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-20",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/特效库",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地配置特效/提示词,收藏等交互不完整",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "04-21",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/生成任务恢复",
+ "baselineStatus": "待验",
+ "baselineObservation": "快照能保存,但异步任务跨刷新完成恢复尚未本轮验证",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F01",
+ "F02"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "04-22",
+ "group": "04 视频生成和模型匹配",
+ "feature": "视频/结果归档",
+ "baselineStatus": "实测",
+ "baselineObservation": "我方真实视频归档链路通过,长耗时包含归档阶段",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-01",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/工具栏结构",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地仍以剪辑、裁剪、高清、解析、去字幕、音频分离为主",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "05-02",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/时间裁剪",
+ "baselineStatus": "实测",
+ "baselineObservation": "我方 FFmpeg 真实裁剪产物通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-03",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/空间裁剪",
+ "baselineStatus": "实测",
+ "baselineObservation": "我方框选和 FFmpeg 真实裁剪通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-04",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/视频高清",
+ "baselineStatus": "缺失",
+ "baselineObservation": "明确报未接超分服务",
+ "currentImplementation": "活动入口明确不可用或禁用",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "专用超分、去字幕、人声/背景分离服务尚未接通。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-05",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/补帧",
+ "baselineStatus": "缺失",
+ "baselineObservation": "无专用帧插值处理",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-06",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/慢放",
+ "baselineStatus": "缺失",
+ "baselineObservation": "无对应慢放处理管线",
+ "currentImplementation": "FFmpeg 真实慢放/首尾当前帧输出及探测尺寸",
+ "evidence": [
+ "本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨"
+ ],
+ "remaining": "实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-07",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/片段重拍",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地未见局部视频重拍适配器",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-08",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/智能续写",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地无续写适配;参考禁用条件未全部确认",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-09",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/智能去字幕",
+ "baselineStatus": "缺失",
+ "baselineObservation": "我方明确未接处理服务",
+ "currentImplementation": "活动入口明确不可用或禁用",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "专用超分、去字幕、人声/背景分离服务尚未接通。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-10",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/框选去字幕",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地有区域框选和撤销,但不产生去字幕视频",
+ "currentImplementation": "活动入口明确不可用或禁用",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "专用超分、去字幕、人声/背景分离服务尚未接通。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-11",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/音视频分离",
+ "baselineStatus": "实测",
+ "baselineObservation": "我方已有真实静音视频和独立 M4A 结果",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-12",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/人声提取",
+ "baselineStatus": "缺失",
+ "baselineObservation": "专用分离模型未接通",
+ "currentImplementation": "活动入口明确不可用或禁用",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "专用超分、去字幕、人声/背景分离服务尚未接通。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-13",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/背景音提取",
+ "baselineStatus": "缺失",
+ "baselineObservation": "专用分离模型未接通",
+ "currentImplementation": "活动入口明确不可用或禁用",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "专用超分、去字幕、人声/背景分离服务尚未接通。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-14",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/主体消除",
+ "baselineStatus": "缺失",
+ "baselineObservation": "无对应视频对象消除流程",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-15",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/截取帧",
+ "baselineStatus": "接通",
+ "baselineObservation": "已有视频解码截图节点链路",
+ "currentImplementation": "FFmpeg 真实慢放/首尾当前帧输出及探测尺寸",
+ "evidence": [
+ "本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨"
+ ],
+ "remaining": "实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-16",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "后期/截图规格显示",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地截帧结果 outputSizeLabel 固定 1280×720,需改实际值",
+ "currentImplementation": "FFmpeg 真实慢放/首尾当前帧输出及探测尺寸",
+ "evidence": [
+ "本轮真实 FFmpeg 回归:首/中/尾不同、2/3/5 倍慢放保留音轨"
+ ],
+ "remaining": "实际网页当前帧选取→处理接口→结果节点链路本轮未再执行。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "05-17",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "智能剪辑/四种模板",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地“视频合成”无这些模板",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-18",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "智能剪辑/讲解模板",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有等价编排流程",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-19",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "智能剪辑/多素材编排",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地合成节点无真实拼接处理",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-20",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "逐帧拉片/输入信息",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地通用视频解析不等同专用拉片节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "05-21",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "逐帧拉片/拆解维度",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有逐维度可选执行链路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "05-22",
+ "group": "05 视频后期、智能剪辑和拉片",
+ "feature": "逐帧拉片/结果继续创作",
+ "baselineStatus": "待验",
+ "baselineObservation": "参考付费结果本轮未生成,不能评为已对齐",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "06-01",
+ "group": "06 脚本的三层流程",
+ "feature": "脚本/模型生成",
+ "baselineStatus": "接通",
+ "baselineObservation": "调用 workflow analyze 解析真实结构化脚本",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F04"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "06-02",
+ "group": "06 脚本的三层流程",
+ "feature": "脚本/手工编写",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地入口与展示有,但完整行编辑未接",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "06-03",
+ "group": "06 脚本的三层流程",
+ "feature": "确认镜头/字段",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地能展示相同字段",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "06-04",
+ "group": "06 脚本的三层流程",
+ "feature": "确认镜头/单元格编辑",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地表格主要只读 div",
+ "currentImplementation": "镜头单元格编辑、新增、删除、上移接通",
+ "evidence": [
+ "此前组件浏览器编辑刷新恢复"
+ ],
+ "remaining": "数据库持久化、行删除后的资产/分镜同步仍需端到端。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-05",
+ "group": "06 脚本的三层流程",
+ "feature": "确认镜头/添加镜头",
+ "baselineStatus": "占位",
+ "baselineObservation": "按钮无 onClick",
+ "currentImplementation": "镜头单元格编辑、新增、删除、上移接通",
+ "evidence": [
+ "此前组件浏览器编辑刷新恢复"
+ ],
+ "remaining": "数据库持久化、行删除后的资产/分镜同步仍需端到端。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-06",
+ "group": "06 脚本的三层流程",
+ "feature": "确认镜头/拖动排序",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有行拖拽数据更新",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "06-07",
+ "group": "06 脚本的三层流程",
+ "feature": "确认镜头/行操作",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地 ⋯ 按钮没有处理",
+ "currentImplementation": "镜头单元格编辑、新增、删除、上移接通",
+ "evidence": [
+ "此前组件浏览器编辑刷新恢复"
+ ],
+ "remaining": "数据库持久化、行删除后的资产/分镜同步仍需端到端。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-08",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/角色场景道具",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地有三分类展示",
+ "currentImplementation": "资产真实来源、CRUD、上传、画布引用、配置模型生成",
+ "evidence": [
+ "此前浏览器资产引用与计数",
+ "本轮代码检查"
+ ],
+ "remaining": "上传成功/失败、AI 生成及所有资产类型未完整验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-09",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/真实来源",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地资产提取后混入固定示例图片与人物",
+ "currentImplementation": "资产真实来源、CRUD、上传、画布引用、配置模型生成",
+ "evidence": [
+ "此前浏览器资产引用与计数",
+ "本轮代码检查"
+ ],
+ "remaining": "上传成功/失败、AI 生成及所有资产类型未完整验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-10",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/新增",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地新增按钮无处理",
+ "currentImplementation": "资产真实来源、CRUD、上传、画布引用、配置模型生成",
+ "evidence": [
+ "此前浏览器资产引用与计数",
+ "本轮代码检查"
+ ],
+ "remaining": "上传成功/失败、AI 生成及所有资产类型未完整验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-11",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/替换清除删除",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地悬浮菜单 pointer-events-none,没有真实处理",
+ "currentImplementation": "资产真实来源、CRUD、上传、画布引用、配置模型生成",
+ "evidence": [
+ "此前浏览器资产引用与计数",
+ "本轮代码检查"
+ ],
+ "remaining": "上传成功/失败、AI 生成及所有资产类型未完整验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-12",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/资产生成参数",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地缺每项资产的模型与生成参数编辑器",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "06-13",
+ "group": "06 脚本的三层流程",
+ "feature": "准备资产/完成状态",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地直接显示 assetCount/assetCount 已生成",
+ "currentImplementation": "资产真实来源、CRUD、上传、画布引用、配置模型生成",
+ "evidence": [
+ "此前浏览器资产引用与计数",
+ "本轮代码检查"
+ ],
+ "remaining": "上传成功/失败、AI 生成及所有资产类型未完整验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-14",
+ "group": "06 脚本的三层流程",
+ "feature": "合成提示词/完成门槛",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地固定写 3/3 完成",
+ "currentImplementation": "单镜/全部合成调用分析服务,真实计数及全局风格",
+ "evidence": [
+ "本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2",
+ "此前浏览器风格编辑与刷新"
+ ],
+ "remaining": "仅验证本地失败分支;真实合成成功与批量部分失败未验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-15",
+ "group": "06 脚本的三层流程",
+ "feature": "合成提示词/单镜合成",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地“重新合成”仅 toast.success",
+ "currentImplementation": "单镜/全部合成调用分析服务,真实计数及全局风格",
+ "evidence": [
+ "本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2",
+ "此前浏览器风格编辑与刷新"
+ ],
+ "remaining": "仅验证本地失败分支;真实合成成功与批量部分失败未验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-16",
+ "group": "06 脚本的三层流程",
+ "feature": "合成提示词/全部合成",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地 onRun 调用整节点 runNode,不是独立资产感知合成",
+ "currentImplementation": "单镜/全部合成调用分析服务,真实计数及全局风格",
+ "evidence": [
+ "本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2",
+ "此前浏览器风格编辑与刷新"
+ ],
+ "remaining": "仅验证本地失败分支;真实合成成功与批量部分失败未验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-17",
+ "group": "06 脚本的三层流程",
+ "feature": "合成提示词/风格来源",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地固定追加“盛唐·国风二次元”",
+ "currentImplementation": "单镜/全部合成调用分析服务,真实计数及全局风格",
+ "evidence": [
+ "本轮浏览器:接口 501 后显示失败,原对白/两镜头保留,完成数 0/2",
+ "此前浏览器风格编辑与刷新"
+ ],
+ "remaining": "仅验证本地失败分支;真实合成成功与批量部分失败未验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "06-18",
+ "group": "06 脚本的三层流程",
+ "feature": "输出/批量分镜",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地创建分镜节点并执行生成,未本轮整批实测",
+ "currentImplementation": "创建分镜/视频生成器节点并携带资产、模型与时长",
+ "evidence": [
+ "本轮执行链检查"
+ ],
+ "remaining": "不是完整自动批量生成;无首帧时仍选择首帧模型,时长未按离散规格约束。",
+ "issues": [
+ "F05"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "06-19",
+ "group": "06 脚本的三层流程",
+ "feature": "输出/批量视频",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地可建视频节点,但前置资产真实性与门槛不完整",
+ "currentImplementation": "创建分镜/视频生成器节点并携带资产、模型与时长",
+ "evidence": [
+ "本轮执行链检查"
+ ],
+ "remaining": "不是完整自动批量生成;无首帧时仍选择首帧模型,时长未按离散规格约束。",
+ "issues": [
+ "F05"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "06-20",
+ "group": "06 脚本的三层流程",
+ "feature": "输出/导出",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地有脚本行导出",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "06-21",
+ "group": "06 脚本的三层流程",
+ "feature": "脚本/旧版",
+ "baselineStatus": "待验",
+ "baselineObservation": "本轮只展开版本入口,未逐层复核旧版结果页",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F04",
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "07-01",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/模型选择",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地同名静态数组,点击只关闭菜单",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-02",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/生成提交",
+ "baselineStatus": "占位",
+ "baselineObservation": "活动生成音频按钮无处理函数",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-03",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/草稿恢复",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地文本只在组件 useState,未写回节点",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-04",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/停顿语气",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地可插文本 token,尚无音频模型解释",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-05",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/翻译",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地按钮无 onClick",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-06",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/语速声调音量",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地是 div 画的固定进度条",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-07",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/音高强度音色",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地固定值外观",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-08",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/音效",
+ "baselineStatus": "占位",
+ "baselineObservation": "按钮无参数更新",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-09",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/重置",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地按钮无处理",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-10",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/语言",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有 Seed Audio 真实参数模式",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-11",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/采样率",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有对应请求参数",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-12",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/格式",
+ "baselineStatus": "缺失",
+ "baselineObservation": "没有对应输出适配",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-13",
+ "group": "07 音频、配音和音色",
+ "feature": "音色/列表",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地仅少量静态行,页数和总数硬编码",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-14",
+ "group": "07 音频、配音和音色",
+ "feature": "音色/试听选择",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地按钮无试听与选中处理",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-15",
+ "group": "07 音频、配音和音色",
+ "feature": "音色/搜索筛选",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地搜索不筛选、筛选按钮无处理",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-16",
+ "group": "07 音频、配音和音色",
+ "feature": "音色/收藏分页",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地按钮无真实数据动作",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-17",
+ "group": "07 音频、配音和音色",
+ "feature": "音色/克隆",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地按钮无处理;参考未继续提交克隆",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-18",
+ "group": "07 音频、配音和音色",
+ "feature": "音乐/生成",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有音乐生成适配闭环",
+ "currentImplementation": "主音频生成面板已移除假控件,明确未接通,保留真实上传入口",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "TTS、音乐、音色克隆及这些参数能力未实现;不能记为验收通过。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "07-19",
+ "group": "07 音频、配音和音色",
+ "feature": "音频生视频/模型匹配",
+ "baselineStatus": "部分",
+ "baselineObservation": "仅 AtlasCloud reference_audios 可选,未确认现有可用线路",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "07-20",
+ "group": "07 音频、配音和音色",
+ "feature": "音频/播放已上传音轨",
+ "baselineStatus": "实测",
+ "baselineObservation": "上一轮已经修成真实 audio 控件",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-01",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/真实渲染",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地 Three.js 真实渲染;本轮再次显示正常",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-02",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/视角",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地两种视角",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-03",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/对象搜索",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地只有对象列表",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-04",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/显隐锁定",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有相同对象状态控制",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-05",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/重命名",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地主要显示名称,缺同等重命名控件",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-06",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/移动旋转缩放",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地已有三种变换轴和数值输入",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-07",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/旋转单位",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地对象旋转是弧度,直接复刻仍有使用差异",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-08",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/统一缩放",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地只有 XYZ 缩放输入",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-09",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "场景/颜色",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地对象已有颜色数据,但无同等编辑 UI",
+ "currentImplementation": "对象搜索、改名、显隐、锁变换轴、等比缩放、度制输入和基本颜色已接",
+ "evidence": [
+ "本轮场景序列化回归通过",
+ "此前代码检查"
+ ],
+ "remaining": "需逐控件浏览器验收,锁定只限制变换轴,颜色只适用于基本对象。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-10",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/八种体型",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地基础几何人偶,非这套骨骼角色",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-11",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/二十种姿势",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有骨骼姿势库",
+ "currentImplementation": "12 种基础关节人偶姿势,非专业骨骼编辑器",
+ "evidence": [
+ "本轮姿势数据/往返回归",
+ "此前浏览器 T 型、招手姿势"
+ ],
+ "remaining": "其余 10 种姿势逐一视觉检查未做;参考站 20 姿势及手工关节编辑未齐。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-12",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/身体躯干头部",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地无关节参数数据和 UI",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-13",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/肩肘髋膝",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地无骨骼关节控制",
+ "currentImplementation": "12 种基础关节人偶姿势,非专业骨骼编辑器",
+ "evidence": [
+ "本轮姿势数据/往返回归",
+ "此前浏览器 T 型、招手姿势"
+ ],
+ "remaining": "其余 10 种姿势逐一视觉检查未做;参考站 20 姿势及手工关节编辑未齐。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-14",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/群众阵列",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有阵列编辑",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-15",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/本地模型",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地 self-contained GLB ≤25MiB;真实 GLB 加载验证过",
+ "currentImplementation": "真实 GLB 导入及已加载对象复用",
+ "evidence": [
+ "此前真实 GLB 链路",
+ "本轮 GLB 完整性/代理契约回归"
+ ],
+ "remaining": "弱网、损坏文件、超大 GLB、WebGL 丢失与导入中关闭的实际浏览器行为待验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "08-16",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "角色/几何模型",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地立方体与球体可用,类型范围未完全对齐",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "08-17",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "全景/上传背景",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有全景贴图入口",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-18",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "全景/历史记录",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有对应历史资产",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-19",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "全景/AI 生成",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有全景生成导入闭环",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-20",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "AI 导入/图源选择",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地按钮明确禁用",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-21",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "AI 导入/插入与覆盖",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有场景识别重建服务",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "08-22",
+ "group": "08 3D 导演台:场景与角色",
+ "feature": "AI 导入/关闭继续任务",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地尚无该任务执行和恢复层",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-01",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/预设",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地只有正面、侧面、俯视 3 个预设",
+ "currentImplementation": "12 机位预设、一次性注视所选、FOV 小数、底部折叠时间轴",
+ "evidence": [
+ "此前浏览器正面预设与环绕导出",
+ "本轮相机数据回归",
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "12 机位逐项视觉和小屏布局未全验;不是自动跟随。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-02",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/切换",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地已有多机位场景数据和选择",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-03",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/位置与注视坐标",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地均有输入并影响真实画面",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-04",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/手动旋转",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地以 position/target 为主,缺相机 roll 等控制",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-05",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/跟随对象",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地固定目标坐标,不会跟随运动角色",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-06",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/注视对象",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地仅注视点坐标",
+ "currentImplementation": "12 机位预设、一次性注视所选、FOV 小数、底部折叠时间轴",
+ "evidence": [
+ "此前浏览器正面预设与环绕导出",
+ "本轮相机数据回归",
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "12 机位逐项视觉和小屏布局未全验;不是自动跟随。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-07",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/FOV",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地数值与关键帧 FOV 已真实验证",
+ "currentImplementation": "12 机位预设、一次性注视所选、FOV 小数、底部折叠时间轴",
+ "evidence": [
+ "此前浏览器正面预设与环绕导出",
+ "本轮相机数据回归",
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "12 机位逐项视觉和小屏布局未全验;不是自动跟随。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-08",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "机位/画幅比例",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地六种固定比例,真实横竖屏输出通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-09",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/布局",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地右侧竖向控制面板,720 高度需滚动",
+ "currentImplementation": "12 机位预设、一次性注视所选、FOV 小数、底部折叠时间轴",
+ "evidence": [
+ "此前浏览器正面预设与环绕导出",
+ "本轮相机数据回归",
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "12 机位逐项视觉和小屏布局未全验;不是自动跟随。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-10",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/播放暂停跳转",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地播放暂停、seek、循环和起点已有",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-11",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/总时长",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地 2–15 秒,修改时长缩放关键帧",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-12",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/单位与缩放",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地秒制单滑块,缺这些编辑视图",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-13",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/自动帧",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地手动记录,不自动录入对象变化",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-14",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/多轨",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地单个相机轨迹,没有角色动画轨道",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-15",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "时间轴/属性轨",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地每帧整体保存位置、target、FOV",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "09-16",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "关键帧/编辑删除",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地时间、姿态更新、删除、校验已有",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-17",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/圆环直线矩形",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地推进、拉远、90° 环绕、横移四预设,语义范围不同",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-18",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/铅笔钢笔",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有路径绘制和控制点工具",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-19",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/变换与朝向",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地可视化路径但不能作为独立对象变换",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "09-20",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/查看全路径",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地有相机路径线和总览",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-21",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/平滑插值",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地 linear/smoothstep 有数值测试,不能声称同算法",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-22",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "轨迹/JSON 导入导出",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地新增能力,校验异常和保存重载通过",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-23",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "输出/机位截图",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地实际 WebGL 截图并回画布",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-24",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "输出/运镜视频",
+ "baselineStatus": "实测",
+ "baselineObservation": "本地 H.264 MP4 实际横竖屏、时长、帧数已验证",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "此前实测记录(见 director-chain/director-motion/real-test/aliyun-test 文档;本轮未重跑供应商)",
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "09-25",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "输出/AI 生视频",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地发送首帧加语义运镜,不能承诺 AI 精确复现轨迹",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "09-26",
+ "group": "09 3D 导演台:机位、轨迹、输出",
+ "feature": "输出/取消与切后台",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地取消已测;后台事件测试通过,真实切浏览器仍待验",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [
+ "本轮相关契约/算法回归通过;不覆盖全部 UI 与真实接口"
+ ],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-01",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "模板/工具箱",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地有限预设可添加;不是参考站完整目录",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F03"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "10-02",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "模板/我的工具箱",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地缺同等服务端个人模板管理",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "10-03",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "风格/广场分类",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地静态卡片/类别,不能当在线市场",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-04",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "风格/收藏最近",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地收藏按钮只阻止事件,缺持久收藏/详情闭环",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "10-05",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "特效/收藏最近",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地部分只是切页,不是真实个人特效记录",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-06",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "角色库/筛选",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地这些维度及筛选有实现",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-07",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "角色库/四类图片",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地可创建对应角色图片节点",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-08",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "运镜库/自定义收藏",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地可自定义、上传预览,但只保存当前浏览器",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-09",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/全部与本画布",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地只由当前 nodes 组装,无跨画布真实查询",
+ "currentImplementation": "当前画布真实素材,去示例和截断,按添加顺序排序",
+ "evidence": [
+ "此前空素材浏览器验收",
+ "本轮源码复核"
+ ],
+ "remaining": "素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-10",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/示例混入",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地不足 8 项自动补示例图片,无视频时补示例视频",
+ "currentImplementation": "当前画布真实素材,去示例和截断,按添加顺序排序",
+ "evidence": [
+ "此前空素材浏览器验收",
+ "本轮源码复核"
+ ],
+ "remaining": "素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-11",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/分页数量",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地 visibleNodes 固定 slice(0,8),无后续翻页",
+ "currentImplementation": "当前画布真实素材,去示例和截断,按添加顺序排序",
+ "evidence": [
+ "此前空素材浏览器验收",
+ "本轮源码复核"
+ ],
+ "remaining": "素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。",
+ "issues": [
+ "F06"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "10-12",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/日期与排序",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地仅反转数组,非真实历史时间查询",
+ "currentImplementation": "当前画布真实素材,去示例和截断,按添加顺序排序",
+ "evidence": [
+ "此前空素材浏览器验收",
+ "本轮源码复核"
+ ],
+ "remaining": "素材选择弹窗仍有无处理函数的分页控件;大量素材滚动可达性未验。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-13",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/批量下载",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地只设 pending,15 秒后清除,没有下载执行",
+ "currentImplementation": "真实单文件/ZIP 下载,部分失败提示;音频不转图片",
+ "evidence": [
+ "本轮原始音频字节下载回归"
+ ],
+ "remaining": "认证下载/ZIP 部分失败、大文件、过期URL、Safari 下载本轮未端到端。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-14",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/删除",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地仅组件 deletedHistoryIds 隐藏,并提示成功",
+ "currentImplementation": "仅隐藏素材列表项目,保存 historyHidden",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "非源文件删除;隐藏状态在数据库保存/刷新未本轮验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-15",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "历史/评级保存资产",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地仅部分使用节点;无评级/资产归档业务",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-16",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "资产管理/节点定位",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地定位、搜索、重命名、复制已有",
+ "currentImplementation": "真实当前画布列表;本轮修复列表收起和画布/素材筛选互相污染",
+ "evidence": [
+ "本轮浏览器收起→节点消失→展开恢复",
+ "本轮浏览器:画布脚本筛选→素材默认全部→视频筛选→画布仍脚本"
+ ],
+ "remaining": "跨项目个人/Agent 资产库未实现;定位、重命名、下载仍需完整应用验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-17",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "资产管理/列表宫格",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地列表为主,缺相同展示切换",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "待专项验证"
+ },
+ {
+ "id": "10-18",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "资产管理/个人与Agent",
+ "baselineStatus": "占位",
+ "baselineObservation": "本地资产页固定“暂无资产”",
+ "currentImplementation": "真实当前画布列表;本轮修复列表收起和画布/素材筛选互相污染",
+ "evidence": [
+ "本轮浏览器收起→节点消失→展开恢复",
+ "本轮浏览器:画布脚本筛选→素材默认全部→视频筛选→画布仍脚本"
+ ],
+ "remaining": "跨项目个人/Agent 资产库未实现;定位、重命名、下载仍需完整应用验收。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-19",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "资产管理/文件夹上传",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有对应个人资产文件管理",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "10-20",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "分享/公开链接",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地只复制当前 URL;分享权限未建立且活动顶部无入口",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "10-21",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "发布/发布作品",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地发布函数只提示待接入且活动顶部未暴露",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "10-22",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "Agent/对话及引用",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地活动 TopBar 无同等 Agent 入口;不能拿其他 Claw 页面抵充",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "10-23",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "Agent/Skills",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地 skills 弹窗不是等价 Agent 执行闭环",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [],
+ "verification": "缺失或停用"
+ },
+ {
+ "id": "10-24",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "Agent/生成权限与通知",
+ "baselineStatus": "缺失",
+ "baselineObservation": "本地没有同等视频画布 Agent 设置层",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ },
+ {
+ "id": "10-25",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "帮助/快捷键教程",
+ "baselineStatus": "部分",
+ "baselineObservation": "本地有面板,但列出的操作需与实现逐项一致",
+ "currentImplementation": "快捷键说明仅列真实绑定",
+ "evidence": [
+ "本轮代码检查"
+ ],
+ "remaining": "全画布撤销、分组等原参考能力未实现。",
+ "issues": [],
+ "verification": "有部分证据,未完整验收"
+ },
+ {
+ "id": "10-26",
+ "group": "10 素材、历史、模板与公共入口",
+ "feature": "账户/积分",
+ "baselineStatus": "接通",
+ "baselineObservation": "本地从本站会员接口取余额,应保留自有体系",
+ "currentImplementation": "沿用基线描述;未发现本轮相关实现变更",
+ "evidence": [],
+ "remaining": "需要逐状态功能验收;不能以存在代码作为通过依据。",
+ "issues": [
+ "F07"
+ ],
+ "verification": "仍有问题"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/video-canvas-validation-scan-2026-09-17.md b/docs/video-canvas-validation-scan-2026-09-17.md
new file mode 100644
index 000000000..0ba0de43f
--- /dev/null
+++ b/docs/video-canvas-validation-scan-2026-09-17.md
@@ -0,0 +1,64 @@
+# 视频画布全面验证扫描 · 2026-09-17
+
+结论:**仍有未验证功能,也有已确认但尚未修复的功能缺口,不能判定全面验收通过。** 本轮以 `f10e6b7c` 为代码起点,核对原 10 组、231 项对照清单,追踪活动页面的调用、请求和保存流程,补跑相关回归与实际组件浏览器验证。没有重新提交付费模型任务,没有重新实测参考网站,也没有部署 48 服务器。
+
+## 证据范围
+
+| 分类 | 项数 | 含义 |
+|---|---:|---|
+| 待专项验证 | 56 | 主要有代码/对照记录,缺少对应的专项验收证据 |
+| 有部分证据,未完整验收 | 80 | 有代码检查、契约回归、本地组件或历史实测之一;不等于全链路通过 |
+| 仍有问题 | 16 | 关联下方 F01–F07 的具体问题;多个条目可属于同一问题 |
+| 缺失或停用 | 79 | 没有等价实现,或已明确禁用;不是单纯漏测 |
+| 合计 | 231 | 分类为保守的验证工作清单,**不是产品完成率** |
+
+完整逐项清单:[验证矩阵](video-canvas-validation-matrix-2026-09-17.md),机器可读数据:[验证 JSON](video-canvas-validation-scan-2026-09-17.json)。原对照文件是旧基线,本次没有把旧状态全部改成“已完成”。
+
+## 本轮确认的未完成项
+
+| 编号 | 级别 | 触发与结果 | 证据位置 | 后续验收要求 |
+|---|---|---|---|---|
+| F01 | P1 | 生成中刷新/重开:保存的 pending 节点没有重新查询视频任务;本地定时器仍将进度推到 96%。局部编辑有 taskId,但轮询仅从提交入口启动,加载时未恢复 | `LiblibVideoCanvasReplica.tsx`:加载约 4922、定时器 5052、局部编辑 7214/7471;`services/canvas/index.ts` 的 generateVideo 为一次 HTTP 请求 | 服务端持久任务 ID、查询/续订、过期状态;真实刷新、断网、切后台、重开后恢复成功/失败,且不重复扣费。仅切后台是否必然失败本轮没有实测结论 |
+| F02 | P1 | “取消生成”→“确定”只关闭弹窗;请求仍继续。弹窗却写“停止将不退还算力” | 活动根组件约 10807:onCancel/onConfirm 都只 setCancelGenerationConfirmNodeId(null) | 明确上游能否取消;不能取消时真实告知。排队取消、执行中取消、取消后晚到结果分别验证 |
+| F03 | P1 | 快捷模板仍注入示例素材;角色三视图、首帧模板直接设 generated:true,未执行真实生成 | createStarterWorkflow 约 4588;getConfiguredReferenceAsset 约 3490 | 示例清楚标识;未运行节点不标生成完成,历史/导出不混淆样例与用户结果 |
+| F04 | P1 | 脚本弹窗“重新生成”调用 runNode;连入图片/视频后会选择 image-to-prompt/agent-plan。工具栏另一路却使用 story-script;此外 success:true 但空数据仍可能标完成 | 弹窗 onRun 约 11350;runNode 约 9740;runStoryScriptToolbarAction 约 8352 | 相同脚本在两入口生成应走同一功能契约;空响应、缺镜头字段保留旧稿并报告失败 |
+| F05 | P1 | “批量生视频”目前只创建生成器;没有首帧也取首帧模型;时长只限 2–15 秒,不遵守模型离散时长 | runStoryScriptToolbarAction 约 8623–8660 | 无图选兼容文生模式或拦截;批量真正执行、规格约束、部分失败续跑、刷新恢复 |
+| F06 | P1 | 素材选择弹窗仍保留无处理函数的上一页/下一页、“15条/页”和跳页外观;一次渲染所有素材,容器没有明确的纵向滚动,超一屏可达性待验。卡片垃圾桶/预览是 span | HistoryAssetPickerModal 约 23016–23190 | 去掉假分页或接真实分页;超过 15/100 条、最后一项可选、预览/删除行为和选择上限分别验收 |
+| F07 | P2 | 仍有仅提示“待接入”或无行为的次级控件:文本翻译、音频生视频高级设置/展开、旧脚本编辑、我的工具箱、通知分类、发布和账户退出等 | TextTargetModuleComposer、AudioToVideoComposerPanel、PresetScriptCanvasNode、WorkflowPanel、NotificationsPopover、PublishModal、AccountPopover | 与主入口逐一比对;接通或明确禁用,不能用主入口成功覆盖旧入口 |
+
+上述判断来自代码调用链;没有把它们描述为全部浏览器复现。F01/F02 是优先项,关系到用户看到的长时间处理中和重复提交风险。
+
+## 本轮修复并补验的三个小问题
+
+1. **多角度方向箭头**:鱼眼/倾斜选中后,箭头修改数值仍保留特殊预设,提交会走特殊提示词路径。四个方向按钮现与滑块一致切到“自定义”。实际组件浏览器复现修复前 `preset=鱼眼视角,horizontalAngle=10`,修复后为 `preset=自定义,horizontalAngle=10`;本轮没有请求供应商生成图片。
+2. **资产管理收起列表**:原先只转动箭头,节点仍显示。现在收起真正隐藏节点行,展开恢复,文案改成“节点列表”,不冒充全画布分组。浏览器已验证消失和恢复。
+3. **画布/素材筛选串状态**:原先同一 filter 同时用于“脚本/导演台”和“图片/视频/音频”,切页可留下素材下拉框没有的选项。现在两套筛选各自保持;浏览器验证画布选“脚本”→素材默认为“全部”→素材选“视频”→返回画布仍为“脚本”。
+
+另补验脚本合成的失败分支:本地静态服务器对真实分析请求返回 501,页面显示“工作流分析失败”,保留两行脚本和已修改对白,提示词完成数仍为 0/2。该结果只证明组件对这类失败的处理,不代表生产分析服务成功。
+
+## 自动化检查
+
+- 视频画布专项六组:**56 项通过,无跳过**;包括真实本地 FFmpeg 视频截帧、2/3/5 倍慢放及音轨验证。
+- 扩展 helpers 全量首轮:423 项中 421 通过,2 项模型目录用例失败。追溯到 2026-09-07 的 `e49b0707e`:目录已要求明确的多图输入契约,旧用例只有 image-to-image 标签。既有 `vip98k-reference-routing` 测试也要求不能从宽泛标签推断多图能力。
+- 补齐旧用例的数组输入 schema,并新增“只有标签/单图字符串 schema 必须拒绝”的反例,**未放宽生产筛选规则**。模型分类与参考路由专项 52 项通过。
+- 最终全量:**424 项通过,无失败、无跳过**。这 424 项是当前 `playwright.helpers.config.ts` 中的 helper/route 契约回归,**不是 424 个完整页面端到端测试,也不是全部供应商实测**。
+- TypeScript 检查通过(最终提交前重跑)。
+
+复现:FFmpeg/ffprobe 加入 PATH 后执行 `pnpm exec playwright test --config=playwright.helpers.config.ts`。若未安装这两个程序,媒体测试会跳过,不能沿用“真实媒体通过”的结论。
+
+## 活动入口扫描方式
+
+`node scripts/audit/video-canvas-controls.cjs output.json` 用 TypeScript AST 从实际入口 `LiblibVideoCanvasReplica` 追踪本文件标识符引用,记录缺少直接事件/仅提示类控件的候选。本轮 400 个可达声明、41 个未引用函数、53 条控件候选。候选列表见 [控件扫描 JSON](video-canvas-control-scan-2026-09-17.json)。
+
+这是保守静态扫描,不是运行时覆盖率:组合组件可用其他回调,submit 按钮可由 form 处理,恒为 false 的分支仍可能被扫描到。因此 **53 条候选不等于 53 个故障**。例如 VideoArchiveButton/工作流组合组件有真实回调;运镜搜索走 form submit;ZoomDock 的 compact 分支未在当前调用启用。旧 DirectorConsole3DDialog 等 41 个未引用函数未用于证明当前活动导演台故障;实际 3D 在 `components/canvas/director/` 中复核并由对应回归覆盖。
+
+## 下一轮必须补齐的验证
+
+- **任务生命周期**:刷新、断网重连、浏览器后台、退出重开、重复点击、批量中的取消/删除、多标签同时编辑;现有保存队列单测不能代替这些场景。
+- **生成与脚本**:逐模型/模式规格、真实多张返回、批量混合成败、脚本单镜/全部合成成功、资产生成上传、脚本到图片再到视频完整闭环。历史某条供应商线路成功不等于今天所有线路通过。
+- **素材与后期**:超过一屏的素材、跨域/过期 URL、ZIP 部分失败、音频上传格式与时长边界、网页播放器当前时间截帧、无音轨文件、长视频资源占用。
+- **3D 导演台**:全部 12 姿势/12 机位逐项视觉检查,4 类轨迹浏览器端运行;弱网/损坏/超大 GLB,WebGL 上下文丢失,切后台中断导出,多浏览器编码格式与生产上传。既有单测和历史一条 MP4 导出不足以覆盖这些情况。
+- **布局与一致性**:不同分辨率、缩放、空态/加载/失败/完成逐状态像素比对;本轮没有新增与参考站像素一致的结论。
+- **尚缺实现**:TTS/音乐/音色、智能剪辑、多画布/故事板/Agent、跨项目资产、专用后期、3D 多轨/自动帧/跟随/自由路径等,需先实现再验收。
+
+本轮范围止于扫描、三处明确界面修复及回归记录。F01–F07 未因本次扫描自动视作修复;线上版本也不会因分支推送自动更新。
diff --git a/scripts/audit/video-canvas-controls.cjs b/scripts/audit/video-canvas-controls.cjs
new file mode 100644
index 000000000..e81099737
--- /dev/null
+++ b/scripts/audit/video-canvas-controls.cjs
@@ -0,0 +1,10 @@
+// Run from repository root: node scripts/audit/video-canvas-controls.cjs [output.json]
+const fs=require('fs'),ts=require('typescript');
+const file='components/canvas/LiblibVideoCanvasReplica.tsx';
+const source=ts.createSourceFile(file,fs.readFileSync(file,'utf8'),ts.ScriptTarget.Latest,true,ts.ScriptKind.TSX);
+const decls=new Map();
+for(const s of source.statements){if(ts.isFunctionDeclaration(s)&&s.name)decls.set(s.name.text,s);if(ts.isVariableStatement(s))for(const d of s.declarationList.declarations)if(ts.isIdentifier(d.name))decls.set(d.name.text,d);}
+const live=new Set();function visitName(name){if(live.has(name)||!decls.has(name))return;live.add(name);function walk(n){if(ts.isIdentifier(n)&&n!==decls.get(name).name)visitName(n.text);ts.forEachChild(n,walk);}walk(decls.get(name));}visitName('LiblibVideoCanvasReplica');
+const findings=[];for(const[name,node]of decls){if(!live.has(name))continue;function walk(n){if(ts.isJsxOpeningElement(n)||ts.isJsxSelfClosingElement(n)){const tag=n.tagName.getText(source);if(tag==='button'||tag.includes('Button')||tag.includes('Control')){const attrs=n.attributes.properties.filter(ts.isJsxAttribute);const click=attrs.find(a=>a.name.text==='onClick');const txt=n.parent.getText(source); if(!click&&!attrs.some(a=>['disabled','onPointerDown','onMouseDown'].includes(a.name.text))||click&&/toast\.(info|success)/.test(click.getText(source)))findings.push({owner:name,line:source.getLineAndCharacterOfPosition(n.getStart(source)).line+1,tag,handler:click?.getText(source)||'',snippet:txt.slice(0,650)});}}ts.forEachChild(n,walk);}walk(node);}
+const out={file,root:'LiblibVideoCanvasReplica',method:'Conservative identifier reachability; candidates need manual review, not runtime coverage.',reachableDeclarations:[...live],unreachableFunctions:[...decls].filter(([n,d])=>ts.isFunctionDeclaration(d)&&!live.has(n)).map(([name])=>name),candidates:findings};if(process.argv[2]) fs.writeFileSync(process.argv[2],JSON.stringify(out,null,2));
+console.log(JSON.stringify({reachable:live.size,deadFunctions:out.unreachableFunctions.length,candidateCount:findings.length},null,2));
diff --git a/tests/routes/model-classification.test.ts b/tests/routes/model-classification.test.ts
index 624729fc4..989f5e625 100644
--- a/tests/routes/model-classification.test.ts
+++ b/tests/routes/model-classification.test.ts
@@ -441,7 +441,7 @@ test.describe("AI model media classification", () => {
expect(isVip98kImageModelVisible(models[3])).toBe(false);
});
- test("excludes pure text image/video models but keeps reference and 3D models", () => {
+ test("excludes pure text models but keeps documented multi-image, reference video and 3D models", () => {
expect(
isVip98kCatalogModelEligible({
modelId: "openai/gpt-image-2/text-to-image",
@@ -459,6 +459,7 @@ test.describe("AI model media classification", () => {
expect(
isVip98kCatalogModelEligible({
modelId: "google/nano-banana-2/edit",
+ invocation: { input_schema: { properties: { images: { type: "array", items: { type: "string" } } } } },
type: "image",
capabilities: ["text-to-image", "image-to-image"],
}),
@@ -479,6 +480,14 @@ test.describe("AI model media classification", () => {
).toBe(true);
});
+ test("does not advertise multi-image editing from a single-image schema or capability tag", () => {
+ const model = { modelId: "single-image-edit", type: "image" as const, capabilities: ["image_to_image"] };
+ expect(isVip98kCatalogModelEligible(model)).toBe(false);
+ expect(isVip98kCatalogModelEligible({ ...model, invocation: {
+ input_schema: { properties: { image: { type: "string" } } },
+ } })).toBe(false);
+ });
+
test("excludes catalog models explicitly marked unavailable", () => {
expect(
isVip98kCatalogModelEligible({
@@ -490,7 +499,7 @@ test.describe("AI model media classification", () => {
).toBe(false);
});
- test("excludes VIP98K text-to-image models without applying a price limit", () => {
+ test("requires documented multi-image input without applying a price limit", () => {
const presets = buildVip98kModelPresets([
{
modelId: "pure-text-to-image",
@@ -500,12 +509,14 @@ test.describe("AI model media classification", () => {
},
{
modelId: "mixed-image-model",
+ invocation: { input_schema: { properties: { images: { type: "array", items: { type: "string" } } } } },
type: "image",
capabilities: ["text_to_image", "image_to_image"],
pricing: { effective_price: 0.2 },
},
{
modelId: "expensive-image-edit",
+ invocation: { input_schema: { properties: { images: { type: "array", items: { type: "string" } } } } },
type: "image",
capabilities: ["image_to_image"],
pricing: { effective_price: 2.5 },