docs(telegram): document reply-chain cache · openclaw/openclaw@99850d1
obviyus
·
2026-05-08
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -198,6 +198,7 @@ Docs: https://docs.openclaw.ai
|
198 | 198 | - Gateway/nodes: ignore malformed non-string capability entries from live nodes instead of throwing while listing the node catalog. |
199 | 199 | - Gateway/pairing: preserve deliberately narrowed role-token scopes when approving device scope upgrades instead of regranting the whole approved baseline. |
200 | 200 | - Telegram/ACP: keep chat-bound ACP replies durable by delivering final-only ACP output as final text instead of transient Telegram preview blocks. Thanks @shakkernerd. |
| 201 | +- Telegram: hydrate replied-to messages as a persisted nearest-first reply chain so agents can see observed parent text, media refs, captions, senders, timestamps, and nested replies instead of guessing from a shallow reply id. |
201 | 202 | - Gateway/watch: leave `OPENCLAW_TRACE_SYNC_IO` disabled by default in `pnpm gateway:watch:raw` so watch mode avoids noisy Node sync-I/O stack traces unless explicitly requested. |
202 | 203 | - Codex app-server: close stdio stdin before force-killing the managed app-server, matching Codex single-client shutdown behavior and avoiding unsettled CLI exits after successful runs. |
203 | 204 | - CLI/Codex: dispose registered agent harnesses during short-lived CLI shutdown so successful Codex-backed `agent --local` runs do not leave app-server child processes alive. |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -258,7 +258,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
258 | 258 | |
259 | 259 | - Telegram is owned by the gateway process. |
260 | 260 | - Routing is deterministic: Telegram inbound replies back to Telegram (the model does not pick channels). |
261 | | -- Inbound messages normalize into the shared channel envelope with reply metadata and media placeholders. |
| 261 | +- 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. |
262 | 262 | - Group sessions are isolated by group ID. Forum topics append `:topic:<threadId>` to keep topics isolated. |
263 | 263 | - 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.<chatId>.threadReplies: "inbound"`, `requireTopic: true`, or a matching topic config when you intentionally want DM topic session isolation. |
264 | 264 | - 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<bot_token>/getUpdates"
|
773 | 773 | - `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. |
774 | 774 | - `channels.telegram.pollingStallThresholdMs` defaults to `120000`; tune between `30000` and `600000` only for false-positive polling-stall restarts. |
775 | 775 | - group context history uses `channels.telegram.historyLimit` or `messages.groupChat.historyLimit` (default 50); `0` disables. |
776 | | -- reply/quote/forward supplemental context is currently passed as received. |
| 776 | +- 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. |
777 | 777 | - Telegram allowlists primarily gate who can trigger the agent, not a full supplemental-context redaction boundary. |
778 | 778 | - DM history controls: |
779 | 779 | - `channels.telegram.dmHistoryLimit` |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。