Skip to content

Commit 85f9276

Browse files
committed
build(whatsapp): externalize whatsapp plugin
1 parent 49ccd4e commit 85f9276

18 files changed

Lines changed: 81 additions & 80 deletions

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Docs: https://docs.openclaw.ai
5353
- Scrub streamable MCP redirect headers [AI]. (#80906) Thanks @pgondhi987.
5454
- fix(memory-wiki): require admin scope for ingest [AI]. (#80897) Thanks @pgondhi987.
5555
- memory-wiki: require write scope for Obsidian search [AI]. (#80904) Thanks @pgondhi987.
56-
- WhatsApp/install: allow Baileys' pinned libsignal git subdependency under pnpm 11 so source installs and local checks can complete.
56+
- WhatsApp: externalize the channel as a ClawHub/npm plugin outside the core npm runtime bundle, and bump Baileys to `7.0.0-rc11` so libsignal resolves from the registry instead of a GitHub tarball.
5757
- Build: skip copied metadata for bundled plugins that are excluded from build entries, preventing update/status rebuilds from advertising missing QQ Bot runtime files. (#80925)
5858
- Control UI/sessions: nest subagent sessions under their parent session in the session picker dropdown using a visual `└─ ` prefix, making the parent-child relationship clear. Fixes #77628. (#78623) Thanks @chinar-amrutkar.
5959
- fix(config): reject auto-managed meta.lastTouched\* paths in config set/unset (#80856). Thanks @ai-hpc

docs/channels/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ Text is supported everywhere; media and reactions vary by channel.
1616
- Slack multi-person DMs route as group chats, so group policy, mention
1717
behavior, and group-session rules apply to MPIM conversations.
1818
- WhatsApp setup is install-on-demand: onboarding can show the setup flow before
19-
the plugin package is installed, and the Gateway loads the WhatsApp runtime
20-
only when the channel is actually active.
19+
the plugin package is installed, and the Gateway loads the external
20+
ClawHub/npm plugin only when the channel is actually active.
2121

2222
## Supported channels
2323

docs/channels/whatsapp.md

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,19 @@ Status: production-ready via WhatsApp Web (Baileys). Gateway owns linked session
1414
- `openclaw channels login --channel whatsapp` also offers the install flow when
1515
the plugin is not present yet.
1616
- Dev channel + git checkout: defaults to the local plugin path.
17-
- Stable/Beta: uses the npm package `@openclaw/whatsapp` on the current official
18-
release tag.
17+
- Stable/Beta: installs the official `@openclaw/whatsapp` plugin from ClawHub
18+
first, with npm as the fallback.
19+
- The WhatsApp runtime is distributed outside the core OpenClaw npm package
20+
because its Baileys dependency chain uses GPL-licensed `libsignal`.
1921

2022
Manual install stays available:
2123

2224
```bash
23-
openclaw plugins install @openclaw/whatsapp
25+
openclaw plugins install clawhub:@openclaw/whatsapp
2426
```
2527

26-
Use the bare package to follow the current official release tag. Pin an exact
27-
version only when you need a reproducible install.
28-
29-
On Windows, the WhatsApp plugin needs Git on `PATH` during npm install because
30-
one of its Baileys/libsignal dependencies is fetched from a git URL. Install
31-
Git for Windows, then restart the shell and rerun the install:
32-
33-
```powershell
34-
winget install --id Git.Git -e
35-
```
36-
37-
Portable Git also works if its `bin` directory is on `PATH`.
28+
Use the bare npm package (`@openclaw/whatsapp`) only when you need the registry
29+
fallback. Pin an exact version only when you need a reproducible install.
3830

3931
<CardGroup cols={3}>
4032
<Card title="Pairing" icon="link" href="/channels/pairing">

docs/plugins/plugin-inventory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ uninstall, and publishing commands.
166166
| [tlon](/plugins/reference/tlon) | Adds the Tlon channel surface for sending and receiving OpenClaw messages. | `@openclaw/tlon`<br />npm; ClawHub | channels: tlon; contracts: tools; skills |
167167
| [twitch](/plugins/reference/twitch) | Adds the Twitch channel surface for sending and receiving OpenClaw messages. | `@openclaw/twitch`<br />npm; ClawHub | channels: twitch |
168168
| [voice-call](/plugins/reference/voice-call) | Adds agent-callable tools. | `@openclaw/voice-call`<br />npm; ClawHub | contracts: tools |
169-
| [whatsapp](/plugins/reference/whatsapp) | Adds the WhatsApp channel surface for sending and receiving OpenClaw messages. | `@openclaw/whatsapp`<br />npm; ClawHub | channels: whatsapp |
169+
| [whatsapp](/plugins/reference/whatsapp) | Adds the WhatsApp channel surface for sending and receiving OpenClaw messages. | `@openclaw/whatsapp`<br />ClawHub: `clawhub:@openclaw/whatsapp`; npm | channels: whatsapp |
170170
| [zalo](/plugins/reference/zalo) | Adds the Zalo channel surface for sending and receiving OpenClaw messages. | `@openclaw/zalo`<br />npm; ClawHub | channels: zalo |
171171
| [zalouser](/plugins/reference/zalouser) | Adds the Zalo Personal channel surface for sending and receiving OpenClaw messages. | `@openclaw/zalouser`<br />npm; ClawHub | channels: zalouser; contracts: tools |
172172

docs/plugins/reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ pnpm plugins:inventory:gen
128128
| [vydra](/plugins/reference/vydra) | Adds Vydra model provider support to OpenClaw. | `@openclaw/vydra-provider`<br />included in OpenClaw | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders |
129129
| [web-readability](/plugins/reference/web-readability) | Extract readable article content from local HTML web fetch responses. | `@openclaw/web-readability-plugin`<br />included in OpenClaw | contracts: webContentExtractors |
130130
| [webhooks](/plugins/reference/webhooks) | Authenticated inbound webhooks that bind external automation to OpenClaw TaskFlows. | `@openclaw/webhooks`<br />included in OpenClaw | plugin |
131-
| [whatsapp](/plugins/reference/whatsapp) | Adds the WhatsApp channel surface for sending and receiving OpenClaw messages. | `@openclaw/whatsapp`<br />npm; ClawHub | channels: whatsapp |
131+
| [whatsapp](/plugins/reference/whatsapp) | Adds the WhatsApp channel surface for sending and receiving OpenClaw messages. | `@openclaw/whatsapp`<br />ClawHub: `clawhub:@openclaw/whatsapp`; npm | channels: whatsapp |
132132
| [xai](/plugins/reference/xai) | Adds xAI model provider support to OpenClaw. | `@openclaw/xai-plugin`<br />included in OpenClaw | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders |
133133
| [xiaomi](/plugins/reference/xiaomi) | Adds Xiaomi model provider support to OpenClaw. | `@openclaw/xiaomi-provider`<br />included in OpenClaw | providers: xiaomi; contracts: speechProviders |
134134
| [zai](/plugins/reference/zai) | Adds Z.AI model provider support to OpenClaw. | `@openclaw/zai-provider`<br />included in OpenClaw | providers: zai; contracts: mediaUnderstandingProviders |

docs/plugins/reference/whatsapp.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,12 @@ Adds the WhatsApp channel surface for sending and receiving OpenClaw messages.
1212
## Distribution
1313

1414
- Package: `@openclaw/whatsapp`
15-
- Install route: npm; ClawHub
15+
- Install route: ClawHub: `clawhub:@openclaw/whatsapp`; npm
1616

1717
## Surface
1818

1919
channels: whatsapp
2020

21-
## Windows install note
22-
23-
On Windows, the WhatsApp plugin needs Git on `PATH` during npm install because one of its Baileys/libsignal dependencies is fetched from a git URL. Install Git for Windows, then restart the shell and rerun the install:
24-
25-
```powershell
26-
winget install --id Git.Git -e
27-
```
28-
29-
Portable Git also works if its `bin` directory is on `PATH`.
30-
3121
## Related docs
3222

3323
- [whatsapp](/channels/whatsapp)

extensions/whatsapp/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
"type": "module",
1010
"dependencies": {
11-
"baileys": "7.0.0-rc10",
11+
"baileys": "7.0.0-rc11",
1212
"https-proxy-agent": "9.0.0",
1313
"jimp": "1.6.1",
1414
"typebox": "1.1.38",
@@ -56,8 +56,9 @@
5656
]
5757
},
5858
"install": {
59+
"clawhubSpec": "clawhub:@openclaw/whatsapp",
5960
"npmSpec": "@openclaw/whatsapp",
60-
"defaultChoice": "npm",
61+
"defaultChoice": "clawhub",
6162
"minHostVersion": ">=2026.4.25"
6263
},
6364
"compat": {

pnpm-lock.yaml

Lines changed: 19 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ minimumReleaseAgeExclude:
1212
- "@agentclientprotocol/sdk"
1313
- "axios"
1414
- "basic-ftp"
15+
1516
- "hono"
17+
1618
- "openclaw"
1719
- "protobufjs"
1820
- "vite"
@@ -71,7 +73,6 @@ allowBuilds:
7173
"@tloncorp/api": true
7274
"@tloncorp/tlon-skill": true
7375
baileys: true
74-
"@whiskeysockets/libsignal-node": true
7576
authenticate-pam: true
7677
"@discordjs/opus": false
7778
esbuild: true
@@ -92,5 +93,5 @@ peerDependencyRules:
9293
"prism-media>opusscript": "^0.0.8 || ^0.1.1"
9394

9495
patchedDependencies:
95-
"[email protected]rc10": "patches/[email protected]rc10.patch"
96+
"[email protected]rc11": "patches/[email protected]rc11.patch"
9697
"@agentclientprotocol/[email protected]": "patches/@[email protected]"

0 commit comments

Comments
 (0)