hermes - ✅(Solved) Fix TelegramAdapter.send_kanban_blocked call site drifts from deployed adapter API [1 pull requests, 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
NousResearch/hermes-agent#20263Fetched 2026-05-06 06:37:46
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Participants
Timeline (top)
labeled ×5cross-referenced ×1

Fix Action

Fix / Workaround

Bug Description

The Hermes gateway/kanban notification path can attempt to patch or call TelegramAdapter.send_kanban_blocked, but the deployed Telegram adapter API does not reliably expose that symbol. In our homelab deployment this surfaced as an AttributeError during plugin registration and disabled the kanban-guardrails plugin's notifier quarantine/backoff protections.

Actual Behavior

A runtime/plugin path that assumes TelegramAdapter.send_kanban_blocked exists raises AttributeError when the deployed adapter does not provide it. Downstream workaround is to skip notifier-quarantine patch installation when the upstream symbol is missing.

Evidence / Downstream Workaround

  • Downstream guardrail boot self-test tracks the symbol in projects/homelab/iac-staging/hermes/plugins/kanban-guardrails/REQUIRED_SYMBOLS.txt as send_kanban_blocked optional=true until upstream resolves the API drift.
  • The same class of upstream gateway-vs-CLI symbol drift already affects hermes_cli.kanban_db.read_board_metadata, which our deployment also tracks as optional with a local shim.

PR fix notes

PR #20508: fix(telegram): expose kanban blocked notifier helper

Description (problem / solution / changelog)

Summary

  • Add TelegramAdapter.send_kanban_blocked(...) as a stable compatibility API for kanban guardrail/notifier integrations.
  • Delegate through the existing Telegram send(...) path so formatting, thread metadata, reply handling, and retry behavior stay centralized.
  • Cover separate-field and task-payload call shapes in the Telegram gateway tests.

Fixes #20263

Tests

  • scripts/run_tests.sh tests/gateway/test_telegram_thread_fallback.py
  • git diff --check

Changed files

  • gateway/platforms/telegram.py (modified, +41/-0)
  • tests/gateway/test_telegram_thread_fallback.py (modified, +50/-0)
RAW_BUFFERClick to expand / collapse

Bug Description

The Hermes gateway/kanban notification path can attempt to patch or call TelegramAdapter.send_kanban_blocked, but the deployed Telegram adapter API does not reliably expose that symbol. In our homelab deployment this surfaced as an AttributeError during plugin registration and disabled the kanban-guardrails plugin's notifier quarantine/backoff protections.

Impact

A missing optional Telegram blocked-notification method should not be able to prevent unrelated kanban guardrail/plugin registration. The current drift forces downstream deployments to use defensive getattr(...) guards and mark the symbol as optional in boot self-tests.

Expected Behavior

Either:

  1. TelegramAdapter exports a stable send_kanban_blocked(...) API matching the gateway/plugin call site, or
  2. the upstream call site guards the lookup and degrades gracefully when the platform adapter does not implement blocked-task notifications.

Actual Behavior

A runtime/plugin path that assumes TelegramAdapter.send_kanban_blocked exists raises AttributeError when the deployed adapter does not provide it. Downstream workaround is to skip notifier-quarantine patch installation when the upstream symbol is missing.

Evidence / Downstream Workaround

  • Downstream guardrail boot self-test tracks the symbol in projects/homelab/iac-staging/hermes/plugins/kanban-guardrails/REQUIRED_SYMBOLS.txt as send_kanban_blocked optional=true until upstream resolves the API drift.
  • The same class of upstream gateway-vs-CLI symbol drift already affects hermes_cli.kanban_db.read_board_metadata, which our deployment also tracks as optional with a local shim.

Environment

  • Hermes Agent v0.12.0-style deployment from NousResearch/hermes-agent
  • Gateway + Telegram adapter + kanban guardrails plugin enabled

extent analysis

TL;DR

The most likely fix is to add a defensive getattr guard to the TelegramAdapter call site to prevent AttributeError when the send_kanban_blocked symbol is missing.

Guidance

  • Verify that the TelegramAdapter API is correctly implemented and exported in the deployed adapter.
  • Check the REQUIRED_SYMBOLS.txt file in the kanban-guardrails plugin to ensure that the send_kanban_blocked symbol is marked as optional.
  • Consider adding a local shim for the send_kanban_blocked symbol, similar to the existing shim for hermes_cli.kanban_db.read_board_metadata.
  • Review the upstream call site to ensure that it can degrade gracefully when the send_kanban_blocked symbol is missing.

Example

try:
    TelegramAdapter.send_kanban_blocked(...)
except AttributeError:
    # Handle the case where the symbol is missing
    pass

Notes

The issue is specific to the interaction between the Hermes gateway, Telegram adapter, and kanban guardrails plugin. The fix may need to be adapted to the specific deployment environment and version of the Hermes Agent.

Recommendation

Apply workaround: Add a defensive getattr guard to the TelegramAdapter call site to prevent AttributeError when the send_kanban_blocked symbol is missing. This will allow the plugin to register and function correctly even if the symbol is missing.

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

hermes - ✅(Solved) Fix TelegramAdapter.send_kanban_blocked call site drifts from deployed adapter API [1 pull requests, 1 participants]