No description
Find a file
Graham McIntire a24ce027f4 Fix /weather 500 on cold cache, untrack k8s secret
The /weather LiveView was timing out on pod restart because
latest_weather_grid/1 ran load_weather_grid_from_db/1 synchronously on
cache miss — that query reads 176k hrrr_profiles rows with two huge
JSONB columns (profile array + duct_characteristics), and JSONB
decoding blocked the LiveView process past the 15-second pool
ownership timeout.

On cache miss latest_weather_grid/1 now returns empty immediately and
kicks off a deduped background fill through GridCache.claim_fill/1 (a
per-valid_time ETS lock so N concurrent mounts after restart don't each
fire the slow query). When the fill completes it broadcasts
weather:updated, and the handle_info in WeatherMapLive hits the warm
cache and pushes rows over the socket.

Added load_weather_grid/1 as a synchronous sibling for tests and any
caller that genuinely needs inline data. Tests updated to use it and
to clear GridCache in setup so ETS state doesn't leak between cases.

Also untrack k8s/secret.yaml and add both it and k8s/*-secret.yaml to
.gitignore — those manifests hold plaintext SMTP and database
credentials that should not live in the repo. Secrets already in git
history should be rotated separately.
2026-04-12 13:56:59 -05:00
.forgejo/workflows Install Docker CLI in CI runner container 2026-04-11 09:04:22 -05:00
.github Add contact edit approval system with admin review queue 2026-04-11 16:15:49 -05:00
assets Fix map forecast hours, blink, and broken prod email 2026-04-12 13:34:12 -05:00
bin Fix livebook path resolution in bin/notebook 2026-04-07 11:15:49 -05:00
config Fix map forecast hours, blink, and broken prod email 2026-04-12 13:34:12 -05:00
docs Add contact edit approval system with admin review queue 2026-04-11 16:15:49 -05:00
k8s chore: update prop image to git.mcintire.me/graham/prop:main-1776019122-8d1d7e4 [skip ci] 2026-04-12 18:39:39 +00:00
lib Fix /weather 500 on cold cache, untrack k8s secret 2026-04-12 13:56:59 -05:00
lib_ml Move ML deps to dev/test only, exclude from production build 2026-04-01 12:10:31 -05:00
notebooks Auto-deploy analysis notebook as Livebook app 2026-04-07 11:15:49 -05:00
priv Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00
rel Add Erlang clustering via libcluster and expose LiveDashboard 2026-04-06 09:46:48 -05:00
test Fix /weather 500 on cold cache, untrack k8s secret 2026-04-12 13:56:59 -05:00
vendor Vendor oban_pro 1.6.13 2026-04-09 14:14:49 -05:00
.credo.exs credo 2026-04-12 10:26:53 -05:00
.dockerignore Optimize Dockerfile layer caching 2026-04-01 10:32:56 -05:00
.formatter.exs initial 2026-03-28 11:28:47 -05:00
.gitignore Fix /weather 500 on cold cache, untrack k8s secret 2026-04-12 13:56:59 -05:00
.tool-versions update deps 2026-04-11 12:03:43 -05:00
AGENTS.md initial 2026-03-28 11:28:47 -05:00
algo.md Update algo.md weights and data flow for native duct integration 2026-04-11 13:44:13 -05:00
app.json Migrate healthchecks from CHECKS to app.json 2026-04-04 11:24:56 -05:00
CLAUDE.md Update CLAUDE.md scoring table: 10 factors with recalibrated weights 2026-04-11 13:59:42 -05:00
Dockerfile Mount Oban Web dashboard at /admin/oban 2026-04-09 14:07:33 -05:00
elevation.md add elevation findings 2026-03-29 16:23:03 -05:00
mix.exs Add dialyxir for static analysis 2026-04-11 17:43:18 -05:00
mix.lock Add dialyxir for static analysis 2026-04-11 17:43:18 -05:00
prediction.md HRRR forecast hours (f00-f18) with timeline map UI 2026-03-31 16:44:47 -05:00
README.md initial 2026-03-28 11:28:47 -05:00
tail_logs.sh Add type filter to backfill enqueue 2026-04-06 11:42:26 -05:00
updates.md Update seasonal scores from sounding data, document commercial link patterns 2026-04-07 11:45:44 -05:00

Microwaveprop

To start your Phoenix server:

  • Run mix setup to install and setup dependencies
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more