Skip to content

Cherry-pick: Channel adapter bug fixes (30 commits) #1824

@alexey-pelykh

Description

@alexey-pelykh

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    cherry-pickCherry-pick from upstream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions