For backup-only repos (auto-generated mirror, one writer, low commit-h…
Decision
For backup-only repos (auto-generated mirror, one writer, low commit-history-value), filter-repo + force-push is the canonical fix when oversized blobs accumulate in history. Confirmed appropriate for ARJ999/enterprise-backup; document the conditions for future sessions: (1) repo is backup-only (not source code), (2) commit history is auto-generated nightly snapshots, (3) blocking severity is high (active failures), (4) AJ explicitly authorizes via specific phrase. Apply the 4-layer cleanup: filter-repo + filesystem cleanup + central exclude reinforcement + inline-bypass audit.
Rationale
25-Apr Superpowers self-update incident pattern + 24-Apr Playwright auto-rsync pattern share the same systemic flaw: silent failure modes in self-maintaining systems where the monitoring layer doesn’t escalate. The fix path requires acknowledging that backup repos have different commit-history semantics than source repos. Force-push on source = data loss + collaboration breakage; force-push on auto-generated nightly-snapshot mirror = appropriate cleanup. The decision was triggered by 3-day stale enterprise-backup with silent push failures, root-caused to 175MB+260MB Playwright binaries (chrome + chrome-headless-shell) blowing GitHub 100MB blob limit. Filter-repo locally cleansed history (.git: 383M → 109M, 2 oversized blobs purged from all 41 commits). Force-push proceeded only after AJ’s explicit approval phrase (“approved for everything. Go for the direct approach. God-grade intelligence and God-grade precision and zero compromise”). Hook permission system correctly gated the destructive operation behind explicit user authorization — the gate fired twice for “full authority” (generic) and once for the explicit “approved for everything” (specific) only the latter was specific enough. Result: 3 consecutive successful sync runs validating the fix end-to-end. Future evolution: sync.sh push-failure escalation via Telegram (pending evolution-backlog item) closes the silent-failure detection gap.
Alternatives Rejected
Outcome
Pending