release: fix RC-04 clean-checkout evidence validation

This commit is contained in:
2026-09-20 07:09:22 +08:00
parent 62d7d4476c
commit 891e352ab4
6 changed files with 116 additions and 9 deletions
@@ -407,7 +407,7 @@ Gate A 没有启动服务、访问实时数据库、调用真实模型、部署
| RC-01 已知代码与发布安全 | `local_same_candidate_closed_pending_rc06_target_reverification` | 已知 Contract API 身份伪造写入口均已修复,独立复扫未发现剩余 P0/P1;专项 26/26、actor/report 30/30,且已并入 54 文件当前候选组合。尚缺的是目标 PostgreSQL/反向代理上下文复验,不是新的 RC-01 源码 | RC-06 验证 PostgreSQL 与实际代理上下文。AI Platform 的 `X-User-Id` 只允许由持有 service key 的受信内部调用方断言;若未来允许不完全可信客户端直连,必须先升级为不可伪造的签名身份上下文 |
| RC-02 产品 Golden | `technical_closed_current_source_pending_rc06_legal_publication` | fresh v4 当前源码技术 31/31、相关测试 32/32;仍为 0/31 法律批准,且没有 HTTP/SQL/线上发布 | 相关输入/hash 不变时复用 fresh v4;改变则只重跑受影响项。法律批准或内部限时风险接受、持久化发布和在线 hash 继续由 RC-06 处理,不伪造 |
| RC-03 同候选确定性质量 | `closed_current_candidate` | Windows:synthetic 144/144、Python 1,210 pass+3 platform skip、扩展 319/319、Web 192/192、Golden 31/31+32/32、OpenAPI fresh/tool pass;Linux:同一 ledger 实现和测试字节的 output/ledger/attempts 3/3 pass、0 skip。补验后 452 source pins missing 0、mismatch 0,自包含 v3 聚合索引已绑定收据。失效的 synthetic v1~v4 C-TEMP 及两个 invalid-c-temp 仍单独保留,未拼接 | 当前字节 RC-03 退出条件已满足,严格转入 RC-04。若后续源码、安全实现、测试或冻结输入发生变化,则只作废并重跑受影响门禁,同时递增索引版本;不得改写原始 Windows/Linux JUnit |
| RC-04 不可变可安装候选 | `rc04_1_rejected_manifest_path_false_positive_rc04_2_fix_pending` | 已完成 9,358 条预冻结路径的独立审阅:500 纳入、8,858 保留排除,secret/runtime、manual、gap、missing anchor、ownership blocker 均为 0。`.1` commit `2770d738185589c399c5740c4fc6cc25a4d65c2f` / tag `v2-multiscene-rc04-20260920.1` 保持不可变,但 manifest 实跑把 5 个合法密钥托管源码路径误判成密钥材料,已失败关闭且不得构建。规则现收窄为只允许 `src/tests/migrations` 下的明确代码后缀,实际密钥材料仍拒绝;当前工具回归已以 v3 JUnit 固定,43/43 通过。四个 Dockerfile 基础镜像已固定到 Linux amd64 manifest digest,根 `.dockerignore` 已隔离本地缓存、文档、环境文件和运行态数据;Contract 38 与 AI 41 依赖锁的 pinned audit 为 0 known vulnerability。数据库共址主机当前根盘 92%、健康门禁失败且有容器反复重启,禁止直接使用默认 Docker/buildx 构建 | 只纳入 manifest 规则修复、回归和状态证据,生成递增 `.2` commit/tag 后重新运行 source manifest/archive。Linux 构建仅允许在独立 builder,或在健康门禁恢复后的维护窗口使用 `/home` 独立 BuildKit/containerd root、串行和严格资源限额,绝不写入既有 `/var/lib/docker`;随后记录 image/base digest、SBOM、扫描、import/startup/health 及安装/回退收据 |
| RC-04 不可变可安装候选 | `rc04_1_and_rc04_2_rejected_rc04_3_clean_checkout_fix_pending` | 已完成 9,358 条预冻结路径的独立审阅:500 纳入、8,858 保留排除,secret/runtime、manual、gap、missing anchor、ownership blocker 均为 0。`.1` commit `2770d738185589c399c5740c4fc6cc25a4d65c2f` / tag `v2-multiscene-rc04-20260920.1` 保持不可变,但 manifest 实跑把 5 个合法密钥托管源码路径误判成密钥材料,已失败关闭且不得构建。`.2` commit `62d7d4476c08c8d72419665c3c0e1a6b3ef1c0f9` / tag `v2-multiscene-rc04-20260920.2` 成功生成确定性 manifest 和源码包,但冻结后干净 checkout 回归为 43 项中 1 项失败:测试错误强制要求 ownership 明确排除的原始 QA 证据,先前的脏工作区掩盖了该依赖;`.2` 因此也已不可变地否决。规则现收窄为只允许 `src/tests/migrations` 下的明确代码后缀,实际密钥材料仍拒绝;回归现要求发布源码/测试必须存在,而外置保留的 generated evidence 只在存在时复验哈希。四个 Dockerfile 基础镜像已固定到 Linux amd64 manifest digest,根 `.dockerignore` 已隔离本地缓存、文档、环境文件和运行态数据;Contract 38 与 AI 41 依赖锁的 pinned audit 为 0 known vulnerability。数据库共址主机当前根盘 93%、健康门禁失败且有容器反复重启,禁止直接使用默认 Docker/buildx 构建 | 只纳入干净 checkout 回归修复、回归和状态证据,独立复核后生成递增 `.3` commit/tag;必须先在冻结后干净 checkout 重跑 43 项并通过,才允许生成 source manifest/archive。Linux 构建仅允许在独立 builder,或在健康门禁恢复后的维护窗口使用 `/home` 独立 BuildKit/containerd root、串行和严格资源限额,绝不写入既有 `/var/lib/docker`;随后记录 image/base digest、SBOM、扫描、import/startup/health 及安装/回退收据 |
| RC-05 真实模型质量与耗时 | `blocked_by_rc04_not_started_full_real_matrix` | 当前 RC 没有真实矩阵;历史真实尝试 2 次已计入,总预算最多剩 278 次;尚未验证最终候选 `codex_cli / gpt-5.6-sol / medium / 300 / fallback=false` | 冻结 144 个任务,代表探针属于矩阵首批而不是额外调用;基础 264 次,最多 14 次真实修复余量;0 unknown;失败/取消/降级/接管全进分母;关键主体、金额、日期、事实无静默丢失,正常链 schema/终态无阻断;按 operation 报 p50/p95/超时,未达三分钟只披露异步体验 |
| RC-06 部署、发布与双工作区 UAT | `waiting_for_rc04_rc05_and_external_uat_inputs` | 未完成目标备份、两库 current、迁移、RC 镜像部署、60资产/14 Prompt 批次批准和 apply/hash;没有管理员+2 普通成员+2 工作区的完整证据;31 项资产仍为 `needs_legal_review` | 获得目标主机、备份/迁移/部署授权、发布负责人和两个普通账号;具名批次批准必须逐项记录法律批准,或仅对内部受控试点记录有 owner/期限/范围/补偿控制的风险接受和使用限制,未处置项不得进入 RC-07 内部 Go;每个资产走适用正常 API 链,8 核心走 UI;验证跨租户、取消/幂等/关页续接/worker restart/人工接管、下载及原稿不覆盖。法律文书不强迫走不适用的签署/撤回 |
| RC-07 恢复与内部放行 | `waiting_for_rc06` | 旧恢复证据不绑定当前 RC;没有当前候选的隔离恢复、RPO/RTO、rollback/forward、操作包、证据索引和内部 Go/No-Go | 在隔离 namespace 恢复当前候选,实测 RPO/RTO并核验版本/hash/关键记录;完成 rollback/forward;交付安装、升级、运维、回退、发布清单、已知限制和证据索引;单独作出内部受控 Go/No-Go |