fix(core,docs): M308 r1 —— 读表工具写错(又一句「文档比代码多」)+ .exe 名字判据空转 + adopt 之后的取值器文档

p2-1 文档:`--check-pinned-keyring` **要私钥**(`do_check_pinned(args.key)`),语义是「Secret 里那把
钥是否已钉住」这条发布前门禁,不是读表工具。`docs/update-trust-anchor.md` 的「当场看一眼」与
`signing-runbook.md` §0 那句「现在 --check-pinned-keyring 绿」(与同文件 §:116 自相矛盾)都换成
`check_signing_ready.py` 的 ① 行(真只读,实测打「就绪 —— 标记之间 1 条:ull-release…」)。

p2-2 判据:`is_launcher_candidate` 的 `|| name.ends_with(".exe")` 此前**删掉也不红**(唯一含 `.exe`
的用例同时给了 0o755)。补 `a_windows_exe_without_the_exec_bit_is_still_the_launcher`
(win-x64 + 归档内 `unlucky-launcher.exe` + MZ + **0644** 能装上),删那半条判据即红。

p2-3 文档:`StagedPackage::size()` / `integrity()` 的注释在 `adopt` 之后不再成立(前者是本体的字节数、
后者是**归档**的摘要),改成「这个文件写出来的字节数」/「为它背书的那份摘要」。
This commit is contained in:
AskaEth committed 2026-11-14 00:15:13 +08:00
1 parent af82658d08
commit 06712ff6e9
4 files changed
+45 -9

No files matched your search

+10 -6
View File
@@ -33,16 +33,20 @@ PinnedKey { key_id: "ull-release", public_key_hex: "1c3687ec…" }
## 当场看一眼(只读命令)
```bash
# ① 信任表里有几条(标记之间)
python3 packaging/sign_manifest.py --check-pinned-keyring
# ② 就绪度播报(三行:表非空 / 环境里有钥且同源 / 最近一次发布痕迹)
# ① 就绪度播报:第一行就是「标记之间有几条 PinnedKey」,只读、不需要任何私钥
python3 packaging/check_signing_ready.py
# ③ 直接读表
# ② 直接读表(最原始的那一眼)
sed -n '/PINNED-KEYS/,/PINNED-KEYS/p' crates/core/src/update/trust.rs
```
`check_signing_ready.py` 的 ① 那一行是**读表**的正确入口:它按标记解析本文件、数条目并点名
`key_id` 与公钥前缀。它的退出码是**就绪度**(① 表非空 **且** ② 环境里有同源私钥才 exit 0),
不是「表读到了没有」——没配 Secret 的机器上它照样打出 ① 那一行,只是整体 exit 1。
⚠ **别拿 `sign_manifest.py --check-pinned-keyring` 当读表工具**:它要私钥
(`ULL_MANIFEST_SIGNING_KEY` 或 `--key <文件>`),语义是「**Secret 里那把钥**是否已钉住」这条
**发布前门禁**;没钥时它直接 `error: 没有签名密钥…` + exit 1(M308 r1 实测)。想只读看表就用上面两条。
`check_signing_ready.py` 的 ① 那一行的判据是「标记之间有几条 `PinnedKey`」,**不是**「表是不是
空的」——所以哪天有人把标记之间清空,它会立刻喊未就绪(那句文案里的「空表」说的是那一天)。