接入发布候选回执强制校验(09-06-release-gate-integrity)

这个提交包含在:
2026-09-19 14:25:33 +08:00
父节点 1f8d5b658a
当前提交 16b9cad98c
共修改 15 个文件,包含 722 行新增和 91 行删除
@@ -1,3 +1,72 @@
## 2026-09-19 F1诊断处置及最终冻结
未改执行输入的单文件52项一次通过;独立复核承认三次R1校验不在该测试执行范围内。保留原失败与根因未知,不做推测性修复/预算扩容,不合并分阶段重验。定向证据足以支持本地提交,不能替代完整候选验收。
按已批准顺序:本次本地提交封存15路径及验收记录;最终clean SHA仅运行一次既有verify-candidate,沿现有受管环境/原浏览器版本/并发/预算/零重试/33页7组/分层覆盖,不另造验收流程。使用新独占证据目录和已有浏览器缓存的物理副本,无下载、无历史覆盖;运行期间仅写ignored证据。失败即保留并回报,不自动重试。具体SHA/命令与环境边界在提交后的ignored交接中固定,不再改本提交的受管文件。推送/部署未授权。
## 2026-09-19 F1超时最小诊断(沿用已批准定向验证范围)
静态提取与摘要已排除“三次R1 require启动开销进入生命周期用例”的假设:测试只执行REMOTE片段,三个校验都在片段外,片段及测试夹具未变。不改变生产校验、测试预算、并发、重试或断言,不凭一次耗时比较修改产品。
Claude仅运行未改的deployment-db-lifecycle.test.js完整52项一次;ignored封装器核执行输入前后SHA、记录真实exit/UTC/耗时、每秒采样本地load/CPU与内存压力/cgroup计数。采样只描述当次环境,不追认前次因果。成功也保留原exit1并交主会话判断;失败停报,不循环重跑。此前125/另外46项/独立代码结论沿原输入保留,本轮不重跑。该诊断属于既有失败验证,不改变验收范围;真实部署/推送仍未授权。
## R1 接入方案(2026-09-19,已批准本地实施)
### 当前事实与授权
最新:用户已明确回复“是”,批准本节本地实施及新版执行顺序;以下规划时点描述保留追溯。测试交Claude,推送与部署未授权。
基线为本地分支codex/20260919-reviewed-candidate的1f8d5b65,前两笔本地提交已完成。用户同意推进R1方案;本轮仅源码只读分析和任务合同更新,没有执行测试、真实发布入口、生产访问或提交。本地接入/启用已获用户具体方案批准(实现结果与验收状态见implement顶部),生产部署仍独立授权。
旧r6全绿属于旧输入,budget-full-r1中止FAIL/130;当前候选不能借它们取得资格。本节建议将“本地接入拒绝未验候选”与“真正对外发布”分开:本地补丁与定向验证先完成,最终clean SHA只跑一次完整门禁,合格后才可在另获部署授权时使用真实入口。该顺序取代旧设计中容易导致先全量、再改入口、又全量的执行歧义,不降低完整通过前不得发布的要求。
### 最小修改范围与行为
| 文件 | 接入位置与行为 |
| --- | --- |
| scripts/qa/release-gate-result.mjs | 复用verifyReleaseEvidence/readBundle/facts等,增加供入口使用的导出断言及require CLI;重算资格,失败非零,不信任回执中的PASS或调用者布尔值。明确校验期望发布commit。 |
| scripts/qa/run-release-gate.sh | verify-candidate维持无部署;ci-release/all复用同一验证路径或消费显式指定有效回执,再走production-identity-bootstrap;deploy只消费回执,不隐式跑全量。保留all额外smoke-local,安排在唯一verify-candidate之前;不将它冒充必需阶段,也不重复static/full-local。 |
| deploy/trialrun/production-identity-bootstrap.mjs | 正常发布在读取SSH配置/探测真实目标前要求回执;保留身份发现、origin核验和数据库身份。进入deploy-existing前再核对。identity-only/preflight-only明确只读分支不产生发布资格。 |
| deploy/trialrun/deploy-existing.sh | 正常发布在远端聚合体检前要求回执;保留来源/身份/迁移/回滚窗口preflight,并在调用deploy.sh前用实际source_commit再校验。只读preflight仍能单独运行且必须退出。 |
| deploy/trialrun/deploy.sh | 参数合法性检查后、来源fetch或环境读取前验证;取得SOURCE_COMMIT后绑定同一SHA,并在第一条远端写入mkdir之前再次重验。保留git archive不可变同步、existing/initialize边界、数据库生命周期和部署健康检查。 |
策略摘要显式纳入新增消费入口;全仓源码快照、工具链/CI并发、证据文件摘要、分层清单、清理完成与clean判据全部保留。无schema/业务/迁移/账号/编号/差旅状态变更。仅这5个执行文件及直接配套测试、已有部署规约/任务记录;若暴露新的业务风险另列。
### 回执输入与无重复执行合同
- 拟用RELEASE_GATE_RECEIPT_DIR传递显式回执目录,仅允许工作树artifacts/release-gate下的受限真实目录;沿用反路径逃逸/符号链接/证据SHA检查。RELEASE_GATE_ARTIFACT_DIR继续只表示生成新回执的位置,两者职责不混用。
- 共享断言重算完整release-predeploy资格,并把当前HEAD、回执commit及实际SOURCE_COMMIT绑定;缺失、失效、dirty、工具/策略变化或不完整均拒绝。不得产生GATE_PASSED、SKIP_RELEASE_GATE等信任开关,不自动选择“最新”或历史通过回执。
- verify-candidate仅验证。ci-release/all是显式完整发布命令:有显式回执则重验复用;无回执才调用verify-candidate一次。bootstrap/deploy-existing/deploy.sh及deploy模式无回执立即拒绝并提示先验证,不自动启动耗时全量;这替代旧§2“高层缺回执自动验证”的默认行为。
- 下层重复的是廉价回执校验,不是测试执行。verify-candidate绝不回调部署,生产引导器绝不回调ci-release/all;成功路径部署链只调用一次。
- 对PRODUCTION_IDENTITY_ONLY/PRODUCTION_READ_ONLY_PREFLIGHT严格校验0/1。只读入口不要求发布回执,但任何只读标记都不能继续进入写入;ci-release/all/deploy拒绝以只读标记伪装发布成功。原纯只读脚本不变,本轮也不实际执行它们。
- 阻断时只输出稳定原因与下一步,不回显环境/SSH配置/原始payload。回执不是部署授权,也不是不可伪造签名;源码有写权限的操作者不在防伪承诺内。
### Claude负责的限定验证(获批实施后)
主会话实现后交Claude执行测试与只读review;现在不运行。本轮新增/扩充现有release-gate-result.test.mjs、release-gate-shell.test.mjs,必要的跨入口执行测试放release-gate-enforcement.test.mjs及私有fixture;复用已有部署生命周期/来源测试,不新增生产测试开关。
1. 表驱动覆盖6种入口:ci-release、all、deploy、bootstrap、deploy-existing、deploy.sh。缺/旧/错profile/伪PASS/dirty/不完整回执时,正常发布不得读取真实配置或触发远端命令;写动作计数必须0。
2. 合成有效回执只允许原生产链一次;核static/full-local至多一次、显式回执复用不再跑static/full-local(all仍保留额外smoke-local)、无递归;仅捕获fake命令,不真实发布。
3. 上层已过、下层调用前改HEAD/index/受控文件或篡改证据时仍拒绝;实际归档SOURCE_COMMIT与受验SHA不同必须拒绝。
4. 独立只读分支可完成fake只读检查但写动作0;各种内部/skip/只读标记不能变成写入豁免。来源、迁移、init/server/worker隔离与120秒健康检查合同保留。
5. 对真实入口/判定源码作隔离副本变异:去掉上层前置、下层重验或放宽commit/clean判定时,对应负例必须失败;不只grep字符串。所有SSH/Docker/rsync/git-fetch、SSH配置和真实env读取必须受测试替身封闭,禁止真实外联/配置读取,临时文件仅清理本轮owner。
定向命令(实际补丁落地后Claude执行,数量按实际记录,不提前写通过):
```bash
node --test scripts/qa/tests/release-gate-result.test.mjs scripts/qa/tests/release-gate-shell.test.mjs scripts/qa/tests/release-gate-enforcement.test.mjs
npm test --prefix server -- tests/unit/scripts/deployment-db-lifecycle.test.js tests/unit/scripts/deployment-safety-contract.test.js tests/unit/scripts/check-source-provenance.test.js
```
仅因修改相关文件才纳入对应测试,不跑浏览器/PG/业务全量。规划时新enforcement测试尚不存在;现已落地,命令待Claude执行,不能当作已通过。若验证需要超出这里的范围,先报告缺口;不恢复冻结差旅、不修无关旧警告。
### 提交、完整验收与回退
- 本地补丁获批→主会话实施→Claude定向测试及只读复核→主会话按批准范围提交最终输入;不先跑完整再改产品/QA代码。
- 最终候选冻结后,完整门禁交Claude一次执行;期间不改受管代码、测试、任务或规约,只写ignored证据。失败保留并按具体缺陷处理,不盲目重跑。
- 完整通过后仍须另获推送/部署授权;首次部署独立执行/回执比对及同候选12项公网义务保留,不能把NOT_RUN_LOCAL或本地PASS当成公网通过。生产编号与银行接受性另列。
- 若R1补丁有误,停止发布并保留失败,修复或按授权回退本补丁;不增加disable开关,不借回退无门禁发布。没有数据库/真实配置变更,无须数据恢复;既有线上版本不受本地规划/修复影响。
## 2026-09-19 r5-fixed-r1登录复用边界
四完整文件31项30通过/1失败,采购整链、R75及视觉25项全部通过;付款在经理复核登录后按已有redirect参数返回付款页,而共享login仍应验portal。最小修正仅允许显式reuseLoginPage且当前为无search/hash的规范/login时省略goto;带redirect的登录页必须走原goto('/login')清除返回目标。保留真实表单和portal/profile断言、全部付款下游及300秒;不修改认证产品或接受任意登录落点。原失败保留,类型检查后相同四完整文件复验,再从static完整候选。
@@ -1,4 +1,64 @@
## 2026-09-19 用户已授权主会话执行两笔本地提交(最新)
## 2026-09-19 R1定向验收完成,保存本地候选后进入一次完整门禁(最新)
Claude单次诊断52/52通过、exit0、57.515秒,原三例2.027/1.837/1.940秒,5秒预算不变;27条执行输入前后零漂移。主会话实算与原125项及另两份46项所依赖代码一致,六项独立代码review均PASS。F1原“三次require导致这52项超时”的归因被独立更正;原exit1/3次超时保留,实际成因仍未确定,不宣称已根治或整组98曾一次全绿。
决策:不修改无证据的生产/测试逻辑,不合并三处校验,不提高预算。F1不作为已知R1产品缺陷阻止本地提交,保留时序观察;最终完整门禁仍必须独立通过。证据见r1-enforcement-20260919/f1-triage-20260919/diagnostic-reception.json。
- [x] 五执行文件接入、跨入口保护及源码变异测试、部署规约完成。
- [x] 125项定向通过、六项独立代码复核通过;原失败文件52项补充验证通过,历史失败保留。
- [x] 主会话决定按用户既有明确授权提交本轮15路径,不含ignored证据。
- [ ] 本地提交执行/候选SHA及clean核验以artifacts/qa-governance/r1-enforcement-20260919/local-commit/result.json为准。
- [ ] 提交后冻结整树(含任务记录),Claude一次verify-candidate;不重复前置定向测试,不拼接旧结果。结果只写ignored路径,避免记录变更使候选dirty。
- [ ] 推送/部署另行授权;12项同候选公网验收、生产编号/银行真实接受性及差旅冻结等外部边界保持。
本轮受测执行/测试/spec代码未在独立验证后改变,仅本任务四份接收/决策记录变化。本提交用于固定最终待验输入,不能宣称新SHA已有完整通过。完整门禁具体执行说明在artifacts/qa-governance/r1-enforcement-20260919/final-gate-claude-request.md;主会话不启动测试或部署。
## 2026-09-19 R1独立结果接回;F1归因更正与单文件诊断(最新)
Claude组1为125/125通过、无跳过;组2为98项中95通过/3个5000ms超时,exit1;组3治理及diff检查通过。六项只读代码复核均PASS。接收前实算原15份after及28条输入全部匹配;报告/日志原样保存,reception登记其SHA及四份后续任务记录变更。
主会话静态核实:生命周期测试只提取deploy.sh的REMOTE heredoc执行;before/HEAD/current片段均8419字节、SHA=d47bdba0ae64f6ca31e5af7d08b067671434fc1c42090d04050296d3a88baff1。三处新增require都在片段外、在该套件中不执行;测试及Python/CJS夹具、Vitest/Compose输入亦未变。因此原F1“新增三次node校验导致这52项超时”的归因不成立,不能据此合并保护;三项超时事实与原因未定状态保留。
- [x] 接收125通过、六项独立静态PASS及原组2失败;旧证据不覆盖。
- [x] 排除F1指称的直接执行路径,保留三处发布重验和原5秒预算。
- [ ] Claude仅对未改的deployment-db-lifecycle.test.js 52项执行一次带本地资源采样的定向诊断;不重跑另外已通过125/46项或全量。
- [ ] 接回诊断后决定必要修复/提交;本批仍未提交,deploymentEligible=false。
本轮只改这四份任务记录并追加ignored证据/诊断封装器;执行/测试/spec源码均保持Claude审查后的字节。主会话不运行测试,不凭当前压力猜测前次原因,不以一次补充通过改写原失败。执行边界、精确命令及输入摘要见artifacts/qa-governance/r1-enforcement-20260919/f1-triage-20260919/claude-request.md。
## 2026-09-19 R1本地实现完成,待Claude定向验证(最新)
已完成五个执行文件接入:共享require断言重算资格并绑定HEAD/回执/来源提交;正常发布入口缺回执立即拒绝;ci-release/all无显式回执时只调用一次verify-candidate,有回执则重验;all仍保留额外smoke-local。bootstrap→deploy-existing→deploy.sh各层独立复验,最后复验在远端mkdir之前。只读标记严格0/1,空值无豁免,只读分支保留并终止。拒绝发布时不调用可能读真实配置的失败收集器。回执路径统一相对仓库解析。
原shell测试共用fixture已抽出,新增跨入口行为/源码变异测试;fake环境只用合成HOME/SSH配置、私有PATH和受控命令,不执行真实远端脚本。生命周期仍由既有独立测试验证。没有放宽断言、重试、业务范围或全量门禁。部署规约首节同步稳定接口与时序。
主会话仅执行node --check、bash -n和git diff --check,结果见syntax-checks.json;未执行任何unit/browser/full-local/PG测试,未运行真实发布入口。测试结果及独立复核仍PENDING,当前候选deploymentEligible=false。本批未提交,待Claude通过后按已有授权本地提交;之后才冻结最终候选,安排一次完整门禁。旧budget-full-r1 FAIL/130、各历史通过及三条例外均保持原归属。
交接:artifacts/qa-governance/r1-enforcement-20260919/claude-request.md。包含before快照、15路径增量清单/SHA、incremental-review.diff与受测输入摘要。Claude仅执行六份指定测试及治理检查、只读审增量,不改代码/任务/原始证据、不接触线上。独立报告回收后再登记真实计数,不预填PASS。
## 2026-09-19 R1本地实施已获批准(最新)
用户明确回复“是”,批准design顶部五文件接入、Claude定向测试/只读复核及最终clean候选一次完整门禁顺序。主会话实施与自查,测试执行交Claude。无推送/生产部署授权。底层首个远端写入实际是mkdir,最后复验必须位于它之前,不能只放在rsync前。
- [x] 具体方案及执行顺序获批。
- [x] 五入口文件与直接配套测试落地;仅语法/格式检查通过,运行验证交Claude。
- [ ] Claude定向验证和独立复核。
- [ ] 验证通过后本地提交最终候选。
- [ ] 冻结候选一次完整门禁;外部义务独立保留。
## 2026-09-19 R1具体方案已完成(最新)
用户同意先准备R1接入方案。已只读核对统一runner、共享回执、bootstrap、deploy-existing、底层deploy.sh与现有fake测试。方案落design顶部:5个执行文件复用一个断言,显式回执目录/commit绑定,正常写入多层重验;保留只读分支、既有生产安全合同及零豁免。直接包装器缺回执拒绝,不偷偷启动全量;ci-release/all只进行一次明确的完整验证或复用有效回执。
- [x] 具体入口、变更范围、输入/拒绝/只读行为与回退方案已落盘。
- [x] Claude定向测试矩阵及预计两条命令已列明;不提前执行不存在的新测试,不重跑浏览器/业务全量。
- [ ] 单独批准R1本地接入与新版执行顺序;目前没有修改执行代码或实际启用。
- [ ] 主会话实施,Claude定向验证与独立复核,然后保存最终候选。
- [ ] 最终clean SHA一次完整门禁;推送/部署及12项公网验收按原独立授权边界执行。
本次只更新本任务PRD/design/implement/task.json,不提交、不测试、不连接生产/ARM,不读取真实配置密钥备份。此前本地提交、原回执和冻结包保持。
## 2026-09-19 用户已授权主会话执行两笔本地提交(已完成)
用户明确要求“提交就你来提交吧,不用发给claude了”。主会话接管最终分组及本地提交,之前Claude打包请求不再等待执行;授权限本地提交,不含推送、R1启用、部署、生产编号或真实业务动作。
@@ -1,3 +1,25 @@
## 2026-09-19 R1本地补丁可提交,最终完整验收待执行
独立代码复核六项及125项定向检查通过;生命周期52项在原5秒预算下补充通过,原3项超时与未知成因保持记录。没有已证实的R1缺陷需要改代码,按已有授权保存最终候选。本地定向完成不勾销完整验收:冻结clean提交后一次verify-candidate,外部部署/公网义务仍分别授权与验收。
## 2026-09-19 R1限定验收最新余额
125项强制门禁测试与六项独立代码复核PASS;部署生命周期文件3项5秒超时仍开放。该测试执行的REMOTE片段修改前后完全相同,新增R1校验未进入其执行路径,不采纳合并校验建议。按design最新诊断计划仅查这一文件,保留原预算/失败,不启动全量或发布。
## 2026-09-19 R1当前状态:本地实现完成,未运行验证
五文件接入与跨入口合成测试已落地,主会话语法/格式检查通过;Claude定向测试和独立复核待回。不勾销R1最终验收,不具备发布资格;本批未提交/推送/部署。最新清单与交接见implement顶部,以下均保留各自历史时点。
## 2026-09-19 R1本地接入及新版顺序已批准
用户明确确认design顶部方案:先本地接入拒绝未验候选、Claude定向验证及独立复核,再提交最终候选、一次完整验收;完整通过前不实际发布。此段替代旧R1“本地接入前先完整全绿”的时序限制,部署与推送仍另行授权。历史结果不抵扣新输入。
## 2026-09-19 当前阶段:R1接入方案已细化,待单独批准实施
两笔本地提交已完成(729d9057、1f8d5b65);预算补丁独立复核及两项必修关闭。当前R1仍未接入,当前候选完整门禁仍未通过,12项公网未执行。本轮用户同意先准备R1方案,未运行测试或真实入口;具体5文件范围、回执接口、只读边界、Claude定向矩阵和一次最终完整验收顺序见design.md顶部R1接入方案。
待批准的具体变化:在本地接入拒绝未验候选的校验,最终clean SHA完整通过后才允许实际发布;直接部署包装器缺回执立即拒绝,不隐式启动全量。现行“真实启用另行授权”边界保留;本轮只有规划批准,不等于接入、推送或部署授权。以下旧“最新”记录仅为各历史时点,现状以本段及implement顶部为准。
## 2026-09-19 最新本地验收
g20-full-r6同一冻结候选完成static及12个full-local阶段,4437后端通过/1原条件跳过、372本地浏览器全过,零失败/跳过/重试。7组33页完整;PARTIAL仅dirty_candidate,localChecksPassed=true,无部署资格。R1真实入口启用及独立、公网12义务、旧registry保护例外仍开放;完整阶段/计时/来源边界与余额见implement顶部。历史FAIL原样保留,不能把本地通过写为所有交付完成。
@@ -2,7 +2,7 @@
"id": "release-gate-integrity",
"name": "release-gate-integrity",
"title": "部署门禁完整性与候选验收回执",
"description": "G18在用覆盖和三处产品修复已本地验证;原四文件并发4/4、认证/OCR18/18通过。全量合同、WebKit、R1、独立及真实操作仍开放。",
"description": "R1本地接入、125项定向测试及六项独立复核通过;生命周期52项补充通过,原3项超时保留且归因更正。按授权保存最终本地提交,等待同一clean候选一次完整门禁及独立授权后的公网义务。",
"status": "in_progress",
"dev_type": null,
"scope": "release-gate",
@@ -21,7 +21,7 @@
"children": [],
"parent": null,
"relatedFiles": [],
"notes": "2026-09-19 根据用户对重复全浏览器成本的反馈,中止budget-full-r1;后端4446与PG28通过保留,浏览器29通过/4中断/339未运行,回执FAIL/130,环境清理PASS。待Claude实际补丁复核,发布完整门禁延期,不再重跑无关测试。\n2026-09-19 预算并发修复已定向通过 PG28/单测526;待新完整候选与独立审查,旧r6为历史输入。\n2026-09-19 用户独立核实确认4437/r6时序及累计diff基线,并报告当前采购测试75 passed/EXIT=0、SHA一致;数量与证据归属争议闭合。完整独立业务review、发布边界及两条例外保持。\n2026-09-19 用户转述局部审查已核对:UTC/北京时间混用及累计diff误作运行后diff;r6实际在P10之后,4437准确,1162源码快照条目与当前一致。证据review-provenance-20260919.json,完整独立review仍PENDING,原证据不改。\n2026-09-19 g20-full-r6:4437后端通过/1原跳过,372本地浏览器全过;PARTIAL仅dirty_candidate,独立PENDING/无部署,旧registry保护例外保留且无新增漂移。当前余额见implement顶部。\n2026-09-18 G19分层验收已批准并本地实施验证,74+7合成检查和2条冻结保护通过;公网12义务/完整门禁/WebKit/R1/独立及真实事实保持开放。\n2026-09-18 G18:QA39、产品131、并发4/4、认证/OCR18/18,33路由项与R108通过;G18时点发现64/363;G19最新发现见g19-discovery/summary.json,旧完整full-r2仍失败。候选与余项见local-coverage-g18-20260918。无提交部署,独立PENDING。\n2026-09-18 G16/G17:普通 full-r2 65/359仍失败;14原失败及2串行缺失已有定向通过,1WebKit/2冻结差旅保留。当前发现64/358,有临时SHA采集告警;QA/治理/保护与增量候选见 full-gates-followup-20260918。整体in_progress、独立PENDING,六组余项见implement顶部,无提交部署/外部操作。\n2026-09-18 G12/G13本地收口,G14真实PWA通过但WebKit1条未验;原58现53重验/4排除/1未验,原历史不改。G15复核及外部事实清单与新候选在retained-gates-closeout-20260917;普通full-local/AC7完整/R1和独立PENDING,不提交部署或真实操作。\n2026-09-17 W8本地对账:四处迁移状态谓词修复已随b87cc55发布;该事实仅闭合追加预检阶段,不代表R1普通完整门禁、阶段B合同用例或58条诊断观测已通过。R1/阶段B继续原冻结,先按保留在用场景分类再另定限定批次,不盲修待精简旧测试。 原回执从主副本接回,见implement顶部;本轮无新的远端/提交发布,原验收未补勾。\n2026-09-07 §10已实施并完成一次环境有效的全套诊断,增量待用户独立复核。原21文件加6个QA环境/测试文件,共27文件;本轮产品源码和业务spec零改动,51项针对性验证通过。前三次启动在环境前置拒绝,资源已核对清理;修复跨user namespace读取父namespace的EACCES,改由父runner经本轮Unix IPC即时实测,不降级。第四次环境PASS、源码前后不变:65文件275项,199 passed/54 failed/4 timedOut/18 skipped,58条观测涉及36文件,不是独立产品缺陷计数;诊断仍PARTIAL/2。服务端193文件1692项通过,workflow场景8两个来源仍失败。R102 6/6通过;合同仍卡旧更多,续约/归档未执行;PWA在serviceWorker.ready超时且该失败无trace附件。诊断67分03秒不是普通全绿成本。旧207撤销决策资格但保留原件;阶段1、阶段B、场景8、经理缺口和R1均未扩大执行。无提交/push/归档/部署/生产操作,整体任务未完成。",
"notes": "2026-09-19 R1定向125通过、另外两份46通过、生命周期52补充通过;原组2 exit1及3次超时保留,新增require不在其执行片段内。六项代码独立复核PASS,无理由合并保护或增预算。允许本地提交,最终完整门禁尚未执行;不具备发布资格。\n2026-09-19 根据用户对重复全浏览器成本的反馈,中止budget-full-r1;后端4446与PG28通过保留,浏览器29通过/4中断/339未运行,回执FAIL/130,环境清理PASS。待Claude实际补丁复核,发布完整门禁延期,不再重跑无关测试。\n2026-09-19 预算并发修复已定向通过 PG28/单测526;待新完整候选与独立审查,旧r6为历史输入。\n2026-09-19 用户独立核实确认4437/r6时序及累计diff基线,并报告当前采购测试75 passed/EXIT=0、SHA一致;数量与证据归属争议闭合。完整独立业务review、发布边界及两条例外保持。\n2026-09-19 用户转述局部审查已核对:UTC/北京时间混用及累计diff误作运行后diff;r6实际在P10之后,4437准确,1162源码快照条目与当前一致。证据review-provenance-20260919.json,完整独立review仍PENDING,原证据不改。\n2026-09-19 g20-full-r6:4437后端通过/1原跳过,372本地浏览器全过;PARTIAL仅dirty_candidate,独立PENDING/无部署,旧registry保护例外保留且无新增漂移。当前余额见implement顶部。\n2026-09-18 G19分层验收已批准并本地实施验证,74+7合成检查和2条冻结保护通过;公网12义务/完整门禁/WebKit/R1/独立及真实事实保持开放。\n2026-09-18 G18:QA39、产品131、并发4/4、认证/OCR18/18,33路由项与R108通过;G18时点发现64/363;G19最新发现见g19-discovery/summary.json,旧完整full-r2仍失败。候选与余项见local-coverage-g18-20260918。无提交部署,独立PENDING。\n2026-09-18 G16/G17:普通 full-r2 65/359仍失败;14原失败及2串行缺失已有定向通过,1WebKit/2冻结差旅保留。当前发现64/358,有临时SHA采集告警;QA/治理/保护与增量候选见 full-gates-followup-20260918。整体in_progress、独立PENDING,六组余项见implement顶部,无提交部署/外部操作。\n2026-09-18 G12/G13本地收口,G14真实PWA通过但WebKit1条未验;原58现53重验/4排除/1未验,原历史不改。G15复核及外部事实清单与新候选在retained-gates-closeout-20260917;普通full-local/AC7完整/R1和独立PENDING,不提交部署或真实操作。\n2026-09-17 W8本地对账:四处迁移状态谓词修复已随b87cc55发布;该事实仅闭合追加预检阶段,不代表R1普通完整门禁、阶段B合同用例或58条诊断观测已通过。R1/阶段B继续原冻结,先按保留在用场景分类再另定限定批次,不盲修待精简旧测试。 原回执从主副本接回,见implement顶部;本轮无新的远端/提交发布,原验收未补勾。\n2026-09-07 §10已实施并完成一次环境有效的全套诊断,增量待用户独立复核。原21文件加6个QA环境/测试文件,共27文件;本轮产品源码和业务spec零改动,51项针对性验证通过。前三次启动在环境前置拒绝,资源已核对清理;修复跨user namespace读取父namespace的EACCES,改由父runner经本轮Unix IPC即时实测,不降级。第四次环境PASS、源码前后不变:65文件275项,199 passed/54 failed/4 timedOut/18 skipped,58条观测涉及36文件,不是独立产品缺陷计数;诊断仍PARTIAL/2。服务端193文件1692项通过,workflow场景8两个来源仍失败。R102 6/6通过;合同仍卡旧更多,续约/归档未执行;PWA在serviceWorker.ready超时且该失败无trace附件。诊断67分03秒不是普通全绿成本。旧207撤销决策资格但保留原件;阶段1、阶段B、场景8、经理缺口和R1均未扩大执行。无提交/push/归档/部署/生产操作,整体任务未完成。",
"meta": {
"archiveOutputProtection": "implemented_pending_independent_review",
"registeredLocalEvidenceVerified": 14,
@@ -150,7 +150,7 @@
"remediationStatus": "LOCAL_VERIFIED_INDEPENDENT_REVIEWED"
},
"releasePreparation": {
"status": "LOCAL_COMMIT_AUTHORIZED_RELEASE_PENDING",
"status": "LOCAL_COMMITS_COMPLETE_R1_PLAN_READY",
"executor": "main Codex session",
"request": "artifacts/qa-governance/release-preparation-claude-request-20260919.md",
"scope": "read-only candidate inventory and actionable release preparation",
@@ -170,6 +170,50 @@
"commitEvidence": "artifacts/qa-governance/local-commits-20260919",
"firstLocalCommit": "729d90576f25ba658656508af1af32a179aa7057",
"commitResultReceipt": "artifacts/qa-governance/local-commits-20260919/result.json"
},
"r1IntegrationPlan": {
"status": "LOCAL_REVIEWED_FINAL_FULL_GATE_PENDING",
"planningApproved": true,
"implementationApproved": true,
"enforcementEnabled": true,
"baselineCommit": "1f8d5b658a9fcae15be192af8c82ab557f88a046",
"designSection": "R1 接入方案(2026-09-19,已批准本地实施)",
"executionFiles": [
"scripts/qa/release-gate-result.mjs",
"scripts/qa/run-release-gate.sh",
"deploy/trialrun/production-identity-bootstrap.mjs",
"deploy/trialrun/deploy-existing.sh",
"deploy/trialrun/deploy.sh"
],
"testExecutor": "Claude independent session",
"testsRun": true,
"pushAuthorized": false,
"deploymentAuthorized": false,
"approval": "用户确认本地R1接入与先实施再最终一次完整门禁的顺序;不含推送或部署",
"enforcementScope": "local uncommitted code only; no real deployment executed",
"localEnforcementImplemented": true,
"testStatus": "SCOPED_PASS_WITH_RECORDED_PRIOR_TIMEOUT",
"independentReview": "PASS_6_POINTS_CAUSE_CORRECTION_RECEIVED",
"deploymentEligible": false,
"evidenceDirectory": "artifacts/qa-governance/r1-enforcement-20260919",
"handoff": "artifacts/qa-governance/r1-enforcement-20260919/claude-request.md",
"reviewReception": "artifacts/qa-governance/r1-enforcement-20260919/review-reception.json",
"nextHandoff": "artifacts/qa-governance/r1-enforcement-20260919/final-gate-claude-request.md",
"f1": {
"discoveryStatus": "THREE_TIMEOUTS_CONFIRMED",
"attribution": "R1_DIRECT_CAUSE_DISPROVED",
"remediationStatus": "NO_CODE_FIX_INDICATED_SCOPED_REVALIDATION_PASS",
"historicalRootCause": "UNDETERMINED",
"supplementalRun": {
"tests": 52,
"passed": 52,
"exitCode": 0,
"budgetMs": 5000
},
"productionChecksPreserved": true
},
"diagnosticReception": "artifacts/qa-governance/r1-enforcement-20260919/f1-triage-20260919/diagnostic-reception.json",
"localCommitEvidence": "artifacts/qa-governance/r1-enforcement-20260919/local-commit/result.json"
}
}
}