- DailyCache: JSON file cache keyed by (source/as_of), TTL 24h, atomic tmp+rename write, persists across runs - fetch_or_stale: returns fresh cache, else refetch+cache, else falls back to stale so dashboard is never blanked - 7 tests; full suite pass
3.3 KiB
3.3 KiB