County-only civil CAP alerts (SAME geocode, no <polygon>) had no geometry, so
the geometry-based region tagger could not place them: no region -> no
region_routes match -> silently not broadcast. Many CEMs / 911 outages / some
AMBER alerts are county-only.
- Bundle work/meshai/county_centroids.py: Census 2023 national county gazetteer
internal points (3,222 counties + DC/territories), FIPS->(lat,lon), with
SAME PSSCCC -> 5-digit FIPS helpers.
- env/ipaws.py: when a CAP alert has SAME geocode(s) but NO polygon, set a Point
(single county) or MultiPoint (multi-county) geometry from the county
centroid(s) so the EXISTING coverage/region tagger locates it and tags ALL
matching regions. Real polygon geometry always wins (never overridden).
- dashboard/server.py: call register_config_routes_hooks(app) in create_app so
the toggle auto-refresh middleware is actually wired in prod (was test-only);
saving a family toggle now takes effect live without POST
/api/notifications/refresh-toggles.
Tests: county-only alert tags SW Idaho + matches emergency route cell;
multi-county tags all regions; polygon path unchanged; create_app wires the
refresh middleware; panhandle coverage-gap documented.
Co-authored-by: Matt Johnson <mj@k7zvx.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>