Godstrument/workers
jing 6d408a8bdb 🤝 world_planes: read the shared OpenSky cache (quota-collision fix)
Reader side of the OpenSky shared-cache v1 contract (mirrored in GODSIGH
SPEC2.md §4). Path ~/.cache/godverse/opensky-states.json (env OPENSKY_CACHE_FILE),
content the raw global /states/all body, freshness = mtime within 120 s.

Each poll cycle now checks the cache first: on a fresh hit it reads the global
body, filters the states to our bbox client-side (indices 5=lon, 6=lat), and
skips the HTTP call entirely (logs "cache hit"). On 429 or a network failure it
falls back to a stale cache rather than nothing. This worker only ever polls a
bbox, so it never WRITES the cache (never partial data into a global-contract
file) — it is a pure reader, and degrades to its old ≥450 s bbox fetch when no
writer is around (i.e. prod). Result: godstrument + GODSIGH running together
spend ~one poller's quota instead of colliding and 429-ing each other out.

Verified: unit tests for read_cache freshness/stale/missing + bbox filtering,
and an integration run where a fresh cache is served (count filtered to bbox,
zero HTTP).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 16:45:32 +10:00
..
audio_worker.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
midi_worker.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
replay_db.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
replay_quakes.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
replay_weather.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
sim_esp32.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
vision_worker.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_air.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_almanac.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_bank.py Accounts, socio-economic feeds, and hub fixes (track deployed work) 2026-07-05 16:18:35 +10:00
world_clock.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_crypto.py 📈 the trading desk — see the data, pin the ticker, hear the market think 2026-07-06 20:29:08 +10:00
world_dealgod.py Accounts, socio-economic feeds, and hub fixes (track deployed work) 2026-07-05 16:18:35 +10:00
world_debt.py Accounts, socio-economic feeds, and hub fixes (track deployed work) 2026-07-05 16:18:35 +10:00
world_econ.py Accounts, socio-economic feeds, and hub fixes (track deployed work) 2026-07-05 16:18:35 +10:00
world_ephemeris.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_fire.py Accounts, socio-economic feeds, and hub fixes (track deployed work) 2026-07-05 16:18:35 +10:00
world_fx.py 📈 the trading desk — see the data, pin the ticker, hear the market think 2026-07-06 20:29:08 +10:00
world_iss.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_planes.py 🤝 world_planes: read the shared OpenSky cache (quota-collision fix) 2026-07-13 16:45:32 +10:00
world_quakes.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_sats.py 🛰 world_sats: real satellites as a source (SGP4 from cached Celestrak TLEs) 2026-07-13 16:42:03 +10:00
world_sky.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_sport.py 🏟 tune the stadium roster — seven sports round the clock 2026-07-07 22:49:03 +10:00
world_sun.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_weather.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_wiki.py Godstrument: a multi-modal sensor-fusion instrument 2026-07-05 02:13:05 +10:00
world_zodiac.py Chinese zodiac + seasons + live wildfires; overlapping concept groups 2026-07-05 02:48:50 +10:00