# Mac 回执 0916b — 过渡冻结包已核 + 已落生产（Mac 待推送 / 研究侧 `f5a7019`）

日期：2026-09-16 10:2x CST · 关联：`patches/transitional_freeze_20260916/`

## 1. 你方过渡包逐项核验（我方独立复算，从 git blob）

| 项 | 声明 | 我方实测 |
|---|---|---|
| `model_manifest.json` sha256[:16] | `94837bd508d8878a` | ✅ `94837bd508d8878a`（835 B） |
| `strength_model.json` sha256[:16] | `8f1a792279842bb9` | ✅ `8f1a792279842bb9`（255925 B） |
| **自校一致性** `manifest.model_sha256 == 实测 model sha` | — | ✅ **全量 64 hex 逐字相等** |
| `patches/scan_daily_tb.py` | `a773052e131df634` | ✅ 一致 |
| `patches/rebuild_model_v2.py` | `2a8ba6a8ff7974d9` | ✅ 一致 |
| manifest 字段 | model_version/model_sha256/effective_from/weights_source/pools_n/manifest_stage | ✅ 齐全，`model_version=v1-record`、`effective_from=2026-09-16`、`manifest_stage=transitional-freeze (pre data-v2)`、`pools_n=185/315/1183/4191` |
| 其 model 内 `model_version` 键 | 你方称 builder 写入 | ✅ 存在且 = `v1-record`（与我方 `scan` 的 manifest↔文件 双校验口径兼容） |

## 2. 端到端验证（沙盒：研究侧 model+manifest 配对 + **故意制造当日 21 行新增**）

| 情形 | 退出码 | 结果 |
|---|---|---|
| **正向**（配对正确 + `REQUIRED=1`） | 0 | `🔒 模型冻结校验通过: version=v1-record sha256=8f1a792279842bb9… effective_from=2026-09-16`；`(模型已冻结: 跳过 rebuild —— 滚动更新后 6034笔)`；**模型文件未被写**（mtime 不变、无「模型已写」）；候选 `model_version=v1-record` / `model_sha256=8f1a7922…`；n=12、≥85 仍仅 **603693.SH** |
| **负向①**（model 副本追加 1 字节 + `REQUIRED=1`） | **1** | `❌ 模型 sha256 与 manifest 不符, 拒绝扫描(fail-fast)` |
| **负向②**（删 manifest + `REQUIRED=1`） | **1** | `❌ 缺模型 manifest: …/model_manifest.json(ZT_MODEL_MANIFEST_REQUIRED=1) -> 拒绝扫描` |

> 更正：我上一版回执的负向②曾误报「未拒扫」——那是我测试脚本**漏传环境变量**，非实现问题；补传后确认拒扫成立（本表为准）。

## 3. 已落生产（可回退）

- 落库前自校 `model == manifest.model_sha256` 通过后写入：`strength_model.json` = **`8f1a792279842bb9`**、`model_manifest.json` = **`94837bd508d8878a`**；
  落盘后复校 `manifest.model_sha256 == 实测 sha` ✅。
- **未动**：`strength_baseline.csv` = `3ec1a89330e120a2`、`scan_today_candidates.json` = `0bb2472afc019218`。
- 备份：`/tmp/prod_backup_20260916/`（含切换前 model `bd09433f5fdf8f19`）；仓库内 git 亦可回退。
- `ZT_MODEL_MANIFEST_REQUIRED=1` 已置入 `code/daily_pipeline.sh`（cron 入口 `~/.hermes/scripts/zt_daily_job.sh` 已重新拷贝同步）。
  ⇒ **今日 17:05 的日循环将首次在生产上走冻结路径**，我会在收后核对日志（应含「🔒 模型冻结校验通过」+「跳过 rebuild」）并纳入快照。

## 4. 对 ③ 的确认

收到：data-v2 权威 `strength_model.json` + `model_manifest.json`（`model_version="data-v2"`、`effective_from="2026-09-19"`）**不晚于 2026-09-18 22:00 CST** 发布到 `patches/v2_model_authority_20260919/`，附 commit + 全量 sha256。
我方按同流程落库（备份 → 字节自校 → 写入 → 复校 → cron 走冻结路径），并保留 **0918 22:00 ~ 0919 10:00 间的观察窗**；
0919 10:00 CST 落库、14:00 CST 联合验收，两端同日。

## 5. 指纹 / head

- Mac：model `8f1a792279842bb9`（v1-record, 过渡冻结）、manifest `94837bd508d8878a`、baseline `3ec1a89330e120a2`、candidates `0bb2472afc019218`。
- 研究侧：`f5a7019`。