prop/config
Graham McIntire cb6cc8a6e2 Fix map forecast hours, blink, and broken prod email
- Forecast hour clicks showed only a small square of coverage because
  :preload_forecast ran at mount using a hardcoded fallback bounding box
  instead of the client's actual viewport. Move the preload trigger into
  handle_event("map_bounds", ...) so the cache always matches the
  viewport the client just asked about.

- Map overlay blinked on load/update because renderScores called Leaflet
  GridLayer.redraw(), which removes every tile element before recreating
  them. Repaint the existing tile canvases in place instead.

- Prod SMTP to mail.smtp2go.com was failing with an "unexpected_message"
  TLS alert: gen_smtp wasn't sending SNI so the wildcard cert endpoint
  rejected the handshake. Set tls: :always with explicit tls_options
  (server_name_indication, versions, verify).
2026-04-12 13:34:12 -05:00
..
config.exs Convert all JavaScript to TypeScript with type annotations 2026-04-11 16:59:28 -05:00
dev.exs Decouple propagation_scores pruning from the compute worker 2026-04-09 12:30:10 -05:00
prod.exs Configure outbound SMTP email via Swoosh with TLS 2026-04-02 13:08:50 -05:00
runtime.exs Fix map forecast hours, blink, and broken prod email 2026-04-12 13:34:12 -05:00
test.exs Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00