From 5b8a9f269cbaf99e5b4055f63b566fd80469280c Mon Sep 17 00:00:00 2001 From: YellowSnnowmann <167776381+YellowSnnowmann@users.noreply.github.com> Date: Wed, 22 Jul 2026 17:26:42 +0530 Subject: [PATCH] fix(composio): drop non-existent Discord channel/message slugs from curated catalog (#5124) --- .gitignore | 2 ++ .../composio/providers/catalogs_messaging.rs | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 4ab2b5466..df79dac50 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,5 @@ distribution.cer CHANGELOG.preview.md *.profraw *.diff + +.claude/worktrees/ diff --git a/src/openhuman/memory_sync/composio/providers/catalogs_messaging.rs b/src/openhuman/memory_sync/composio/providers/catalogs_messaging.rs index 31a7c3d96..33d2975e6 100644 --- a/src/openhuman/memory_sync/composio/providers/catalogs_messaging.rs +++ b/src/openhuman/memory_sync/composio/providers/catalogs_messaging.rs @@ -145,22 +145,20 @@ pub const DISCORD_CURATED: &[CuratedTool] = &[ slug: "DISCORD_LIST_MY_CONNECTIONS", scope: ToolScope::Read, }, - CuratedTool { - slug: "DISCORD_LIST_GUILD_CHANNELS", - scope: ToolScope::Read, - }, - CuratedTool { - slug: "DISCORD_GET_CHANNEL", - scope: ToolScope::Read, - }, - CuratedTool { - slug: "DISCORD_SEND_MESSAGE", - scope: ToolScope::Write, - }, - CuratedTool { - slug: "DISCORD_CREATE_MESSAGE", - scope: ToolScope::Write, - }, + // NOTE: guild-channel and channel-message actions are intentionally NOT + // listed here. Composio's `discord` toolkit is OAuth2 / user-scoped and does + // not expose them (its full action set is user/account-scoped: my user, my + // guilds, my member, invites, …). `DISCORD_LIST_GUILD_CHANNELS`, + // `DISCORD_GET_CHANNEL`, `DISCORD_SEND_MESSAGE`, and `DISCORD_CREATE_MESSAGE` + // were whitelisted here (#3085/#3144) but no such slugs exist on this + // toolkit, so Composio never returned them — the whitelist entries were + // inert and misleadingly implied channel access was possible over OAuth. + // Guild-channel / message reads live in Composio's SEPARATE `discordbot` + // toolkit (bot-token auth, `DISCORDBOT_*` slugs, e.g. + // `DISCORDBOT_FETCH_MESSAGES_FROM_CHANNEL`). Those pass the visibility + // filter via `classify_unknown` once a `discordbot` connection exists; do + // NOT hand-list `DISCORDBOT_*` slugs here from guesses — a wrong slug makes + // `find_curated` drop the real tool (worse than the pass-through default). ]; // ── telegram ────────────────────────────────────────────────────────