docs/local-backend-audit.md
This matrix tracks desktop parity by mapping src/services/*.ts consumers to sebuf domain handlers and classifying each feature as:
All JSON API endpoints now use sebuf-generated handlers served through a single catch-all gateway (api/[[...path]].js). Handler implementations live in server/worldmonitor/{domain}/v1/. The desktop sidecar runs the same handler code locally via an esbuild-compiled bundle.
Remaining non-sebuf api/*.js files serve non-JSON content (RSS XML, HTML, redirects) and are not part of this matrix.
| Priority | Feature / Panel | Service source(s) | Sebuf domain | Handler path | Classification | Closure status |
|---|---|---|---|---|---|---|
| P1 | LiveNewsPanel | src/services/live-news.ts | Non-sebuf (YouTube) | 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 | intelligence | server/worldmonitor/intelligence/v1/ | 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/conflict/, src/services/infrastructure/, src/services/maritime/, src/services/military/ | conflict, infrastructure, maritime, military | server/worldmonitor/{domain}/v1/ | Requires user-provided API key | ✅ Explicit fallback: unavailable feeds are disabled while map rendering remains active for local/static layers. |
| P2 | Summaries | src/services/news/ | news | server/worldmonitor/news/v1/ | Requires user-provided API key | ✅ Explicit fallback chain: Groq → OpenRouter → browser model. |
| P2 | MarketPanel | src/services/market/, src/services/prediction/ | market, prediction | server/worldmonitor/market/v1/, server/worldmonitor/prediction/v1/ | Fully local | ✅ Multi-provider and cache-aware fetch behavior maintained in sidecar mode. |
| P3 | Flight enrichment | src/services/military/ | military | server/worldmonitor/military/v1/ | Requires user-provided API key | ✅ Explicit fallback: heuristic-only classification mode. |
| P3 | OpenSky relay fallback path | src/services/military/ | military | server/worldmonitor/military/v1/ | Requires cloud fallback | ✅ Relay fallback documented; no hard failure when relay is unavailable. |
ServiceStatusPanel so operators can see acceptance status and per-feature fallback behavior in desktop runtime.A desktop build is considered ready when all checks below are green:
These checks are now surfaced in the Service Status UI as "Desktop readiness".