mirror of https://github.com/openclaw/openclaw.git
* feat: detect stale Slack sockets and auto-restart
Slack Socket Mode connections can silently stop delivering events while
still appearing connected (health checks pass, WebSocket stays open).
This "half-dead socket" problem causes messages to go unanswered.
This commit adds two layers of protection:
1. **Event liveness tracking**: Every inbound Slack event (messages,
reactions, member joins/leaves, channel events, pins) now calls
`setStatus({ lastEventAt, lastInboundAt })` to update the channel
account snapshot with the timestamp of the last received event.
2. **Health monitor stale socket detection**: The channel health monitor
now checks `lastEventAt` against a configurable threshold (default
30 minutes). If a channel has been running longer than the threshold
and hasn't received any events in that window, it is flagged as
unhealthy and automatically restarted — the same way disconnected
or crashed channels are already handled.
The restart reason is logged as "stale-socket" for observability, and
the existing cooldown/rate-limit logic (3 restarts/hour max) prevents
restart storms.
* Slack: gate liveness tracking to accepted events
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
|
||
|---|---|---|
| .. | ||
| acpx | ||
| bluebubbles | ||
| copilot-proxy | ||
| device-pair | ||
| diagnostics-otel | ||
| diffs | ||
| discord | ||
| feishu | ||
| google-gemini-cli-auth | ||
| googlechat | ||
| imessage | ||
| irc | ||
| line | ||
| llm-task | ||
| lobster | ||
| matrix | ||
| mattermost | ||
| memory-core | ||
| memory-lancedb | ||
| minimax-portal-auth | ||
| msteams | ||
| nextcloud-talk | ||
| nostr | ||
| open-prose | ||
| phone-control | ||
| qwen-portal-auth | ||
| shared | ||
| signal | ||
| slack | ||
| synology-chat | ||
| talk-voice | ||
| telegram | ||
| test-utils | ||
| thread-ownership | ||
| tlon | ||
| twitch | ||
| voice-call | ||
| zalo | ||
| zalouser | ||