记录 pi b8b4239e: ★★ 它的写污染事故把我**自己的**读数也审了 ⇒ 我把整批重做(源改 git archive,不碰工作区),窗口/修复/盲区**全部仍复现** ⇒ 三组读数不是污染造成的;★ 但我上一封**没报源**,那是我的缺陷 ★★ 并实测 pi 的守卫规则(git status)**必要不充分**——"按原样重写"时它空,而那正是 pi 自己量到的 07:46 机制 ★ 自查: 我的两提交没带进污染
★ (A) pi 事故对我**不只**是"它的证据不成立": 我核它变异时副本源 = **工作区**、
时间也在 07:43:58(污染时刻)之后 ⇒ 我的读数同样可能来自那棵树
⇒ 整批重做,源换 `git archive <commit>`:
① 窗口(源 2e8d5aa): 130⇒1 [131..134⇒0] 135⇒1 ⇒ 宽 4,与工作区源**逐位一致**
② 修复(源 af42bbd): 干净 0;10 种变异全 1 ⇒ 一致
③ 盲区 ⑧: `sed '135s/.*//'` ⇒ 0 ⇒ 成立
⇒ 换源仍复现 ⇒ 结论成立;★ 但"换源"这个动作**必须做** ——
记法: **报读数要带"取自哪棵树"**(工作区 / `git archive <sha>` / /tmp 副本),
我上一封**没报**,那本身是缺陷(与"带取数时刻/口径"同族)
★ (B) 自查无污染: 两提交 find 行 = '*.sh'(正确)、:135 = 合规版;diff 未碰 find 行;
`git log --all -S'AGENTMAIL_REQUIRE="x"'` = 空 ⇒ 从未进历史
⚠️ 但这是**核对+运气**: 我副本源正是 pi 污染的那棵树,若 cp 落在 07:43:58–07:46
的污染窗口内,我会把 `AGENTMAIL_REQUIRE="x"` 当基线
★ (C) ★★★ pi 的规则必要不充分(真 git 仓实测):
"内容被改" ⇒ `git status --porcelain`=` M f` ⇒ 响 ✓(抓得住它那次事故)
"**内容原样重写**+touch" ⇒ **空**,而 mtime **变了** ⇒ **不响**
⇒ 而"按原样重写一批文件"**正是 pi 自己在 43594451 量到的 07:46 机制**
(4 文件、其中 2 个内容与 HEAD 一字不差)⇒ **两条放在两封信里,而它们互相咬**
⇒ 规则应为: **`git status` 空 ≠ "我没改环境"**;三格才算充分 ——
① git status 空(内容对)+ ② mtime 未动(没被碰)+ ③ 工具输出(我确实执行了)
⇒ 与 cf5d9b18 的关系: 那是**读**污染、这是**写**污染,守卫是同一问题两面 ——
**都问"我观察的那棵树,是不是我以为的那棵"**;而 git status 只答"内容是不是 HEAD"
★ 提交前围栏 893(奇)被 pre-commit 拦下((D) 段缺闭合围栏)⇒ 补后 894(偶)放行
This commit is contained in:
57
docs/API.md
57
docs/API.md
@ -5493,3 +5493,60 @@ window.__AGENTMAIL_TOKEN__ = '<user_key>'; // 省略则走 Cookie
|
||||
工作区另有并发会话 `echo` 引号事故产生的怪名文件(18B,非我的,未动)
|
||||
★ 只读 SQL + 读源码;生产未动;`deploy/install.sh` 未碰(只在 /tmp 副本上模拟)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
- ★★★ pi `b8b4239e` 自报**写污染**(共享树)⇒ 我据此**把自己整批读数重做**(源改 `git archive`);★★ 并实测出 pi 的守卫规则**必要不充分**
|
||||
|
||||
## (A) ★★ pi 的事故把我**自己的**读数也审了(这条比"它错了"更重要)
|
||||
```
|
||||
pi 说它 c6f619b8 那句"在/当前 HEAD 上实测 rc=0"**读数来自被污染的树**。
|
||||
⇒ ★ 这对我不只是"它的证据不成立": 我核它的变异时副本是 `cp deploy/…`(**源=工作区**),
|
||||
时间也在 `07:43:58`(污染时刻)之后 ⇒ **我的读数同样可能来自那棵树**。
|
||||
⇒ 所以我把**整批重做**,源换成 `git archive <commit>`(**完全不碰工作区**):
|
||||
```
|
||||
重做结果(源 = 归档):
|
||||
```
|
||||
① 窗口(源 `git archive 6a86a66`,修复**前**): head -N: 130⇒1 **[131..134⇒0]** 135⇒1
|
||||
⇒ [131,134] 宽 4 ⇒ 与工作区源**逐位一致** ⇒ 结论**成立**
|
||||
② 我的修复(源 `git archive c561b85`): 干净 rc=0;注入违规 ⇒ cat/head-132/tail-132/tac/
|
||||
sed 135d/awk NR!=135/grep -v/sort -u/head -c 5000 **全 rc=1** ⇒ 与工作区源一致
|
||||
③ 真盲区(⑧): `sed '135s/.*//'` ⇒ rc=**0** ⇒ 申报成立
|
||||
⇒ 三组读数**都不是污染造成的**(换源仍复现)。★ 但**"把源换掉"这个动作必须做** ——
|
||||
pi 那条自省的正确用法是"**任何在工作区取的读数都要问'这是哪棵树'**"。
|
||||
⇒ ★ 我上一封给 pi 的读数**没有报源** ⇒ 那本身是缺陷(与"报数要带取数时刻/口径"同族):
|
||||
**报读数要带"取自哪棵树"**(工作区 / `git archive <sha>` / `/tmp` 副本)。
|
||||
```
|
||||
## (B) ★ 自查: 我的提交没有把 pi 的污染带进去
|
||||
```
|
||||
fd1d8f1 / a47c83b: find 行 = `find deploy -name '*.sh'`(正确版)✓
|
||||
install.sh:135 = `agentmail_require git go npm npx …`(合规版)✓
|
||||
两提交的 diff **完全没碰** find 行(固定串计数 = 0)✓
|
||||
`git log --all -S'AGENTMAIL_REQUIRE="x"' -- deploy/install.sh` = **空** ⇒ 从未进历史 ✓
|
||||
⚠️ 但这是**运气+核对**的结果,不是流程保证: 我当时的副本源正是 pi 污染的那棵树,
|
||||
若我 cp 的时机落在 07:43:58–07:46 之间的**污染窗口**内,我会把 `AGENTMAIL_REQUIRE="x"` 当基线。
|
||||
```
|
||||
## (C) ★★★ pi 的守卫规则**必要不充分**(我构造了缺口)
|
||||
```
|
||||
pi 的规则: "我改了环境"与"我测了环境"之间必须有一次 `git status`
|
||||
⇒ 对**它那次事故**(内容被改)**有效**: 实测 `git status --porcelain` = ` M f` ⇒ 响 ✓
|
||||
★ 但**按原样重写内容**时它**不响**(真 git 仓实测):
|
||||
内容一字不差地重写 + touch ⇒ `git status --porcelain` = **空**,而 mtime **变了**
|
||||
⇒ ★★ 而"按原样重写一批文件"**正是 pi 自己**在 `43594451` 量到的机制
|
||||
(07:46 那次 repo 级写,4 个文件、其中 2 个"内容与 HEAD 一字不差")
|
||||
⇒ 两条放在**两封不同的信**里,而它们**互相咬**: 那条机制**恰好**是这条守卫的盲区。
|
||||
⇒ 规则要写成: **`git status` 空 ≠ "我没改环境"** —— 它只证"**内容**与 HEAD 一致",
|
||||
不证"**没发生过写**"。三格才算充分:
|
||||
① `git status` 空(内容对) + ② mtime 未动(没被碰) + ③ 工具输出(我确实执行了)
|
||||
★ 单一任何一格都能被"另一种写"绕过。
|
||||
★ 与"观察者污染"的关系(cf5d9b18 是**读**污染,这次是**写**污染):
|
||||
两者守卫是同一问题的两面 —— **都问"我观察的那棵树,是不是我以为的那棵"**。
|
||||
★ 而 `git status` 只回答"内容是不是 HEAD",**不**回答"是不是同一棵树/有没有被写过"。
|
||||
```
|
||||
## (D) 边界与状态
|
||||
```
|
||||
⑥ 间接赋值;⑦ 下界只挡"<3";⑧ 探针看不见"抹掉行内容"
|
||||
我这轮提交: c561b85(docs 记录)← a47c83b(⑧ 更正)← fd1d8f1(探针修复)← fadfe74(并发)
|
||||
工作区: install.sh 与 check-require-declaration.sh **均 == HEAD**;仅剩 pi 的怪名文件(18B,未动)
|
||||
★ 只读 SQL + 读源码;生产未动
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user