fix(telegram): add httpTimeoutMs config for health probe timeout control#2
Open
z0650115 wants to merge 6 commits into
Open
fix(telegram): add httpTimeoutMs config for health probe timeout control#2z0650115 wants to merge 6 commits into
z0650115 wants to merge 6 commits into
Conversation
Expose httpTimeoutMs in Telegram network config (similar to Feishu implementation) to allow users to reduce the probe timeout for faster fail-fast when Telegram is unreachable due to IPv6 issues or high latency. Users can now configure: channels.telegram.network.httpTimeoutMs: 5000 # 5 second timeout This prevents the gateway event loop from blocking for 10-15 seconds when the Telegram health probe encounters IPv6 blackhole issues. Fixes openclaw#77060
Fix for issue openclaw#77012 - WebChat session transcript overwritten every turn. The migration function was not idempotent - running it multiple times would regenerate IDs for entries that already had valid IDs, breaking the parent chain and causing entries to become orphaned. The root cause was that existingIds was an empty Set at the start of each migration run. When processing entries, if an entry already had an ID but that ID wasn't in existingIds (because existingIds was empty), a new ID would be generated. This would break the parentId chain since the parentId would still point to the old ID. Fix by: 1. First pass: collect all existing IDs from the file 2. Initialize existingIds with these IDs so they're preserved 3. Only assign new IDs to entries that don't have valid existing IDs This ensures that running migration multiple times produces the same result, preventing orphaned entries and broken parent chains.
Fixes issue openclaw#77054: 1. Bug 1 - read tool output not rendered: - extractToolText() only handled item.text and item.content as strings - Modern tool results have item.content as array: [{ type: 'text', text: '...' }] - Added array content block handling to extract text from nested blocks 2. Bug 2 - exec output text clipped: - .chat-tool-card had overflow:hidden which clipped long content - Changed to overflow:auto to allow scrolling when content exceeds max-height Added tests for extractToolCards with array content blocks.
Fixes issue openclaw#77063: lossless-claw selected and enabled but not registered as context engine after plugin cache restore. Root cause: When a cached plugin registry is reused, the cached state restoration restores agent harnesses, commands, compaction providers, and memory embedding providers, but NOT registered context engines. This causes context engines registered by plugins (like lossless-claw) to be lost when the plugin loader uses cached state. Changes: - src/context-engine/registry.ts: Add RegisteredContextEngineEntry type, listRegisteredContextEngines(), and restoreRegisteredContextEngines() functions for cache snapshot/restore support - src/plugins/loader.ts: Add contextEngines field to CachedPluginState, call restoreRegisteredContextEngines() when using cached state, and save contextEngines to cache when storing registry
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expose
httpTimeoutMsin Telegramnetworkconfig (similar to Feishu implementation) to allow users to reduce the probe timeout for faster fail-fast when Telegram is unreachable due to IPv6 issues or high latency.Problem
When Telegram health probe (
getMe) encounters IPv6 blackhole issues or high latency, it can block the gateway event loop for 10-15 seconds, causing dashboard menus to freeze. This is a regression that affects all users with Telegram health monitoring enabled.Solution
Added
httpTimeoutMsoption tochannels.telegram.networkconfig:When configured, this limits each HTTP request in the probe to the specified timeout instead of the full probe budget. This allows probes to fail quickly when Telegram is unreachable, preventing gateway event loop blocking.
Changes
src/config/types.telegram.ts): AddedhttpTimeoutMs?: numbertoTelegramNetworkConfigsrc/config/zod-schema.providers-core.ts): Added validation forhttpTimeoutMs(positive integer, max 60000ms)extensions/telegram/src/probe.ts): Modified to usehttpTimeoutMsfrom network config for per-request timeoutextensions/telegram/src/probe.test.ts): Added two tests forhttpTimeoutMsbehaviorFixes
Fixes openclaw#77060