{"repo":"NousResearch/hermes-agent","public_id":"132048","display_label":"Relay stream close race conditions and threading fixes","summary":"These issues and pull requests address race conditions and threading problems that occur when closing relay-managed streams, particularly around interrupted generators and off-loop reads. The work targets multiple close-path seams where blocked iterators or unread data could cause unsafe behavior.","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":132048,"title":"[Bug]: Relay-managed plain-generator stream close races blocked iterator after interrupt","url":null,"state":"open"},{"kind":"pr","number":132059,"title":"fix(relay): drain the off-loop provider read before closing the raw stream","url":null,"state":"open","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":132064,"title":"fix(agent): close an interrupted relay provider stream on its owning thread","url":null,"state":"open","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":132080,"title":"fix(relay): wait out sync-generator busy window on both close seams (#132048)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#132059","number":132059},{"kind":"pr","value":"#132064","number":132064}],"category":"duplicate_of","implication":"duplicate"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}