test(thumbnail): [PKG-TOOL-THUMB-05] verify generated sheets across core versions

This commit is contained in:
Harvey Zhao committed 2026-09-16 10:29:20 +08:00
1 parent fb78328c43
commit 8aa99ef03f
13 files changed
+15502 -9

No files matched your search

@@ -0,0 +1,73 @@
# PKG-TOOL-THUMB-05 三代核心组合验证检查点
起点 `fb78328c4355042b578091e1236c2ce71a68e5c2`。本批补齐真实文件抽帧后由
新旧核心显示图片的证据,没有改变生产实现、公开类型或依赖。05 保持 doing:
Windows WebKit 的 Blob 解码限制与实际 Safari/设备证据仍未关闭。
## 实现和兼容
冻结关联核心 artplayer 3.5.31 的完整 npm 归档,逐个验证 144 个成员 SHA256、
registry integrity、归档 SHA256 和 manifest。历史 Git 核心版本关联一致,见
[归档](../baselines/thumbnail-core.json)。这是历史关联版本,不是最低支持版本,
也不代表找回了原始 thumbnail 工具的完整归档或声明。浏览器服务新增独立路由,
保留原 published 5.4.0 路由,每次读取先校验归档和 main。
`thumbnail-core.spec.js` 将恢复的 CDN 3.5.31、冻结工作区工具和重构工具的
默认/workspace 策略分别接入核心 3.5.31、5.4.0 和重构核心。原生文件选择、
实际解码、工具生成 PNG、真实鼠标悬停,每组两次生成并重建播放器,检查图片
640×300、12 个样本中心、5 个取格位置、预览像素、URL 更新和销毁。
截图比较上部未被时间提示遮挡的区域,排除圆角,平均 RGB 通道误差上限为 3;
没有隐藏提示或修改产品样式。
旧核心在行边界取上一行最后一格、返回首格时保留上次位置,是已有缺陷;旧结果
明确断言,重构核心必须显示正确格子。核心 5.4.0 初始化会撤销空的前一媒体 URL,
两次初始化精确记录两个空值;所有非空创建/撤销仍精确匹配。
图片有 30px 页脚,应显式传入与生成配置一致的 number/column/width/height;
本组合 scale=1。工具持有图片和媒体 Blob URL,先销毁引用它们的播放器,再生成
下一张或销毁工具;播放器不得撤销外借 URL。包内架构和测试文档同步补充。
## 验证
Node 24.21.0 / Yarn Classic 1.22.22 / Windows。逐例记录和哈希见
[组合证据](../baselines/thumbnail-core-validation.json)。
| 范围 | 结果 | 实际证明 |
| --- | --- | --- |
| 关联核心归档测试 | 1 通过 | 144 个文件、完整归档和历史版本关联 |
| 源码三引擎组合 | 36 通过,144.262s | Chromium/Firefox 24 个抽帧组合;WebKit 12 个能力控制 |
| 已安装 main 三引擎组合 | 18 通过,53.185s | Chromium/Firefox 12 个抽帧组合;WebKit 6 个能力控制 |
| 最终通知等待改动 | 源码 WebKit 12 通过 | 等待精确一次原生错误通知 |
| 只读 scoped ESLint | 通过 | 浏览器用例、服务、归档测试 |
| 计划与风险台账 | 通过;风险回归 2 项通过 | 285 项任务、依赖、证据链接和风险关闭规则 |
以上最终运行没有失败/跳过/重试。安装工具来自先前独立 Yarn pack/install,
main 与当前 dist SHA256 一致:
`a254d9d66943bd302719edae040d6ee5e0a32f7c9f1ae0727be8cb6c5a335511`。
组合中的重构核心来自源码编译,不冒充全套安装产物或最新全项目候选验收。
共享测试输入变化后,REL-02 仍须刷新完整候选指纹。
Windows WebKit 26.6 原生 HTTP MP4 成功,同一内容 Blob URL 报 media error 4。
控制用例确认原生和工具一致、通知与清理正确,没有产生缩略图,不能计作 Safari
抽帧成功。Chromium 153.0.8010.12 / Firefox 155.0 验证实际图片和预览。
## 失败调查和修正
- 初次将另一素材的末格红色预期错误套用到本素材,12 项失败。独立 FFmpeg 在
1、3、…、23 秒解码确认所有中心蓝色,修正预期并保存原报告。
- 随后 12 项整图比较失败,截图确认时间提示遮挡下部。改比较未遮挡区域,
没有扩大误差阈值。一次已发布核心空 URL 撤销差异改为按实际代码精确断言。
- 统一 delay=20 时,Firefox 三个恢复版 3.5.31 组合生成黑格:0/4/8 格中心蓝色,
其余黑色。历史源码只等计时器后 drawImage,不等 seeked。正常组合使用旧版原
默认 delay=300 后通过;重构工具仍使用 delay=20。保留失败,不声称旧版短延时通过。
- 安装产物首次 17 通过/1 失败:video.error 已设置,排队的 error 事件尚未送达。
改为在原超时内等待精确一次通知;安装 18 项和源码 WebKit 12 项通过。源码完整
36 项在这次等待改动之前运行,其测试文件另存哈希;跟进结果单独记录。
- 归档测试纠正错误的 Vitest 导入,使用项目原有 Node 运行器,没有新增依赖。
## 交接与回退
225 done /23 doing /37 todo。THUMB-LIFE-01 增加组合证据但保持开放;原生 Blob
风险仍保留。05/06 的 Safari/真机和完整历史工具分发证据不足,不结束任务,
不进入用户保留的正式复盘,不推送或发布。回退仅撤销本批测试路由、归档/证据、
用例和文档,不改变生产 API。