17 KiB
17 KiB
RC-05~RC-08 放行阻塞收口报告
日期:2026-09-21
工作分支:codex/multiscene-rc04-20260920
起始提交:cac183b2 / v2-multiscene-rc04-20260920.10
1. 结论
本轮完成了 RC-05~RC-08 的代码门禁加固和跨平台安全回归,但没有执行真实 144 场景模型矩阵、发布、数据库迁移、真实恢复演练或公众切流。
- RC-05 代码门禁:可进入不可变候选冻结准备。
- RC-06 离线发布批次门禁:可进入不可变候选冻结准备;真实发布证据未完成。
- RC-07 回退规划器:可进入不可变候选冻结准备;真实恢复演练未完成。
- RC-08 生产预检、反滥用、Redis 隔离和 TLS 快照门禁:可进入不可变候选冻结准备;真实生产验收和外部材料未完成。
- 内部受控试点:
NO_GO。 - 公众开放:
NO_GO。
代码门禁通过不等于真实放行证据已经形成。当前工作树尚未冻结为新的唯一 commit/tag/source manifest,也未重建当前字节对应的镜像、SBOM、安全扫描和安装包。
2026-09-27 更新:单审核人、RC-06 批次签名和恢复/回退契约修改已经使本文 2026-09-21 记录的“最终文件 SHA-256”失效。旧 hash 与 Linux 结果仅作历史追溯,不代表当前工作树;在新的唯一提交冻结前不生成替代正式 hash、镜像或放行证据。
2. RC-05 真实模型评测门禁
已完成
- 单一权威 campaign 根由
YUQEI_RC05_RUN_REGISTRY_DIR固定为源码工作树外的预创建绝对路径;命令行路径必须与该配置解析到同一目录。跨输出目录、计划、回执和局部账本不能重置 280 次全局调用上限与 16 次修复上限,运行证据也不得重新写回发布源码树。 - 历史回执 v3 严格绑定 identity、claim、finish、before、after、job、audit、request、response、provider、model 和 SHA-256 链。
- 历史失败始终进入分母,只能由当前冻结计划中相同 case 和 operation 的成功证据修复。
- 当前 provider outcome、business outcome、质量字段和每场景计划操作覆盖必须全部严格通过;零调用、缺少必需操作、额外操作或修复操作不成对均不能判绿。
- case outcome v2 绑定结果文件、尝试投影、after evidence、预期操作和实际操作投影;断点续跑篡改结果不能翻绿。
- 每个场景执行期间持有 source pin 文件描述符并校验前后字节、路径身份和时间属性,阻断“执行中修改、结束前恢复”的 TOCTOU。
- 当前真实证据强制校验 job、audit、ledger 三方 provider status,以及非空 job/audit 身份、固定 provider/model。
- 自动模型质量门禁与 RC-06 法律/具名批准分层,不把自动检查表述为法律批准。
验证
- Windows 广泛套件:132 passed,4 skipped,0 failed;跳过项均为当前 Windows 令牌不能创建目录符号链接。
- Linux
192.168.3.62:上述 4 项符号链接攻击回归 4/4 passed。 - Linux 使用的最终文件 SHA-256:
multiscene_call_ledger.py:820b1ace8a856502884b95e52a949b3dc08d331471220583dd82c122c2fa3d8etest_multiscene_call_ledger.py:a7c0732291522aac88378fa940e39a402bca0c28684581d4064759232c14340e
- 本轮没有新增真实模型调用。
- 已知历史调用仍为 4 次;回执 SHA-256:
c7e9c18ae7ef2f262d24335528e3b537a422618d68c67567f739e3cff09b2a3b。 - 保守剩余全局预算:276 次 provider 调用、12 次修复调用。
当前工作计划
- 文件:
multiscene-plan-rc05-working-20260921-v3.json - SHA-256:
f9fd576ddd555a7fdc3f6a69652c23f56ddbcc18659f2cbf5e0f419fc6453c97 - 144 个场景、452 个 source pins、总 provider 调用预算 280、生成和验证过程模型调用 0。
- 该文件只是冻结前工作树计划,不是正式不可变发布计划;本次将 campaign 根移出源码树后,其 source pins 已按规则失效。唯一提交冻结完成后必须从新 commit 重新生成,不能复用或改名包装该计划。
未完成
- 正式 144 场景真实模型矩阵尚未执行。
- 历史 demand draft、agency semantic 等失败尚未由最终冻结计划的同键成功证据修复。
- 源码树外的权威 campaign 根尚未初始化,避免在候选未冻结时误耗额度;初始化时必须同时设置
YUQEI_RC05_RUN_REGISTRY_DIR并向执行器传入同一绝对路径。
3. RC-06 发布批次门禁
已完成
- RC-06 manifest schema v3 强制消费当前 RC-05 完整终态、账本身份、campaign 身份和逐场景 operation coverage。
- 所有计数必须为非 bool、非负、不超预算,并在 case、operation、ledger、combined、historical 之间总和一致;耗时 observed 也必须一致。
- 144 个场景必须逐项验证 declared、mandatory、actual、call count、missing、extra 和 repair pair;coverage SHA 纳入终态身份。
- 每场景三个自动质量字段必须显式为 true,human/legal 字段必须明确保持未完成,
not_legal_approval=true。 - 历史
release_eligible仅接受 provider succeeded、非 timeout、business succeeded/resolved。 - 冻结源码和数据传递闭包先以安全文件描述符固定到私有临时树,再从固定字节加载执行;不再执行校验后的可变工作树模块。
- approval envelope v4 / payload v3 只接受陈钰麒对绑定真实 60 资产、14 Prompt、31 项处置及候选/RC-05 身份的一个批次作一次 Ed25519 签名批准;签名同时绑定 manifest 原始文件 SHA、payload SHA、确定性单页审阅摘要 SHA、候选精确 keyring epoch 和 root 签 keyring payload SHA。审批 keyring 必须由冻结 pin 对应的离线根密钥签发,并在根签 payload 中授权该候选的精确 manifest 原始 SHA;源码只固定长期 root/apply pin 和候选精确 epoch,不把候选专属 keyring payload 回写源码形成哈希循环。任何 keyring 轮换或撤销都必须提升 epoch、作废原候选并重新冻结。发布执行过程须由冻结 pin 对应的服务密钥签名 74 项 apply result 和在线 hash。验证器逐项核验,旧 schema、无根信任、跨候选 keyring、无服务签名或其他审核人均硬拒绝。
- 单审核人本机工具提供两个无复杂参数入口:
Initialize-ReleaseSigner.cmd仅首次生成加密 PKCS#8 审批密钥,Approve-ReleaseCandidate.cmd自动发现唯一待审请求、展示候选/60+14+31/RC-05 摘要、要求 6 位批准码和本人口令,签后立即调用正式验证器自验。入口只选取带 Python Software Foundation 有效签名并通过密码库预检的本机离线运行时,以-I -S -B隔离启动;20 字符长句口令、私钥及锁文件 owner/DACL、原子禁止覆盖写入、过期请求自动归档、签后请求归档及重复点击复验均由工具处理。该脚本工具不宣称抵御已控制当前 Windows 账户的恶意代码;正式操作仍以干净离线主机和固定 Python/Python DLL/cryptography 闭包 digest 为外部运行环境门禁。私钥、口令、真实签名和收据不进入源码树;根密钥和 apply 服务密钥仍是用途隔离的技术设施,不是额外审核人。操作说明见project-docs/RC06-single-reviewer-one-click-signing-runbook-2026-09-27.md。 - BUILD-05 v2 组装入口已实现默认只读预检、显式组装、输入输出隔离、禁止覆盖、临时目录完整复验和原子发布;它只组合既有严格验证器,不拉取或构建镜像、不连接数据库,也不执行安装/回退。
- RC-06/recovery/apply 三类用途隔离的技术信任引导工具已实现 DPAPI 私钥保护、固定公钥/epoch 预览或原子写入、首发恢复 keyring、候选专属 RC-06 keyring 和 apply payload 签名自验;真实技术密钥尚未生成,跨主机 apply 私钥交付在具备批准的密钥托管适配器前保持失败关闭。
- 第三方材料门禁现显式绑定分发范围:
internal-hosted仅允许同一法人内部托管且不向外传递镜像;redistributable用于任何外部交付。两种范围都要求完整许可证文本和逐项覆盖,未知/自定义许可证继续失败关闭;源码材料要求按所选范围计算,此技术规则不构成法律批准或分发许可。
验证
- 当前开发态 Windows 定向回归:RC-06+release manifest 共 101 passed,1 个 Windows 不支持符号链接的条件用例 skipped,0 failed;这不是冻结候选的正式证据。
- 2026-09-27 BUILD-05 集成态回归覆盖包 v2 组装、第三方材料、发布执行器、技术信任引导、RC-06 批次和候选 manifest 共 263 项收集用例,退出码 0(其中 2 项为既有平台条件跳过);这仍只是开发态结果,不得提升为冻结候选正式证据。
- Linux
192.168.3.62的既有 RC-06 安全读取器符号链接回归曾为 1/1 passed;新候选形成后必须对同一不可变文件重新执行并记录正式 evidence。 - 当前仍在 BUILD-05 源码收口,按强制交付规则不记录“最终文件 SHA”或生成不可变证据;只在唯一候选重新冻结后生成。
未完成
- RC-05 正式真实矩阵终态不存在。
- 陈钰麒对 60 资产+14 Prompt 精确 hash 的一次批次签名批准尚不存在,系统据此生成的 74 项 apply receipt 和在线 hash 快照也不存在。
- RC-06 离线根公钥、候选精确 keyring epoch 和 apply 服务公钥的冻结配置,以及根签候选专属 keyring,均尚未形成;在新候选冻结和 manifest 形成前验证器会保持 fail-closed。任何 keyring 轮换或撤销都必须变更精确 epoch、作废原候选并重新冻结,旧 epoch 不可重放。
- 一键工具已具备初始化、系统准备待审请求、单页摘要、交互签署与自验能力;审核密钥是否已在受控本机初始化属于仓库外状态,当前仓库没有可核验的现场证据,因此保持“外部状态未核实”。正式待审请求、候选签署及任何批准/发布证据均尚未形成;RC-06/recovery/apply 技术密钥、源码 pin 和候选专属 keyring 也仍未形成。
- 1 个起草 Prompt+8 个复核 Prompt 的真实运行时可执行快照不存在。
- 管理员+2 名普通成员、2 个工作区的完整 API/UI UAT 未执行。
4. RC-07 恢复与内部放行规划器
已完成
- 单审核人恢复契约已版本化:首发 evidence/keyring/approval/plan/readiness 为 v2;前序版本回退 evidence/plan 为 v4、keyring 为 v3、approval 为 v2。当前 keyring payload pin 和最小 epoch 未配置时严格拒绝,旧 keyring 在后续吊销状态发布后不能重放。
- 审批签名时间不得早于备份完成、恢复测试和兼容性评估。
- 当前和前序包、镜像、环境、三份 Compose 实际 SHA、源码闭包、环境/主机/Docker daemon/cluster/source DB/restore DB/Compose project 均进入签名绑定。
- 备份 artifact 的路径、digest、size 按实际字节验证;恢复证据必须绑定相同目标、manifest、artifact 和 schema。
- 严格生产 env preflight 与 online/offline × 4 profiles 共 8 种 Compose 组合门禁已接入。
- 工具仍只有计划能力,没有 apply、execute、Docker、SSH、数据库或回退执行入口。
未完成
- 组织根公钥、当前 keyring pin 和 epoch 仍故意为空,真实使用会安全拒绝。
- 真实 UAT target、备份 artifact、恢复、兼容性、陈钰麒(总经理)的单一具名签名和现场复探未完成。
- rollback/forward、RPO/RTO 和数据库记录/hash 核验未执行。
5. RC-08 公众生产门禁
已完成
- Contract 与 AI 的生产反滥用 Redis 故障或 URL 缺失时 fail-closed,不再回退到进程内内存。
- runtime/readiness/registration/pilot admission 每次重新探测 Redis;personal/company 匿名注册入口均纳入限流。
- 首发生产拓扑精确限定 Contract=
redis:6379/0、AI=ai-redis:6379/0、worker=ai-redis:6379/1;拒绝 userinfo、query、fragment、大小写、DB、域名别名和 CNAME 式绕过。 - Compose gate 拒绝 network aliases、hostname、container_name、links、external_links、extra_hosts、自定义 DNS、network_mode、hosts/resolver mount 和 external network 等名称重映射;两套 Redis 服务形状和命令固定。
- 生产枚举严格区分大小写,预检与运行时配置语义保持一致。
- TLS 仅使用 Python 标准库完成 key、证书链、有效期、hostname 和显式 CA 的 MemoryBIO 握手验证;不依赖宿主
cryptography。 - TLS 文件及任意父目录 symlink/reparse、hardlink、异常 owner/mode 均拒绝。
- release-package 以安全 FD 将 cert/key/CA 快照到独占、只读执行目录;原始与快照 SHA 双校验,执行专用 env 改写为快照路径,plan/pending/receipt 绑定快照,执行前篡改严格拒绝。
- edge healthcheck 不再跳过证书校验,使用真实 hostname 和显式绑定 CA。
验证
- Windows 7 文件核心套件:171 passed,2 skipped,0 failed。
- Linux
192.168.3.62:目录 symlink 与 TLS snapshot symlink 两项回归 2/2 passed。 - Linux 测试包 SHA-256:
6fa3d103bf8a2fcdc8929c1befeaede6b93f9dbf9b777683e18677280f16ad6d。 - 补充 production release tools+Contract/AI health:129 passed。
- 语义审查 SDK/AI executor:76 passed;仅保留既有 Pydantic 序列化警告。
- Python 编译和差异格式检查通过;仅有 Git 的 LF→CRLF 工作区提示,不是内容错误。
未完成
- 四份正式政策、同意证据、AI 合规适用性结论和必要真实编号仍缺少当前有效签批/生效证明。
- 真实生产 Provider、域名、TLS、双 Redis、密钥、监控/告警、备份新鲜度、生产 preflight 和切流/回退授权未验收。
- Redis AOF 目前没有命名卷,容器重建会重置短窗口限流计数;公众放行前需决定持久化或正式接受该限制。
6. 隔离 UAT 主机状态
- 主机:
192.168.3.62 - 系统:Rocky Linux 8.10,Linux 4.18,Python 3.12 可用。
- 根分区检查时约 111 GiB,总体使用 56%,可用约 50 GiB。
- 本轮只创建隔离测试目录和 Python venv,未修改系统 Python,未触碰现有部署:
/root/rc05-symlink-tests-20260921/root/rc06-symlink-tests-20260921/root/rc08-linux-symlink-tests-20260921
- 未在该主机执行 Docker 部署、数据库迁移、安装、回退或真实 UAT。
7. 唯一后续顺序
- 人工审阅本轮工作树归属,把 RC-05~RC-08 文件纳入唯一 commit/tag;保留用户原有
docs/architecture/local-development.md和start-dev.ps1修改,不覆盖。 - 基于新 commit 重建 source manifest、Linux 镜像、SBOM、安全扫描和安装/回退包;旧
cac183b2候选不能继续代表当前字节。 - 从新不可变候选重新生成正式 RC-05 计划;初始化唯一 campaign 根并绑定历史回执 v3。
- 先执行矩阵内代表场景;若同类失败立即停组修根因。稳定后最多 2 并发完成 144 场景,所有失败、取消、未知、降级和人工接管进入分母,不自动重试、不启用 fallback。
- 仅在 RC-05 终态全绿后,由陈钰麒对绑定 60 资产+14 Prompt 精确 hash 的一个批次作一次具名批准,系统自动生成和逐项核验 74 项应用证据;随后进行管理员+2 普通成员、2 工作区 UAT。两个普通成员账号是隔离测试身份,不是审核人。
- 用同一候选和真实备份完成 RC-07 恢复、rollback/forward、RPO/RTO、唯一审核人签名和内部 Go/No-Go;其余技术检查全部自动执行。
- 最后补齐 RC-08 外部材料与生产现场验证;blocker 为 0 且发布负责人明确授权后才允许公众切流。
在上述第 4~7 步完成前,不得将本地门禁测试描述为真实模型质量证明、法律批准、第三方存证、司法效力、真实恢复演练或公众生产放行。
8. FREEZE 前最终补充验证
- RC-05 的真实运行 registry 已固定为源码工作树外的预创建绝对目录,唯一配置入口为
YUQEI_RC05_RUN_REGISTRY_DIR;缺失、相对路径、位于源码树内或命令行路径不一致均严格拒绝。 multiscene_eval_runner与 ledger 定向回归为 51 passed、4 skipped、0 failed;4 个 skip 均是 Windows 当前令牌不能创建目录符号链接,Linux 对应攻击回归已经通过。- 最终文件 SHA-256:
multiscene_eval_runner.py:3539bdbf3fb05d9699fc997df683586ca4d1c84f9a1981b1d5aae8b040e71d9emultiscene_call_ledger.py:820b1ace8a856502884b95e52a949b3dc08d331471220583dd82c122c2fa3d8etest_multiscene_eval_runner.py:aa2724881b8b5715a3bab7fcdddd5a41b06af5c371bea069546cf250baefdfbctest_multiscene_call_ledger.py:a7c0732291522aac88378fa940e39a402bca0c28684581d4064759232c14340e
- 原始历史 QA 证据已按
freeze-evidence-separation-20260921.md外置;源码门禁联合验证为 128 passed、47 explicit skipped、0 failed。普通源码 CI 的 skip 只表示该历史证据未挂载,不表示相应用例通过;专用证据作业设置YUQEI_REQUIRE_EXTERNAL_QA_EVIDENCE=true后,缺少 sentinel 会 fail-closed。 - RC-06/RC-07/RC-08 受影响回归分组均退出 0;候选源码扫描基线保持逐条精确审阅,检测 836 条、reviewed false positive 836 条、new 0、stale 0,未关闭扫描插件或增加目录级宽免。
- 本补充验证仍不改变放行判断:内部受控试点和公众开放均保持
NO_GO;唯一提交、洁净检出复验和候选 manifest/tag 完成后才算结束本次FREEZE。