The freshness badge stays green for data up to 7 days old (freshness() in site/app.js), but collection is nightly — 3-day-old data means the collector has been broken for days while the badge still reads green. Switch to green ≤2 days, orange 3–7, red >7. Note the cron declares 03:17Z but GitHub consistently queues it ~65–70 minutes late (observed 04:17–04:30Z), so nothing should assume an early-morning landing.
The snapshot date also cannot vouch for the verdict store: the capture steps in collect.yml run with continue-on-error so the snapshot still publishes, which means a green Actions run is not evidence capture ran. Surface the verdict store's own freshness (newest capturedAt in data/verdicts.jsonl) next to the data-age badge, so a silently frozen store becomes visible on the page rather than only in a workflow log nobody watches.
Small fixes travelling with this package:
<noscript> one-liner pointing at data/latest.json — the pages are fully client-rendered and currently show an empty page without JS.
- Open Graph tags (
og:title, og:description) for unfurls in Slack and issues.
- Replace the
?v=Date.now() cache-buster with a no-cache fetch so ETags can do their job as the JSON grows.
From §8 of the 2026-08 dashboard audit, extended with the verdict-store freshness point after the capture and lanes work (#2, #4) landed.
The freshness badge stays green for data up to 7 days old (
freshness()insite/app.js), but collection is nightly — 3-day-old data means the collector has been broken for days while the badge still reads green. Switch to green ≤2 days, orange 3–7, red >7. Note the cron declares 03:17Z but GitHub consistently queues it ~65–70 minutes late (observed 04:17–04:30Z), so nothing should assume an early-morning landing.The snapshot date also cannot vouch for the verdict store: the capture steps in
collect.ymlrun withcontinue-on-errorso the snapshot still publishes, which means a green Actions run is not evidence capture ran. Surface the verdict store's own freshness (newestcapturedAtindata/verdicts.jsonl) next to the data-age badge, so a silently frozen store becomes visible on the page rather than only in a workflow log nobody watches.Small fixes travelling with this package:
<noscript>one-liner pointing atdata/latest.json— the pages are fully client-rendered and currently show an empty page without JS.og:title,og:description) for unfurls in Slack and issues.?v=Date.now()cache-buster with a no-cache fetch so ETags can do their job as the JSON grows.From §8 of the 2026-08 dashboard audit, extended with the verdict-store freshness point after the capture and lanes work (#2, #4) landed.