{"repo":"NousResearch/hermes-agent","public_id":"81521","display_label":"CLI deadlock on stalled or interrupted streams","summary":"A bug report and associated fix addressing CLI deadlocks and terminal UI corruption that occur when provider streams stall or are interrupted mid-stream. The fix targets empty-stream interrupt handling in the streaming layer.","subsystem":"gateway/relay","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":86657,"merged_at":"2026-08-15T05:11:31+00:00"},"resolution":{"state":"resolved","by":"pr-86657"},"freshness":{"state":"verified","last_verified_at":"2026-08-15T05:11:31+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":81521,"pr_number":86657,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-15T05:11:31+00:00"}],"members":[{"kind":"issue","number":81521,"title":"[Bug]: CLI deadlocks and terminal UI corrupts when provider stream stalls — regression in 2026.8.3 retry/relay machinery","url":null,"state":"closed"},{"kind":"pr","number":81601,"title":"fix(streaming): prevent CLI deadlock on empty-stream interrupt (#81521)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86657","number":86657}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":86657,"title":"fix(streaming): prevent CLI deadlock on empty-stream interrupt (#81521)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/chat_completion_helpers.py","agent/relay_runtime.py","cli.py","tests/hermes_cli/test_relay_shared_metrics_runtime.py","tests/hermes_cli/test_terminal_io_broken_81521.py","tests/run_agent/test_stream_interrupt_retry.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}