`timeframe_days` is configuration logic that was incorrectly placed into `BgpContext`, which is meant for raw data from BGP sources. This refactor removes it from `BgpContext` and instead passes it as a parameter to `build_bgp_intel` where it's actually used by `classify_stability`.
Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com>
time.time() - path.stat().st_mtime went negative under load when NTFS
stamped a write's mtime slightly ahead of the wall clock read a moment
later, making a ttl_hours=0 cache lookup serve stale data instead of
refetching. surfaced as a flaky failure in test_cached_json_refetches_once_the_entry_expires
during the full suite run before task 40's smoke test.