Cache layer for rerank results. Key is SHA256 of query + sorted candidate IDs, so changing the candidate set automatically invalidates. 1-day TTL by default; corrupted cache files are silently dropped. 5 tests cover hit, miss, different-candidates, TTL expiry, corruption. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>