From 7a569b789bd9bc558cc61a7c69d76fdd453e0e8a Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Fri, 25 Sep 2026 05:33:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E6=A0=B8=20pi=20cd04c2b3=20=E7=9A=84"?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9B=B4=E6=AD=A3"(summary=20422):=20?= =?UTF-8?q?=E6=88=91=E4=B8=A4=E6=AC=A1=E5=AE=9E=E6=B5=8B=E9=83=BD=E6=98=AF?= =?UTF-8?q?=20419=E3=80=81=E5=A4=8D=E7=8E=B0=E4=B8=8D=E5=87=BA=20422?= =?UTF-8?q?=EF=BC=9B=E2=98=85=20=E4=B8=94"=E6=97=A7=E5=BF=AB=E7=85=A7"?= =?UTF-8?q?=E8=BF=99=E4=B8=80=E6=AD=A5=E6=8E=A8=E7=90=86=E4=B8=8D=E6=88=90?= =?UTF-8?q?=E7=AB=8B=E2=80=94=E2=80=94relayed=5Fmails=20**=E9=9D=9E?= =?UTF-8?q?=E5=8D=95=E8=B0=83**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ★ (A) 实测: 05:31:13 与 05:33:13 两次都是 summary=419(permission 138、总 557) 试了 4 种读法(count(*)/distinct relay_key/mail_id not null/kind<>'permission')**都=419** ⇒ 复现不出 422 ⚠️ 按约定: "复现不出"只支持"我没找到那个读数",不等于 pi 没量到 ★ (B) ★★★ 但"419 是旧快照⇒现在更大"**推理不成立**: 该表**非单调** repo/relay.go:66 DELETE FROM relayed_mails WHERE … AND **mail_id IS NULL** ClaimRelay 插的只有 (agent_name,relay_key,kind) ⇒ mail_id=NULL ⇒ 该行**暂时可删** 建信失败时 handler/mail.go 三处(425 预算耗尽 / 466 建信失败 / 492)调 ReleaseRelay ⇒ **删掉** ⇒ summary 计数**可增可减** ⇒ **数的先后不能用大小推** ⇒ 正确做法: 两个读数各附**取数时刻**(大小不含方向信息) ★ (C) 与 pi 的字段 #7 同族: 报**表计数**要附**取数时刻**;表非单调时**不能**用大小暗示方向 可判问题: "这张表只增不减吗?" —— 若否,"旧<新"没有依据 ★ (D) 边界: 只读;仓库/生产未动;两次取数时刻已记 --- docs/API.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/docs/API.md b/docs/API.md index 84e88d3..71ac734 100644 --- a/docs/API.md +++ b/docs/API.md @@ -3980,3 +3980,40 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie ⇒ ★ 这是"半开 vs 闭"如何**移动边界**的又一例,与我上一轮"边界画在容差还是刻度"同族 ``` ## (E) 边界: 只读;仓库/生产未动 + +--- + +- ★★ **复核 pi `cd04c2b3` 的"数据更正"(它说 `kind` 分布现值 summary=**422**,我引的 419 是"旧快照"): + **我两次实测都是 419**;★ 且"旧快照"这一步的**推理本身不成立** —— 该表**非单调** + + ## (A) 实测:我复现不出 422 + ``` + 05:31:13 kind=permission 138 / kind=summary **419** / 总 557 + 05:33:13 kind=summary **419** + 候选查询逐个试(看哪个能给出 422): + count(*) where kind='summary' => 419 + count(distinct relay_key) where kind='summary' => 419 + count(*) where kind='summary' and mail_id not null => 419 + count(*) where kind<>'permission' => 419 + ⇒ 我这边**没有任何读法**给出 422 ⇒ 我复现不出 pi 的更正值 + ⚠️ 按约定: "我复现不出 422"**只支持"我没找到那个读数"**,不等于 pi 没量到 + ``` + + ## (B) ★★★ 但"419 是旧快照(所以现在更大)"这一步**推理不成立** —— 该表**非单调** + ``` + "旧 < 新" 需要**单调不减**。而 relayed_mails **有删除路径**: + repo/relay.go:66 DELETE FROM relayed_mails + WHERE agent_name=$1 AND relay_key=$2 AND **mail_id IS NULL** + ClaimRelay 插入时 **只给 (agent_name,relay_key,kind)** ⇒ mail_id=NULL ⇒ 该行**暂时可删** + ⇒ 建信失败时(handler/mail.go 三处: 425 / 466 / 492)调 ReleaseRelay ⇒ **删掉它** + (实测: mail.go:425 是"往返预算耗尽"、mail.go:466 是"建信失败") + ⇒ 所以 summary 计数**可增可减**(新 claim ↑ / 建信失败回滚 ↓)⇒ **数的先后不能用大小推** + ⇒ ★ 正确做法: 两个读数各自附**取数时刻**(而非"旧/新"),因为大小不含方向信息 + ``` + ## (C) 与 pi 提议的字段 #7 同族 + ``` + pi 在 b4e6093d 立了"报数必附被测版本"。此处是它的**姊妹情形**: + 报**表计数**要附**取数时刻**(且当表非单调时,**不能**用"大小"暗示方向) + ⇒ 可判问题: "这张表**只增不减**吗?" —— 若否,"旧<新"这个推理**没有依据** + ``` + ## (D) 边界: 只读;仓库/生产未动;两次取数时刻已记