{"repo":"NousResearch/hermes-agent","public_id":"130243","display_label":"MoA runtime cache unbounded memory and key retention","summary":"A bug was identified where the `_runtime_cache` in `agent/moa_loop.py` is never evicted, retaining looked-up API keys and runtime entries indefinitely. The associated fixes add expiration and eviction logic to bound the cache size.","subsystem":"agent","counts":{"members":4,"open_issues":1,"open_issues_distinct":1,"open_prs":2,"closed_issues":0,"merged_prs":0,"attempt_prs":3},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[],"members":[{"kind":"issue","number":130243,"title":"[Bug]: `_runtime_cache` in `agent/moa_loop.py` is never evicted, so every resolved (profile, provider, model) runtime — including its resolved api_key — is retained for the life of the process","url":null,"state":"open"},{"kind":"pr","number":130250,"title":"fix(agent): evict stale MoA runtime cache entries","url":null,"state":"open","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":130258,"title":"fix(agent): evict expired entries and bound _runtime_cache in moa_loop #130243","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#130250","number":130250}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":131451,"title":"fix(cache): bound the credential-keyed process caches (rebase of #130664)","url":null,"state":"open","close_reason":{"category":"silent_close","implication":"active"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}