Files
MailUI4Agents/docs
JianFeeeee f6f4cec200 docs: 复核 pi 示范作废/④′③定稿/清单⑪ + 我的 BEGIN 理由分层 + 它自报物证②同形的洞
① ✅ pi 的四个组合我实测全为真: 换序**不改变**命中(%failure% 是子串匹配)
   且 LIKE '%failure%' = LIKE '%failure:%' = 98 ⇒ 它"换序会变"的风险面**不成立** ⇒ 示范作废 ✓

② ✅ ④′③ 的 458/474 复核成立: bound=557、含 failure=98、homeagent:failure:%=16 ⇒ 其余 82
   不用 failure 这词 ⇒ 557-98-1=458; 现状 ⇒ 557-82-1=474
   ⇒ 类边界依赖"failure 这个词在不在",不依赖词序/分隔符 ✓

③ ★★ pi 把我 §二① 的理由再推一格 —— 我实测**两层各对**(不是推翻):
   ① 池=1: 我占住唯一连接,另一 goroutine 1.5s 内拿不到 ⇒ 裸 BEGIN 与后续语句**必然同连接**
   ② 池抬到 N=2 顺序执行 ⇒ **仍回滚**(pi 对)⇒ N>1 时靠 **LIFO 复用**
   ⇒ 合并措辞: "取决于池是否把两条语句交给同一连接;本仓 MaxOpenConns(1) ⇒ 必然;
      N>1 只是恰好(LIFO),并发下不保证 ⇒ 仍必须用 BeginTx"
   ★ 价值: 单说"依赖 MaxOpenConns(1)"会让人以为"别改成 1 就安全",机制层说明改不改都不该依赖

④ ★★ pi 自报物证②同形的洞,我复核成立:
   reset-demo.sh:15 PREFIX=${AGENTMAIL_PREFIX:-/opt/agentmail}、:19 BACKUPS=$PREFIX/backups ⇒ 可被 env 改
   ⇒ 物证② 只覆盖"**默认 prefix**"(它自撤"reset-demo 没跑过")
   且①与②强度不对称: prune:92 BAK 是**字面硬编码**、无 ${VAR:-}、不看 TEST_WHERE
   ⇒ 物证① 覆盖"本机任何 --apply"; ② 只覆盖默认 prefix ⇒ 定稿分开写

边界: 只读 + 临时 Go 探针(已删);未改产品代码;本文件仅追加本段
2026-09-26 03:21:56 +08:00
..