prop/lib/microwaveprop_web/live
Graham McIntire 2d9e5a2d1f
Make the map timeline read .ntms files authoritatively
Two related fixes so the main map reliably picks up new binary
propagation score files as soon as PropagationGridWorker writes them.

1. Propagation.available_valid_times/1 previously preferred ScoreCache
   over ScoresFile, using the cache as an index of what was available.
   The cache is a lazy ETS of whatever hours have been fetched or
   broadcast, which is a strict subset of what's on disk. A new
   forecast hour landing on disk while the cache was warm with older
   entries was invisible to the timeline until the cache happened to
   catch up. Read directly from ScoresFile so the disk store is the
   source of truth.

2. Add Propagation.scores_at_fresh/3 that always reads the .ntms file
   and overwrites the cache entry, and use it from MapLive's
   propagation_updated handler. PropagationGridWorker publishes the
   cache_refresh on `propagation:cache` and the timeline ping on
   `propagation:updated` as separate PubSub broadcasts, so by the time
   MapLive runs through scores_at the ScoreCache GenServer may not
   have processed the refresh yet — fetch_bounds then returns the
   previous chain's bytes. scores_at_fresh takes disk as the source
   of truth for the refresh path and warms the cache as a side effect
   so subsequent readers see the new data.
2026-04-14 17:42:30 -05:00
..
admin live_table polish + status page cleanup 2026-04-12 18:19:41 -05:00
beacon_live Defer beacon coverage estimate until the toggle is flipped on 2026-04-14 17:13:05 -05:00
contact_live Extend skew-T plot to cover the full troposphere 2026-04-14 17:25:58 -05:00
user_management_live Convert /contacts list to live_table 2026-04-12 17:22:15 -05:00
about_live.ex Note CONUS-only coverage on the about page 2026-04-12 14:31:30 -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 User profiles at /u/:callsign, flexible band input, assorted UX cleanup 2026-04-12 16:13:08 -05:00
map_live.ex Make the map timeline read .ntms files authoritatively 2026-04-14 17:42:30 -05:00
path_live.ex Fix /path crash on clear-terrain diffraction loss 2026-04-12 17:50:04 -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 Shrink status page DB stat values so 8-digit counts fit 2026-04-13 15:52:37 -05:00
submit_live.ex Force 24h timestamps and let logged-in owners edit their contacts directly 2026-04-12 15:18:47 -05:00
user_profile_live.ex Cap "Contacts I'm in" at 100 most recent 2026-04-12 17:04:11 -05:00
weather_map_live.ex Add grid squares and weather radar toggles to the weather map 2026-04-13 16:31:54 -05:00