{"repo":"NousResearch/hermes-agent","public_id":"115325","display_label":"Adding retry logic to peer DM transient failures","summary":"These items address a missing retry policy in the peer DM transport, which unlike local and relayed DM lanes did not retry on transient turn failures. Changes span the peer, API server, and gateway layers.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":116964,"merged_at":"2026-09-20T17:16:52+00:00"},"resolution":{"state":"resolved","by":"pr-116964"},"freshness":{"state":"verified","last_verified_at":"2026-09-20T17:16:52+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":115325,"pr_number":116964,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-20T17:16:52+00:00"}],"members":[{"kind":"issue","number":115325,"title":"hermes peer dm never retries a transient turn failure — the third DM transport is missing the retry policy local and relayed DMs share (#93091 item 5)","url":null,"state":"closed"},{"kind":"pr","number":115378,"title":"fix(api-server): retry transient peer-DM turn failures (#115325)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#116964","number":116964},{"kind":"pr","value":"#115325","number":115325},{"kind":"pr","value":"#115378","number":115378}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":115380,"title":"fix(gateway): a peer DM retries a transient turn failure once, like the other two lanes","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#116964","number":116964},{"kind":"pr","value":"#115380","number":115380},{"kind":"pr","value":"#115325","number":115325}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":116964,"title":"fix(peer): hermes peer dm retries a transient turn once and hides a bare silence marker (#115325, salvage #115380 #111992)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/session_persistence.py","gateway/platforms/api_server.py","hermes_cli/quiet_single_query.py","hermes_cli/subcommands/peer.py","tests/gateway/test_peer_dm_transient_retry.py","tests/hermes_cli/test_peer_cmd.py","tools/bot_failure_reasons.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}