news: reduce headline max age from 24h to 12h, make configurable

- Added headline_max_age_seconds to NewsConfig (default 43200 = 12h)
- Replaced hardcoded 86400 in _fetch_news_sentiment_raw with config ref
- All downstream consumers (keyword scoring, LLM scoring, LLM summary,
  agent panel macro/contrarian) auto-filter through the same path
This commit is contained in:
Harwinder Sekhon
2026-08-09 16:49:48 -04:00
parent 9769a0c84d
commit 7e8ed754ff
2 changed files with 5 additions and 2 deletions
+3
View File
@@ -166,6 +166,9 @@ class NewsConfig:
# Must stay below pre_event_buffer_minutes so an event can't cross # Must stay below pre_event_buffer_minutes so an event can't cross
# into the danger window while a stale cache says it's clear. # into the danger window while a stale cache says it's clear.
context_cache_ttl_seconds: int = 600 context_cache_ttl_seconds: int = 600
# Maximum age of RSS headlines accepted for scoring. Older headlines
# are discarded before keyword analysis and LLM enrichment.
headline_max_age_seconds: int = 43200 # 12 hours
rss_feeds: List[str] = field(default_factory=lambda: [ rss_feeds: List[str] = field(default_factory=lambda: [
"https://investinglive.com/feed/", "https://investinglive.com/feed/",
+2 -2
View File
@@ -770,8 +770,8 @@ class NewsEngine:
pub_date_el.text if pub_date_el is not None else None pub_date_el.text if pub_date_el is not None else None
) )
# Only recent headlines (last 24h) # Only recent headlines (configurable: headline_max_age_seconds)
if pub_date and (datetime.now(timezone.utc) - pub_date).total_seconds() > 86400: if pub_date and (datetime.now(timezone.utc) - pub_date).total_seconds() > self.config.headline_max_age_seconds:
continue continue
# Dedup within and across feeds so a syndicated story # Dedup within and across feeds so a syndicated story