mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-25 17:14:57 +02:00
* feat(proto): add new RPCs for satellites, oref alerts, telegram, GPS interference, company enrichment Extracted from #1399 (originally by @lspassos1). Adds 12 new proto message/service files and updates service.proto for intelligence, aviation, and infrastructure domains. Intelligence: - ListSatellites + satellite.proto (TLE orbit data) - ListOrefAlerts (Israeli Home Front Command alerts) - ListTelegramFeed (Telegram intelligence feed) - ListGpsInterference + gps_jamming.proto - GetCompanyEnrichment (GitHub/SEC/HN enrichment) - ListCompanySignals Aviation: - GetYoutubeLiveStreamInfo Infrastructure: - GetBootstrapData - GetIpGeo - ReverseGeocode Co-authored-by: Lucas Passos <lspassos1@users.noreply.github.com> * chore(proto): regenerate clients/servers/openapi after new RPC additions * fix(proto): restore GetCountryFacts and ListSecurityAdvisories RPCs removed by contributor * chore(handlers): add stub implementations for new proto RPCs * fix(handler): correct stub shapes for GetCompanyEnrichment and ListCompanySignals * fix(proto): fix handler stub shapes for listOrefAlerts, listTelegramFeed, listGpsInterference * fix(proto): fix remaining handler stub shapes for aviation and infrastructure * fix(proto): add cache tier entries for new generated GET routes, remove stale classify-event entry * fix(pr1888): restore rpc contracts and real handlers * fix(oref): read history from Redis instead of re-calling relay relay:oref:history:v1 is seeded by ais-relay on every poll cycle. History mode now reads directly from Redis (no relay hit). Live alerts still call relay (in-memory only), with Redis counts as fallback. * fix(gateway): change youtube-live-stream-info tier from no-store to fast Matches existing api/youtube/live.js which caches at s-maxage=600. fast tier = s-maxage=300 stale-while-revalidate=60 — appropriate for live detection that changes at most every few minutes. * fix(geocode): await setCachedJson to prevent edge isolate termination race * fix(youtube): use CHROME_UA constant in fallback fetch paths * fix(pr1888): address P1/P2 review findings - gateway: oref+telegram slow->fast (matches legacy s-maxage=300/120) - gateway: ip-geo slow->no-store (per-request user data, must not share) - list-gps-interference: recompute stats from filtered hexes when region filter active - get-company-enrichment: throw ValidationError(400) on missing domain+name - list-company-signals: throw ValidationError(400) on missing company * fix(validation): use FieldViolation.description, remove unused buildEmptyResponse --------- Co-authored-by: Lucas Passos <lspassos1@users.noreply.github.com> Co-authored-by: lspassos1 <lspassos@icloud.com>