mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-14 19:02:17 +03:00
Um pool `auto/*` vazio que não diz por que está vazio é a pior forma de falha: o operador vê ausência e não sabe se é config, cota ou catálogo. Registrar qual estágio removeu quantos, e carregar `dropReason` em cada entrada de `quotaHealth.providers`, transforma silêncio em diagnóstico. Os três defeitos achados de carona valem tanto quanto a feature — em especial a cota livre recorrente sem teto sendo tratada como desconhecida em vez de segura, que é justamente o caso que mais aparece. Revalidei após reconstruir sobre o tip: **15/15**, typecheck:core limpo, `check-api-typecheck` OK (289). **Uma mudança minha no `catalogPaidFilter.ts`.** Mantive a sua extração — ela é mais limpa que o predicado inline — mas troquei o corpo para usar `isFreeForProvider` por id. O módulo OR-eava `providerHasFreeModels(resolved) || providerHasFreeModels(canonical)` num único `freeProvider` e depois testava `isFreeModel` em cada um. Com isso, um id cujo próprio provider não documenta tier livre passa a ler como grátis sempre que o alias irmão documenta — que é exatamente o buraco que o #12744 fechou e já está no tip. Por id preserva a garantia; nenhuma outra linha do módulo mudou. **Dívida registrada:** o `virtualFactory.ts` foi de 1187 para 1219 somando esta onda e cruzou o teto de 1200 pela primeira vez. Congelado com os candidatos a extração nomeados na justificativa.
14 lines
507 B
TypeScript
14 lines
507 B
TypeScript
/**
|
|
* Resolve the effective model list after a free-only import filter.
|
|
* freeFilterEmpty (caller asked free-only, fetched >0, matched 0) wins over
|
|
* everything: surface [] so the UI shows "no free models found" instead of
|
|
* silently falling back to the stale synced snapshot. Pure — no imports.
|
|
*/
|
|
export function resolveEffectiveAvailableModels<T>(
|
|
freeFilterEmpty: boolean,
|
|
discovered: T[],
|
|
synced: T[]
|
|
): T[] {
|
|
return freeFilterEmpty ? [] : discovered.length > 0 ? discovered : synced;
|
|
}
|