[BUG] Permission relay fires on all channels regardless of message origin, inconsistent with reply routing
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When running Claude Code with a channel plugin (e.g. --channels plugin:telegram@claude-plugins-official), permission prompts are relayed to all channels that declared the claude/channel/permission capability, regardless of which channel originated the request.
This is inconsistent with reply routing, which correctly routes responses only to the originating channel — a Telegram message gets a Telegram reply; a terminal message gets a terminal reply.
Permission prompts are broadcast to all connected channels in parallel, causing duplicate prompts and unwanted push notifications on Telegram for terminal-initiated actions.
What Should Happen?
Permission prompts should follow the same source-aware routing as replies — only the channel that originated the request should receive the permission prompt.
Error Messages/Logs
Steps to Reproduce
- Run
claude --channels plugin:telegram@claude-plugins-official - Send a message from the terminal that triggers a permission prompt
- Observe: the permission prompt appears both in the terminal and in Telegram
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.92 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗