- Item 5: Convert remaining printf-style logger call to structured logging
(key=value format) in x402_middleware.py
- Item 6: Wire CACHE_HITS counter into cache get() and per-tier SCRAPE_LATENCY
histogram into UltimateScraper scrape loop
- Item 7: Add circuit-breaker checks in extractor.py (Ollama) and
routers/vision.py (OpenRouter) to fail fast and record success/failure
when external services are down; attach recovery results to resilience
registry for per-service circuit state
560 tests passing, ruff clean