diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 8e505fa86..3baa001c4 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,15 +1,15 @@ { "repository": "openclaw/openclaw", - "sha": "02fe0d8978dbf5b7acc4529d505b31f044fdf481", + "sha": "8e94689add8a9f05d979099154e88a25e411d134", "sources": { "openclaw": { "repository": "openclaw/openclaw", - "sha": "02fe0d8978dbf5b7acc4529d505b31f044fdf481" + "sha": "8e94689add8a9f05d979099154e88a25e411d134" }, "clawhub": { "repository": "openclaw/clawhub", "sha": "38c21345906ab1f107a91b33bb86b63667d96643" } }, - "syncedAt": "2026-05-08T07:07:03.070Z" + "syncedAt": "2026-05-08T07:40:10.110Z" } diff --git a/docs/channels/telegram.md b/docs/channels/telegram.md index 392e60af7..7394532f6 100644 --- a/docs/channels/telegram.md +++ b/docs/channels/telegram.md @@ -258,7 +258,7 @@ curl "https://api.telegram.org/bot/getUpdates" - Telegram is owned by the gateway process. - Routing is deterministic: Telegram inbound replies back to Telegram (the model does not pick channels). -- Inbound messages normalize into the shared channel envelope with reply metadata and media placeholders. +- Inbound messages normalize into the shared channel envelope with reply metadata, media placeholders, and persisted reply-chain context for Telegram replies the gateway has observed. - Group sessions are isolated by group ID. Forum topics append `:topic:` to keep topics isolated. - DM messages can carry `message_thread_id`; OpenClaw preserves the thread ID for replies but keeps DMs on the flat session by default. Configure `channels.telegram.dm.threadReplies: "inbound"`, `channels.telegram.direct..threadReplies: "inbound"`, `requireTopic: true`, or a matching topic config when you intentionally want DM topic session isolation. - Long polling uses grammY runner with per-chat/per-thread sequencing. Overall runner sink concurrency uses `agents.defaults.maxConcurrent`. @@ -773,7 +773,7 @@ curl "https://api.telegram.org/bot/getUpdates" - `channels.telegram.timeoutSeconds` overrides Telegram API client timeout (if unset, grammY default applies). Bot clients clamp configured values below the 60-second outbound text/typing request guard so grammY does not abort visible reply delivery before OpenClaw's transport guard and fallback can run. Long polling still uses a 45-second `getUpdates` request guard so idle polls are not abandoned indefinitely. - `channels.telegram.pollingStallThresholdMs` defaults to `120000`; tune between `30000` and `600000` only for false-positive polling-stall restarts. - group context history uses `channels.telegram.historyLimit` or `messages.groupChat.historyLimit` (default 50); `0` disables. - - reply/quote/forward supplemental context is currently passed as received. + - reply/quote/forward supplemental context is normalized into a nearest-first reply chain when the gateway has observed the parent messages; the observed-message cache is persisted beside the session store. Telegram only includes one shallow `reply_to_message` in updates, so chains older than the cache are limited to Telegram's current update payload. - Telegram allowlists primarily gate who can trigger the agent, not a full supplemental-context redaction boundary. - DM history controls: - `channels.telegram.dmHistoryLimit`