Adds the missing Upptime-format aggregator step that was lost in the
Upptime → custom-probe migration (post-2026-05-06 GitHub suspension).
Changes:
- scripts/aggregate.py (NEW): Python script that reads history/<slug>.jsonl,
computes rolling uptime% and response-time aggregates, writes
history/<slug>.yml (latest status) and history/summary.json
(day/week/month/year per-site aggregates)
- .github/workflows/uptime-probe.yml: adds "Aggregate probe results"
step between probe run and commit; ensures .yml and summary.json
are regenerated on every probe tick
Immediate effect: fixes false-positive "down" status on Canvas pricing
and legal routes (stuck at 404 from 2026-04-19); refreshes all rolling
uptime aggregates to reflect current probe data.
See: molecule-ai/molecule-ai-status#7
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>