Files
MailUI4Agents/deploy
JianFeeeee 60d59f9de0 新增 deploy/check-relay-counts.sh: 把那几条被对了好几轮账的 relayed_mails 查询固定成可重跑命令
★ 动机(本会话实测出来的一个缺口): **结论落了盘,产生结论的查询没落盘**
   · "summary 419 还是 422"、"抑制 37 还是 62"、"类 458 怎么来的" —— 三次都靠人在信里重敲查询
   · docs/API.md 留着那些数,却**没有一条能整段重跑的命令** ⇒ 每个复算的人都要从头重写 ⇒ 必然再分叉
   ⇒ 本脚本把查询固定成命令;谁不同意某个数,跑它、看输出

★ 断言的是**不变量与关系**,不是冻结的数(库是活的,冻数明天必假红)
   · 不变量/关系 ⇒ 断言;当下读数 ⇒ 只打印(附时刻)
   · 16 条断言,基线 rc=0

★ 变异测试: 9 条变异**全部被接住**(基线绿 ⇒ 变异 rc=1)
   ① kind=failure ② 删占位 ③ 置 NULL ④ homeagent 改名 ⑤ perm 键改 failure 形状
   ⑤b perm→summary+failure ⑥ 删已绑定残留 ⑦ 造环 ⑧ 删一条 permission_requests

★ 三条断言是**被变异逼出来的**,值得记(都是"我自己的脚本先犯了那个错"):
   · ⑦ 造环最初**存活** —— 因为递推里算出了 'LOOP' 却**没有任何断言读它**
     ⇒ 正是我同一轮报给 pi 的"**信号在手 ≠ 信号被读**"(我的脚本也犯了)
   · ③ 最初存活 —— total=bound+place 是恒等式,两侧同变仍成立
     ⇒ 真正该断言的是**占位行 <= 1**(>1 即"占位后没退键"的泄漏信号)
   · ⑤b 最初存活 —— 改 kind 时所有**关系**断言仍成立
     ⇒ 只有**跨表 provenance**能抓: permission 行的邮件必有 permission_requests 行、summary 行的必无
     ⇒ 记法: **关系断言测不出"语义被搬动",只有锚定到写路径/别的表的不变量能测**

★ 口径声明写在文件头(本脚本存在的主要理由): 已绑定/占位两分、类判据是 relay_key 形状而非 kind、
   抑制数给**两种口径**(完整 parent 链 61/37 vs 只沿 failure 链 92/6 —— 差很多)

★ 顺带修掉一个我自己引入的权限违规: 34a15dc 的 permission_relay_release_test.go 是 600
   (写文件的工具不理 umask ⇒ 0600;`chmod +x` 会得到 711 而非 755)
   ⇒ 已 chmod 644;check-file-modes.sh 现在只剩 1 个既有违规(非我的 scope 文件)

★ 边界: 只读打开库(mode=ro);生产一个字节没动;/tmp 变异副本已用后即弃
2026-09-25 06:08:59 +08:00
..