Skip to content

⚠️ Corrupt packfile in hyper-repos/gitbot-fleet + 3 commits that exist nowhere on GitHub #491

Description

@hyperpolymath

⚠️ Do not delete or re-clone hyper-repos/gitbot-fleet until this is resolved

Found incidentally on 2026-08-25 while making an unrelated one-line fix. No action taken — I moved the work to a fresh clone rather than attempt repair, and restored the one file I had moved aside.

The corruption

/home/hyperpolymath/developer/hyper-repos/gitbot-fleet cannot run git status:

fatal: unknown index entry format 0x636b0000

That is the index, but the damage is deeper — the object database itself:

error: .git/objects/pack/pack-14e1328302c26f23efc3bbaa4b14c39516028ac6.pack pack checksum mismatch
error: index CRC mismatch for object 2eca8eb5... at offset 575111
error: inflate: data stream error (incorrect header check)
error: unknown object type -1 at offset 582956
error: cannot unpack ... (many)

Rebuilding the index does not help: git reset fails with unable to read tree 72c2b2e8.... The pack is damaged, not just the index.

Why this matters — possible unpushed work

git rev-list --all --not --remotes --count reports 13. That number alone would be a false alarm, so I checked whether those commits exist on GitHub. Three do not:

Commit Message On GitHub?
e69a536 chore(ci): bump standards reusable pins to 5b1d0022 (#426) no
ce02567 chore(ci): bump standards reusable pins to fix Bug A and Bug B (#426) no
632b54a fix: recover phase-zero CI and governance no
053ffdc fix(ci): remove timeout-minutes from jobs using reusable workflows ✅ yes
00ddf89 feat(scripts): fix-actions-policy.sh — repair the estate Actions-policy outage ✅ yes

These are not stale remote refs. I verified the instrument before trusting the reading: the sibling clone's origin/main is 0ea64b2 (2026-08-24), which exactly matches live main on GitHub. The refs are current, so "not on remote" means genuinely not pushed.

632b54a in particular — a CI and governance recovery commit — is the kind of thing that would be painful to lose and hard to notice missing.

Caveat worth stating: e69a536 and ce02567 may have been squash-merged, in which case their content survives under a different SHA. 632b54a lives on fix/phase-zero-recovery in gitbot-fleet-recovery-20260824 and shows as ahead 1, so it looks like genuinely unmerged work rather than a squash artefact.

Relevant clones

Path Branch Health
hyper-repos/gitbot-fleet chore/bump-standards-pins corrupt pack
hyper-repos/gitbot-fleet-recovery-20260824 fix/phase-zero-recovery ✅ fsck clean, ahead 1 / behind 1

Why I did not fix it

AGENTS.md is explicit:

"Never treat a fresh clone as more canonical than an existing checkout: before any supersede/rename, compare git rev-list --all --not --remotes --count on both sides — the copy with unpushed work is the one to keep."

Both sides report 13. Deciding which to keep, and whether 632b54a should be pushed, is a judgement about work I did not do. Recovery options range from git fsck --lost-found salvage to cherry-picking the three commits onto a fresh clone and discarding the corrupt tree — all of them destructive to something.

Suggested next step

  1. Confirm whether 632b54a "fix: recover phase-zero CI and governance" is wanted. If yes, push it from the recovery clone (which is healthy) before touching anything else.
  2. Check whether e69a536 / ce02567 were squash-merged; if so they can be discarded.
  3. Only then decide the fate of the corrupt tree.

Filed rather than actioned because step 1 is a decision, and steps 2–3 are irreversible.

Horizon: I ran git fsck bounded to 60s and read the first 20 errors — the full extent of pack damage is unmeasured. I did not run fsck --lost-found, did not repack, and did not fetch. The only change I made was moving .git/index aside to test whether a rebuild would work; it did not, and I restored it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    automationBots, schedulers, dispatch, self-healing, fan-outbugSomething is broken or behaves incorrectly

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions