name: Telegram bot token ownership description: @GregTwoPointO_Bot is driven by bot.py (forge-telegram-bot.service) — never plugin:telegram. Two long-pollers on one token starves silently. type: feedback originSessionId: 46bc908f-1335-4eb5-bbcf-dfdcff05040a
Telegram bot token ownership¶
@GregTwoPointO_Bot is permanently driven by scripts/integrations/telegram/bot.py via forge-telegram-bot.service. Do not reroute this token to plugin:telegram@claude-plugins-official.
Why: Telegram allows only one process per bot token to long-poll. If two pollers run on the same token, one of them silently receives nothing — the other steals every update. On 2026-04-23 a worker claimed it had handed the token to plugin:telegram and disabled bot.py; in reality bot.py never stopped, so plugin:telegram silently received zero updates for 5 days. Resolved 2026-04-28: plugin:telegram disabled, MEMORY.md corrected, bot.py confirmed as permanent owner.
How to apply:
- bot.py (custom): /task, /opus, /haiku, /status, /context, plain-text chat via claude -p. Works with no active Claude Code session.
- plugin:telegram: would be a remote-keyboard for one persistent CC session. Needs its own dedicated bot token if Justin ever wants it back — never share @GregTwoPointO_Bot's token.
- Before claiming a Telegram service was stopped, run systemctl is-active forge-telegram-bot.service AND check the log timestamps. Don't trust prior worker notes.
- If MEMORY.md ever again says bot.py is "stopped/disabled" without a matching systemctl is-active of inactive, treat it as drift and verify before acting.