Filter roots through the catalog before retaining them, cap entries, games, and poll time, and preserve the previous complete snapshot on failure. Repeated failures back off exponentially and a root change resets retry state. Test Plan: - just test - just clippy - focused catalog-filter, budget-preservation, and backoff tests - git diff --check