meshai/work/tests/fixtures/quake/0000.json

82 lines
2.3 KiB
JSON
Raw Normal View History

refactor(phase1): quake + swpc(Kp+flare) + avalanche, behind staged-cutover gate (#29) * fix(fixtures): rewrite capture_fixtures.py to use ephemeral push subscribe Previous script hardcoded stream="CENTRAL" which does not exist — Central partitions into domain streams (CENTRAL_QUAKE, CENTRAL_SPACE, etc.). It also called pull_subscribe_bind() without await, making the fetch a no-op. Fix: mirror the proven CentralConsumer.start() pattern — use js.subscribe(subject, cb=..., AckPolicy.NONE, no durable) which auto- discovers the correct stream via the subject filter, identical to how the live consumer binds. Messages are funnelled through asyncio.Queue with an idle-timeout to detect drain completion. Adds live captured fixtures: - tests/fixtures/quake/ — 3 envelopes (CENTRAL_QUAKE stream, mode=all) - tests/fixtures/swpc/ — 40 envelopes (CENTRAL_SPACE, mode=all, proton_flux history) - tests/fixtures/swpc_last/ — 23 envelopes (mode=last: 21 alert variants + kindex + proton_flux) Avalanche: confirmed empty off-season (CENTRAL_AVY stream, 0 messages). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(phase1): migrate quake, swpc(Kp+flare), avalanche + staged-cutover gate First hazards on the source-agnostic formatter+decider path, behind a staged-cutover gate so deploy = shadow-only (old path still broadcasts; new path dry-run-diffed) until MESHAI_CUTOVER_CATEGORIES flips a category live. - formatters/{quake,swpc,avalanche}.py + gating/{quake,swpc,avalanche}.py: source-agnostic format(event,*,now,budget) + decide(data,*,source,now)->GateResult. quake (earthquake_event, tier-b: render PAGER + live update-prefix), swpc (geomagnetic_storm + rf_propagation_alert, Kp+flare only; proton/solar_radiation _storm stays legacy; geomag 600s window re-homed off the module-global into gating/swpc with a deferred stamp; tier-b scale-based severity), avalanche (avalanche_warning/watch; centralseverity->NAADS 1-5 remap; synthetic fixtures off-season). - central/{quake,swpc,avy}_handler.py bridges: cutover -> new decide()+canonical data; not-cutover -> exact legacy behavior. env/{usgs_quake,swpc,avalanche}.py emit canonical Event.data (avalanche stops precomposing). env/store.py generic native decider hook (cutover-gated). - notifications/cutover.py (is_cutover via MESHAI_CUTOVER_CATEGORIES); composer dispatch + shadow hooks are cutover-aware (shadow no-ops once a category is live). - scripts/capture_fixtures.py fixed (per-domain streams e.g. CENTRAL_QUAKE, await bind); real quake/swpc fixtures captured; avalanche synthetic. Tests: +~150 (quake/swpc/avalanche parity+cross-source+gate-sequence+cutover); 0 new failures (34 baseline, 1426 passed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Matt Johnson <mj@k7zvx.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 15:58:46 -06:00
{
"envelope": {
"id": "uu80143601",
"source": "central.echo6.co",
"type": "central.quake.event.minor.v1",
"time": "2026-06-28T19:19:56.050000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "quake.event.minor",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "uu80143601",
"adapter": "usgs_quake",
"category": "quake.event.minor",
"time": "2026-06-28T19:19:56.050000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": [
-112.206666666667,
42.2111666666667
],
"bbox": [
-112.206666666667,
42.2111666666667,
-112.206666666667,
42.2111666666667
],
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"magnitude": 1.23,
"place": "4 km ENE of Malad City, Idaho",
"time_ms": 1782674396050,
"updated_ms": 1782742438530,
"tz": null,
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/uu80143601",
"detail": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/uu80143601.geojson",
"felt": null,
"cdi": null,
"mmi": null,
"alert": null,
"status": "reviewed",
"tsunami": 0,
"sig": 23,
"net": "uu",
"code": "80143601",
"ids": ",uu80143601,",
"sources": ",uu,",
"types": ",origin,phase-data,",
"nst": 10,
"dmin": 0.1939,
"rms": 0.1,
"gap": 160,
"magType": "md",
"type": "earthquake",
"title": "M 1.2 - 4 km ENE of Malad City, Idaho",
"longitude": -112.206666666667,
"latitude": 42.2111666666667,
"depth": 3.06,
"_enriched": {
"geocoder": {
"name": null,
"city": null,
"county": null,
"state": null,
"country": null,
"postal_code": null,
"timezone": "America/Boise",
"landclass": "Deep Creek Roadless Area",
"elevation_m": 1752.28515625
}
}
}
}
},
"subject": "central.quake.event.minor.unknown",
"captured_epoch": 1783196478
}