mirror of https://github.com/openclaw/openclaw.git
* fix(telegram): prevent polling watchdog from aborting in-flight message delivery The polling-stall watchdog only tracked getUpdates timestamps to detect network stalls. When the agent takes >90s to process a message (common with local/large models), getUpdates naturally pauses, and the watchdog misidentifies this as a stall. It then calls fetchAbortController.abort(), which cancels all in-flight Telegram API requests — including the sendMessage call delivering the agent's reply. The message is silently lost with no retry. Track a separate lastApiActivityAt timestamp that is updated whenever any Telegram API call (sendMessage, sendChatAction, etc.) completes successfully. The watchdog now only triggers when both getUpdates AND all other API activity have been silent beyond the threshold, proving the network is genuinely stalled rather than just busy processing. Update existing stall test to account for the new timestamp, and add a regression test verifying that recent sendMessage activity suppresses the watchdog. Fixes #56065 Related: #53374, #54708 * fix(telegram): guard watchdog against in-flight API calls * fix(telegram): bound watchdog API liveness * fix: track newest watchdog API activity (#56343) (thanks @openperf) * fix: note Telegram watchdog delivery fix (#56343) (thanks @openperf) --------- Co-authored-by: Ayaan Zaidi <hi@obviy.us> |
||
|---|---|---|
| .. | ||
| src | ||
| allow-from.ts | ||
| api.ts | ||
| channel-config-api.ts | ||
| index.ts | ||
| openclaw.plugin.json | ||
| package-manifest.contract.test.ts | ||
| package.json | ||
| runtime-api.ts | ||
| setup-entry.ts | ||
| test-api.ts | ||
| update-offset-runtime-api.ts | ||