Merged
Conversation
Implement Slack as a second messaging platform alongside Telegram. Uses slack-bolt with Socket Mode (WebSocket, no public URL needed). Handles text, image, and audio messages. Adds generalized platform_images table for cross-platform image retrieval, setup wizard and CLI command (`memclaw slack`), and updated documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Without this toggle, DMs to the bot show "Sending messages to this app has been turned off" with no clear path to fix.
Lets users create the Slack app via "From a manifest" instead of clicking through scopes, events, and the App Home toggles by hand.
Messaging clients render different (or no) markdown dialects, so the agent's full markdown output (`**bold**`, `# headings`, fenced code) was leaking as literal characters in Slack and WhatsApp. Pin the agent to a minimal common syntax — single-asterisk bold, underscore italic, plain dashes for bullets, no headings or backticks — that renders cleanly across Slack mrkdwn, WhatsApp, and Telegram. Also flip the Telegram handler to parse_mode="Markdown" so `*bold*` and `_italic_` actually render, with a plain-text fallback if the agent emits something the legacy parser rejects.
… setup `memclaw slack` was prompting SLACK_BOT_TOKEN and SLACK_APP_TOKEN as "(optional)" even though the CLI immediately errored out after setup if they were missing — so the wizard happily accepted blank input that the bot couldn't run with. Same lie applied to TELEGRAM_BOT_TOKEN. Mark those tokens required=True and extend the wizard so a channel-scoped required key enforces only when invoked via that channel; `memclaw configure` still lets users edit anything without forcing slack/telegram keys on telegram-only/slack-only users. Also drop the duplicate ", optional" suffix from the SLACK_ALLOWED_CHANNELS label that was rendering as "... optional) (optional):".
Handlers already pre-fetch and summarise URLs into a `[Link summary]` block, but the agent's capability list never mentioned it — so it wouldn't surface the feature when users asked what it can do.
Telegram handler now passes parse_mode="Markdown" so the agent's single-asterisk bold actually renders. The handler test was still asserting the old plain-text call signature.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.