mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-24 19:35:28 -06:00
a75b134231
* 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
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.