mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-19 21:32:20 +03:00
The two lists are sibling pure-data modules that have to agree, and nothing compared them. A provider in fetcherProviders but not supportedProviders computes a quota nobody ever asks for; one in supportedProviders with no dispatcher case is accepted and then falls through to `default: "Usage API not implemented"`. That seam has produced the same bug three times -- #9603 (bailian, whose own comment reads "fetcher existed, list entry missing"), #11722, and #12256 (openrouter credits, which #13080 then asked for again six days after the fix landed because the card had never appeared). usage-families-split.test.ts pins the dispatcher against fetcherProviders, so the open-sse side cannot drift; this pins the other edge. Divergence stays allowed but has to be declared with a reason: opencode, opencode-zen, xai have a fetcher, not offered to the dashboard xiaomi-mimo-token-plan offered, no fetcher -- but inert, because it authenticates by API key and is absent from PROVIDER_LIMITS_APIKEY_PROVIDERS, so isSupportedUsageConnection refuses it before the dispatcher is reached I could not establish intent for the first three from the tree, so they are pinned rather than "corrected" -- `xai-oauth`/`xao` are offered while the API-key `xai` is not, which reads like it may be deliberate. A third test fails if a declared divergence stops diverging, so the allowlists cannot go stale and quietly excuse a future recurrence of the same id. Mutations, each killed by the right test: new fetcher, no dashboard entry -> the forward guard + the stale check dashboard entry, no fetcher -> the reverse guard + the stale check a declared divergence gets fixed -> the stale check alone duplicate id in either list -> the duplicate test alone 105 related tests pass (this, usage-families-split, provider-plugin-manifest, provider-limits*), eslint clean. Test-only; no production file touched.