v0.5.0: Geofences in any shape + four new hazard domains
Geofences in any shape, four new hazard domains, precise entity matching, and the last coverage zeros gone.
Geofences in three shapes (+2 tools)
intel_aoi_define_polygon- a named area bounded by 3-64 [lat, lon] vertices, for shapes a radius cannot express (a border region, a strait, an EEZ). Membership is exact: an event inside the bounding circle but outside the polygon is excluded. Polygons may cross the antimeridian. Existing AOI databases migrate in place.intel_aoi_define_corridor- a waypoint route plus a width in km (a shipping lane, a supply road, a cable run), built on 0.4.0's great-circle segment distance; result distances are measured to the route.- Every intel_aoi_* tool (brief, escalation, change detection, update, list) is shape-aware through one shared filter whose circle behavior is test-verified identical to the old radius filter.
Four hazard/space domains (+4 tools = 128)
Each verified against its live API before the mocks were written:
intel_weather_alerts- NWS active CAP alerts (US only; zone-based alerts return honest null coordinates)intel_launch_schedule- Launch Library 2 upcoming launches (hour-long cache for the free tier)intel_volcano_activity- Smithsonian GVP / USGS Weekly Volcanic Activity Reportintel_cyclones- NHC active storms (Atlantic, Eastern/Central Pacific; zero storms is a quiet tropics, not an outage)
Precise entity and event matching
Countries, leaders, organizations, and companies no longer substring-match: "usa" inside "thousand" no longer tags the United States, "hamas" inside "Bahamas" no longer fires, "strike" inside "airstrike" no longer adds a labor-unrest category and severity bump. Word-boundary alternations and boundary-anchored keyword stems, with 15 failing-first regression tests - and measured faster per call, not slower.
Test suite
745 non-smoke tests (309 at v0.3.0), 90% statement coverage (59% before the 0.4.0 audit), with the CI ratchet raised to 89 the same day it was installed. cli.py (all 52 reachable commands) and the collector run loop - the last coverage zeros - are now tested.
Known issues, pinned by tests and tracked in ROADMAP Phase 24.5: ~30 CLI commands render upstream errors as healthy empty states, and Rich markup swallows lowercase bracketed values in CLI output. Both are the next arc.
Full detail in CHANGELOG.md.