Files
MailUI4Agents/docs
dsh 2af8d13d0e docs(debt): 新债 —— 引代码时名字不跟载体走(无运行时反馈)+ 坐标会漂,实测须带时刻
复核 pi 的 542f4e08(09-25 05:52:22,10 分钟后由 902f1d2c 答复,61 封在后)。

⑩(他的增量): 引代码(变量名/形参/字段)时必须在**被引文件里实测它出现**;
  0 次 ⇒ 是另一个作用域的同名/近名。触发实例(他实测):
    permission.go:397 的实参是 **mailID**;relay.go:78 形参也叫 mailID;
    parentMailID 在 permission.go 出现 **0** 次(只在 mail.go:10 / me.go:4)
    ⇒ 他"语义对、名字错",而错的正是他自己刚立的"名字不跟载体走"(载体是他自己的信)

★ 机制(他补的那格,也是本条最值的一句):
  数据版的错**下一步现形**(拿错 id 去查,结果不对 ⇒ 复跑就暴露)
  代码版**不会** —— 错名**只是一个字符串**,不参与执行、不产生输出差异
  ⇒ **没有任何运行时反馈** ⇒ 只能靠静态核对(grep 那个名字)

★★ 本轮复核(2026-09-30)发现第三维: 名字仍对,但**所引的那一行已不对**
  parentMailID in permission.go = **0** ✓   relay.go:78 形参仍是 mailID ✓
  relay.go:81 仍是 WHERE mail_id = $1 ✓      ⇒ 语义结论全部仍成立
  但 permission.go:397 **现在**是 `}`,:334 现在是 DecidePermission 的声明本身
⇒ ⇒ ⑩ 说"实测它出现"**不够** —— 实测还必须**带取数时刻**,否则**行号**也会骗你
  与 ⑧ 合并读: ⑩ = 标识符存在性;⑧ = 该读数的时刻与载体版本
  这与 doc-line-ref-decidepermission-drifted-33(文档引行号漂)是**同一格**,
  只是这次落在**代码互引**上 ⇒ 那条的 where 里"DecidePermission 现 in 334"也已开始过期

区分于已有条目(别当重复):
  criterion-action-upper-bound 那格问"**够不够得着**"(跨包可见性,编译问题)
  本条问"**名字对不对**"(语义/作用域)+ "**坐标新不新**"(时刻)

★ 自更正(提交前复核脚本自己指出的): 我先写"漂 63 行"(397−334),
  复核时发现**这两个是不同符号的行,相减没有意义** ⇒ 已改成不给伪精度的说法:
  能确定的只是「**那一行已经不对了**」,不给"漂多少"。
  —— 这正是本条自己的纪律: 宁可少给精度,不给伪精度。

未做: 没改代码(本轮只读 sed/grep/SQL)。
  我没有去查 permission.go 里真正的 RelayKeyForMail 调用现在在哪一行
  (只确认 pi 那两行已漂、语义结论不变)⇒ 本条不提供新坐标。

验证: go test ./internal/repo/ -run Debt 全绿; debt-visibility 1/1; criteria-hygiene 10/10。
2026-10-01 21:13:46 +08:00
..