mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-15 18:15:47 +00:00
feat(channels): add Facebook Messenger and Pancake channel integrations (#731)
Add two new channel implementations for Facebook Fanpage (comment + Messenger auto-reply, first inbox DM) and Pancake/pages.fm (multi-platform inbox via Facebook, Zalo, Instagram, TikTok, WhatsApp, LINE). Key features: - Facebook: comment auto-reply, Messenger auto-reply, first inbox DM, HMAC-SHA256 webhook verification, multi-page webhook routing - Pancake: multi-platform inbox, outbound echo dedup with HTML normalization, race-condition-safe echo fingerprinting, platform-aware formatting - Bootstrap skip: pre-fill USER.md from channel metadata (Pancake) - SanitizeDisplayName across all channels (defense in depth) Code audit fixes: - Fix truncateForTikTok byte→rune slicing (UTF-8 corruption) - Fix empty message.ID shared dedup slot (silent message loss) - Fix DisplayName markdown injection in buildPrefilledUser - Consolidate duplicate ChannelMeta type (agent→bootstrap) - Compile-time interface assertions, alphabetical type constants - Per-message logs demoted to slog.Debug, errors.As for wrapped errors - UI: alphabetical channel ordering, complete config schemas - Remove deprecated WhatsApp bridge_url, fix nested error parsing
This commit is contained in:
1 parent
7205e6bb3b
commit
fb8afd41bf
44 files changed
+4214
-39
No files matched your search
@@ -88,9 +88,9 @@ Every channel must implement the base interface:
|
||||
| Interface | Purpose | Implemented By |
|
||||
|-----------|---------|----------------|
|
||||
| `StreamingChannel` | Real-time streaming updates | Telegram, Slack |
|
||||
| `WebhookChannel` | Webhook HTTP handler mounting | Feishu |
|
||||
| `WebhookChannel` | Webhook HTTP handler mounting | Facebook, Feishu/Lark, Pancake |
|
||||
| `ReactionChannel` | Status reactions on messages | Telegram, Slack, Feishu |
|
||||
| `BlockReplyChannel` | Override gateway block_reply setting | Slack |
|
||||
| `BlockReplyChannel` | Override gateway block_reply setting | Discord, Feishu/Lark, Pancake, Slack, Zalo OA, Zalo Personal |
|
||||
|
||||
`BaseChannel` provides a shared implementation that all channels embed: allowlist matching, `HandleMessage()`, `CheckPolicy()`, and user ID extraction.
|
||||
|
||||
|
||||
@@ -233,9 +233,11 @@ All notable changes to GoClaw Gateway are documented here. Format follows [Keep
|
||||
- **File viewer**: Improved workspace file view/download and storage depth control
|
||||
- **Pairing DB errors**: Handle transient errors gracefully
|
||||
- **Provider thinking**: Corrected DashScope per-model thinking logic
|
||||
- **Pancake Page loop guard**: Narrowed webhook ingress to `messaging` + `INBOX` events and normalized HTML-formatted echoes before short-TTL outbound echo suppression, reducing Facebook Page self-reply loops in Pancake inbox conversations
|
||||
|
||||
### Documentation
|
||||
|
||||
- Updated `05-channels-messaging.md` — Refreshed `WebhookChannel` / `BlockReplyChannel` implementation tables for Facebook, Pancake, Discord, and Zalo-family channels
|
||||
- Updated `18-http-api.md` — Added section 17 for Runtime & Packages Management endpoints
|
||||
- Updated `09-security.md` — Added Docker entrypoint documentation, pkg-helper architecture, privilege separation
|
||||
- Updated `17-changelog.md` — New entries for packages management, Docker security, and auth fix
|
||||
|
||||
Reference in new issue
Block a user