prop/lib
Graham McIntire 525d9c4ea5
fix(weather): reconcile contact weather_status from SQL, not on view
2,019 contacts sat permanently in weather_status=:queued even after
their ASOS data had been ingested. The only code path that flipped
:queued → :complete was MicrowavepropWeb.ContactLive.Show on page
view — contacts that nobody visited stayed :queued forever.

Adds Weather.reconcile_weather_statuses/0, a single SQL UPDATE that
flips every :queued contact whose ±2h / 150km window now contains
at least one surface observation. Called at the tail of the
existing ContactWeatherEnqueueWorker cron so the correction runs
regardless of whether anyone opens the UI.

Visible effect: the status page's "Weather done" count (previously
capped at 79,975 while data kept landing) will converge on the real
total after the next cron tick.

2838 tests + credo green.
2026-04-24 13:25:15 -05:00
..
microwaveprop fix(weather): reconcile contact weather_status from SQL, not on view 2026-04-24 13:25:15 -05:00
microwaveprop_web chore(deps): drop gettext 2026-04-24 12:31:21 -05:00
mix/tasks refactor(weather): make rebatch logic callable from release eval 2026-04-24 13:05:52 -05:00
microwaveprop.ex initial 2026-03-28 11:28:47 -05:00
microwaveprop_web.ex chore(deps): drop gettext 2026-04-24 12:31:21 -05:00