JianFeeeee
a82ae2b60e
fix(channels): 撤源失败的诊断必须带真正原因(不再只说"无返回")
## 我上一版(v2.0.28)自己引入的缺陷
内核桥的签名是 `call(name, args) -> (result, nil) | (nil, err)` ——
**失败时第一个返回值是 nil,原因在第二个返回值里**。
我写成 `local r = call(...)` 再读 `r.ok` ⇒ 恒为 nil ⇒ 日志只说
「撤源(重建)失败 channels-buddy-buddy-main: 无返回」。
**一句不可操作的诊断比没有更糟**:它把"权限没授予 / 超时 / 拒删最后一个源"
三种完全不同的原因(对应三种完全不同的处置)压成同一句空话。生产实测已复现
这条日志(部署时全量重同步,权限尚未授予)。
## 修法
两个撤源点都改成接**两个返回值**,日志带上内核给出的原文原因:
`kernel action "remove_source" is not granted to plugin "channels";
enable it in the plugin's kernel permissions`
并把"要授予哪个动作、声明在 plugin.kernel"一并写进提示。
## 判据收紧(旧判据咬不住这个变异)
原来只断言日志含"撤源失败"和"remove_source" —— **只接第一个返回值的版本照样通过**。
新增断言:日志必须含内核给的**真实原因**(`not granted`)。
这是本会话第 9 类判据教训:**判据只看"失败了",不看"为什么失败"**,
于是它无法区分"诊断可用"与"诊断是空话"。
2026-10-16 10:26:55 +08:00
..
2026-10-14 15:43:09 +08:00
2026-10-14 15:35:49 +08:00
2026-10-13 13:42:45 +08:00
2026-10-14 20:00:58 +08:00
2026-10-14 20:00:58 +08:00
2026-10-14 15:24:24 +08:00
2026-10-13 13:42:45 +08:00
2026-10-14 16:18:27 +08:00
2026-10-14 16:18:27 +08:00
2026-10-16 07:51:21 +08:00
2026-10-14 20:00:58 +08:00
2026-10-13 23:14:04 +08:00
2026-10-16 00:56:14 +08:00
2026-10-13 16:51:15 +08:00
2026-10-13 16:51:15 +08:00
2026-10-13 16:51:15 +08:00
2026-10-14 15:11:05 +08:00
2026-10-11 20:50:52 +08:00
2026-10-14 20:00:58 +08:00
2026-10-14 16:00:34 +08:00
2026-10-13 15:44:51 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 07:41:42 +08:00
2026-10-15 22:43:08 +08:00
2026-10-13 13:42:57 +08:00
2026-10-16 09:00:47 +08:00
2026-10-14 15:11:05 +08:00
2026-10-13 23:44:30 +08:00
2026-10-14 20:00:58 +08:00
2026-10-13 16:11:11 +08:00
2026-10-13 15:52:26 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 13:42:57 +08:00
2026-10-14 16:46:43 +08:00
2026-10-16 10:26:55 +08:00
2026-10-16 09:36:02 +08:00
2026-10-14 20:12:10 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 13:42:57 +08:00
2026-10-16 08:28:36 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 13:42:45 +08:00
2026-10-16 00:56:14 +08:00
2026-10-13 13:42:45 +08:00
2026-10-14 16:09:22 +08:00
2026-10-16 00:56:14 +08:00
2026-10-15 08:22:57 +08:00
2026-10-15 08:22:57 +08:00
2026-10-15 20:30:33 +08:00
2026-10-15 08:22:57 +08:00
2026-10-16 01:38:34 +08:00
2026-10-16 01:13:11 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 15:38:35 +08:00
2026-10-13 15:38:35 +08:00
2026-08-13 12:25:07 +08:00
2026-10-11 20:50:52 +08:00
2026-10-11 20:50:52 +08:00
2026-10-13 13:42:57 +08:00
2026-10-15 08:22:57 +08:00
2026-10-14 16:00:34 +08:00
2026-10-13 13:42:57 +08:00
2026-10-11 13:52:29 +08:00
2026-10-03 08:01:37 +08:00
2026-10-03 07:45:54 +08:00
2026-10-13 16:11:11 +08:00
2026-10-07 17:37:22 +08:00
2026-09-28 22:52:51 +08:00
2026-10-13 13:42:45 +08:00