{"repo":"NousResearch/hermes-agent","public_id":"62311","display_label":"Desktop updater venv lock conflicts on Windows","summary":"These issues and fixes address cases where the desktop updater stalls or aborts because external processes hold the virtual environment on Windows. Changes include an allowlist for venv holders, killing blocking processes, and serializing update attempts.","subsystem":"apps/desktop","counts":{"members":7,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":2,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":74436},"resolution":{"state":"partially_resolved","by":"pr-123005"},"freshness":{"state":"verified","last_verified_at":"2026-09-27T00:42:12+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.25523809523809526},"fix_edges":[{"issue_number":61514,"pr_number":74436,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":62311,"pr_number":74436,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":62311,"pr_number":123005,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":70211,"pr_number":74436,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":62311,"title":"Bug: Desktop updater aborts with \"venv shim still locked\" when external processes (gateway/dashboard) hold the venv on Windows","url":null,"state":"closed"},{"kind":"issue","number":66933,"title":"`hermes update` deadlocks forever when an external (non-Hermes) process uses the venv interpreter (e.g. a Windows service)","url":null,"state":"closed"},{"kind":"pr","number":62445,"title":"fix(desktop): kill external windows venv holders","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#74436","number":74436},{"kind":"pr","value":"#74436","number":74436}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":67398,"title":"fix(update): add venv_holder_allowlist + pre_update_command (#66933)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#66933","number":66933}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":74436,"title":"fix(update): one updater at a time, and never roll an install backwards","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/bootstrap-installer/src-tauri/Cargo.toml","apps/bootstrap-installer/src-tauri/src/update.rs","hermes_cli/main.py","hermes_cli/update_lock.py","scripts/install.ps1","scripts/install.sh","tests/hermes_cli/test_update_lock.py","tests/test_install_commit_pin_rollback.py"]},{"kind":"pr","number":122895,"title":"fix(desktop): kill external windows venv holders","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":123005,"title":"fix(desktop): kill external autostart venv holders before update hand-off","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/main.ts","apps/desktop/electron/venv-holder-select.test.ts","apps/desktop/electron/venv-holder-select.ts"]}],"trust":{"default_tier":"verified","includes_suggested":false}}