mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-11-06 13:26:40 +00:00
Both reconnect paths (gateway/run_adapters.py watcher and multiplex secondary) build a FRESH SimplexAdapter before connect(is_reconnect=True), so the per-instance _allowlist_warned flag never suppressed anything: a daemon-down cold boot re-logged the warning on every backoff retry. Gating on `not is_reconnect` would instead lose the warning when the first connect fails. Dedup at module level keyed on (hermes_home_key(), frozenset(names)), still checked before the connectivity probe. No shared warn-once helper exists (plugin_compat.warn_once is compat-specific). Read the value with platform_gate_env (the reader authz uses; differs from get_scoped_secret when a scope is installed with multiplex off) and decode JSON list literals with decode_json_list_literal like _coerce_allow_set, so '["4","9"]' written by `hermes config set` no longer warns that valid IDs are ignored. The caplog test now builds two fresh adapters (first connect fails, second succeeds) and asserts exactly one warning naming only 'alice'; it fails with 2 warnings against the pre-fold adapter.