prop/lib/microwaveprop
Graham McIntire 578b4ede86 Serve /contacts/map payload via HTTP endpoint, parallel hydrate
- Add ContactMapController serving /api/contacts/map with pre-gzipped
  JSON from Microwaveprop.Cache. Browsers handle Content-Encoding: gzip
  natively; payload drops from 5.7 MB raw to 1.5 MB on the wire (73%).
  Cache TTL 10 min, invalidated on contact insert alongside the other
  contact-map cache keys.
- Move contact map payload out of the LiveView's initial HTML entirely.
  Shell renders with the filter chrome (count + band list); the hook
  fetches contacts from the HTTP endpoint in parallel with map init.
  This also avoids Phoenix.Socket's 64 KB frame limit (push_event would
  have required chunked transfer or a global frame size bump).
- Parallelize ContactLive.Show hydrate: five independent DB loads
  (weather, solar, hrrr_path, terrain, iemre) now run concurrently via
  Task.async + Task.await_many. Total latency drops from sum(each) to
  max(each), cutting contact show hydrate time roughly 5x.
2026-04-12 13:10:51 -05:00
..
accounts Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
backtest Fix all 12 dialyzer warnings 2026-04-11 18:08:18 -05:00
beacon_monitors Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
beacons Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
commercial Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
propagation Add more caching to make the map feel instant 2026-04-12 12:26:25 -05:00
radio Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00
terrain Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
weather Cache /weather grid, defer contact show mount, cache stats 2026-04-12 12:55:50 -05:00
workers Cache /weather grid, defer contact show mount, cache stats 2026-04-12 12:55:50 -05:00
accounts.ex Add /beacons CRUD and /users admin page 2026-04-08 12:01:45 -05:00
application.ex Cache /weather grid, defer contact show mount, cache stats 2026-04-12 12:55:50 -05:00
backtest.ex Phase 9.3, 9.4, and Phase 3 NEXRAD pipeline 2026-04-10 12:48:36 -05:00
beacon_monitors.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
beacons.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
cache.ex Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00
commercial.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
geo.ex Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
mailer.ex initial 2026-03-28 11:28:47 -05:00
markdown.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
propagation.ex Add more caching to make the map feel instant 2026-04-12 12:26:25 -05:00
radio.ex Serve /contacts/map payload via HTTP endpoint, parallel hydrate 2026-04-12 13:10:51 -05:00
release.ex Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
repo.ex initial 2026-03-28 11:28:47 -05:00
repo_listener.ex Replace polling with Postgres LISTEN/NOTIFY for live updates 2026-04-02 16:26:22 -05:00
terrain.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
weather.ex Cache /weather grid, defer contact show mount, cache stats 2026-04-12 12:55:50 -05:00