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:
TelegramAdapter exports a stable send_kanban_blocked(...) API matching the gateway/plugin call site, or
- 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
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 thekanban-guardrailsplugin'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:
TelegramAdapterexports a stablesend_kanban_blocked(...)API matching the gateway/plugin call site, orActual Behavior
A runtime/plugin path that assumes
TelegramAdapter.send_kanban_blockedexists raisesAttributeErrorwhen 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
projects/homelab/iac-staging/hermes/plugins/kanban-guardrails/REQUIRED_SYMBOLS.txtassend_kanban_blocked optional=trueuntil upstream resolves the API drift.hermes_cli.kanban_db.read_board_metadata, which our deployment also tracks as optional with a local shim.Environment
NousResearch/hermes-agent