{ "scope": "智能剪辑节点、编辑器及直接依赖的音频/导出链路;不是全站所有模块", "baseline": "431ca03f", "local_only": true, "counts": { "通过": 35, "待验": 8, "代码核对": 17, "差异": 25, "已修复": 9, "既有证据": 1 }, "items": [ { "id": "SE-001", "group": "节点与输入", "item": "打开剪辑", "status": "通过", "detail": "参考和本地均有入口;本地进入真实编辑组件", "evidence": "本轮UI" }, { "id": "SE-002", "group": "节点与输入", "item": "五种模式名称和顺序", "status": "通过", "detail": "默认、讲解、批量广告、口播、素材混剪相同", "evidence": "参考node-modes截图/SmartEditNode" }, { "id": "SE-003", "group": "节点与输入", "item": "五种模式算法效果", "status": "待验", "detail": "本地有模式分支;没有重新提交参考站付费生成,不能认定效果等同", "evidence": "execute/contract" }, { "id": "SE-004", "group": "节点与输入", "item": "六种比例", "status": "通过", "detail": "21:9、16:9、9:16、1:1、4:3、3:4;实际合成覆盖", "evidence": "参考node-settings/本轮FFmpeg" }, { "id": "SE-005", "group": "节点与输入", "item": "三种清晰度", "status": "通过", "detail": "480P、720P、1080P;控件一致", "evidence": "参考node-settings/SmartEditNode" }, { "id": "SE-006", "group": "节点与输入", "item": "时长范围", "status": "通过", "detail": "0–300秒、步长1秒;本地0为自动", "evidence": "参考可见DOM/contract" }, { "id": "SE-007", "group": "节点与输入", "item": "提示词编辑与展开", "status": "代码核对", "detail": "本地受控输入、展开及提交;参考既有提示词未改动", "evidence": "SmartEditNode" }, { "id": "SE-008", "group": "节点与输入", "item": "引用画布素材", "status": "代码核对", "detail": "参考进入引用选择;生产组件onReference连接连线状态,本地独立测试页只是候选列表", "evidence": "参考引用模式/主画布调用点" }, { "id": "SE-009", "group": "节点与输入", "item": "素材序号、时长、移除", "status": "代码核对", "detail": "本地有缩略图、序号、时长及移除;未删除参考原素材", "evidence": "SmartEditNode" }, { "id": "SE-010", "group": "节点与输入", "item": "本地上传与数量限制", "status": "代码核对", "detail": "真实上传入口,上限12个素材、单个125MiB;参考上限尚未验证", "evidence": "SmartEditNode/SmartEditDialog" }, { "id": "SE-011", "group": "节点与输入", "item": "节点缩略时间轴", "status": "差异", "detail": "本地节点卡片仍固定生成12个刻度、两行8个色块,未绑定实际剪辑轨道", "evidence": "SmartEditNodeCard" }, { "id": "SE-012", "group": "节点与输入", "item": "批量广告多版本", "status": "差异", "detail": "本地高级设置支持1–3版,节点默认variants为1;候选顺序变体不等于多套广告创意", "evidence": "contract/buildEditPlans" }, { "id": "SE-013", "group": "节点与输入", "item": "提示词要求卡点", "status": "差异", "detail": "真正卡点要求音乐和beatSync;仅在提示词写“卡点”不会自动打开节拍流程", "evidence": "execute/主画布onSubmit" }, { "id": "SE-014", "group": "布局与操作", "item": "顶栏高度和边距", "status": "通过", "detail": "48px顶栏、8px页面边距;本轮图像对照", "evidence": "参考DOM/本地CSS" }, { "id": "SE-015", "group": "布局与操作", "item": "左右参数栏宽度", "status": "通过", "detail": "转场库372px、参数栏300px,均可拖动调整", "evidence": "参考DOM/本地CSS" }, { "id": "SE-016", "group": "布局与操作", "item": "面板背景与关闭按钮", "status": "已修复", "detail": "背景统一#202020,边框白色10%,关闭按钮24px,标题500/14px", "evidence": "参考transition.json/本地CSS" }, { "id": "SE-017", "group": "布局与操作", "item": "默认时间轴高度", "status": "差异", "detail": "打开时均约35vh;参考改变视口保留原像素高度,本地未手动拖动时随窗口重算", "evidence": "本轮宽屏切换/resize处理" }, { "id": "SE-018", "group": "布局与操作", "item": "折叠预览", "status": "差异", "detail": "参考保留底部时间轴并露出画布;本地把时间轴铺满编辑器且保留顶栏", "evidence": "参考collapsed截图/SmartEditEditor" }, { "id": "SE-019", "group": "布局与操作", "item": "全屏预览", "status": "代码核对", "detail": "本地调用Fullscreen API并显示拒绝错误;本轮未重测不同浏览器权限状态", "evidence": "SmartEditEditor" }, { "id": "SE-020", "group": "布局与操作", "item": "撤销重做", "status": "通过", "detail": "本轮分离音轨后撤销成功;参考宽屏有按钮、窄屏隐藏,先前未见不代表没有", "evidence": "本轮UI/参考1512宽度" }, { "id": "SE-021", "group": "布局与操作", "item": "播放、暂停、逐帧", "status": "代码核对", "detail": "Space与左右键、30fps步进、片尾停止;前批浏览器已验证,本轮保留代码核对口径", "evidence": "SmartEditEditor/EditPreview" }, { "id": "SE-022", "group": "布局与操作", "item": "吸附默认值", "status": "通过", "detail": "参考关闭,本地SmartEditEditor也是false;纠正旧文档“本地开启”误记", "evidence": "参考AX/SmartEditEditor:state" }, { "id": "SE-023", "group": "布局与操作", "item": "退出与Esc", "status": "差异", "detail": "参考Esc退出整个编辑器;本地Esc只关闭菜单/参数和取消选中", "evidence": "前批参考UI/本轮源码" }, { "id": "SE-024", "group": "布局与操作", "item": "窄屏可用性", "status": "待验", "detail": "参考1024宽度测得左右仍372/300;本地三栏与工具条更窄窗口尚无完整可用性验收", "evidence": "reference-transition-1024" }, { "id": "SE-025", "group": "视频片段", "item": "四角缩放、移动与重置", "status": "通过", "detail": "本轮真实合成像素验证;本地有选框和重置,参考四角手柄可见", "evidence": "本轮FFmpeg/参考video" }, { "id": "SE-026", "group": "视频片段", "item": "变速上下调步长", "status": "已修复", "detail": "参考1.00→1.01,本地0.05改为0.01;浏览器已复测", "evidence": "本轮UI" }, { "id": "SE-027", "group": "视频片段", "item": "变速支持范围", "status": "待验", "detail": "本地0.5–2倍;参考未穷尽上下限,不能因步长一致声称范围一致", "evidence": "contract/参考video" }, { "id": "SE-028", "group": "视频片段", "item": "时长输入", "status": "代码核对", "detail": "按原素材剩余长度和变速约束,不能超过素材", "evidence": "SmartEditEditor/contract" }, { "id": "SE-029", "group": "视频片段", "item": "数值越界后的显示", "status": "已修复", "detail": "到上限2后再输入99,显示回到2.00,不残留非法数字", "evidence": "本轮UI" }, { "id": "SE-030", "group": "视频片段", "item": "增益步长", "status": "已修复", "detail": "参考0.5dB,本地由1改0.5;浏览器0→-0.5确认", "evidence": "本轮UI" }, { "id": "SE-031", "group": "视频片段", "item": "正增益", "status": "差异", "detail": "参考能到+0.5dB;本地最大0dB,预览及合同最大gain=1", "evidence": "参考UI/contract/EditPreview" }, { "id": "SE-032", "group": "视频片段", "item": "边缘裁剪和排序", "status": "代码核对", "detail": "已有按source时间/速度换算和撤销;本轮未重新拖遍所有方向", "evidence": "SmartEditEditor" }, { "id": "SE-033", "group": "视频片段", "item": "分割和左右裁剪", "status": "通过", "detail": "边界禁用、源范围及片长合同回归通过;本轮未对拍参考破坏性编辑", "evidence": "本轮helpers/SmartEditEditor" }, { "id": "SE-034", "group": "视频片段", "item": "至少保留一个片段", "status": "待验", "detail": "本地阻止删最后一段;参考空时间轴行为未删除原素材验证", "evidence": "SmartEditEditor" }, { "id": "SE-035", "group": "视频片段", "item": "右键菜单", "status": "差异", "detail": "本地缺人声分离子菜单,增加撤销/重做/设置;“删除片段”与参考“删除”不同", "evidence": "本轮参考及本地UI" }, { "id": "SE-036", "group": "视频片段", "item": "转场覆盖区右键", "status": "差异", "detail": "本地右键落在覆盖区时显示时间轴菜单,不能直接选中底下视频;从未覆盖位置可正常分离", "evidence": "本轮本地UI" }, { "id": "SE-037", "group": "视频片段", "item": "静音后恢复原增益", "status": "差异", "detail": "本地静音后恢复统一gain=1,会丢失原先降低的增益;独立音轨也同样处理", "evidence": "SmartEditEditor静音处理" }, { "id": "SE-038", "group": "字幕", "item": "空列表、新建、搜索", "status": "通过", "detail": "参考空列表和新建已操作;本地新建成功、搜索有真实过滤", "evidence": "本轮UI/源码" }, { "id": "SE-039", "group": "字幕", "item": "列表逐条新增与删除", "status": "差异", "detail": "参考行内有“在后面新增字幕/删除字幕”;本地只有顶端新建、右键删除", "evidence": "reference-subtitle-list/源码" }, { "id": "SE-040", "group": "字幕", "item": "列表时间格式", "status": "差异", "detail": "参考00:00–00:02;本地数字秒输入,布局与交互不同", "evidence": "参考截图/本轮本地UI" }, { "id": "SE-041", "group": "字幕", "item": "选中文本、编辑与位置", "status": "通过", "detail": "本轮本地样式编辑和实际字幕位置像素测试通过", "evidence": "本轮UI/FFmpeg" }, { "id": "SE-042", "group": "字幕", "item": "显示和隐藏", "status": "代码核对", "detail": "subtitles控制预览和导出;关闭面板仅隐藏编辑轨道", "evidence": "SmartEditEditor/compiledSubtitles" }, { "id": "SE-043", "group": "字幕", "item": "字体搜索和长列表", "status": "差异", "detail": "参考可搜索Source Han、Noto、Roboto、Inter等;本地单一select且onChange为空", "evidence": "reference-font-menu/源码" }, { "id": "SE-044", "group": "字幕", "item": "字体分类", "status": "差异", "detail": "参考全部/常用/推荐/Google字体;本地无分类", "evidence": "reference-font-categories" }, { "id": "SE-045", "group": "字幕", "item": "预览与导出的字形", "status": "差异", "detail": "本地浏览器依赖系统字体回退,导出固定Noto CJK;不能声明与参考字体逐字形一致", "evidence": "EditPreview/subtitlesToAss" }, { "id": "SE-046", "group": "字幕", "item": "字号范围和显示单位", "status": "差异", "detail": "参考默认56、12–72;本地默认28、8–160且以720为基准,需统一单位再调整", "evidence": "参考DOM/contract" }, { "id": "SE-047", "group": "字幕", "item": "字间距范围和控件", "status": "差异", "detail": "参考X数值框0–100;本地滑条与数值框-5–30", "evidence": "参考DOM/本地UI" }, { "id": "SE-048", "group": "字幕", "item": "字体颜色和十六进制", "status": "代码核对", "detail": "两处均有取色和hex;本地失焦校验非法值;样式烧录已回归", "evidence": "StyleColor/FFmpeg" }, { "id": "SE-049", "group": "字幕", "item": "六种预设入口", "status": "通过", "detail": "默认、白黑、黑白、黄黑、白粉、粉黑均有", "evidence": "本轮参考及本地UI" }, { "id": "SE-050", "group": "字幕", "item": "预设按钮外观", "status": "差异", "detail": "本地六个按钮都显示T,参考默认项显示“默认”,间距和选中态仍不同", "evidence": "参考subtitle-style/源码" }, { "id": "SE-051", "group": "字幕", "item": "描边颜色和粗细", "status": "差异", "detail": "参考默认白色、粗细0–20;本地默认黑色、0–10;颜色选择可用", "evidence": "参考DOM/contract" }, { "id": "SE-052", "group": "字幕", "item": "描边不透明度语义", "status": "已修复", "detail": "独立outlineOpacity;0时保留文字,只去描边;旧整行opacity保持兼容", "evidence": "UI截图/ASS合同/实际像素测试" }, { "id": "SE-053", "group": "字幕", "item": "字号等数值单位装饰", "status": "差异", "detail": "参考px/%以及上下箭头;本地多为原生数字框,尺寸及结构未完全一致", "evidence": "参考subtitle-style/StyleNumber" }, { "id": "SE-054", "group": "字幕", "item": "应用全部", "status": "代码核对", "detail": "复制完整style含新outlineOpacity;本轮未覆盖所有字幕数量组合", "evidence": "SmartEditEditor" }, { "id": "SE-055", "group": "字幕", "item": "自动字幕与长转场", "status": "已修复", "detail": "居中转场不再把后片段字幕向后延迟整个转场时长,避免片头字幕丢失", "evidence": "新增合同回归" }, { "id": "SE-056", "group": "字幕", "item": "手工字幕与SRT", "status": "通过", "detail": "手工字幕保留位置和样式,SRT仅保留文本时间;ASS字符转义回归通过", "evidence": "本轮helpers/FFmpeg" }, { "id": "SE-057", "group": "字幕", "item": "语音自动转写", "status": "差异", "detail": "已有能力探测,但当前本地测试服务asr=false;完整转写尚无可用验收结果", "evidence": "本地capabilities/已有部署记录" }, { "id": "SE-058", "group": "转场", "item": "三种基础转场入口", "status": "通过", "detail": "淡入淡出、黑场过渡、白场过渡;这不是全站视频生成特效库", "evidence": "本轮参考UI" }, { "id": "SE-059", "group": "转场", "item": "原始动态素材", "status": "通过", "detail": "直接使用参考原始WebP,每张75帧/3秒;本地动画可见", "evidence": "public/transitions/本轮UI" }, { "id": "SE-060", "group": "转场", "item": "分类栏与卡片位置", "status": "已修复", "detail": "分类48px高、13px字体,卡片108×130,图框100×100,列距7px", "evidence": "参考DOM/本地CSS" }, { "id": "SE-061", "group": "转场", "item": "选中边框和颜色", "status": "已修复", "detail": "2px改1px,避免图片缩小;边框/文字改#09caf5,圆角6px", "evidence": "参考DOM/本地截图" }, { "id": "SE-062", "group": "转场", "item": "时长与名称行间距", "status": "已修复", "detail": "改16px行高,时长框与90px小预览纵向位置对齐", "evidence": "参考DOM/本地CSS" }, { "id": "SE-063", "group": "转场", "item": "时长上下限与步长", "status": "通过", "detail": "0.2–4秒,0.1步进,非法值失焦归一化", "evidence": "前批UI/本轮合同" }, { "id": "SE-064", "group": "转场", "item": "相邻素材小预览", "status": "通过", "detail": "本地使用相邻真实视频,静音循环并应用效果", "evidence": "本轮UI" }, { "id": "SE-065", "group": "转场", "item": "主画面预览时机", "status": "待验", "detail": "本地选中转场会循环预览;参考本轮主画面多保持原播放头,小预览循环,触发规则需进一步对拍", "evidence": "reference-transition/TransitionPreview" }, { "id": "SE-066", "group": "转场", "item": "居中时序和总片长", "status": "通过", "detail": "三种2.2/4秒真实成片均保留4秒总长", "evidence": "本轮FFmpeg" }, { "id": "SE-067", "group": "转场", "item": "黑场与白场中点", "status": "通过", "detail": "真实像素验证纯黑/纯白中点", "evidence": "本轮FFmpeg" }, { "id": "SE-068", "group": "转场", "item": "极短片段和连续接点", "status": "通过", "detail": "短片段约束和避免三片同时重叠的合同通过", "evidence": "本轮helpers/前批压力合成" }, { "id": "SE-069", "group": "转场", "item": "删除与硬切", "status": "通过", "detail": "已有删除恢复硬切;本轮逐片段与硬切组合实际合成通过", "evidence": "FFmpeg/源码" }, { "id": "SE-070", "group": "转场", "item": "时间轴覆盖框", "status": "差异", "detail": "参考top=4px、高60px;本地top=0、高64px,选中填充/图标仍需精调", "evidence": "参考DOM/本地CSS" }, { "id": "SE-071", "group": "转场", "item": "旧方案兼容", "status": "通过", "detail": "未设置alignment的旧重叠方案保留原片长语义", "evidence": "本轮helpers/FFmpeg" }, { "id": "SE-072", "group": "音频", "item": "有声视频分离", "status": "通过", "detail": "本轮真实点按生成独立音轨,撤销后消失", "evidence": "本轮本地UI" }, { "id": "SE-073", "group": "音频", "item": "无音轨时分离禁用", "status": "通过", "detail": "参考当前无音轨素材禁用;本地按hasAudio禁用", "evidence": "本轮参考UI/源码" }, { "id": "SE-074", "group": "音频", "item": "分离后声音不叠加", "status": "通过", "detail": "实际音频RMS与转场包络回归通过", "evidence": "本轮FFmpeg" }, { "id": "SE-075", "group": "音频", "item": "独立音轨变速、淡入淡出", "status": "通过", "detail": "实际2倍速、增益、延迟、淡入淡出及长音轨黑尾回归通过", "evidence": "本轮FFmpeg" }, { "id": "SE-076", "group": "音频", "item": "独立音轨裁剪、分割、移动", "status": "代码核对", "detail": "有完整source范围与时间轴处理;前批UI通过,本轮未全部重拖", "evidence": "SmartEditEditor/contract" }, { "id": "SE-077", "group": "音频", "item": "人声分离两个分支", "status": "差异", "detail": "参考“仅保留人声/仅保留背景音”子菜单;本地未接专用分离服务", "evidence": "reference-video-menu" }, { "id": "SE-078", "group": "音频", "item": "音频参数栏调整宽度", "status": "差异", "detail": "本地视频/字幕/转场栏有拖拽柄,音频栏缺同类柄;参考有声参数栏未验", "evidence": "SmartEditEditor" }, { "id": "SE-079", "group": "音频", "item": "真实波形", "status": "待验", "detail": "本地音频条是纯色色块,没有采样波形;本轮未取得参考有声轨波形证据", "evidence": "se-wave/se-audio-clip" }, { "id": "SE-080", "group": "音频", "item": "音乐与卡点", "status": "通过", "detail": "节拍与候选剪辑合同回归通过,音乐混音真实输出通过;不是参考算法效果对拍", "evidence": "本轮helpers/FFmpeg" }, { "id": "SE-081", "group": "导出与恢复", "item": "导出菜单位置", "status": "通过", "detail": "本地/画布两个目的地和参考相同", "evidence": "参考export-menu/源码" }, { "id": "SE-082", "group": "导出与恢复", "item": "导出菜单视觉", "status": "代码核对", "detail": "本地有200px菜单、40px条目;边框/图标需独立像素精调", "evidence": "参考截图/CSS" }, { "id": "SE-083", "group": "导出与恢复", "item": "真实本地合成", "status": "通过", "detail": "FFmpeg实际生成结果,不用模拟成功替代", "evidence": "本轮ffmpeg.log" }, { "id": "SE-084", "group": "导出与恢复", "item": "提交任务ID和幂等", "status": "通过", "detail": "请求ID回归与远程确定性任务身份测试通过", "evidence": "本轮helpers" }, { "id": "SE-085", "group": "导出与恢复", "item": "刷新恢复导出任务", "status": "通过", "detail": "任务检查点/reconcile合同通过;本轮未执行真实Next页面断网恢复", "evidence": "本轮helpers" }, { "id": "SE-086", "group": "导出与恢复", "item": "浏览器中返回画布结果", "status": "待验", "detail": "独立测试页任务回调仍是样例;本轮未跑主站Next API全链路", "evidence": "ui-entry/onRender" }, { "id": "SE-087", "group": "导出与恢复", "item": "任务错误和服务不可用", "status": "代码核对", "detail": "导出按钮按能力禁用,失败状态显示错误;本轮未切断实际服务故障注入", "evidence": "SmartEditEditor/SmartEditDialog" }, { "id": "SE-088", "group": "导出与恢复", "item": "取消远程导出", "status": "差异", "detail": "没有主动取消运行中合成任务的完整UI/API链路;本轮参考菜单也未验证取消", "evidence": "源码" }, { "id": "SE-089", "group": "导出与恢复", "item": "多版本全导出", "status": "代码核对", "detail": "高级设置有导出全部版本;主节点默认只一版,参考完整多版结果未生成", "evidence": "SmartEditDialog" }, { "id": "SE-090", "group": "导出与恢复", "item": "最高时长与比例", "status": "通过", "detail": "300秒约束、宽屏远程结果下载合同、6比例真实本地输出通过", "evidence": "本轮helpers/FFmpeg" }, { "id": "SE-091", "group": "边界与性能", "item": "最大片段数", "status": "代码核对", "detail": "最多12视频片段、24独立音轨、500字幕;不是参考站已确认相同限制", "evidence": "contract" }, { "id": "SE-092", "group": "边界与性能", "item": "后台标签恢复", "status": "待验", "detail": "循环预览监听visibilitychange;本轮未覆盖系统休眠/后台节流完整矩阵", "evidence": "TransitionPreview" }, { "id": "SE-093", "group": "边界与性能", "item": "原生媒体加载失败", "status": "代码核对", "detail": "play的AbortError忽略,其余报错可见;本轮未测试全部外部域名/CORS", "evidence": "EditPreview" }, { "id": "SE-094", "group": "边界与性能", "item": "高清与12片段性能", "status": "既有证据", "detail": "前批1080P4秒合成12.81秒、12片段7.604秒;本轮未重复此压力测试", "evidence": "transition-stress-native.log" }, { "id": "SE-095", "group": "边界与性能", "item": "服务部署状态", "status": "通过", "detail": "本轮所有修改仅本地,未更新48或算力服务器", "evidence": "git/操作记录" } ] }