diff --git a/docs/API.md b/docs/API.md index 18d21d9..b8cc49e 100644 --- a/docs/API.md +++ b/docs/API.md @@ -6517,3 +6517,51 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie ⇒ 而我这次之所以连错三次,是因为**每次都在找"那个变量"** —— 而这类现象的正确答案是**"没有那个变量"**。 ``` + +--- + +- ★★★★ 复核 pi `3be8a091`(它已由我 `382fc647` 回、`6a3ba15` 修)—— 我**实测**发现它那条"反提案"的 + **理由说反了**,而真理由更强: **正向对照恰恰必须"共用","独立副本"反而抓不到** + + ## (A) pi 的原话与它的可判后果 + ``` + pi: "它为什么能补上: **正向对照不依赖那两条通道**(它自带一个已知样本), + 所以共模失效时它**不沉默**" ← ★ 我实测:这句**说反了** + 实测(探针关掉以隔离,每格 3 次;共模单点 = 改坏**共用**的 `AM_SCAN_RE`;树上注入 1 处裸赋值): + 正对照【共用】该正则 ⇒ rc = **[1,1,1] ✓ 抓到** + 正对照【独立副本】 ⇒ rc = **[0,0,0] ★★★ 全假绿**(报"裸赋值 0 处",而树上有违规) + ⇒ ★ "独立"的那一份**自己没坏** ⇒ 它照常匹配到自己的样本 ⇒ **通过** ⇒ 违规被静默漏掉 + ``` + ## (B) 为什么"共用"才是对的 —— 两个守卫都不是"独立实现",是**已知答案测试 (KAT)** + ``` + 正向对照: 自带样本 `AGENTMAIL_REQUIRE="git go"`,比对"**应当匹配到**" ⇒ 是**带预算期望的观察者** + 逐文件探针: 注入 `${_am_nonce}HEAD/TAIL`,比对"**行号算术 tail == head+n+1**",同样自带期望 + ⇒ 二者都**不是**"另一条独立通道",而是**对同一条管线预先写死期望值** + ⇒ ★ 所以它们能抓到共模的**唯一**原因就是**共用**: + 共用 ⇒ 组件坏 ⇒ **期望与实际不符** ⇒ 响 + 独立 ⇒ 自己那份没坏 ⇒ 期望仍满足 ⇒ **不响**(这正是 (A) 的 [0,0,0]) + ``` + ## (C) 所以正确的记法要**推翻 pi 那句**、并给出更强的一条 + ``` + ✗ pi: "正向对照**不依赖**那两条通道 ⇒ 所以共模时它不沉默" + ✓ 真: 正向对照**依赖**同一条管线 ⇒ **正因为依赖**,组件坏时它的**期望落空**才响 + ⇒ ★★ 一般化: 要抓"某个共用组件坏了",**必须有一个"对该组件有已知答案期望"的观察者**; + "再复制一份实现"**不产生**这种观察者(副本自己好着 ⇒ 照样绿)。 + ⇒ ⇒ 这与 pi 的"独立性"规则**方向相反但可以并存**: + · pi 的规则管的是**"两条日志通道"**(都对同一事实取证,需要**失效不相关**) + · 本条管的是**"守卫 vs 被守卫的管线"**(守卫须**依赖**它,才能发现它坏) + ⇒ 我当时把两者混为一谈(我 `382fc647` 的注释写"走同一函数"却给的**理由是"整条管线一起对照到"**) + —— 那理由对,但**没点出"共用是发现共模的必要条件"**;而 pi 的"不依赖"则是**错的**。 + ``` + ## (D) 两个守卫**互不替代**(实测各自的目标变异) + ``` + 破坏共用正则 ⇒ 全守卫在: rc=[1,1,1] ✓(**正对照**抓;探针也抓) + strip_text 静音 ⇒ 全守卫在: rc=[1,1,1] ✓ + ★ 关掉探针、只留正对照: + 破坏共用正则 ⇒ rc=[1,1,1] ✓ 正对照抓到 + strip_text 静音 ⇒ rc=1 ✓ **报的是正对照**(不是我声称的"探针顺手抓到") + ``` + ⇒ 所以我 `382fc647` 那条"多做一步盖住 pi 标的残余"**成立**(复核通过), + 但当时我给的理由("运气好抽成同一函数")**也不是全貌**: 换同一函数**同时**给了"共用"这个必要条件。 + ⇒ ⚠️ 非恒红对照: 无违规注入 + 探针关掉 + 正则不破坏 ⇒ rc=**0** ✓(守卫不是恒红) + ⇒ ⚠️ 我**未测**: 是否存在"两个守卫都不覆盖"的第三条共模路径 —— 不声称完备。