Channels feature silently disabled by tengu_harbor flag — breaks Telegram plugin for Max subscribers

Resolved 💬 3 comments Opened Apr 10, 2026 by rileypetersen Closed May 5, 2026

Summary

The --channels flag and Telegram plugin appear to work correctly — MCP connection establishes, tools are visible, notifications/claude/channel resolves successfully — but inbound channel notifications are silently dropped. After extensive debugging, I traced this to the tengu_harbor feature flag in K_$() which defaults to false and gates all channel notification handler registration.

Environment

  • Claude Code v2.1.100 (latest)
  • Ubuntu Linux, Claude Max (OAuth)
  • telegram@claude-plugins-official v0.0.4 (latest)
  • @modelcontextprotocol/sdk 1.29.0 (latest)

What I verified works

  • Bot receives Telegram messages, gate passes, typing indicator fires
  • MCP server connected (/mcp shows ✔ connected), all 4 tools visible
  • mcp.notification() resolves OK (confirmed via file-based debug logging)
  • Claude session is responsive to direct terminal input
  • OAuth authentication, no blocking env vars (DISABLE_TELEMETRY, etc.)

Root cause

The function gating channel registration (K_$) checks mjH()R$("tengu_harbor", false) before registering the notification handler. When the flag is false (default), it returns {action: "skip", reason: "channels feature is not currently available"} and silently discards all inbound channel notifications. No error, no warning, no log entry.

The --channels flag still prints "Listening for channel messages from: plugin:telegram@claude-plugins-official" at startup, which is misleading — it implies the feature is active when it's actually dead.

The broader concern

Anthropic removed the ability for third-party harnesses (like Hermes, OpenClaw, etc.) to leverage Claude subscriptions, forcing users who relied on those tools for Telegram integration toward either the more expensive API or Claude Code as the only subscription-compatible option. The --channels plugin system was positioned as the replacement path — the official Telegram plugin was published to the marketplace, and users migrated.

But the feature that makes it work — inbound channel notification handling — is gated behind a feature flag that isn't enabled for all paying Max subscribers. The result:

  • The plugin installs successfully
  • The --channels flag is accepted
  • The MCP server connects and reports healthy
  • The startup banner says "Listening for channel messages"
  • Nothing works

There is zero feedback that the feature is disabled. A user has to reverse-engineer the minified binary to discover a feature flag is silently killing the functionality they were directed to migrate to.

If this feature isn't ready for general availability, the --channels flag should emit a clear error: "Channel notifications are not yet available for your account." Silently accepting the flag, establishing the MCP connection, and then dropping notifications on the floor is a poor experience — especially for users who lost their previous working setup and were told this was the path forward.

Request

  1. Enable the tengu_harbor flag for Max subscribers, or
  2. At minimum, surface a visible warning when the flag is false instead of silently dropping notifications

Reproduction

  1. claude plugins install telegram@claude-plugins-official
  2. Configure bot token in ~/.claude/channels/telegram/.env
  3. claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
  4. Send a message to the bot on Telegram
  5. Observe: typing indicator fires, but Claude session shows nothing

View original on GitHub ↗

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