Rewrite Slack adapter to Socket Mode, add community files#15
Merged
initializ-mk merged 1 commit intomainfrom Mar 2, 2026
Merged
Rewrite Slack adapter to Socket Mode, add community files#15initializ-mk merged 1 commit intomainfrom
initializ-mk merged 1 commit intomainfrom
Conversation
…docs
Slack channel adapter:
- Replace webhook-based adapter with Socket Mode (WebSocket via apps.connections.open)
- Add mention-aware filtering: respond only when @mentioned in channels, always in threads/DMs
- Add 👀 reaction indicator and interim "Researching..." message for long-running queries
- Strip bot mention from message text before passing to LLM
- Add file upload for large responses via files.getUploadURLExternal API
- Unwrap JSON tool outputs (Tavily Research/Search) into readable markdown
- Update capability bundle domains: wss-primary.slack.com, files.slack.com
Runtime and Telegram:
- Track large tool outputs (>8000 chars) as file parts in A2A response
- Add Telegram document upload via sendDocument for large responses
- Add SplitSummaryAndReport for summary+file splitting
CLI and templates:
- Update Slack config template: app_token_env replaces signing_secret_env
- Update .env template: SLACK_APP_TOKEN replaces SLACK_SIGNING_SECRET
- Update channel setup instructions for Socket Mode flow
- Scaffold skills to subdirectories (skills/{name}/SKILL.md)
- Add Slack /invite reminder after init
Community files:
- Add CONTRIBUTING.md, CODE_OF_CONDUCT.md
- Add GitHub issue templates (bug-report, feature-request, new-skill, config)
- Add pull request template with skill-specific checklist
- Add skill starter template (_template/SKILL.md) with scripts/.gitkeep
- Update README with contributing section, mention filtering, processing indicators
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.
Summary
apps.connections.open). No public URLs, no signing secrets — justSLACK_APP_TOKEN+SLACK_BOT_TOKEN.auth.testat startup. Only responds when @mentioned in channels; responds to all thread messages unless directed at another user. Strips bot mention from text before passing to LLM.files.getUploadURLExternal) and Telegram (sendDocument) upload full reports as Markdown files with a summary message. Falls back to chunked messages on failure.wss-primary.slack.com,api.slack.com,files.slack.com(replacinghooks.slack.com)./invitereminder.CONTRIBUTING.md,CODE_OF_CONDUCT.md, GitHub issue/PR templates, skill starter template.Test plan
cd forge-core && go test ./...cd forge-cli && go test ./...cd forge-plugins && go test ./...cd forge-skills && go test ./...forge channel add slackgenerates correct.envand config