{"repo":"NousResearch/hermes-agent","public_id":"38032","display_label":"Zombie subprocess reaping in web server and meet-bot","summary":"These issues and pull requests address zombie subprocess accumulation in web_server.py and meet-bot, where child processes were polled but never properly waited on or reaped. Multiple fix attempts target the _ACTION_PROCS handling and pcm_pump subprocess cleanup.","subsystem":"agent","counts":{"members":7,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":5},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":41651},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-06-08T04:50:58+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.2857142857142857},"fix_edges":[{"issue_number":37954,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":38032,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":38085,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":38865,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":39346,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":41036,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":41072,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":41119,"pr_number":41651,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":38032,"title":"[Bug]: web_server.py: dashboard action subprocesses become zombies — _ACTION_PROCS uses .poll() but never .wait()","url":null,"state":"closed"},{"kind":"pr","number":38040,"title":"fix(web-server): reap zombie action subprocesses + fix meet_bot pcm_pump leak","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"78e2101cd","number":0},{"kind":"pr","value":"#38049","number":38049},{"kind":"pr","value":"#38032","number":38032}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":38045,"title":"fix(web_server): reap finished action subprocesses to prevent zombie accumulation","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"78e2101cd","number":0},{"kind":"pr","value":"#38049","number":38049},{"kind":"pr","value":"#38032","number":38032}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":38049,"title":"fix: reap zombie subprocesses in web_server action status and meet_bo…","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#41651","number":41651}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":41651,"title":"fix: batch salvage of 10 low-risk fixes (@islam666)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/context_compressor.py","agent/image_routing.py","agent/model_metadata.py","gateway/platforms/weixin.py","hermes_cli/gateway.py","hermes_cli/profile_distribution.py","hermes_cli/profiles.py","hermes_cli/web_server.py","plugins/google_meet/meet_bot.py","plugins/model-providers/xiaomi/__init__.py","providers/base.py","run_agent.py","scripts/release.py","tests/agent/test_custom_providers_vision.py","tests/agent/test_model_metadata.py","tests/gateway/test_weixin_typing.py","tests/hermes_cli/test_profile_distribution.py","tests/hermes_cli/test_systemd_optional_directives.py","tests/hermes_cli/test_web_server.py","tests/run_agent/test_infinite_compaction_loop.py","tests/run_agent/test_multimodal_tool_content_recovery.py","tests/run_agent/test_vision_tool_messages.py"]},{"kind":"pr","number":41709,"title":"fix(web_server): reap zombie action subprocesses + preserve exit code","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"78e2101cd","number":0},{"kind":"pr","value":"#38049","number":38049}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":41946,"title":"fix(meet-bot): reap pcm_pump subprocess on bot exit to prevent zombies","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"78e2101cd2a82671c1550f370381d3c70f9b1f93","number":0},{"kind":"pr","value":"#41651","number":41651},{"kind":"pr","value":"#38049","number":38049}],"category":"merged_via","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}