ai-chatbot/docs/video-canvas-validation-scan-2026-09-17.md

9.2 KiB
Raw Blame History

视频画布全面验证扫描 · 2026-09-17

后续修复记录:任务与交互修复。以下内容保留扫描时的基线,不代表修复后的现状;也未将未验收项批量改为通过。

结论:仍有未验证功能,也有已确认但尚未修复的功能缺口,不能判定全面验收通过。 本轮以 f10e6b7c 为代码起点,核对原 10 组、231 项对照清单,追踪活动页面的调用、请求和保存流程,补跑相关回归与实际组件浏览器验证。没有重新提交付费模型任务,没有重新实测参考网站,也没有部署 48 服务器。

证据范围

分类 项数 含义
待专项验证 56 主要有代码/对照记录,缺少对应的专项验收证据
有部分证据,未完整验收 80 有代码检查、契约回归、本地组件或历史实测之一;不等于全链路通过
仍有问题 16 关联下方 F01–F07 的具体问题;多个条目可属于同一问题
缺失或停用 79 没有等价实现,或已明确禁用;不是单纯漏测
合计 231 分类为保守的验证工作清单,不是产品完成率

完整逐项清单:验证矩阵,机器可读数据:验证 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。

这是保守静态扫描,不是运行时覆盖率:组合组件可用其他回调,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 未因本次扫描自动视作修复;线上版本也不会因分支推送自动更新。