{"repo":"NousResearch/hermes-agent","public_id":"93772","display_label":"Async semaphore cache tied to wrong event loop","summary":"These issues and fixes address a bug where cached auxiliary async semaphores could be reused across event loops, including dead ones. The work scopes semaphore caching to the owning event loop to prevent stale state reuse.","subsystem":"agent","counts":{"members":3,"open_issues":1,"open_issues_distinct":1,"open_prs":0,"closed_issues":0,"merged_prs":0,"attempt_prs":2},"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.6666666666666666},"fix_edges":[],"members":[{"kind":"issue","number":93772,"title":"Auxiliary async semaphore cache can reuse state from a dead event loop","url":null,"state":"open"},{"kind":"pr","number":93880,"title":"fix(agent): scope auxiliary semaphores to event loops","url":null,"state":"closed","close_reason":{"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":93902,"title":"fix(auxiliary): bind cached async semaphores to their owning event loop","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93880","number":93880}],"category":"duplicate_of","implication":"duplicate"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}