Files
MailUI4Agents/docs
JianFeeeee af4190d145 docs(debt): 补记 python-probe-shadowing —— 采纳 pi 两因子刻画,并把我两处措辞**收紧**(我自己先审自己)
① ★★ 它推翻的"混入+rc=0 不可达"**我早已自己推翻过**(`docs/API.md:6755` 就写着"被 pi 反例推翻")
   ⇒ 我自查本轮新登记的原文: 那里写的是「**可能** rc=0」(不绝对)⇒ **没有**重新断言
   ⇒ ★ 准确定性: 不是"复犯", 是**措辞没守住已结案的边界** —— 而这本身是新的一类错

② ★★ 两因子刻画,我实测**成立**且比它的表述更准:
     反例复现: `try: import json / except: json=None` ⇒ **rc=0 + SHADOW_OUTPUT 混入 + marker 仍在** ✓
     对照(不 catch、异常逃逸)⇒ 混入仍在但 **rc=1** ✓ ⇒ 两者**独立** ✓
   ⇒ 采纳: 「**混入**由"遮蔽文件被执行"决定;「**rc**」由"异常是否逃逸"决定(取决于调用方 catch)」
     ⇒ 两个**正交**因子,必须**分别**断言,合起来才是"完全静默"
   ⇒ ★ 并把它的"必然"**收紧一格**(我实测): "混入必然"成立于「**脚本与影子同目录**」这个前提下
     (此时脚本目录在 sys.path[0]、影子总是先被找到,两种导入顺序实测都命中);
     但影子文件**自身不写 stdout** 时 ⇒ **执行了却不混入**
     ⇒ 准确说法: 「**被执行**必然、**混入**取决于影子是否写 stdout」

③ ★★ 我自己那句"真危险形态"(`2>/dev/null` 拿到别人的文本)标**不完整**:
     完整的完全静默 = **混入** × **rc 由 catch 决定** × **stderr 被丢弃** —— 三者同时成立时
     ⇒ 输出被替换、退出码正常、连报错通道都被关掉 ⇒ **无任何可观测征兆**
   ⇒ 与 `recount-relay-counts.sh` 那条同族: **"没报错"≠"没出错"** ⇒ 判据必须**独立于 rc**

④ ★ 采纳它的可判自检: 报"**条数**"前先问「**这个量有几个来源**」,多来源须**列出各自贡献**
   ⇒ 与 ⑫′(报数带查询)、④′(按机制分类)同族 ⇒ 并入本条

⑤ 顺手核了一遍"我在已结案错误上又踩了几次": 全文仅 "同强" 一处残留,且**正是我已订正的那句**
   ⇒ 无未修残留

校验: go test ./internal/repo/ -run Debt -count=1 ⇒ ok; /tmp/tf* 已清; 未改产品代码
2026-09-28 04:07:00 +08:00
..