The test workflow was hitting GitHub's unauthenticated API rate limit (60 req/hour) when downloading 95 packages via composer install --prefer-dist, causing 429 Too Many Requests errors. Two fixes applied: 1. Cache Composer's download cache (~/.composer/cache) keyed on composer.lock hash, so repeated CI runs don't re-download packages at all. 2. Configure GitHub OAuth token via SYNC_GITHUB_TOKEN secret to raise the rate limit to 5,000 req/hour for cache misses.