{ "scope": "智能剪辑节点、编辑器及直接依赖的音频/导出链路;不是全站所有模块", "baseline": "68f62dae", "local_only": true, "counts": { "通过": 39, "待验": 6, "代码核对": 17, "已修复": 28, "部分修复": 4, "既有证据": 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": "节点刻度、视频、字幕、独立音轨从实际计划生成;重新生成后按任务版本选择新计划,保留所选版本。", "evidence": "本轮节点UI/SmartEditNodeCard" }, { "id": "SE-012", "group": "节点与输入", "item": "批量广告多版本", "status": "部分修复", "detail": "节点新增1–3版选择,未指定时广告默认3版;实际仍是候选顺序变体,未认定为参考站的多创意算法。", "evidence": "本轮UI/intent helpers" }, { "id": "SE-013", "group": "节点与输入", "item": "提示词要求卡点", "status": "已修复", "detail": "节点提示词的常见“卡点/beat sync”表达关联开关,显式关闭优先;支持画布音乐选择/上传及2或4拍切换,缺音乐阻止提交。并非通用自然语言意图解析。", "evidence": "本轮UI/intent helpers/真实librosa 22拍" }, { "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": "本轮本地UI" }, { "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退出整个编辑器,输入框编辑时不误退出;收起时保留关闭按钮。", "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": "本地支持最高+12dB,预览使用GainNode,导出实际音量放大;参考上限尚未确认。跨域正增益素材经登录下载接口取得同源副本,需另测真实主站链路。", "evidence": "本轮浏览器+0.5dB/FFmpeg约2倍振幅" }, { "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/真实HTDemucs" }, { "id": "SE-036", "group": "视频片段", "item": "转场覆盖区右键", "status": "已修复", "detail": "转场覆盖区域按指针时间选择底层片段并打开视频右键菜单。", "evidence": "本轮浏览器:覆盖框右键选中有声片段并成功分离" }, { "id": "SE-037", "group": "视频片段", "item": "静音后恢复原增益", "status": "已修复", "detail": "新增可选muted独立于gain保存,原声和独立音轨恢复不会覆盖原增益;分离时继承静音状态。", "evidence": "浏览器原声/独立轨+0.5dB静音恢复;真实FFmpeg两类静音" }, { "id": "SE-038", "group": "字幕", "item": "空列表、新建、搜索", "status": "通过", "detail": "参考空列表和新建已操作;本地新建成功、搜索有真实过滤", "evidence": "本轮UI/源码" }, { "id": "SE-039", "group": "字幕", "item": "列表逐条新增与删除", "status": "已修复", "detail": "每行新增在后面插入/删除,插入按时间排序、遇下条字幕或片尾缩短,并定位新字幕;片尾不能插入时给提示。", "evidence": "本轮UI/代码" }, { "id": "SE-040", "group": "字幕", "item": "列表时间格式", "status": "已修复", "detail": "时间框采用MM:SS.xx,可输入小数秒;失焦校验范围,非法值还原,Esc取消编辑。参考只展示整秒的像素细节尚未作为黄金图验收。", "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": "参考目录2002项完整收录,1997新增文件全部下载解析与双SHA校验;搜索、四分类、虚拟滚动、按需加载可用。", "evidence": "remaining-0918/reference-fonts.json、prepare-catalog.log;主站字体切换" }, { "id": "SE-044", "group": "字幕", "item": "字体分类", "status": "已修复", "detail": "新增全部/常用/推荐/Google四类筛选;范围限已打包的实际字体。", "evidence": "本轮UI/CaptionFonts" }, { "id": "SE-045", "group": "字幕", "item": "预览与导出的字形", "status": "部分修复", "detail": "2002字体目录已齐;预览与FFmpeg使用同一固定文件,5原有+6新增字体实际合成通过;未对2002种字体逐字形、行高、DPR作黄金图对拍。", "evidence": "catalog-render.log/主站大宝桃桃体切换" }, { "id": "SE-046", "group": "字幕", "item": "字号范围和显示单位", "status": "已修复", "detail": "从参考可见iframe确认1920×1080、56px;新字幕明确1080基准,默认56/12–72px;旧720基准按比例显示并保留历史超范围值。", "evidence": "本轮参考DOM/legacy兼容helpers/本地UI" }, { "id": "SE-047", "group": "字幕", "item": "字间距范围和控件", "status": "已修复", "detail": "字间距改X数值框0–100;旧工程负值保留,预览与ASS依各自基准缩放。", "evidence": "StyleNumber/contract" }, { "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": "本轮字幕UI" }, { "id": "SE-051", "group": "字幕", "item": "描边颜色和粗细", "status": "已修复", "detail": "新字幕默认白色描边,粗细0–20;旧字幕不变。预览和ASS同步缩放。", "evidence": "本轮UI/contract/FFmpeg" }, { "id": "SE-052", "group": "字幕", "item": "描边不透明度语义", "status": "已修复", "detail": "独立outlineOpacity;0时保留文字,只去描边;旧整行opacity保持兼容", "evidence": "UI截图/ASS合同/实际像素测试" }, { "id": "SE-053", "group": "字幕", "item": "字号等数值单位装饰", "status": "已修复", "detail": "增加px/%单位和上下步进按钮;数值失焦校验,不提交编辑中的空值。", "evidence": "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": "真实FunASR转写成功;修复缺少pred_timestamp造成整段无标点时间戳的问题,限制负起点并映射剪辑速度/裁剪。字幕按钮提交主站任务,完成后刷新恢复。", "evidence": "model-regression/report.json;production-chain.log;主站浏览器" }, { "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": "本轮浏览器主画面停0秒、小预览独立循环/既有参考观察" }, { "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": "覆盖框top4、高60,最小点击宽44;补选中填充、两侧标记和16px参考图标。缩放滑块扩0–100,以参考19.6787=100px/s、50=251px/s、100=500px/s测量映射。", "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": "HTDemucs真实离线分离,视频和独立音轨可用;支持仅人声、仅背景及两轨输出,保留速度/增益/静音/包络。混合信号重构最大误差1.49e-8。", "evidence": "smart-edit-models.py;主站API与UI" }, { "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生产构建:真实登录/隔离数据库/上传/排队/分离/转写/合成/MP4和SRT下载/浏览器回填播放及刷新恢复通过。存储用本地S3兼容服务,未测线上存储或部署。修复新画布时区错位漏回填与成片时长显示。", "evidence": "production-chain.log;main-result.mp4;主站浏览器" }, { "id": "SE-087", "group": "导出与恢复", "item": "任务错误和服务不可用", "status": "代码核对", "detail": "导出按钮按能力禁用,失败状态显示错误;本轮未切断实际服务故障注入", "evidence": "SmartEditEditor/SmartEditDialog" }, { "id": "SE-088", "group": "导出与恢复", "item": "取消远程导出", "status": "部分修复", "detail": "已接排队导出的取消按钮到现有鉴权取消API,取消状态不再等待。运行中远程FFmpeg的主动终止仍未实现,主站取消按钮全链路未验。", "evidence": "onCancel/现有task-store" }, { "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/操作记录" } ], "date": "2026-09-18", "note": "09-18续修:人声分离、自动转写、2002字体目录和本地主站完整智能剪辑链路已接通;仍非全站所有功能验收,未部署或推送;逐字体像素/DPR与休眠断网矩阵未完成。" }