hermes - 💡(How to fix) Fix [Bug]: notification_sources config is documented but never read by gateway code

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…

The Hermes config.yaml supports notification_sources: ['*'] (or a list of profile names) to enable cross-profile Kanban notification delivery, declared in the bundled kanban-worker SKILL.md and in the official docs.

However, the gateway's notification poller in gateway/run.py never reads this config option. The actual filter it applies is:

owner_profile = sub.get("notifier_profile") or None
if owner_profile and owner_profile != notifier_profile:
    continue

This means subscriptions created by a non‑gateway profile always get skipped, regardless of what notification_sources says.

Root Cause

The notification_sources field is never deserialised or consulted inside gateway/run.py. The relevant filtering code (around line 5317) only checks owner_profile != notifier_profile and has no branch that reads the config option.

Fix Action

Workaround

Create all Kanban notification subscriptions with notifier_profile="default" (or whatever profile name the gateway is running under) instead of the worker's own profile name. This bypasses the filter entirely.

Code Example

owner_profile = sub.get("notifier_profile") or None
if owner_profile and owner_profile != notifier_profile:
    continue
RAW_BUFFERClick to expand / collapse

Description

The Hermes config.yaml supports notification_sources: ['*'] (or a list of profile names) to enable cross-profile Kanban notification delivery, declared in the bundled kanban-worker SKILL.md and in the official docs.

However, the gateway's notification poller in gateway/run.py never reads this config option. The actual filter it applies is:

owner_profile = sub.get("notifier_profile") or None
if owner_profile and owner_profile != notifier_profile:
    continue

This means subscriptions created by a non‑gateway profile always get skipped, regardless of what notification_sources says.

Expected behavior

  • notification_sources: ['*'] should make the gateway accept subscriptions from any profile.
  • notification_sources: ['coder', 'creator'] should restrict to those two profiles.
  • notification_sources missing/unset should fall back to the current behaviour (gateway‑profile‑only).

Actual behavior

notification_sources is entirely ignored. The gateway always filters by its own profile name. Cross‑profile notifications only work via a workaround: create subscriptions with notifier_profile set to the gateway's profile name (typically "default").

Steps to reproduce

  1. Configure notification_sources: ['*'] in ~/.hermes/config.yaml.
  2. Create a Kanban task subscribed via kanban_db.add_notify_sub(notifier_profile="coder", ...).
  3. Observe the gateway log: the subscription is found by list_notify_subs() but skipped at line 5317.
  4. No notification reaches the user's Telegram/Discord/etc.

Root cause

The notification_sources field is never deserialised or consulted inside gateway/run.py. The relevant filtering code (around line 5317) only checks owner_profile != notifier_profile and has no branch that reads the config option.

Workaround

Create all Kanban notification subscriptions with notifier_profile="default" (or whatever profile name the gateway is running under) instead of the worker's own profile name. This bypasses the filter entirely.

Additional context

  • gateway/run.py is read‑only (uid 10000), so this cannot be patched locally.
  • The documentation at the bundled kanban-worker SKILL.md and the website claim notification_sources works.
  • This is a real paper‑cut for anyone running multi‑profile Kanban setups.

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…

FAQ

Expected behavior

  • notification_sources: ['*'] should make the gateway accept subscriptions from any profile.
  • notification_sources: ['coder', 'creator'] should restrict to those two profiles.
  • notification_sources missing/unset should fall back to the current behaviour (gateway‑profile‑only).

Still need to ship something?

×6

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

Back to top recommendations

TRENDING