forked from openclaw/openclaw
-
Notifications
You must be signed in to change notification settings - Fork 0
Cherry-pick: Channel adapter bug fixes (30 commits) #1824
Copy link
Copy link
Closed
Labels
cherry-pickCherry-pick from upstreamCherry-pick from upstream
Description
Cherry-pick from upstream — Channel Adapter Bug Fixes
Source: openclaw/openclaw main branch
Scan session: 2026-03-22
Tier: AUTO-PICK (automatic qualifier: bug fixes in channel adapters we keep)
Telegram (12 commits)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 1 | e37e1ed24 |
Wayne | fix(telegram): prevent duplicate messages with slow LLM providers (openclaw#41932) | 542 |
| 2 | daf8afc95 |
Ayaan Zaidi | fix(telegram): clear stale retain before transient final fallback (openclaw#41763) | 115 |
| 3 | a2e30824e |
Ayaan Zaidi | fix(telegram): fall back on ambiguous first preview sends | 58 |
| 4 | 70abee69e |
Huang X | fix(telegram): avoid polling restart hang after stall detection | 71 |
| 5 | f417d78ee |
ingyukoh | fix(config): add missing editMessage/createForumTopic to Telegram actions schema (openclaw#35498) | 50 |
| 6 | 4e45a663e |
HCL | fix(telegram): prevent silent wrong-bot routing when accountId not in config | 51 |
| 7 | ac5e97097 |
Ayaan Zaidi | fix(telegram): normalize topic-edit targets | 48 |
| 8 | 7e49e98f7 |
Robin Waslander | fix(telegram): validate webhook secret before reading request body | 184 |
| 9 | a90c5092f |
Vincent Koc | fix(telegram): default fresh setups to mention-gated groups | 127 |
| 10 | 8139f8317 |
Kwest OG | fix(telegram): persist sticky IPv4 fallback across polling restarts (openclaw#48177) | 184 |
| 11 | 80110c550 |
ernestodeoliveira | fix(telegram): warn when setup leaves dmPolicy as pairing without allowFrom (openclaw#50710) | 174 |
| 12 | 8b438a308 |
ImJarvis by LukeF | fix(telegram): keep silent error fallback replies quiet | 77 |
Feishu (7 commits)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 13 | f4a2bbe0c |
yunweibang | fix(feishu): add early event-level dedup to prevent duplicate replies (openclaw#43762) | 435 |
| 14 | c6e32835d |
Andrew Demczuk | fix(feishu): clear stale streamingStartPromise on card creation failure | 79 |
| 15 | 983fecc10 |
fabiaodemianyang | fix(feishu): preserve non-ASCII filenames in file uploads (openclaw#33912) | 168 |
| 16 | 8a607d755 |
Brian Qu | fix(feishu): fetch thread context so AI can see bot replies (openclaw#45254) | 751 |
| 17 | e5a42c0be |
Tak Hoffman | fix(feishu): keep sender-scoped thread bootstrap across id types (openclaw#46651) | 142 |
| 18 | 496ca3a63 |
Peter Steinberger | fix(feishu): fail closed on webhook signature checks | 472 |
| 19 | 223ae42c7 |
Peter Steinberger | fix(feishu): harden webhook signature compare | 80 |
WhatsApp (4 commits)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 20 | a5ceb62d4 |
Luke | fix(whatsapp): trim leading whitespace in direct outbound sends (openclaw#43539) | 230 |
| 21 | 843e3c1ef |
Ted Li | fix(whatsapp): restore append recency filter lost in extensions refactor (openclaw#42588) | 186 |
| 22 | abd948f2b |
Peter Steinberger | fix(whatsapp): preserve watchdog message age across reconnects | 143 |
| 23 | 10ef58dd6 |
sparkyrider | fix(whatsapp): restore implicit reply mentions for LID identities (openclaw#48494) | 165 |
Discord (3 commits)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 24 | 487a3ba8c |
Robin Waslander | fix(discord): enforce users/roles allowlist in reaction ingress | 437 |
| 25 | 432e8943a |
Tak Hoffman | fix(discord): dedupe inbound message deliveries (openclaw#51950) | 106 |
| 26 | 78b9384aa |
ingyukoh | fix(discord): add missing autoThread to DiscordGuildChannelConfig type (openclaw#35608) | 46 |
Mattermost (3 commits)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 27 | e8a162d3d |
Mathias Nagler | fix(mattermost): prevent duplicate messages with block streaming + threading (openclaw#41362) | 335 |
| 28 | c965049dc |
Lyle | fix(mattermost): pass mediaLocalRoots through reply delivery (openclaw#44021) | 463 |
| 29 | 0c926a2c5 |
Teconomix | fix(mattermost): carry thread context to non-inbound reply paths (openclaw#44283) | 466 |
Other (1 commit)
| # | Hash | Author | Subject | Lines |
|---|---|---|---|---|
| 30 | de3e6a8c5 |
Peter Steinberger | fix(routing): require ids for slack and msteams allowlists | 317 |
Adaptation Notes
- All commits touch kept-layer files (channel extensions, routing)
- Some extension paths may have been reorganized in the fork (verify extension directory structure)
- CHANGELOG.md entries should be discarded during cherry-pick
Execution
Pick up with: /pick-from-openclaw pick up issue #N
Recommended strategy: staging branch (30 commits, single CI run)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cherry-pickCherry-pick from upstreamCherry-pick from upstream