docs(database): close restore hardening prerequisite

This commit is contained in:
SaladDay
2026-08-02 10:10:45 +00:00
parent 3fa6b1f158
commit 2533db035a
4 changed files with 72 additions and 9 deletions
@@ -9,8 +9,9 @@
//!
//! ## 与前置 A 的衔接(解冻声明)
//! 前置 A 套件以 SHA-256 冻结了 schema.rs/migration.rs/backup.rs。本前置
//! 工程的实现必然修改它们,因此:**pre-B 实现期间,pre-A 的
//! `certify_infra_files_frozen_until_preproject_b` 预期为红**,这是裁决内
//! 工程的实现必然修改它们,因此:**pre-B 实现期间(已于 2026-08-02
//! 终止关账,该窗口已闭合),pre-A 的
//! `certify_infra_files_stay_frozen_after_restore_closeout` 预期为红**,这是裁决内
//! 的解冻,不是违规;pre-B 认证通过后由裁决方以终态哈希重冻基线。除此之外
//! pre-A 的其余 34 项必须全程保持绿——restore 改动破坏写面契约同样是失败。
//!
@@ -35,6 +35,10 @@
//! 旧符号加入禁止清单。
//! 4. infra 时序缺口机械冻结:`schema.rs`/`migration.rs`/`backup.rs` 由
//! SHA-256 基线钉死;任何变更使前置 A 认证失效,须回裁决方重审。
//! 【2026-08-02 重冻】基线更新为前置 B 终止点(3fa6b1f1)状态。用户
//! 裁决:本 PR 聚焦 Pi 业务,restore 存量面自此锁定——通用恢复对抗
//! 加固连同未决 finding 移交独立"Restore 加固工程"(见
//! docs/restore-hardening-debt-zh.md);本 PR 内再触碰这三个文件即红。
//!
//! ## 扫描器 authority 表(精确相对路径 × DML 种类 × 列集合)
//! - `database/dao/provider_write.rs`:全部 provider DML 允许(写面本体);
@@ -315,15 +319,15 @@ const STATE_COLUMNS_FAILOVER_RS: [&str; 1] = ["in_failover_queue"];
const INFRA_DEFERRED_TO_B: [(&str, &str); 3] = [
(
"database/schema.rs",
"f884c15ee5447f28c321a4fef0c1c50010833d7c05f2e5d9530961f5ca17ed27",
"996eae9d77456edc7e56fa755bd888e0bc545bb90153449e67ac9d8bec19890d",
),
(
"database/migration.rs",
"7e9125e55ca75837242225b462707ad4cde1d0ebfb09c4d66cd4ccc950360bfa",
"2cf6d466af026e13991bfc2c99189d50e902e8e4ff9f7931ef6c2d92e3c933be",
),
(
"database/backup.rs",
"31c42a61d43395e09751ffc413a822d034274e092d38c446f9ae89a5fc86f249",
"024991651ed52bc366ec6923c53da47d9dfddb8044721c9526d80fa13a70f809",
),
];
@@ -814,16 +818,18 @@ fn certify_forbidden_symbols_are_zero_treewide() {
}
#[test]
fn certify_infra_files_frozen_until_preproject_b() {
// infra 时序缺口的机械冻结:前置 B 认证前,这三个文件的任何字节变更都
// 使前置 A 失效。变更必须回裁决方重审并更新基线。
fn certify_infra_files_stay_frozen_after_restore_closeout() {
// infra 时序缺口的机械冻结前置 B 已按用户裁决终止关账(2026-08-02,
// 见 docs/pi-support-restructure-zh.md §4.6 与 restore-hardening-debt-zh.md):
// 基线以 3fa6b1f1 状态重冻,**本 PR 内这三个文件不再有解冻窗口**,
// 任何字节变更都使前置 A 失效并须回裁决方重审。
let root = source_root();
for (relative, expected) in INFRA_DEFERRED_TO_B {
let bytes = fs::read(root.join(relative)).expect("read infra file");
let actual = format!("{:x}", Sha256::digest(&bytes));
assert_eq!(
actual, expected,
"{relative} changed while deferred to prerequisite B; \
"{relative} changed after the adjudicated restore close-out; \
pre-A certification is invalidated, escalate for adjudication"
);
}