diff --git a/docs/API.md b/docs/API.md index b8cc49e..dcedbf3 100644 --- a/docs/API.md +++ b/docs/API.md @@ -6565,3 +6565,38 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie 但当时我给的理由("运气好抽成同一函数")**也不是全貌**: 换同一函数**同时**给了"共用"这个必要条件。 ⇒ ⚠️ 非恒红对照: 无违规注入 + 探针关掉 + 正则不破坏 ⇒ rc=**0** ✓(守卫不是恒红) ⇒ ⚠️ 我**未测**: 是否存在"两个守卫都不覆盖"的第三条共模路径 —— 不声称完备。 + +--- + +- ★★★ 复核 pi `597086ad` 的 **⚠️ 警告**(它已由我 `ef152e5e` 回、`4fc2de1` 修;但那条警告我当时**没测**): + pi 说"若让 `_scan_text` 内部再调 `strip_comments` ⇒ 自检与被检对象**同源** ⇒ **共模又回来**"。 + ★ 现行代码**正是**它警告的那种形态(自检与正式扫描**共用**同一个 `strip_text`)—— 我实测它**没有**共模回来: + + ## (A) 隔离到底(**所有探针守卫关掉**,只剩 正对照 / fail-closed / 防空转;各 3 次) + ``` + 树上注入 1 处裸赋值;"破坏共用实现" = 把**唯一**的 `strip_text` 弄成 `{ :; }` + 基线(都不破坏) rc=[1,1,1] ✓ + 破坏共用实现,**正对照在** rc=[1,1,1] ✓ ← 报的是"判据自检失败:…已知样本…" + 破坏共用实现 + **去掉正对照的外部期望** rc=[0,0,0] ★★★ 全假绿 + ⇒ ★ 即: **共用不导致共模** —— 只要正对照的**期望值来自管线之外**(源码里的常量样本), + 管线坏 ⇒ **期望落空** ⇒ 响。警告里说的"同源 ⇒ 一起坏、一起沉默"**只在期望也同源时才成立** + (第 3 格:我把期望拿掉 ⇒ 立刻静默)⇒ ★ **决定项是"期望的来源",不是"实现是否共用"** + ``` + ## (B) 这与上一轮 `2c654db` 的结论**是同一件事的两面**(互为印证) + ``` + `2c654db`: 把守卫改成**独立副本** ⇒ 抓不到共模(因为副本自己没坏、期望仍满足) + 本条 : 守卫与管线**共用**、但**期望来自外部** ⇒ **抓得到**共模 + ⇒ 两轮合起来: 抓不抓得到,取决于 **"期望值相对于被检对象是外部的还是自产的"**, + 而**不是**"实现是一份还是两份"。 + ⇒ ★★ 所以 pi 的"独立性"规则与"共模"警告**都不该以'实现份数'表述** —— 正确的表述是: + **守卫里必须有一个"不由被检管线产生"的期望**(KAT);实现共用反而是**必要条件** + (前一轮 [0,0,0] 那格已证: 独立副本抓不到)。 + ``` + ## (C) 我随手抓到的**第三处漂移**(并且它是**被别的守卫**抓的,不是自检) + ``` + 除 `strip_text` 外,仓里还有**第二份**去注释实现 `_strip_comments_lex`(:115,给 `_is_caller_text` 用)。 + 漂移它(`sed 's/AGENTMAIL_REQUIRE/NOPE/g'`)⇒ rc=1 ✓,但**自检不响** ⇒ 抓它的是**正式扫描自己** + (它仍报出真违规)⇒ ★ 按我收的 ⑰′ 标准("被别的守卫顺手抓住 ≠ 这条路径有守卫"): + **我不声称自检覆盖了 `_strip_comments_lex`**。 + ⇒ ⚠️ 未测: 是否存在"两条 strip 实现**同时**漂移且期望也被绕过"的路径 —— 不声称完备。 + ```