prop/lib/microwaveprop_web/live
Graham McIntire 7416583c27
feat(hrrr): route per-QSO enrichment through hrrr_fetch_tasks (Stream C Elixir)
Phase 3 Stream C Elixir-side: HrrrFetchWorker is deleted; per-QSO HRRR
enrichment now writes to the new hrrr_fetch_tasks table for the Rust
hrrr-point-worker to drain.

Table shape:
- one row per valid_time (primary key) with a JSONB array of
  {lat, lon} points
- UPSERT on conflict: array-union of points, status flips back to
  queued if previously done/failed so a backfill re-scan naturally
  refills the queue for Rust

Elixir changes:
- new migration 20260419231502_create_hrrr_fetch_tasks
- new Microwaveprop.Weather.HrrrPointEnqueuer with enqueue/1 and
  enqueue_for_contacts/1. Pre-2014 contacts (NARR's territory)
  are skipped here so hrrr_status can pin them to :unavailable.
- ContactWeatherEnqueueWorker: build_hrrr_jobs/1 removed; single-
  contact path and batch perform/1 both route through
  HrrrPointEnqueuer.enqueue_for_contacts/1. A placeholder jobs-list
  is kept just to feed mark_hrrr_status!.
- contact_live/show.ex retry button enqueues via the same path.
- :hrrr queue removed from dev/config/runtime.exs
- HrrrFetchWorker module + test deleted

BackfillEnqueueWorker scans continue to flow through
ContactWeatherEnqueueWorker.enqueue_for_contact (unchanged), so the
30-min reconcile refills hrrr_fetch_tasks automatically.

4 new tests cover the routing, pre-2014 skip, UPSERT-union, and
status-reset-on-reschedule behaviour. Rust-side hrrr-point-worker
binary + k8s deployment land in the next commits.
2026-04-19 18:22:22 -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 feat(hrrr): route per-QSO enrichment through hrrr_fetch_tasks (Stream C Elixir) 2026-04-19 18:22:22 -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 refactor(status): drop verbose per-task detail line under grid_tasks panel 2026-04-19 17:18:17 -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