Skip to content

Phase 1: truthful freshness signals and small page fixes #5

Description

@mmcky

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementImprovement to existing content or functionalityhigh-priorityAddress soon

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions