Dohyun Jung
a2c5d8a2f5
feat(quota): use official OpenCode Go usage API ( #12124 )
...
Migra o quota fetcher do OpenCode Go para a API oficial de uso, com refactor substancial que remove ~1850 linhas de código legado e atualiza a suíte de testes existente inteira para o novo contrato. Validado no worktree combinado (typecheck limpo, testes focados verdes). Obrigado!
2026-08-30 11:11:46 -03:00
MumuTW
f0b08f95c3
chore(usage): decompose services/usage.ts into per-provider usage/* leaves (999 → 253) ( #8545 )
...
* chore(usage): extract crof, nanogpt, qoder, opencode, deepseek, bailian, vertex, xiaomi-mimo, xai, github usage fetchers into usage/* leaves
Decompose services/usage.ts (god-file phase 1): move the remaining per-provider
usage fetcher/parser logic into co-located leaves under open-sse/services/usage/
so usage.ts becomes a thin dispatcher (imports + USAGE_FETCHER_PROVIDERS +
getUsageForProvider switch + __testing re-exports).
New leaves (each a pure data transform or independent fetcher, no orchestration):
- usage/github.ts getGitHubUsage, formatGitHubQuotaSnapshot, inferGitHubPlanName, shouldDisplayGitHubQuota
- usage/crof.ts getCrofUsage
- usage/nanogpt.ts getNanoGptUsage
- usage/qoder.ts getQoderUsage, parseQoderUserStatusUsage
- usage/opencode.ts getOpencodeUsage
- usage/deepseek.ts getDeepseekUsage
- usage/bailian.ts getBailianCodingPlanUsage
- usage/vertex.ts getVertexUsage
- usage/xiaomi-mimo.ts getXiaomiMimoUsage
- usage/xai.ts getXaiUsage
usage.ts re-exports parseQoderUserStatusUsage (named) and threads every helper
the existing __testing contract exposes (usage-utils / usage-service-hardening /
qoder-usage-quota / xiaomi-mimo-selftrack / xai-usage / vertex-spend suites read
them from services/usage). External importers unchanged.
open-sse/services/usage.ts: 1065 -> 256 lines (cap 800).
npm run check:file-size: OK. typecheck:core: OK. eslint: clean. check:cycles: OK.
Added characterization tests (tests/unit/usage-<provider>-split.test.ts) that
import each leaf directly and pin its export surface + key edges, mirroring the
existing usage-quota-core-split / usage-scalars-split pattern.
* docs(changelog): add fragment for this PR
2026-07-26 03:52:19 -03:00