Discord plugin: permission prompts should support guild channels, not just DMs

Resolved 💬 3 comments Opened Mar 27, 2026 by subrih Closed Mar 31, 2026

Summary

The notifications/claude/channel/permission_request handler in the Discord plugin (server.ts) sends Allow/Deny permission prompts exclusively via DM to users in access.allowFrom. Guild channels configured in access.groups are intentionally excluded with the comment:

"Groups are intentionally excluded — the security thread resolution was 'single-user mode for official plugins.'"

This means users who interact with Claude primarily through a guild channel have no way to receive or respond to permission prompts from that channel — they must watch their DMs separately.

Expected behavior

Permission prompts should also be sent to guild channels registered in access.groups, in addition to (or optionally instead of) DMs. The interactionCreate button handler already validates allowFrom membership regardless of channel type, so the security model is already sound for guild channel delivery.

Suggested fix

After the existing allowFrom DM loop in the permission_request notification handler, add a loop over access.groups:

for (const channelId of Object.keys(access.groups)) {
  void (async () => {
    try {
      const ch = await fetchTextChannel(channelId)
      if ('send' in ch) await ch.send({ content: text, components: [row] })
    } catch (e) {
      process.stderr.write(`permission_request send to channel ${channelId} failed: ${e}\n`)
    }
  })()
}

Workaround

Currently patching the cached plugin file locally, but this gets overwritten on plugin updates.

Version

Plugin version: 0.0.4

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗