修复浏览器缓存内部链接复制并冻结门禁候选(09-06-release-gate-integrity)
这个提交包含在:
@@ -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,绝不把观测修正当成浏览器修复。
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
## 2026-09-19 缓存修正12/12及独立复核通过:提交最终候选并交Claude单次门禁(当前)
|
||||
|
||||
已核原报告/单测日志及7份after、14输入摘要,12passed/0failed/0skipped、exit0;只读复核无问题。复制工具、测试、spec保持已审字节,仅本任务四份接收/执行记录更新。真实缓存复制尚未验证,不因合成通过宣称发布资格。
|
||||
|
||||
- [x] 接收复制工具定向PASS及独立PASS,保留旧失败。
|
||||
- [x] 决定按用户既有明确授权保存本批7路径本地提交;实际SHA/clean以final-candidate/local-commit.json为准。
|
||||
- [ ] Claude只读审新启动器,执行新副本复制与一次双引擎先验;成功后直接接原完整verify-candidate,不再等额外确认。
|
||||
- [ ] 收到完整门禁/离线verify/owner清理及源码前后一致证据后,判断本地资格;公网、推送部署及真实业务仍按独立授权边界处理。
|
||||
|
||||
启动说明:artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/final-candidate/claude-request.md。主会话只静态检查与本地提交,不运行测试/浏览器/门禁。冻结期间包括task记录也不再编辑,结果写ignored目录。无下载、生产ARM、真实配置密钥备份或旧恢复。保留旧整轮FAIL、37项FAIL、registry FAIL、CSV NOT_RUN、docs22提示及12公网义务;当前deploymentEligible=false。
|
||||
|
||||
## 2026-09-19 A/B失败、C通过:实施缓存复制修正(当前)
|
||||
|
||||
已接收三组完整对照:A213字节与B28字节全物化均WebKit page失败/code134/abort+assertion且清理前退出;C28字节恢复131内部链接后双引擎通过。真实wrapper exit1;后台外壳exit0不能抵扣。三组缓存均实际保留(A原地保存,summary中false非实际缺失)。原源码/46输入/缓存/链接/marker不变。证据见cache-copy-20260919/comparison-reception.json。
|
||||
|
||||
- [x] 确定保留内部file链接、拒绝外部/目录链接的新复制合同,保留所有原失败。
|
||||
- [x] 实施正式复制工具及合成CLI边界测试、现有规约;待下列静态检查与Claude运行结果。
|
||||
- [ ] Claude仅新复制工具测试、治理/格式及增量只读复核;不重跑探针30/7、浏览器矩阵或业务全量。
|
||||
- [ ] 通过后本地提交最终候选、冻结整树,安排一次正确缓存复制+先验+原完整门禁;本次不启动。
|
||||
|
||||
交接:artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/claude-request.md。仅新工具一份Node合成测试,源码预期12项不冒作已运行计数;不启动浏览器/DB/完整门禁。
|
||||
|
||||
观测修正已提交6e57d337(8路径、clean),本批以此为基线。选择已保留的成功C缓存作为后续明确源目录,独立复制而非共享执行;源缓存及其旧结果不修改。无推送部署/生产ARM/真实配置密钥备份访问,无新下载,deploymentEligible=false。旧整轮FAIL、37项FAIL、registry FAIL、CSV NOT_RUN、docs22提示及12公网义务保持。
|
||||
|
||||
## 2026-09-19 观测补丁定向通过:本地提交,Claude固定三组定位WebKit(当前)
|
||||
|
||||
已实核34条输入无漂移。环境文件短TMPDIR补验7/7,原探针文件30项通过、源码未改;独立审查与治理/格式通过。原37项FAIL保留,不说同轮37通过。真实诊断约12.6秒、exit1:Chromium145.0.7632.6在线通过;WebKit26.0在page阶段报browser_process_closed,trace_stop追加同类;拓扑/namespace/清理及源缓存完整性通过。未采集真实父进程退出事件,根因仍UNKNOWN。
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
## 2026-09-19 缓存修正定向验收通过,冻结最终本地候选
|
||||
|
||||
复制工具12/12合成测试及独立只读复核通过,7份增量和14条输入实算一致。按既有授权本地提交该补丁;随后Claude执行一次“独占保留内部链接复制→双引擎空白页先验→原verify-candidate完整门禁”。先验失败不得进入昂贵阶段;先验不能抵扣原门禁内native/guest或业务阶段。原失败、所有旧marker和12公网等外部义务不变。无推送部署或真实业务授权。
|
||||
|
||||
## 2026-09-19 修正本地浏览器缓存复制合同
|
||||
|
||||
三组对照A/B物化副本均WebKit page失败、真实父进程code134且清理前退出;等长路径C保留131个内部链接后双引擎通过。支持当前条件下内部链接结构相关,不把历史根因唯一性或完整门禁写成已证明。
|
||||
|
||||
本批实现可复用的本地缓存复制工具:普通文件独立复制,内部相对且最终指向本缓存常规文件的链接保持原样;外部/绝对/悬空/循环/目录链接和特殊文件拒绝。比较源前后、目标字节/模式/链接结构及源目标inode独立,失败拒绝、不覆盖既有目标或证据。后续启动器统一调用它,不能再用symlinks=False物化整个包。工具不启动浏览器、联网、下载安装或访问真实配置。
|
||||
|
||||
只验证新复制工具的合成边界,不重复已通过30/7探针测试。独立通过后保存最终候选,再安排一次完整门禁;本次不启动完整门禁。新完整尝试须用成功C组缓存的独占复制、短私有运行目录及原全部门禁要求,原失败/marker/外部义务保留。
|
||||
|
||||
## 2026-09-19 native观测补丁已定向验收,WebKit根因继续本地诊断
|
||||
|
||||
探针文件原30项通过,环境文件短TMPDIR补充7/7通过;补丁独立复核及治理/格式通过。旧37项FAIL不改写,非同次37全绿。真实双引擎诊断Chromium通过、WebKit在page阶段报browser_process_closed,底层父进程是否退出及原因未采集,不能仅凭类别断定系统进程退出原因。
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"id": "release-gate-integrity",
|
||||
"name": "release-gate-integrity",
|
||||
"title": "部署门禁完整性与候选验收回执",
|
||||
"description": "native观测修正已定向验证及独立复核;按授权本地提交。真实WebKit在page阶段失败,根因待固定三组本地对照,完整门禁未通过。",
|
||||
"description": "浏览器缓存复制12/12及独立复核通过,按授权本地提交最终候选;待一次正确复制、双引擎先验及原完整门禁。无推送部署授权。",
|
||||
"status": "in_progress",
|
||||
"dev_type": null,
|
||||
"scope": "release-gate",
|
||||
@@ -226,7 +226,7 @@
|
||||
}
|
||||
},
|
||||
"nativeProbeRepair": {
|
||||
"status": "SCOPED_VERIFIED_READY_FOR_LOCAL_COMMIT",
|
||||
"status": "COMMITTED_SCOPED_VERIFIED",
|
||||
"failureReception": "artifacts/qa-governance/r1-enforcement-20260919/native-probe-20260919/failure-reception.json",
|
||||
"historicalGateStatus": "FAIL",
|
||||
"fullLocalStagesRun": 0,
|
||||
@@ -257,16 +257,54 @@
|
||||
"probePriorPassed": 30,
|
||||
"environmentSupplementalPassed": 7,
|
||||
"singleRun37Pass": false
|
||||
}
|
||||
},
|
||||
"localCommit": "6e57d337157753efb8eb82a1dd725ffa33544f1a"
|
||||
},
|
||||
"webkitComparison": {
|
||||
"status": "PLANNED",
|
||||
"status": "COMPLETE_A_FAIL_B_FAIL_C_PASS",
|
||||
"cases": [
|
||||
"deep-materialized",
|
||||
"short-materialized",
|
||||
"short-internal-links"
|
||||
],
|
||||
"maxAttemptsPerCase": 1,
|
||||
"deploymentEligible": false,
|
||||
"caseExits": [
|
||||
1,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"conclusion": "INTERNAL_LINK_STRUCTURE_RELATED",
|
||||
"historyUniqueRootCauseProven": false
|
||||
},
|
||||
"browserCacheCopy": {
|
||||
"status": "SCOPED_VERIFIED_LOCAL_COMMIT_AND_FINAL_GATE_HANDOFF",
|
||||
"evidence": "artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919",
|
||||
"testExecutor": "Claude",
|
||||
"fullGateStarted": false,
|
||||
"deploymentEligible": false,
|
||||
"executionFile": "scripts/qa/copy-browser-cache.py",
|
||||
"testFile": "scripts/qa/tests/browser-cache-copy.test.mjs",
|
||||
"handoff": "artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/claude-request.md",
|
||||
"testsRunByCodex": false,
|
||||
"testResult": {
|
||||
"passed": 12,
|
||||
"failed": 0,
|
||||
"skipped": 0,
|
||||
"exitCode": 0
|
||||
},
|
||||
"independentReview": "PASS",
|
||||
"reception": "artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/final-candidate/review-reception.json",
|
||||
"nextHandoff": "artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/final-candidate/claude-request.md",
|
||||
"localCommitReceipt": "artifacts/qa-governance/r1-enforcement-20260919/cache-copy-20260919/final-candidate/local-commit.json"
|
||||
},
|
||||
"finalLinkedCacheGate": {
|
||||
"status": "PLANNED_NOT_RUN",
|
||||
"copyAndNativePreflight": "REQUIRED_BEFORE_ORIGINAL_FULL_GATE",
|
||||
"maxCompleteAttempts": 1,
|
||||
"maxNativePreflightAttempts": 1,
|
||||
"pushAuthorized": false,
|
||||
"deploymentAuthorized": false,
|
||||
"deploymentEligible": false
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户