Skip to content

feat: Add Slack plugin with OAuth, messaging, and AI summarization#231

Open
finxo wants to merge 23 commits into
masterfrom
feat/plugin_titan
Open

feat: Add Slack plugin with OAuth, messaging, and AI summarization#231
finxo wants to merge 23 commits into
masterfrom
feat/plugin_titan

Conversation

@finxo

@finxo finxo commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

📝 Summary

Introduces a full-featured Slack plugin (titan-plugin-slack) with PKCE-based OAuth authentication, workspace discovery, direct and channel messaging, and AI-powered conversation summarization. The plugin follows the same patterns as existing plugins (Git, GitHub, Jira) and exposes a suite of composable workflow steps. Documentation and step inventory are generated and included alongside the implementation.

🔧 Changes Made

  • OAuth / Authentication: Implemented PKCE-based OAuth flow for Slack integration; added custom configuration screen for token management and project-scoped workspace configuration
  • Identity & Discovery: Added SlackIdentityResolver with caching; implemented validate_connection, list_public_channels, and list_users discovery steps
  • Target Selection: Added select_user_target, select_channel_target, and select_default_or_search_channel_target steps for resolving message destinations
  • Messaging workflows: Implemented send-slack-channel-message and direct message workflows using unified prepare_message_destination and post_message steps
  • AI Summarization: Added summarize-slack-target workflow with select_target, ensure_target_conversation, read_recent_messages, and ai_summarize_messages steps
  • Plugin registration: Enabled Slack plugin in project config and registered it in the plugin docs operations tooling
  • Documentation: Generated slack-step-inventory.json and workflow-steps.md; updated integration docs and step inventory tooling
  • Gitignore: Added .harness and harness/ entries

🧪 Testing

  • Unit tests added/updated (poetry run pytest)
  • All tests passing (make test)
  • Manual testing with titan-dev

Manual testing performed against a live Slack workspace covering OAuth flow, channel/user listing, message posting, and AI summarization. Unit test coverage for the new plugin steps should be added as a follow-up.

📊 Logs

  • No new log events

Log events introduced by the Slack plugin (verify exact names in implementation):

  • slack_oauth_token_exchanged (DEBUG) — fires after successful PKCE token exchange
  • slack_identity_resolved (DEBUG) — fires when workspace identity is fetched/cached
  • slack_message_posted (DEBUG) — fires after a message is successfully posted to a conversation
  • slack_summarize_complete (DEBUG) — fires after AI summarization, includes source_count and transcript_chars

✅ Checklist

  • Self-review done
  • Follows the project's logging rules (no secrets, no content in logs)
  • New and existing tests pass
  • Documentation updated if needed
  • Plugin documentation updated when plugin functions or parameters changed (Plugins > Git Plugin, GitHub Plugin, Jira Plugin)

finxo added 21 commits June 10, 2026 06:55
@finxo finxo added the feature New feature or functionality label Jun 17, 2026
@finxo finxo self-assigned this Jun 17, 2026
@finxo finxo added the feature New feature or functionality label Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant