# 工程验证记录 验证日期:2026-09-16。发布形态为离线工程预览,应用包 0.2.0,契约 0.2.1;Node 24.15.0、macOS arm64。DSH 固定 0.1.5-rc.2。以下计数分别来自不同测试入口,不相加为“产品成功率”。 ## 已运行 | 验证层 | 结果 | 证明范围 | |---|---|---| | `npm test` | 36/36 通过 | 结构契约、媒体边界、版本、模拟任务与持久编排 | | 默认报告 Demo | 可运行 | 固定样例、模拟任务与本地 HTML;不生成视频 | | 视频 Demo | 175 帧、25fps、7 秒;完整解码通过 | 色块与测试音的收集、拼接、字幕、hash | | 同目录再次运行 | 模拟提交仍为 3 次 | 已完成任务复用,不因重跑演示新增生成提交 | | 真实 DSH 协议检查 | 11 工具注册;canonical 输出和预先取消通过;单任务 save/quote/submit/poll/collect/review 贯通 | 实际 DSH 工具运行,不包含模型推理 | | 独立 episode/revision 驱动 | 15/15 通过 | 三镜头完整正例、缺依赖/空成片/假全绿 QA 拦截、无关镜头复用及不可变版本 | | 独立恢复/并发驱动 | 6 组通过 | 实际子进程、独立模拟远端事件及 SQLite 快照,详见下文 | 独立测试与实现开发分开执行。测试脚本随公开代码提供;本机原始运行目录未公开,以避免泄露个人路径和状态。结果不包含真实模型或付费调用。 ## 发布包验证 公开快照在全新目录 `npm ci`、测试和默认 Demo 通过;Linux GitHub Actions 的离线检查通过。独立脚本在公开快照复跑,15 项与 6 组结果均通过。 实际 `npm pack` 产出的 tgz 在另一空目录仅安装生产依赖后,编译版 Demo 可运行;另在全新 DSH_HOME/profile 安装该 tgz,通过真实 DSH 执行保存、报价、模拟提交、查询、收集和导出报告,11 工具、canonical 输出及预先取消通过。没有依赖源码目录里的 node_modules 来冒充安装成功。 ## 独立恢复测试覆盖什么 - 供应商 submit 被调用之前,另一 SQLite 连接已能读到持久化预留。 - 远端接受后丢失回执;保留 7 单位预留,总额 10 时新增 4 单位被拒绝。 - 远端接受后强制结束本地进程;重启和更换 operation ID 都不重复提交同一语义请求。 - 轮询超时后使用原 job ID 继续查询。 - 两个进程竞争同一操作,模拟远端只接受一次;两个各 6 单位的操作竞争总额 10,只允许一个。 - 远端不支持取消时,不伪造 cancelled,也不自动退回预留。 模拟远端的计数与应用账本分别存储,防止仅检查应用自己的“成功”字段。真实供应商的网络/幂等/计费行为仍需后续验证。 ## 质量没有被验证 源视频自动理解、角色视觉一致性、实际英语声音、口型、文化自然度、叙事质量、观众接受度均未验证。测试片含水印与测试音;报告中的技术通过只表示对应文件/引用检查,不代表这些质量项通过。 模型自主规划、DSH 对话会话持久化、真实供应商接入、整集处理、跨平台媒体兼容性也不在当前结论内。 ## 已知功能限制 台词变更后的解耦视频可被标为复用候选,但合成对旧台词依赖仍保守拒绝;没有完整的重新审阅后复用流程。无关镜头保留历史改编版本作为来源记录,与复用已改变台词的镜头是不同情形。 ## 复现入口 ```bash npm ci --ignore-scripts npm test npm run demo ``` 媒体与 DSH 命令见 [RUNNING.md](RUNNING.md)。独立验收使用新输出目录,命令如下。commit 参数用于把证据绑定到当前检出的公开版本;它不是通过判断依据。 ```bash node tests/acceptance/episode-revisions.mjs . .runtime/independent-episode "$(git rev-parse HEAD)" node tests/acceptance/recovery.mjs . .runtime/independent-recovery "$(git rev-parse HEAD)" ```