Files
ArtPlayer/refactor/changes/2026-09-14-PKG-JASSUB-01-provenance.md
T

65 lines
4.0 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.
# PKG-JASSUB-01 来源补充与契约核对完成
本次完成来源与契约的核对步骤,未替换 vendor、WASM、字体或公开声明。原始
release/vendor/font 基线保持不变;新增独立 provenance 补充,后续源码迁移可以
基于准确的第三方边界继续。完整许可通知和未明确的字体再分发条件仍为发布门槛。
## 从本地字节到上游源代码
两份 WASM 与 11 份字体均逐字节匹配 JASSUB 历史 Pages 中的 Git blob。包括包内
WASM 两份副本、docs 默认字体副本在内,本地 16 路径均与原基线 SHA 保持一致。
检验同时计算文件长度、SHA-256 和带 blob header 的 Git SHA-1,不使用文件名猜版本。
WASM 发布提交 `747e392d7f6fe7c38bbcdfe05c9ada46b0b62daf` 明确引用源码
`6b19a04ddfbad8f9bfd3237395788dd76218841b`。该源码使用 emsdk 4.0.22、递归子模块、
普通与 MODERN 构建,工作流将 dist artifact 放入 Pages 的 jassub/assets。七个
子模块 revision 及三个构建文件的 Git blob/内容已固定。其 checked-in dist
与 nightly 产物不同,必须保留 Pages 的精确 blob,不能只给源码目录链接。
本地引入前的 Pages 快照 `25d1ea7ca1f827dbed2c8ea539c9bc917ccbfab1` 后来只更新
worker JS,保留前述 WASM。因此“wrapper/worker 对应 npm 1.8.8、本地 WASM
却不等于 npm 1.8.8”的旧观察仍成立,新的来源链解释了差异而未覆盖旧事实。
本次没有独立重建 WASM;Docker tag、apt 和 npm install 也未全部锁定。
## 通知及未决项
固定源码 LICENSE 与 WASM 所在 Pages 的 COPYRIGHT 都有精确 blob 与 SHA。
它们与原 npm 成员仅换行归一化后相同,原始字节/长度不同,分别保存指纹。
COPYRIGHT 涉及 libass、fribidi、FreeType 等组件;fribidi 的 LGPL-2.1+ 和
FreeType 完整 FTL 等通知/源码分发要求仍需在 06 落实,不能用插件 MIT 总括。
11 份字体的上游文件身份已确认。default Liberation、两份 Averia、Lato、CHAWP
仍须配齐对应完整通知;Allison、Architext、Arial、Franklin Gothic、Garamond、
Slate Pro 六份仍缺适用的再分发凭证或经过审查的替换方案。上游公开托管与字体
嵌入标志不是这些凭证,Arial 的内嵌 MIT 文本也仅指 Hebrew layout 部分。
这些结论不是法律许可确认或部署授权。
VENDOR-04/05 保持 open,保留原关闭标准,追加 PKG-JASSUB-06 / SITE-01 的明确
责任。01 的验收是核对并登记来源/通知,06/SITE 负责交付完整通知和处理发布
资产;此次不删除工作、不豁免发布条件,也不要求把第三方文件改写为自有 TS。
02/03/04 继续自有 adapter 的风险测试、结构和类型迁移。
## 验证与维护
新增 `jassub-provenance.test.mjs`,默认仅检查本地固定资产与来源/许可分类,
不需要 cache 或网络;加入 `yarn test:jassub`,现有 baseline glob 也会执行。
两个显式补充模式:
```sh
node refactor/scripts/jassub-provenance.test.mjs --cached-evidence
node refactor/scripts/jassub-provenance.test.mjs --network
```
前者要求保存的来源/下载证据存在并逐项复验,不表示重新联网。后者查询固定
commits/trees/blobs,任何请求或字节比较失败都失败,不能自动回退缓存。普通 CI
不运行这两个补充模式。无需新依赖或锁文件修改,Node/Yarn 版本保持不变。
具体运行结果及报告指纹见
[本次验证](../baselines/jassub-provenance-validation.json)。子代理另用禁用 fetch
的 preload 验证离线模式,篡改 blob/source-link 均被拒绝;这些负测日志与最终
正式文件验证分开记录。历史 48 项基线继续验证实际 vendor JavaScript、七份
实现及发布入口;它们不是原生 Worker/WASM/字幕绘制的证据。
架构、契约、第三方台账和风险 owner 同步更新。回退本次补充元数据、验证器和
脚本入口不会改变播放器行为。独立本地提交,不推送或发布。