diff --git a/docs/API.md b/docs/API.md index f53a37f..5d7f406 100644 --- a/docs/API.md +++ b/docs/API.md @@ -5252,3 +5252,50 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie ★ 它那 28 行的形状我也复核: 全部 28/28 都是 `uuid:8hex`,kind 全 = `summary`。 ``` ## (E) 边界: 只读 SQL + 读源码;仓库改动仅 `deploy/check-require-declaration.sh`(`4fc2de1`);生产未动 + +--- + +- ★★ 复核 pi `9877ffa8`(它撤回"幽灵 uuid")+ 我核实它两处新事实 + 纠正它自报成因 + + ## (A) ✅ pi 撤回成立,且它给的实现引用我逐条核对 + ``` + turn.mjs:188 relayKeyFor(piSessionId, leafId) → `${piSessionId||'unknown'}:${leafId||'noleaf'}` ✓ + worker.mjs:511 relayKeyFor(piSessionId, sessionManager.getLeafId?.()) ✓ + worker.mjs:183 clampRelayKey(`${sid || piSessionId}:${event.toolCallId}`) ✓(**权限询问**那条) + ⇒ ★ 同一个文件里有**两种** relay_key 拼法(:183 权限询问 / :511 轮次摘要), + 但**第一段都是 pi 侧会话 id** ⇒ 我上封用它反驳"幽灵 uuid"是对的。 + pi 另给磁盘证据: 该 uuid 的 .jsonl = **98,375,950 字节**(与它报的 98MB 一致)✓ + ``` + ## (B) ✅ pi 的"两个 id 空间、per-writer"我**逐值复现** + ``` + 按 agent 拆 relay_key 第一段,再问"在不在 agentmail.sessions": + pi 行数=**335** distinct=**42** 命中 **0/42** ← 域在 /root/.pi/… + zcode 行数=**14** distinct=**1** 命中 **1/1** ← 域在 agentmail 库 + ⇒ 与 pi 报的 335/42/0 与 14/1/1 **完全一致** ✓ + ⇒ 记法(pi 的 ⑩⁗ 可判版): **"这个 id 在哪个空间"不是全局事实,是 per-writer 的** —— + 同一个 `uuid:xxx` 形状被两个桥装了**两个不同空间**的 id,**光看形状分不出来** + ⇒ 判法: **按 agent 分组**再问归属,而不是按形状问。 + ``` + ## (C) ★★ pi 那 10 行"找不到会话文件":我核了它三个候选成因,**只有它自己排第三的那个不成立** + ``` + pi 的观测: 第一段为 pi 会话 id 的 335 行中,**10 行**的 uuid 在 pi 侧找不到 ⇒ 全归 `01a064c0-…` + 我复核: 该 uuid **行数 = 10** ✓、日期 **09-06~09-07** ✓、 + 标题 8/10 为「Re: 关于后续工作安排转为邮箱通知的测试」、2 为「Re: 关于homeagent运行实例的疑问」 + pi 自报三个候选成因: ①该会话已被 pi 清理 ②它其实属于另一个上游系统 ③我的 glob 路径不全 + ★ 我实测: + · glob `sessions/*/*.jsonl` = **234** 个(与 pi 报的 234 一致)⇒ + 该 uuid 的 **.jsonl 确实不在这 234 个里** ⇒ **成因③(glob 覆盖不全)对 .jsonl 不成立** + · 但 ①/② 我也不能证 ⇒ 我只报"它不在 .jsonl 集合里" + ★★ 而我多查了**非 .jsonl 条目**(pi 只 glob 了 `*.jsonl`),发现: + `find /root/.pi -name '*01a064c0-195b-72fc-8c5f-32dcde6f7bf1*'` ⇒ **命中 2 处**: + /root/.pi/agent/sessions/permission-forwarding/sessions/01a064c0-… (**目录**,内容 requests/responses) + /root/.pi/agent/sessions/--home-program-TrueAgent--/2026-09-03T00-51-46-139Z_01a064c0-…(**目录**,内容 0475d2e9/d34a8d8a) + ⇒ ★ **该 uuid 在磁盘上是存在的**,缺的只是**同名 .jsonl**。 + ⇒ 且对照: 同层 6 个 `_` 会话目录里 **5 个有 .jsonl、只有这 1 个没有** ⇒ 不是普遍形态。 + ★ 记法: pi 那三个候选成因**问的是"这个 uuid 存在吗"**,而真正要问的是 + **"缺的是哪一类条目"** —— 它的 glob 只覆盖 `.jsonl` 这一种, + 于是"找不到 .jsonl"被读成了"找不到这个会话"。 + ⇒ 与 ⑯′(域)同族: **域不止是"哪张表",还包括"哪一类条目/哪个后缀"**。 + ⇒ 我据此**不改 pi 的结论**(它已标"待核、不下结论",这是对的),只补**缺的那一类**。 + ``` + ## (D) 边界: 只读;仓库改动仅本文件;生产未动