Address parity review comments with service/API mapping fixes

This commit is contained in:
Elie Habib
2026-02-13 11:04:02 +04:00
parent ee304d0e89
commit 6602456408
4 changed files with 49 additions and 43 deletions

View File

@@ -14,16 +14,16 @@ This matrix tracks desktop parity by mapping `src/services/*.ts` consumers to `a
## Feature parity matrix
| Priority | Feature / Panel | Service source(s) | API route(s) | Classification | Closure status |
|---|---|---|---|---|---|
| P1 | LiveNewsPanel | `src/components/LiveNewsPanel.ts` | `/api/youtube/live` | Fully local | ✅ Local endpoint available; channel-level video fallback already implemented. |
| P1 | MonitorPanel | `src/components/MonitorPanel.ts` | _None_ | Fully local | ✅ Client-side only (no backend dependency). |
| P1 | StrategicRiskPanel cached overlays | `src/components/StrategicRiskPanel.ts`, `src/services/cached-risk-scores.ts` | `/api/risk-scores` | Requires user-provided API key | ✅ Explicit fallback: panel continues with local aggregate scoring when cache feed is unavailable. |
| P1 | Map layers (conflicts, outages, AIS, military flights) | `src/services/conflicts.ts`, `src/services/outages.ts`, `src/services/ais.ts`, `src/services/military-flights.ts` | `/api/acled-conflict`, `/api/cloudflare-outages`, `/api/ais-snapshot`, `/api/opensky` | Requires user-provided API key | ✅ Explicit fallback: unavailable feeds are disabled while map rendering remains active for local/static layers. |
| P2 | Summaries | `src/services/summarization.ts` | `/api/groq-summarize`, `/api/openrouter-summarize` | Requires user-provided API key | ✅ Explicit fallback chain: Groq → OpenRouter → browser model. |
| P2 | MarketPanel | `src/services/markets.ts`, `src/services/polymarket.ts` | `/api/coingecko`, `/api/polymarket`, `/api/finnhub`, `/api/yahoo-finance` | Fully local | ✅ Multi-provider and cache-aware fetch behavior maintained in sidecar mode. |
| P3 | Flight enrichment | `src/services/wingbits.ts` | `/api/wingbits` | Requires user-provided API key | ✅ Explicit fallback: heuristic-only classification mode. |
| P3 | OpenSky relay fallback path | `src/services/military-flights.ts` | `/api/opensky` | Requires cloud fallback | ✅ Relay fallback documented; no hard failure when relay is unavailable. |
| Priority | Feature / Panel | Service source(s) (`src/services/*.ts`) | API route(s) | API handler(s) (`api/*.js`) | Classification | Closure status |
|---|---|---|---|---|---|---|
| P1 | LiveNewsPanel | `src/services/live-news.ts` | `/api/youtube/live` | `api/youtube/live.js` | Fully local | ✅ Local endpoint available; channel-level video fallback already implemented. |
| P1 | MonitorPanel | _None (panel-local keyword matching)_ | _None_ | _None_ | Fully local | ✅ Client-side only (no backend dependency). |
| P1 | StrategicRiskPanel cached overlays | `src/services/cached-risk-scores.ts` | `/api/risk-scores` | `api/risk-scores.js` | Requires user-provided API key | ✅ Explicit fallback: panel continues with local aggregate scoring when cache feed is unavailable. |
| P1 | Map layers (conflicts, outages, AIS, military flights) | `src/services/conflicts.ts`, `src/services/outages.ts`, `src/services/ais.ts`, `src/services/military-flights.ts` | `/api/acled-conflict`, `/api/cloudflare-outages`, `/api/ais-snapshot`, `/api/opensky` | `api/acled-conflict.js`, `api/cloudflare-outages.js`, `api/ais-snapshot.js`, `api/opensky.js` | Requires user-provided API key | ✅ Explicit fallback: unavailable feeds are disabled while map rendering remains active for local/static layers. |
| P2 | Summaries | `src/services/summarization.ts` | `/api/groq-summarize`, `/api/openrouter-summarize` | `api/groq-summarize.js`, `api/openrouter-summarize.js` | Requires user-provided API key | ✅ Explicit fallback chain: Groq → OpenRouter → browser model. |
| P2 | MarketPanel | `src/services/markets.ts`, `src/services/polymarket.ts` | `/api/coingecko`, `/api/polymarket`, `/api/finnhub`, `/api/yahoo-finance` | `api/coingecko.js`, `api/polymarket.js`, `api/finnhub.js`, `api/yahoo-finance.js` | Fully local | ✅ Multi-provider and cache-aware fetch behavior maintained in sidecar mode. |
| P3 | Flight enrichment | `src/services/wingbits.ts` | `/api/wingbits` | `api/wingbits/[[...path]].js` | Requires user-provided API key | ✅ Explicit fallback: heuristic-only classification mode. |
| P3 | OpenSky relay fallback path | `src/services/military-flights.ts` | `/api/opensky` | `api/opensky.js` | Requires cloud fallback | ✅ Relay fallback documented; no hard failure when relay is unavailable. |
## Non-parity closure actions completed