prop/lib/microwaveprop_web/live
Graham McIntire ee732d03b1
fix(contact-detail): re-enqueue HRRR on every page view when profile missing
The 'Fetching HRRR atmospheric data' spinner stayed up forever for
contacts stuck in :queued without a matching hrrr_fetch_tasks row.
Ways a contact lands in that state:

  - HrrrPointEnqueuer.enqueue/1 raises, the rescue swallows the error
    and returns {:ok, 0}, but the caller still marked the contact
    :queued before it noticed the failure.
  - Rust worker marks a (valid_time) task :done with a points array
    that never included this contact's point, so no profile is ever
    written for it.
  - hrrr_fetch_tasks row is cleaned up by retention before the contact
    page loads.

Drop the hrrr_status != :queued short-circuit and always call the
enqueuer when the profile is nil. The ON CONFLICT clause in
HrrrPointEnqueuer.enqueue/1 unions points into the existing row,
resets :done/:failed rows back to :queued with attempt=0, and no-ops
when the point is already present — so re-entering on every page view
is cheap and self-healing.
2026-04-20 16:37:14 -05:00
..
admin feat(admin): surface flagged contacts on the contact-edits page 2026-04-19 12:40:20 -05:00
beacon_live feat(beacons): plot-path link seeds TX chain to match beacon EIRP 2026-04-18 10:54:38 -05:00
contact_live fix(contact-detail): re-enqueue HRRR on every page view when profile missing 2026-04-20 16:37:14 -05:00
user_management_live Disable PDF export on live_table pages 2026-04-16 12:25:25 -05:00
about_live.ex Rename ERA5 → NARR across the codebase 2026-04-16 09:22:23 -05:00
algo_live.ex Merge auth links into main nav and lower password min to 8 2026-04-08 10:39:51 -05:00
contact_map_live.ex perf(contact-map): client-side band filtering via per-band layer groups 2026-04-17 12:08:46 -05:00
import_live.ex feat(import): fire confetti when the complete banner appears 2026-04-17 10:01:18 -05:00
map_live.ex feat(map): auto-advance cursor, full forecast timeline, panel spacing 2026-04-19 12:10:36 -05:00
path_live.ex feat(format): miles-primary distance formatting sitewide 2026-04-18 15:53:40 -05:00
privacy_live.ex Trim footer and privacy copy 2026-04-09 12:30:10 -05:00
rover_live.ex Remove grid squares toggle from rover planner page 2026-04-10 17:31:23 -05:00
status_live.ex feat(status): show radar enrichment progress alongside HRRR/Weather/Terrain/IEMRE 2026-04-20 14:12:22 -05:00
submit_live.ex feat(contacts): private flag with scope-aware visibility 2026-04-18 17:49:01 -05:00
user_profile_live.ex feat(format): miles-primary distance formatting sitewide 2026-04-18 15:53:40 -05:00
weather_map_live.ex fix(weather-map): default timeline cursor to the hour closest to now 2026-04-17 15:57:59 -05:00