{"repo":"NousResearch/hermes-agent","public_id":"123346","display_label":"Shallow fetch ancestry mis-detection causing wrong force-reset","summary":"These issues and fixes concern a bug where the update command incorrectly detects orphan divergence on shallow, partial, or stale clones and force-resets the branch. The work involves repairing ancestry checks after deepening a shallow fetch before any reset is performed.","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":126150,"merged_at":"2026-09-28T10:08:57+00:00"},"resolution":{"state":"resolved","by":"pr-126150"},"freshness":{"state":"verified","last_verified_at":"2026-09-28T10:08:57+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":122353,"pr_number":126150,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T10:08:57+00:00"},{"issue_number":123254,"pr_number":126150,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T10:08:57+00:00"},{"issue_number":123346,"pr_number":126150,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T10:08:57+00:00"},{"issue_number":124272,"pr_number":126150,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T10:08:57+00:00"},{"issue_number":124645,"pr_number":126150,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T10:08:57+00:00"}],"members":[{"kind":"issue","number":123346,"title":"hermes update mis-detects orphan divergence after a --depth pre-fetch and force-resets the branch","url":null,"state":"closed"},{"kind":"pr","number":123476,"title":"fix(cli): re-test ancestry after deepening a shallow fetch before resetting","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#126150","number":126150}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":123727,"title":"fix(update): repair shallow-poisoned ancestry before force-resetting the branch (fixes #123346)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#126150","number":126150},{"kind":"pr","value":"#123346","number":123346}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":126150,"title":"hermes update works on shallow, stale and partial-clone checkouts (salvage #122430, #123312, #124293, #124671)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/gitlock.py","hermes_cli/update_cmd.py","hermes_cli/update_cmd_check.py","tests/e2e/core/upgrade/git/test_partial_clone.py","tests/e2e/core/upgrade/git/test_shallow_install.py","tests/hermes_cli/test_gitlock.py","tests/hermes_cli/test_shallow_boundary_repair.py","tests/hermes_cli/test_shallow_graft_prune.py","tests/hermes_cli/test_tag_fetch_partial_clone.py","tests/hermes_cli/test_update_shallow_heal.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}