The expiry facts live in a root service and outlive the rail, so the clock kept arming its boundary/hourly timeout with no badge on screen. Gate it on dashboardRails().recentSources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>