claude-code - 💡(How to fix) Fix Channels feature silently disabled by tengu_harbor flag — breaks Telegram plugin for Max subscribers [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46299Fetched 2026-04-11 06:23:58
View on GitHub
Comments
1
Participants
1
Timeline
8
Reactions
1
Participants
Timeline (top)
labeled ×5commented ×1cross-referenced ×1subscribed ×1

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.

Error Message

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. 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.

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.

RAW_BUFFERClick to expand / collapse

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

extent analysis

TL;DR

Enable the tengu_harbor feature flag for Max subscribers or surface a visible warning when the flag is false to prevent silently dropping inbound channel notifications.

Guidance

  • Verify that the tengu_harbor feature flag is set to false by checking the K_$() function and R$("tengu_harbor", false) call.
  • Check the Claude Code version and ensure it is up-to-date, as the issue may be resolved in a future version.
  • Consider implementing a temporary workaround, such as manually setting the tengu_harbor flag to true or using a different notification handling mechanism.
  • Test the notification handling with the --channels flag and Telegram plugin to ensure that notifications are being received correctly.

Example

No code snippet is provided, as the issue is related to a specific feature flag and its implementation.

Notes

The issue is specific to the tengu_harbor feature flag and its default value of false. The solution may not apply to other feature flags or notification handling mechanisms.

Recommendation

Apply a workaround, such as manually setting the tengu_harbor flag to true or using a different notification handling mechanism, until the feature flag is enabled for Max subscribers or a visible warning is surfaced when the flag is false. This will prevent silently dropping inbound channel notifications and provide a better user experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING