mirror of
https://github.com/expo/code-review-cli.git
synced 2026-11-15 03:38:09 -10:00
The evaluation scripts spawned the MCP as a subprocess and made live Brave, Algolia, and page requests, so they could not run in CI and had drifted: one fixture query no longer passes the current sanitizer, and both scripts exceed the per-server call budget added in v0.12.2. Run the documentation server in-process over an InMemoryTransport, one server per case, and replay recorded fixtures through the existing fetchImplementation seam. Each case carries its own fixture; the replay synthesizes the exact wire formats (Brave hits, Algolia hits, the OkHttp static index, DocC JSON, HTML, Markdown, YouTrack JSON) keyed by the request URLs the production provider logic computes, so the sanitizer, routing, allowlists, redirect and content-type checks, extraction, and ranking all run unmodified. RESEARCH_EVAL_LIVE=1 keeps a live mode for true retrieval-quality runs. Thread fetchImplementation through the Expo Algolia search so the recorded mode covers the expo provider, replace the sanitizer-broken kotlin-coroutines query with a symbol-anchored one, and run both evaluations in CI.