hermes - 💡(How to fix) Fix Bug: gateway.log component filter excludes hermes_plugins.* loggers — plugin registration messages invisible

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…

gateway.log uses a _ComponentFilter that only passes records from loggers starting with the prefixes in COMPONENT_PREFIXES["gateway"]. Currently that is just ("gateway",). Plugin modules are loaded under the hermes_plugins.* namespace — so all plugin log output is silently dropped from gateway.log.

Root Cause

gateway.log uses a _ComponentFilter that only passes records from loggers starting with the prefixes in COMPONENT_PREFIXES["gateway"]. Currently that is just ("gateway",). Plugin modules are loaded under the hermes_plugins.* namespace — so all plugin log output is silently dropped from gateway.log.

Fix Action

Fix / Workaround

Operators debugging gateway behavior check gateway.log for gateway-related activity. Plugin registration — which directly affects gateway hooks (pre_gateway_dispatch, transform_llm_output, etc.) — is gateway-relevant but invisible in the gateway-specific log. The gobby-rate-limiter plugin appeared to not load at all based on gateway.log inspection, when in fact it was working perfectly — the registration just was not visible there.

Code Example

COMPONENT_PREFIXES = {
    "gateway": ("gateway",),
    ...
}

---

COMPONENT_PREFIXES = {
    "gateway": ("gateway", "hermes_plugins"),
    ...
}
RAW_BUFFERClick to expand / collapse

Description

gateway.log uses a _ComponentFilter that only passes records from loggers starting with the prefixes in COMPONENT_PREFIXES["gateway"]. Currently that is just ("gateway",). Plugin modules are loaded under the hermes_plugins.* namespace — so all plugin log output is silently dropped from gateway.log.

Affected file

hermes_logging.py line 144:

COMPONENT_PREFIXES = {
    "gateway": ("gateway",),
    ...
}

The _ComponentFilter (line 126-138) checks record.name.startswith(("gateway",)) — plugin loggers like hermes_plugins.group_chat_rate_limiter and hermes_plugins.memory_pipeline never match.

Evidence

agent.log (unfiltered) has 117 occurrences of "Plugin discovery complete" from plugin discovery. gateway.log has 0. Plugin register() calls that log at INFO — e.g. "registered speak-limiter hooks" — appear in agent.log (sometimes) but NEVER in gateway.log.

Reproduce

  1. Enable any plugin that logs during register(), e.g. memory-pipeline which logs "memory-pipeline: registered..." at INFO
  2. Restart gateway
  3. grep "registered" gateway.log → empty
  4. grep "registered" agent.log → present

Impact

Operators debugging gateway behavior check gateway.log for gateway-related activity. Plugin registration — which directly affects gateway hooks (pre_gateway_dispatch, transform_llm_output, etc.) — is gateway-relevant but invisible in the gateway-specific log. The gobby-rate-limiter plugin appeared to not load at all based on gateway.log inspection, when in fact it was working perfectly — the registration just was not visible there.

Suggested fix

Add "hermes_plugins" to the gateway component prefixes:

COMPONENT_PREFIXES = {
    "gateway": ("gateway", "hermes_plugins"),
    ...
}

Alternatively, add a separate plugin component or make gateway.log less restrictive.

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 - 💡(How to fix) Fix Bug: gateway.log component filter excludes hermes_plugins.* loggers — plugin registration messages invisible