开放问题跟踪¶
热修通道项目中尚未确定、需要外部确认的问题。每次推进前先看这份清单;问题关闭时更新状态并注明结论与日期。
状态图例:待确认 / 进行中 / 已确认 / 已关闭(不再相关)
阻塞等级:高(阻塞工单拆分或开发启动)/ 中(阻塞具体实现)/ 低(可并行解决)
最后更新:2026-07-20
Q1:下发服务的接口形态与能力 —— 阻塞等级:高¶
状态:待确认 责任人:待定(需先找到服务归属人) 阻塞什么:服务端与灰度相关的全部工单;若答案与假设不符,客户端工单范围也会变
背景:链路是 Jenkins 打包 → NAS → 下发服务 → 客户端。客户端启动时请求 ssl.dvdfab.cn/update/get_latest_version.php 与 www.dvdfabstore.com/update/,Jenkins 的 create_ini.py 往 10.10.2.17 的 update 库写发布记录。中间这个服务的源码不在任何已探索的仓库中,其行为只能从客户端请求参数反推。
热修清单要携带的灰度参数(percent、canary 白名单、exclude 名单、urgent 标记)最终必须由这个服务存储与返回,因此它的实际能力直接决定方案可行性。
最关键的风险点:若该服务响应经过 CDN 或其他缓存且时长以小时计,则方案中"发现异常 → percent 归零 → 分钟级截断扩散"不成立,回滚机制需重新设计(改走不缓存的独立清单接口,或改为客户端主动轮询)。这是架构级影响,不是实现细节。
待问清单(可直接转发给服务归属人):
- 客户端请求的
get_latest_version.php和www.dvdfabstore.com/update/两个接口,服务端代码在哪个仓库?能否给访问权限? 10.10.2.17的update库,除 Jenkins 写入的list表外还有哪些表?能否提供表结构?- 该服务目前是否具备"按客户端类型 / 版本 / 地区返回不同内容"的能力?还是所有客户端拿到相同响应?
- 接口响应是否经过 CDN 或其他缓存?缓存时长多少?能否对指定接口关闭缓存?(最关键)
- 新增一个返回热修清单 JSON 的接口,由谁开发合适?预计工作量?
- 该接口需返回运营参数(灰度百分比等),需在数据库新建表且 Jenkins 流水线需要写入权限——权限如何申请?
- 是否有可用的测试环境?
降级方案:若短期内无法确认,可先拆分不依赖下发服务的工单(跨平台决策引擎、Windows 替换事务改造、CI 流水线扩展三条线均自包含),服务端与灰度参数相关工单挂起等待。
Q2:PRD 表述与技术现实对齐 —— 阻塞等级:中¶
状态:待确认 责任人:王双勇(产品)
PRD 3.2 节将"站点适配规则更新"列为热修内容第一类,但代码事实是四个 Tier 0 平台的适配逻辑全部硬编码于 C++ 并静态链接进主程序,规则数据下发在现状下无实现基础,实际形态是整 exe 替换。建议评审前同步修订 PRD 表述,避免理解错位。
Q3:双平台主 exe 实际体积 —— 阻塞等级:中¶
状态:待确认 责任人:客户端开发
热修包走全量投递(主 exe 已被 CI 的 force_add_list.txt 排除在二进制差分之外),包体积约等于主 exe 压缩后大小。需实测 Windows 与 macOS 两侧的实际值,用于评估下发带宽成本与用户等待时间。本机无构建产物,未能测量。
Q4:macOS 替换粒度与公证细节 —— 阻塞等级:中¶
状态:待确认 责任人:macOS 开发
整 bundle 替换(Sparkle 模式)还是仅替换主二进制?倾向前者,但需验证:替换后 Gatekeeper 与公证 ticket 的校验行为、hardened runtime 下的加载限制、以及应用自身下载的文件是否携带 quarantine 属性。
Q5:清单 JSON 格式与热修版本命名语义 —— 阻塞等级:中¶
状态:待确认 责任人:本项目(设计决定,非外部依赖)
清单字段定义、热修版本号的命名与排序语义(需支持单调递增校验)。依赖 Q1 的答案(服务端存储形态可能影响字段设计),故排在 Q1 之后确定。
Q6:补丁 XML 目录节点 MD5 为空的既有缺陷 —— 阻塞等级:低¶
状态:待确认 责任人:CI 维护者
CreatePatchPy/xmlwriter.py 中目录节点的 MD5 留空,与 C++ 引擎行为不一致,代码内标记为 deferred。若 Ed25519 签名清单需覆盖 update.xml 的语义完整性,宜先修复该不一致。
Q7:Ed25519 密钥的生成、备份与轮换规程 —— 阻塞等级:低¶
状态:待确认 责任人:技术负责人
私钥存入 Jenkins 凭据库后的操作规程:密钥如何生成、离线备份放哪、备用公钥的轮换触发条件与操作步骤、谁有权限使用签名流水线。