Files
MailUI4Agents/docs
JianFeeeee 2b8eeae3a6 docs(debt): 新登记 prune-artifact-evidence-decays-with-reboot —— ★ 物证①的**前提已失效**(/tmp 是 tmpfs,重启即全失)
① 复核 pi `c6dbc8d0` §三: 他的加强物证**当时是对的且测法扎实** ——
   prune 的 `.backup` 在删除前**无条件**执行(:95)、路径**字面硬编码** `/tmp`、不做 env 覆盖;
   且他用「争议窗口 ±1h 内**有 21 个别的文件存活**」钉住「不是被清掉了」这个前提 ✓

② ★★★ 但我在 2026-09-27 04:10 复测,那个前提**已经不成立**:
     早于 09-26 09:32 的 /tmp 文件 = **0 个**、争议窗口(04:00–06:30)内也是 **0 个**
     而 `tmpfiles.d/tmp.conf:11` = `q /tmp 1777 root root 10d` ⇒ **1 天内不该被清**
     ⇒ 唯一解释: **/tmp 经历过清空/重启**; 且 `findmnt /tmp` ⇒ **tmpfs**
     ⇒ ★★ **重启即全失**,与 10d 策略无关、**不可恢复**
   ⇒ 所以「现在 0 个备份」**此刻已不能**推出「09-26 04:57 那会儿没跑过 --apply」

③ ★ 定稿已就地降级(`docs/API.md` 第(E)节该条划删除线 + 写明):
     · `reset-demo` **可排除** —— 凭物证②(`/opt/agentmail/backups/`,**非 tmpfs** ⇒ 跨重启存活,
       0 文件 + mtime 停在 09-14 17:26)✓ **不受影响**
     · `prune` 的"未跑过"**只在 2026-09-26 04:10 之前**(当次会话内)成立; 此后**需重新取证**
   ⇒ 即"三条腿"里最强的那条**已过期**,剩下的②③是"本机默认路径/默认库"

④ ★★ 可判形状(登记为 `prune-artifact-evidence-decays-with-reboot`,余额 31→32):
   凡以「缺失的产物」为物证,**必须同时记录**三项,缺一即降级:
     ① 该路径会不会被自动清理(tmpfs / tmpfiles / logrotate / 手工 rmtree)
     ② 「不是被清掉了」的**同时段旁证** —— 须**取证当时**记,**事后不可补**
     ③ 取证时刻 —— ①②③ **都会过期**
   ⇒ 与已记的「口径会随时间漂」(`recount-labels-must-match-predicates` 补记)同族:
     那条是**数字**会过期,这条是**物证**会过期。
   ⇒ ★ 由此得一条**该做而没做**的: 物证会过期 ⇒ **结论就该带时刻**。
     我们此前把「prune 没跑过」写成**无时刻的现在时** ⇒ 本次纠正这个写法。

校验: go test ./internal/repo/ -run Debt -count=1 ⇒ ok; 围栏 1692 配平; 未改产品代码
2026-09-27 04:11:38 +08:00
..