feat(channels): QQ 账号 get_status 主动探活(复用既有 action 通道 / 状态变化才记日志 / AccountStatus 与 WS 连通分开)
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 12:10:34 +08:00
1 parent f44114301e
commit a79fe9684e
6 files changed
+577 -18

No files matched your search

+8 -1
View File
@@ -184,8 +184,15 @@ func (a *Adapter) readConn(ctx context.Context, conn *wsConn) {
// 审查」决定是否 / 如何进入她的上下文(design/12 §6 策略一补充);其余非 message
// 上报(message_sent 回声、meta_event 心跳等)一律丢弃。丢弃前一律留一条**脱敏结构
// DEBUG**(logInboundFrame):上游到底有没有把这一帧推过来,是排障时最先要回答的问题,
// 而「被丢弃」与「从未到达」在日志里必须能分开。
// 而「被丢弃」与「从未到达」在日志里必须能分开。唯一的例外是 action 回执(空 post_type
// + echo):它交给等待中的主动 action(见 probe.go),不再走入站日志。
func (a *Adapter) handlePayload(ctx context.Context, payload []byte) {
// 先给 action 回执(空 post_type + echo)一个归宿:WS 上的 get_status 等主动
// action 靠 echo 关联等待表(见 probe.go)。命中即由调用方消费,不再走入站日志;
// 没有等待者的散落回执仍落回下面的脱敏结构 DEBUG。
if a.routeActionResponse(payload) {
return
}
ev, err := parseEvent(payload)
if err != nil {
a.log.Debug("non-event payload ignored", "err", err)