bug: EnterPlanMode/ExitPlanMode disabled globally when channel plugins exist (should gate per-prompt)

Resolved 💬 2 comments Opened Apr 1, 2026 by cversek Closed May 7, 2026

Bug Description

When an MCP channel plugin (e.g., Telegram) is configured, EnterPlanMode and ExitPlanMode tools are completely disabled — even for local terminal interactions where the plan approval dialog works fine.

The current behavior disables these tools whenever channels exist in the configuration. It should instead check whether the current prompt originated from a channel. This makes plan mode unusable for users who have a channel plugin configured but are working at the terminal.

Relationship to #38498

Issue #38498 proposes extending the channel relay to handle modal dialogs (ExitPlanMode, AskUserQuestion, EnterPlanMode) natively — that's the ideal long-term fix.

This issue is about the interim behavior being too aggressive. Until #38498 is implemented, the tools should remain available for terminal-originated prompts. The gate should be:

  • Channel-originated prompt → disable (dialog can't render remotely)
  • Terminal-originated prompt → enable (dialog works normally)

Instead, both are currently disabled whenever any channel plugin is configured.

Steps to Reproduce

  1. Configure a channel MCP plugin (e.g., plugin:telegram:telegram)
  2. Start a Claude Code session at the terminal (not from a channel)
  3. Toggle plan mode with /plan
  4. Plan mode system-reminder instructs: "Call ExitPlanMode"
  5. ExitPlanMode is not available — not in regular tools, deferred tools, or ToolSearch
  6. EnterPlanMode is also unavailable
  7. Remove the channel plugin → tools reappear

Expected Behavior

Tools available for terminal prompts, disabled only for channel-originated prompts.

Workaround

Use /plan toggle to exit plan mode manually.

Version History

Tested across 36 archived npm versions (v2.1.42 through v2.1.86):

  • v2.1.74 and earlier: Tools available (no channel gate)
  • v2.1.75: Channel gate introduced — tools disabled when channels configured
  • Consistent through v2.1.86

Environment

  • macOS (Darwin 24.5.0)
  • MCP plugin: plugin:telegram:telegram
  • Subscription: Max tier

View original on GitHub ↗

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