← Back to PRs

#12619: Add Synology Chat channel integration

by MikeWang0316tw open 2026-02-09 11:43 View on GitHub →
docs commands stale
This PR adds support for Synology Chat as a messaging channel in OpenClaw. ### Features - Incoming webhook integration for receiving messages from Synology Chat - Bot support for sending messages to Synology Chat channels - Full bidirectional communication support - Configuration documentation ### Quick Setup 1. Enable 2-factor authentication on your Synology NAS (recommended) 2. Install and start Synology Chat Server 3. Configure Integration (add webhook and bot) 4. Configure OpenClaw with the webhook URL and bot token 5. Restart OpenClaw ### Testing Tested on Ubuntu 24.04 with: - ✅ Synology Chat Desktop Client - ✅ Synology Chat Web Interface ### Documentation Complete setup guide: `/docs/channels/synology-chat.md` <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> This PR introduces a new `synology-chat` channel extension, including config schema (`src/synology-chat/config-schema.ts`), plugin registration (`extensions/synology-chat/index.ts`, manifest), onboarding tweaks, a webhook server + handler in `extensions/synology-chat/src/channel.ts`, and documentation for setup. The integration hooks into the existing channel plugin SDK via `buildChannelConfigSchema(...)` and exports `SynologyChatConfigSchema` through `src/plugin-sdk/index.ts` for reuse. Runtime state is stored via a simple setter/getter in `extensions/synology-chat/src/runtime.ts`. Main merge blockers are in the webhook handler and runtime wiring: current auth handling can allow unauthenticated/unauthorized inbound requests, several debug logs leak sensitive data, outbound sending depends on an undeclared `undici` dependency, and the gateway start logic can conflict when multiple accounts (or other listeners) share a port. <h3>Confidence Score: 2/5</h3> - This PR is not safe to merge as-is due to webhook authentication/authorization bugs and a likely runtime dependency failure. - Score is reduced because inbound webhook requests can bypass authorization (`CommandAuthorized: true`) and may not be authenticated even when `botToken` is configured, plus sensitive payload logging and an undeclared `undici` dependency can break outbound messaging at runtime. The rest of the changes are largely additive and straightforward once these are addressed. - extensions/synology-chat/src/channel.ts, docs/channels/synology-chat.md, extensions/synology-chat/package.json <!-- greptile_other_comments_section --> <sub>(5/5) You can turn off certain types of comments like style [here](https://app.greptile.com/review/github)!</sub> <!-- /greptile_comment -->

Most Similar PRs