prop/test/microwaveprop_web/controllers
Graham McIntire af8b787915
perf(weather): binary cell-pack + canvas overlay + lazy layer prefetch
Three changes that shrink first-paint and make layer toggles instant:

1. Server: /weather/cells now supports ?format=bin and ?layers=a,b,c. The
   binary "WCEL" pack is ~3× smaller than JSON (Float32 columns, no key
   overhead) and parses with DataView + typed-array views — essentially
   memcpy on the client.

2. Client: replaced JSON parse + per-cell SVG <rect> with a custom
   Leaflet canvas layer. The pack is columnar (lats/lons + Float32Array
   per layer) and each draw is one fillRect per cell against a
   precomputed 256-step color LUT. At low zoom (CONUS, ~80k cells) SVG
   paint cost dominated; canvas keeps it under one frame.

3. Lazy prefetch: the initial fetch only requests the *current* layer
   (~1/19 the bytes). Right after paint, a single background fetch
   pulls every other layer into the same pack. Layer switches that land
   after the prefetch finishes are pure recolor — no network, no
   server CPU.

The /weather/tiles endpoint stays for backward compat. The JSON path of
/weather/cells stays too — the binary path is opt-in via ?format=bin.
2026-04-29 13:41:21 -05:00
..
agent_skills_controller_test.exs feat(agent-discovery): Link/markdown/content-signal/api-catalog/skills 2026-04-17 12:09:05 -05:00
api_catalog_controller_test.exs feat(agent-discovery): Link/markdown/content-signal/api-catalog/skills 2026-04-17 12:09:05 -05:00
beacon_monitor_controller_test.exs Add beacon monitor registration and fix prod SMTP 2026-04-08 11:30:28 -05:00
contact_map_controller_test.exs test: push line coverage from 71.7% → 78.67% 2026-04-23 18:43:18 -05:00
error_html_test.exs initial 2026-03-28 11:28:47 -05:00
error_json_test.exs initial 2026-03-28 11:28:47 -05:00
health_controller_test.exs fix(probes): stop DB saturation from SIGKILLing every pod 2026-04-21 16:00:04 -05:00
page_controller_test.exs test: add /qsos→/contacts redirect + scorer conversion properties 2026-04-23 14:03:02 -05:00
user_registration_controller_test.exs Add password auth with callsign + email confirmation 2026-04-08 10:21:40 -05:00
user_reset_password_controller_test.exs feat(auth): self-service password reset 2026-04-18 08:42:35 -05:00
user_session_controller_test.exs feat(auth): self-service password reset 2026-04-18 08:42:35 -05:00
user_settings_controller_test.exs feat(accounts): add Home QTH section to user settings page 2026-04-25 16:51:54 -05:00
weather_tile_controller_test.exs perf(weather): binary cell-pack + canvas overlay + lazy layer prefetch 2026-04-29 13:41:21 -05:00