Files
openclaw/extensions/qqbot
guanbear a75b134231 fix(qqbot): add heartbeat-ACK liveness watchdog (#114902)
* fix(qqbot): add heartbeat-ACK liveness watchdog

The gateway sent heartbeats but never verified that op:11 ACKs arrived,
so a half-open connection (silent packet loss) stayed OPEN indefinitely
and inbound messages were lost with no status change.

Adds a counter-based watchdog: each heartbeat sent increments an
outstanding count, each op:11 resets it. When the count reaches the
missed-ACK threshold (2 unanswered sends), the socket is terminated so
handleClose -> scheduleReconnect re-establishes delivery.

ACKs are recognized synchronously in ws.on('message') before
socketMessageTail, so a slow ingress.receive() cannot mask an arrived
ACK. The raw frame is decoded/parsed once and carried as {rawData,
payload}; non-object frames are guarded to stay within the error path.

Closes #114885

* style(qqbot): oxfmt heartbeat liveness tests

* fix(qqbot): use this.ctx.log in heartbeat watchdog terminate path

handleHello has no local log binding; the overdue-ACK error log must
read this.ctx.log to match the existing GatewayConnection logging
convention and pass check-prod-types.

* chore: retrigger CI to clear stale checks
2026-08-02 02:52:45 -07:00
..

OpenClaw QQ Bot

Official OpenClaw channel plugin for QQ Bot group and direct-message workflows.

Install from OpenClaw:

openclaw plugins install @openclaw/qqbot

Configure QQ Bot credentials in OpenClaw, then connect the bot to the groups or direct-message contexts where agents should operate.