Files
ArtPlayer/refactor/changes/2026-09-15-CI-01-subtitles-installed.md
T

61 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CI-01 Audio Track、VTT Thumbnail 与 Multiple Subtitles 安装验证
## 实现与兼容边界
统一 installed 名单从六包扩展为九包,新增三个插件的十二个浏览器文件。
package-check 先校验各自冻结发布契约,再构建、打包、独立安装、冻结复装和核对
完整安装文件。工作流准备命令与静态校验同步;通用运行时/类型消费者仍只负责
core/chapter,不把新增浏览器覆盖当作全包声明或发布准入。
三个候选加载器使用 browser-candidate.js,安装 map 存在时读取已验证的 tarball
安装文件,禁止显式 artifact 覆盖;VTT 也拒绝 frozen-workspace baseline 标记。
缺失、篡改、过期安装不能回退源码。无 map 时保留源码和显式产物方式。
附件记录实际候选文件、归档与来源指纹;Audio 的旧标题 source audio 是候选槽位,
实际来源查 audio-inputs.selected。真实旧插件和 no-plugin 控制继续保留原输入。
本轮只修改测试、工程入口与维护文档,没有修改生产 API、播放器实现、超时、
依赖或锁文件。一处 ASS 等待断言修正见下文,最终数量/文本要求保持严格。
VAST 类型决定已有独立实施,不合并到本 CI 检查点。
## 验证范围
Windows x64,Node 24.21.0、Yarn 1.22.22。九包安装 run-QsLTUc 通过;通用
core/chapter 36 运行时检查、5/5 旧类型模式、8/8 精确类型模式通过。
新增插件相关单元 504/504、工程 46/46、scoped lint、library 类型、严格工具链、
CI 工作流契约与 actionlint 1.7.12 通过;actionlint 未运行 shellcheck/pyflakes。
完整 installed collection 为 25 文件、762 项。实际执行仅新增十二文件、三个
引擎的 336 项,workers=2、retries=0;最终结果与原始报告指纹见机器证据。
这不是本次运行完整九包套件;此前 CHAPTER-TIMING-01 失败继续保留。WAV能力、
旧字幕宿主缺陷及合成移动输入等控制只证明其记录的范围,不能冒充真机通过。
各包 ARCHITECTURE.md 与 scripts/browser-validation/README.md 记录加载边界。
CI-01 继续 doing,远端 Actions、其他生态包及最终设备/发布门槛未完成。
撤销本检查点可恢复六包 CI 范围;不涉及生产源码回退。未推送或发布。
## 实测结果与修复
首轮 336 项为 327 通过、9 失败,耗时 388.566 秒,实际退出 1。Chromium 和
Firefox 各 112/112 通过;WebKit 103/112。失败中的八项是已有 AUDIO-BUFFER-01
的新旧音频组合;七项未等到可信 waiting 且时间大于 0.3 的目标状态,一项在受限
视频路径耗尽测试时间并在 finally 的状态采集中报页面关闭。保留真实等待和失败,
不把销毁后的 error=4 当作加载阶段解码失败;未证明新的底层根因。
另一项是旧核心 published + 候选 Multiple Subtitles 的 ASS 断言:seeked 后,
单元素文本 locator 在旧字幕三个节点尚未替换时立即 strict-mode 失败。失败快照
已经显示 Later cue,视频时间 5.002334;不是字幕永久丢失的证据。将断言改为
exact array [Later cue],在原 7000ms 内同时要求恰好一个元素与准确文本;不接受
额外节点、子串或错误字幕。增加检查前的产物附件,失败也可识别输入。修正后
五核心 × 三引擎 ASS 15/15 通过,没有重试;原始九失败报告不被覆盖。
三个加载器的 Chromium 源码定向实际媒体测试 3/3,通过继承安装 map 的 source
入口执行,附件均明确 source-build。只证明这三个开发路径继续可用。
初轮有 197 项附件直接验证候选安装身份;失败的 ASS 在原断言之前尚无其最终
附件,不能把缺失附件计入该数;修正后的 15 项均在操作前验证安装身份。
机器证据见 [ci-subtitles-installed-validation.json](../baselines/ci-subtitles-installed-validation.json)。
原日志和报告位于 ci01-subtitles-installed-report/source-report/ass-report,各自保持
实际退出状态。安装报告内的旧附件路径已随目录归档,读取时用归档目录下 results。
完整九包套件未在本次重跑,八项音频失败仍开放。准备 tarball 后补充了包内架构
说明,本轮不是最终发布候选批准;发布前仍需重新打包绑定最终内容。