{"repo":"NousResearch/hermes-agent","public_id":"115578","display_label":"Fix Windows session lock contention and POSIX probe","summary":"These issues and fixes address a Windows-specific bug where a POSIX zombie probe inside the session-registry lock caused ~80ms hold times and lock starvation for pollers with many leases. The fixes skip the POSIX probe on Windows in relevant code paths and adjust lock handling to prevent starvation.","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":116998,"merged_at":"2026-09-20T20:21:25+00:00"},"resolution":{"state":"resolved","by":"pr-116998"},"freshness":{"state":"verified","last_verified_at":"2026-09-20T20:21:25+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":115578,"pr_number":116998,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-20T20:21:25+00:00"}],"members":[{"kind":"issue","number":115578,"title":"[Bug]: Windows active-session registry lock is held ~80ms (POSIX zombie probe inside lock) and LK_LOCK is unfair — every poller starves at >=7 leases","url":null,"state":"closed"},{"kind":"pr","number":115585,"title":"fix(gateway): skip the POSIX zombie status probe on Windows in _pid_exists","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#115591","number":115591},{"kind":"pr","value":"#42126","number":42126},{"kind":"pr","value":"#108955","number":108955},{"kind":"pr","value":"#52193","number":52193}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":115591,"title":"fix(sessions): skip POSIX zombie probe on Windows; prune snapshot after lock release","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"3721657a76d7","number":0},{"kind":"pr","value":"#116998","number":116998},{"kind":"pr","value":"#115578","number":115578},{"kind":"pr","value":"#115591","number":115591}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":116998,"title":"fix(sessions): Windows pollers no longer starve on the session-registry lock (#115578, salvage #115591)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/hermes-agent@localhost","gateway/status.py","hermes_cli/active_sessions.py","tests/gateway/test_status.py","tests/hermes_cli/test_active_sessions.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}