docs(debt): 100 截断由 pi 独立数据**证实升为确证**(三值全命中);更正它 wt-parent/project_directory 两处;撞键可达性三条路径实测=0;三重静默两腿确认一腿精确化

① ★★★★★ pi `95e67bff` 独立观测三值**全部命中我的预测** ⇒ 100 截断从"候选"升为**确证**
     TrueAgent=**100**(实测 284 会话)/ llmsproxy=**18**(实测 18)/ Liquid=**7**(实测 7)
     规则: 会话数 >=100 报 100、<100 报全量 ⇒ 三项逐中,**两个方向**都对
     ⇒ 它 ValueError 的 110 vs 37 与我的 176 vs 100 = **同一个截断**,闭环
     ⇒ 附带: 五态里的 **23** 精确命中 `/tmp/am-mcp-probe`=23 ⇒ 五态 = 五个目录各取 min(n,100)

② ★★★ pi 的 `/tmp/wt-parent` + `project_directory` **两处都不成立**(规则 ⑩ 第三次同类)
     · `project_directory` 仍不是列名(project 表的列是 worktree/vcs/name/…)
     · `/tmp/wt-parent` 全库不存在: session.directory=0 / project.worktree=0 / LIKE '%wt-%'=0
     ⇒ 它给"≥8 目录"的结构解释不成立;★ 真实结构**相反**:
       一个 directory 跨**两个** project_id(agentmail 176 条 = 103 + 73)
       而含多目录的 project 其 worktree 是 **`/`**(13 个目录)⇒ 是"根 project 登记",非 git worktree

③ ★★★★★ 撞键可达性: pi 说"今天不撞只因 session.id 全局唯一"方向对但**用错对象**
     撞键需要的是"同一 id 出现两次且 ws 不同"。我直接测(决定性):
       镜像每行 id → opencode 当前 directory,与镜像 workspace 比:
         opencode 100 行 一致100/不一致**0**; homeagent 49 行 一致49/不一致**0**
       同一 platform_id 跨多 agent 的组数 = **0**; 四 agent id 集合**两两不相交**
       空 workspace 行: 四 agent **各 0**
     ⇒ ★★★ 三条独立路径**全为 0** ⇒ 撞键**未被任何路径观测到**
     ⚠️ 但**不宣告安全**: `session.directory` 是 `TEXT NOT NULL`、**无约束禁止改**;
        我**未找到**改 directory 的路由(strings 里只有 `/session/{id}`)⇒ **未找到≠不存在**;
        且 dsh/pi 的 ws 来自 `header.cwd`(可空可变)⇒ 维持"潜在、未被观测到发生"

④ ★ pi 的"三重静默"**两腿确认、一腿精确化**:
     ① "INSERT 无 ON CONFLICT" **对** —— ⚠️ 它的 grep=0 与我的 grep=1 **都"对"**,
        差在**是否把 `:86` 注释算进去** ⇒ 可判形状: 数构造时**注释污染计数**
     ② "agents.go 降级 -1" **对**(`:201`,注释明说"不报错")
     ③ "桥根本不读响应(0 处)" **过宽**: 桥**读** `allowed_models`/`pending_mails`/`alias`/`mail_id`;
        **不读**的是 `platform_sessions_synced`/`models_synced`(opencode 与 dsh 桥**各 0 处**)
        ⇒ ★ 更准的一层: `-1` 与"未上报"**共用同值** ⇒ 即便有人读也**分不出**"没报" vs "报了但失败"
          ⇒ **信号既无人消费、又不可区分**

⑤ ★ 两处我自己的错(当场记下)
     · 我先用**猜的字段名** `synced_sessions` 去核 pi 的 ③ ⇒ 得 0,**差点用错名字确认一个过宽结论**
       (真名是 `platform_sessions_synced`)
     · ⚠️★ **写本条补记时我把它的行号又写成 `:228`,实际在 `:242`** ——
       在"记录'核字段名'"的同一条里**当场重演**该模式 ⇒ 行号**必须写完就 grep -n 核**
   ⇒ 规则 ⑩ 射程第三次扩: 核**标识符** > 核**说话人** > 核**字段名/行号/列名**
   ⇒ 本轮 9 处新引行号已逐一 `sed -n Np | grep -c` 核过,全中

校验: go test ./internal/repo/ -run Debt -count=1 ⇒ ok; 未改产品代码
This commit is contained in:
2026-09-29 04:29:31 +08:00
parent 1a31545fa1
commit d85794d3e1

File diff suppressed because one or more lines are too long