{"repo":"NousResearch/hermes-agent","public_id":"87304","display_label":"Windows ZIP fallback destructively deletes local files","summary":"These issues and fixes address a Windows-specific bug where the ZIP fallback update path triggers inappropriately—on dependency failures or dirty working trees—and permanently deletes uncommitted changes and untracked files. The work focuses on adding guards to prevent this destructive behavior.","subsystem":"hermes_cli","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":92013,"merged_at":null},"resolution":{"state":"resolved","by":"pr-92013"},"freshness":{"state":"verified","last_verified_at":"2026-08-22T05:08:17+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":61514,"pr_number":92013,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":70337,"pr_number":92013,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":74805,"pr_number":92013,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":75788,"pr_number":92013,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":77277,"pr_number":92013,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":87304,"pr_number":92013,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":null}],"members":[{"kind":"issue","number":87304,"title":"Windows: ZIP fallback fires on a dependency failure and permanently deletes uncommitted changes + untracked files (no dirty-tree guard)","url":null,"state":"closed"},{"kind":"pr","number":87327,"title":"fix(update): stop ZIP fallback from wiping local files on Windows","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"eac3f645ef","number":0},{"kind":"pr","value":"#87878","number":87878},{"kind":"pr","value":"#87304","number":87304}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":87392,"title":"fix(update): prevent destructive Windows ZIP fallback","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"eac3f645ef","number":0},{"kind":"pr","value":"#87304","number":87304},{"kind":"pr","value":"#87327","number":87327},{"kind":"pr","value":"#87878","number":87878},{"kind":"pr","value":"#87304","number":87304}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":87878,"title":"fix(update): don't ZIP-fallback on dependency failures or dirty trees (salvage #87327)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#92013","number":92013},{"kind":"pr","value":"#87327","number":87327}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":92013,"title":"fix(update): ZIP fallback no longer destroys user work or the desktop build (#87331, #91962, #87304, #70337 — salvage #87878 + #70477)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/update_cmd.py","tests/hermes_cli/test_cmd_update.py","tests/hermes_cli/test_update_zip_fallback_guards.py","tests/hermes_cli/test_update_zip_release_preserve.py","tests/hermes_cli/test_update_zip_symlink_reject.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}