CONTEXT¶
热修通道(hotfix channel)项目的领域词汇表。方案、工单、代码中的命名以此为准。
词汇表¶
- 热修通道(hotfix channel):独立于完整版本发布的签名文件集下发通道。下发对象见"受管文件"。
- 受管文件(managed file):热修通道管理的可替换文件。第一版包括:主程序 exe、
yt-dlp.exe、配置开关文件。 - 热修包(hotfix package):一次热修下发的文件 + 元数据。以"基线版本 + 热修序号"标识(版本语义待 spec 定)。
- 清单(manifest):服务端下发的热修描述文件。含:受管文件列表(URL、SHA-256、Ed25519 签名)、适用基线版本、灰度参数(percent / canary 白名单 / exclude 名单)、urgent 标记、单调递增的清单版本号、过期时间。清单本身必须签名。
- 基线版本(base version):热修包适用的已安装客户端版本。热修只针对最新正式版(ADR-0002)。
- canary:灰度第一档,按 machine_id 白名单命中内部设备。不可跳过。
- safe exe:切换前保留的上一版可用 exe 副本,本地回滚的回退目标。
- 预提交自检(pre-commit selftest):切换前由旧 exe 以子进程拉起新 exe 的
--selftest模式验证其可启动。不通过则不提交切换。 - 启动标记(boot marker):新 exe 在
main()头部写入、健康检查通过后清除的标记。连续 2 次未清除触发本地回退。 - 指标回滚(metric rollback):程序未崩但指标劣化时的回滚。第一版为人工决策 + Jenkins 一键执行。
- 站点维护开关(site maintenance flag):配置开关第一版唯一开关。站点故障且热修未就绪时,向客户端下发该站点"维护中"状态并展示提示。
- urgent 标记:清单中的热修级别。urgent 时客户端弹轻提示引导重启生效;否则完全静默等自然重启。
- 隐藏逃生门(escape hatch):标记文件禁用热修拉取(沿用
ignoreDataStatistics模式),不在 UI 暴露,供客服排查兜底。
客户端现状关键事实(2026-07 探索结论,均有代码证据)¶
- Tier 0 中 Netflix / Amazon / Disney+ / Hulu 的站点适配 100% 硬编码 C++,静态链接进主程序(macOS
-lstreameta进 StreamFab target,WindowsStream+streameta工程);YouTube 走外部yt-dlp.exe子进程,已有在线更新通道(/api/youtube_dl_update/,JSON + MD5)。 - macOS 无客户端内自动升级:socket 协议取版本 XML → 浏览器打开下载页。Windows 走独立升级 exe(LiveUpdate)。
- 现有完整性校验仅 MD5(yt-dlp zip、DRM cfg),无非对称验签;streameta 下载器默认
VERIFYPEER=0,多数端点http://。 - 稳定设备标识 = 物理 MAC(
machine_id);遥测走 ELK(app-api-*.dvdfab.cn/api/common_json_post/分索引),崩溃走 Crashpad →report.dvdfab.cn。 - 端点配置编译期烘焙进
product.ini(rcc 资源),无在线刷新机制。 - 正式发版的代码签名在 Jenkins 有专门流程。
相关文档¶
- 在线浏览:https://hotfix-review.pages.dev (提交后自动同步)
- 产品需求:
POS:核心平台稳定性与热修通道.md - 业界调研:
docs/research/hotfix-channel-industry-survey.md - 决策记录:
docs/adr/