Explorer: event detail timeline #139

Closed
opened 2026-07-27 20:08:14 +00:00 by claude-bot · 1 comment
Contributor

Parent: #22. The centerpiece view.

A timeline of related products for one event — SPC outlook → MCD → watch → warning → all-clear — alongside the notifications actually delivered, AI summaries, radar, and source links.

Precedent to extend, not duplicate

  • /p/{token} already renders a per-lifecycle snapshot timeline: app/api/public.py:615-623 queries NWSAlertSnapshot rows for one (location_id, lifecycle_id) ordered by received_at, rendered as <ol class="public-alert-timeline"> in public_alert.html:193-201 and styled at static/css/app.css:1097-1123. The Explorer's timeline is the multi-product generalization of this — extract and reuse rather than writing a second timeline.
  • GET /api/locations/{id}/spc-outlook-history (app/api/alerts.py:369-430) already returns SPC issuance history over a rolling 36-hour window, collapsing same-risk reissuances.
  • Delivered notifications live in notification_deliveries (per sent_alert/channel/kind, with status, attempts, and last_error).
  • AI summaries: ai_summary_records.summary_text, joined via source_id.

Tasks

  • Timeline of event members in issuance order, with product family, severity, and issuance time.
  • Full official text per member from nws_alert_snapshots.description / instruction and spc_outlook_pages.product_text.
  • Delivered-notification rail from notification_deliveries, including failures — "we tried and it failed" is part of the historical record.
  • AI summaries inline; coordinate with #23.
  • Radar snapshot(s) and source links.
  • Extract the existing timeline CSS into something shared rather than duplicating it.
Parent: #22. The centerpiece view. A timeline of related products for one event — SPC outlook → MCD → watch → warning → all-clear — alongside the notifications actually delivered, AI summaries, radar, and source links. ## Precedent to extend, not duplicate - `/p/{token}` **already renders a per-lifecycle snapshot timeline**: `app/api/public.py:615-623` queries `NWSAlertSnapshot` rows for one `(location_id, lifecycle_id)` ordered by `received_at`, rendered as `<ol class="public-alert-timeline">` in `public_alert.html:193-201` and styled at `static/css/app.css:1097-1123`. The Explorer's timeline is the multi-product generalization of this — extract and reuse rather than writing a second timeline. - `GET /api/locations/{id}/spc-outlook-history` (`app/api/alerts.py:369-430`) already returns SPC issuance history over a rolling 36-hour window, collapsing same-risk reissuances. - Delivered notifications live in `notification_deliveries` (per sent_alert/channel/kind, with status, attempts, and last_error). - AI summaries: `ai_summary_records.summary_text`, joined via `source_id`. ## Tasks - [ ] Timeline of event members in issuance order, with product family, severity, and issuance time. - [ ] Full official text per member from `nws_alert_snapshots.description` / `instruction` and `spc_outlook_pages.product_text`. - [ ] Delivered-notification rail from `notification_deliveries`, including failures — "we tried and it failed" is part of the historical record. - [ ] AI summaries inline; coordinate with #23. - [ ] Radar snapshot(s) and source links. - [ ] Extract the existing timeline CSS into something shared rather than duplicating it.
Author
Contributor

Picking this up — the centerpiece view, stacked on the day view (#138, PR #171). Per the issue's precedent notes: the timeline extends and generalizes the existing /p/{token} snapshot timeline (shared CSS extracted, not duplicated); member entries render full official text from nws_alert_snapshots with a SentAlert fallback for pre-capture history; the delivered-notification rail comes from notification_deliveries including failures; AI summaries join via source_id (coordinating with #23); radar stills from the alert snapshot + captured frames (loops land in #140). PR to follow.

Picking this up — the centerpiece view, stacked on the day view (#138, PR #171). Per the issue's precedent notes: the timeline extends and generalizes the existing `/p/{token}` snapshot timeline (shared CSS extracted, not duplicated); member entries render full official text from `nws_alert_snapshots` with a `SentAlert` fallback for pre-capture history; the delivered-notification rail comes from `notification_deliveries` including failures; AI summaries join via `source_id` (coordinating with #23); radar stills from the alert snapshot + captured frames (loops land in #140). PR to follow.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/WeatherBot#139
No description provided.