No reviewers
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot!114
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/v1.5.0-phase3-radar-stats"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two v2.0.0-Explorer down-payments.
#85 — radar snapshot at alert time (opt-in)
Off by default (
ALERT_RADAR_SNAPSHOT_ENABLED). When on, the first time an alert fires for a location the current radar image is captured and attached to the dashboard record, so the public alert page and the future Historical Explorer (#22) can show conditions at the moment the alert was issued.SentAlert.radar_snapshot_path+radar_snapshot_at(migration 0027, nullable).GET /media/alert-radar/{sent_alert_id}.png(immutable long-TTL, filename re-validated + traversal-guarded). Shown as a "Radar at alert time (HH:MM local)" panel onpublic_alert.html, distinct from live radar.radar_cache_diris a persistent volume (as the existing SPC cache already is).#83 — activity / statistics view
GET /stats("Activity" nav): counts off the retainedsent_alertsdashboard records — a deliberately lightweight slice of #22, not a competing build.channel_id IS NULLrows, restricted to visible locations. Month grouping done in Python for dialect portability.stats.html(simple bars/tables, no chart library); graceful empty state; readonly users may view.Testing (dev server)
ruff clean; 14 new feature tests; bulk suite 723 passed; migration 0027 applied on a restored copy of the real dev DB (both columns present, applies from dev's current 0026).
Closes #83, #85
🤖 Generated with Claude Code
GET /stats ("Activity" nav): a lightweight down-payment on the v2.0.0 Historical Explorer (#22) — counts off the sent_alerts dashboard records already retained. - Totals + breakdowns by location, by event type (top 15 + "other"), and by month, over channel_id IS NULL rows (no per-channel double counting), restricted to locations visible to the user (visible_location_filter). Month grouping is done in Python to stay dialect-portable (Postgres date_trunc vs SQLite). - Self-contained stats.html (simple bars/tables, no chart library); graceful empty state; readonly users may view (mirrors /alerts). Framed in-code as a #22 down-payment, not a competing build. Full suite green on the dev server: 723 passed; migration 0027 verified on a real-DB copy. Closes #83, #85 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>