[BUG] Channel plugins (Telegram/iMessage) disconnect on .claude.json hot-reload in multi-session setups
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?
Channel plugins loaded via --channels disconnect every time ~/.claude.json is modified. Regular MCP servers survive the hot-reload, but channel plugins don't reconnect automatically.
Impact: With 8+ concurrent CC sessions (common for power users using Telegram as mobile interface), .claude.json is updated frequently (session metrics: lastCost, lastSessionMetrics, etc.). This causes channel plugins to disconnect every ~10 minutes across ALL sessions simultaneously.
What Should Happen?
Expected: Channel plugins should survive .claude.json hot-reload (like regular MCP servers do), OR .claude.json metric writes should not trigger hot-reload.
Error Messages/Logs
Steps to Reproduce
- Start 2+ CC sessions with
--channels plugin:telegram@claude-plugins-official - Both sessions share
~/.claude.json - Session A completes a turn → CC writes metrics to
.claude.json - Session B's Telegram plugin disconnects silently
/mcpor/reload-pluginsreconnects it, but next.claude.jsonwrite kills it again
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.110
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Workaround: fswatch daemon that detects changes and injects /mcp via tmux — unreliable when session is busy processing.
Environment: CC v2.1.110, macOS 15.4, M4, plugin telegram v0.0.6
Related: #36308 (MCP auto-reconnect), #36802 (Telegram notifications not delivered)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗