修复浏览器缓存内部链接复制并冻结门禁候选(09-06-release-gate-integrity)

这个提交包含在:
2026-09-19 17:38:18 +08:00
父节点 6e57d33715
当前提交 0f9e704994
共修改 7 个文件,包含 430 行新增和 4 行删除
@@ -1,3 +1,19 @@
## 2026-09-19 修正后最终候选单次启动
新ignored启动器固定最终commit+clean和运行输入摘要;唯一源为三组对照C保留cache,源结构/字节/模式/131条内部链接指纹冻结。调用已独立测试的copy-browser-cache.py生成本轮新副本与独立复制回执,不从历史缓存执行。用已审comparison execute_case函数做一次双引擎先验,只导入函数、不运行三组main/旧marker;新副本及原无外网namespace拓扑,失败即停。
先验成功并确认清理/源码仍clean后,只调用一次原bash scripts/qa/run-release-gate.sh verify-candidate;不改static、12个full-local阶段、所有预算/worker/零重试或分层归属。原门禁内native与guest仍独立运行;先验只防环境前置失败浪费完整启动成本。runtime使用短私有HOME/TMP/XDG及空npm/Docker配置、合成静态DATABASE_URL;managed runner保留原白名单(转发HOME,其TMP/XDG仍采用现有默认/私有HOME派生),不在本轮修改runner。
整体只有本轮新marker,先验和完整门禁各最多一次,旧marker不动。日志脱敏,原始浏览器stderr仅安全分类;运行结束只离线verify读证据。源前后指纹/代码输入/clean与短临时目录清理必须核对;本轮浏览器副本、失败和回执全部保留。新wrapper先由Claude只读审,再启动;不重复12或30/7单测。真实缓存复制、先验、完整门禁结果均尚未运行,不预填通过。
## 2026-09-19 安全内部链接复制工具
新增scripts/qa/copy-browser-cache.py及一份Node合成CLI测试,调用Python3标准库,不新增依赖。source必须是已明确选择的物理缓存目录(本候选后续选成功C组保留的cache);拒绝顶层目录链接及包内外部/目录链接,因此不会盲跟旧总缓存里指向用户共享缓存的Chromium目录别名。普通文件使用独占目标/no-follow源描述符复制并保留mode/mtime,包内相对file symlink保留;同目标别名仍在本副本内共用目标文件,源目标所有常规文件inode独立。
先完整枚举结构/权限/摘要,校验目标不与源交叠、目标/回执不存在;复制后再次比较源与目标结构/字节/模式,所有源目标file inode不同。错误只出稳定码,失败复制品保留,不删除/覆盖旧材料。回执包含安全相对清单/摘要及实际核验布尔,不含绝对路径或原始错误。此工具仅准备缓存,不能签发发布资格。
新启动准备代码复用此正式工具,源为对照C组保留的完整缓存,不从已知物化坏副本推测恢复链接;无新增下载。原copytree物化启动器保持历史证据,不修改或重启。Claude本批仅运行新CLI测试和治理/格式并只读审查;回收通过后Codex按既有授权本地提交、冻结SHA,再制定实际一次完整门禁启动请求(含便宜的双引擎先验,失败不进昂贵阶段)。不重复空白页三组对照。
## 2026-09-19 WebKit固定三组对照(本地根因诊断)
原30项探针测试与补充7项环境测试覆盖同一未改代码,独立复核通过,现有观测补丁可按既有授权先本地提交。真实native诊断仍FAIL,绝不把观测修正当成浏览器修复。