docs(channels): 再修 3 处注释里的 design/08 引用(其中 -14 口径无对应节 ⇒ 改指对照清单)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled

This commit is contained in:
AskaEth committed 2026-10-05 11:31:14 +08:00
1 parent eeb5f26668
commit 2b6750b821
3 files changed
+11 -6

No files matched your search

+3 -2
View File
@@ -12,8 +12,9 @@ package qq_obv11
// 重试只发生在出站拨号上。
//
// 既有实现对照(AGENTS §9.5):项目已有 `internal/channel/adapter/wsutil.Backoff`
// (2s 起步、×2、60s 封顶的网关重连调度器,KOOK 用;design/08 §95 计划让各 WS 平台共用
// 这套重连基座)。本包**口径与之对齐**(同样 2s/60s),但不直接 import 它,理由有三:
// (2s 起步、×2、60s 封顶的网关重连调度器,KOOK 用;design/08 §7「WebSocket 有状态
// channel 的公共基座」计划让各 WS 平台共用这套重连基座)。本包**口径与之对齐**(同样
// 2s/60s),但不直接 import 它,理由有三:
// ① 本需求要 ±抖动,wsutil.Backoff 没有这个能力;② import wsutil 会把 gorilla/websocket
// 拖进本包依赖图,而本包刻意只用标准库携带 WS 帧编解码(见 websocket.go 抬头);
// ③ 真正收敛的做法是给 wsutil.Backoff 加可选抖动再迁走,那要改 internal/**,属后续工作。
+4 -3
View File
@@ -125,9 +125,10 @@ func (a *Adapter) ReadMessages(ctx context.Context, emit func(adapter.UnifiedMes
}
}
// deliver 在已安装处理器时把归一化消息交给它,否则交给 emit 回调
// (design/08 §1:推送式与拉取式投递)。文件类附件的字节在**投递之前**内联
// (切片 IM-1):轮询是这条适配器唯一的入站路径,因此这里是唯一的决策点。
// deliver 在已安装处理器时把归一化消息交给它,否则交给 emit 回调(design/08 §1 的
// `ReadMessages` 的 `emit` 与 `SetMessageHandler` 两条投递路径)。文件类附件的字节
// 在**投递之前**内联(切片 IM-1):轮询是这条适配器唯一的入站路径,因此这里是
// 唯一的决策点。
func (a *Adapter) deliver(ctx context.Context, m adapter.UnifiedMessage, emit func(adapter.UnifiedMessage)) {
a.inlineInboundMedia(ctx, &m)
if h := a.handlerLocked(); h != nil {
@@ -1,6 +1,9 @@
package weixin_ilink
// 本文件承载适配器的「会话被拒绝」状态机(design/08 §4-§5)。
// 本文件承载适配器的「会话被拒绝」状态机(design/08 §4 的 weixin-ilink 条目只写到
// 「扫码登录」,未记 `-14` 口径;其语义与对照依据见
// DevDocs/reference/weixin_ClawBot_Bridge/对照清单.md §2.2「`errcode=-14` = 会话/token
// 被拒」与 §3 的「-14 处理」对照行)。
//
// iLink 在拒绝或作废会话凭据时返回 errcode=-14。bot token 是长期凭据——一个月前
// 扫码拿到的 token 依然可用——所以 -14 不是基于时间的过期:它表示 iLink 已不再接受