Skip to content

Cherry-pick: extensions-move series (9 commits, ~1,615 files) #2018

@alexey-pelykh

Description

@alexey-pelykh

Context

Upstream OpenClaw moved all channel implementations from src/{channel}/ to extensions/{channel}/src/ in a series of 9 commits (2026-01-22 to 2026-03-14). This is a critical prerequisite that unblocks ~145 blocked cherry-pick commits across 7 adapter issues (#1919#1926).

Commits (chronological order)

# Hash Channel Files Description
1 495a39b5a9 Mattermost 24 Extract mattermost channel plugin to extension
2 4540c6b3bc Signal 65 Move Signal channel code to extensions/signal/src/
3 0ce23dc62d iMessage 53 Move iMessage channel to extensions/imessage
4 8746362f5e Slack 252 Move Slack channel code to extensions/slack/src/
5 e5bca0832f Telegram 230 Move Telegram channel implementation to extensions/
6 5682ec37fa Discord 283 Move Discord channel implementation to extensions/
7 16505718e8 WhatsApp 155 Move WhatsApp channel implementation to extensions/
8 439c21e078 All 534 Remove channel shim directories, point all imports to extensions
9 ac29edf6c3 CI 19 Update vitest configs after channel move

Total: ~1,615 files changed, ~102K insertions, ~102K deletions

Fork State

  • Fork has channel implementations in src/{channel}/ (original location)
  • Fork has stub files in extensions/{channel}/src/ (from fork point)
  • These commits move the real implementation to extensions and rewire all imports

Unblocked After Landing

Execution Strategy

Cherry-pick each commit sequentially. Expect heavy conflicts due to fork-specific modifications in src/{channel}/. Each commit needs manual conflict resolution to adapt upstream's move to the fork's modified files.

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