docs(debt): 订正危害机制为"抵达次序/last-writer-holds"(否证"心跳频率不同")+ 补三条语义约束

① ★ 订正流传的因果: "每个 project 心跳频率不同"**不成立**(三种独立观测)
   ① 九种状态的**复现间隔全部 = 30.01s**(= setInterval(beat,30000))
   ② 相位固定: 三轮 30s 窗口的抵达次序与相对偏移逐轮重合
   ③ 驻留时长相差 30 倍(agentmail 10.86s vs facemodule 0.30s)而复现间隔全等
   ⇒ 真机制 = 各上报者周期相同、相位错开、~15s 内挤成一串抵达,之后 ~6-15s 静默
     ⇒ 最后抵达者独占静默间隙(last-writer-holds)
     ⇒ 占比由**抵达次序**决定,不由频率
   ⇒ ★ 危害更重而非更轻: 次序固定 ⇒ **稳定偏置**(长采样候选为 0 = 63.9%),
     不像随机间歇会被平均掉
   附: /tmp/am-mcp-probe 非本次调试产物 — opencode.db 里 23 条 09-19 会话(他人探针遗留)

② 修法 A 必须同时定住三条语义([] 今天把 ① 与 ② 混在一起):
   ① 本目录无会话 ⇒ 允许,[] 只清自己那个 workspace
   ② 本 agent 无会话 ⇒ 今天无任何上报者该有权说
   ③ 看不到(list 失败)⇒ 必须继续"省略该字段",**不得**降级成 []
   ★ ③ 不可省: 一旦改成 [],"一次 list 失败"会把该 workspace 的 37 行清成 0,
     而下游只看"候选少了",看不出那是读取失败

校验: go test ./internal/repo/ -run Debt -count=1 ⇒ ok
This commit is contained in:
2026-09-26 02:48:56 +08:00
parent 572731ec20
commit e175fc697d

File diff suppressed because one or more lines are too long