{"repo":"NousResearch/hermes-agent","public_id":"66037","display_label":"Windows probe subprocess pipe deadlock fixes","summary":"These issues and fixes address a Windows-specific deadlock where child or orphaned processes inherit capture pipes from git/env probes, causing reads to hang indefinitely and blocking agent initialization or session creation. Multiple fixes apply timeouts and alternate I/O strategies to bound post-kill cleanup.","subsystem":"apps/desktop","counts":{"members":9,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":3,"merged_prs":3,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":67999},"resolution":{"state":"partially_resolved","by":"pr-67999"},"freshness":{"state":"verified","last_verified_at":"2026-07-22T01:18:44+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.18666666666666665},"fix_edges":[{"issue_number":67964,"pr_number":67999,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":67964,"pr_number":68045,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":68609,"pr_number":68997,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":66037,"title":"Windows: agent turn hangs forever in the git workspace probe when the 2.5s timeout fires (post-kill communicate deadlock)","url":null,"state":"closed"},{"kind":"issue","number":67964,"title":"[Bug]: Windows env probe can deadlock all new sessions when an orphaned pip child keeps capture pipes open","url":null,"state":"closed"},{"kind":"issue","number":68609,"title":"[Bug]: Windows Desktop agent initialization times out after git probe leaves suspended child","url":null,"state":"closed"},{"kind":"pr","number":67991,"title":"fix(tools): bound env probe subprocess so a Windows inherited pipe can't wedge sessions (#67964)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"e77ffdc28","number":0},{"kind":"pr","value":"#68045","number":68045},{"kind":"pr","value":"#67999","number":67999},{"kind":"pr","value":"#67964","number":67964},{"kind":"pr","value":"#67999","number":67999}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":67999,"title":"fix(env-probe): stuck Windows probe can no longer deadlock system-prompt builds","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_env_probe.py","tools/env_probe.py"]},{"kind":"pr","number":68045,"title":"fix(env-probe): capture probe output via temp files so descendants can't stall the read (#67964 follow-up)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_env_probe.py","tools/env_probe.py"]},{"kind":"pr","number":68622,"title":"fix(gateway): bound the post-kill cleanup in the Windows git probe","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#68997","number":68997},{"kind":"pr","value":"#68997","number":68997},{"kind":"pr","value":"#66038","number":66038},{"kind":"pr","value":"#66037","number":66037},{"kind":"pr","value":"#68997","number":68997}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":68629,"title":"fix(tui): bound post-kill cleanup in Windows git probe to prevent agent init timeout","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#68622","number":68622},{"kind":"pr","value":"#68622","number":68622}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":68997,"title":"fix(windows): share one bounded, tree-killing git probe across both probe call sites","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/coding_context.py","hermes_cli/_subprocess_compat.py","tests/test_windows_subprocess_no_window_flags.py","tui_gateway/git_probe.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}