Client or integration
OpenCodex dashboard
Area
Provider adapter
Summary
When multiple providers point at the canonical OpenCode Go base URL (https://opencode.ai/zen/go/v1) — the natural setup for balancing several Go subscriptions via combos — only the provider literally named opencode-go shows the rate-limit panel (5h / weekly / 30d). The sibling providers show no quota in the dashboard, and ocx provider quota --refresh --json returns no report rows for them. Expected: every key-auth provider on the canonical Go base URL reports quota.
Root cause: src/providers/quota.ts L2087 gates the probe on the provider name:
if ((provider.authMode ?? "key") === "key" && name === "opencode-go") {
return fetchOpenCodeGoQuota(name, provider);
}
The Kimi branch just above (L2075) already uses the canonical-base-URL pattern instead, and fetchOpenCodeGoQuota itself re-validates isCanonicalOpenCodeGoBaseUrl(config.baseUrl) (L487), so the name check is both too narrow and redundant.
Proposed fix (verified locally on v2.14.0 — report rows went from 1 to 5, dashboard renders rate-limit bars for every sibling provider):
- if ((provider.authMode ?? "key") === "key" && name === "opencode-go") {
+ if ((provider.authMode ?? "key") === "key" && isCanonicalOpenCodeGoBaseUrl(provider.baseUrl)) {
return fetchOpenCodeGoQuota(name, provider);
}
Safe against key leakage to non-canonical hosts because fetchOpenCodeGoQuota still checks the canonical URL before sending the bearer key.
Reproduction
ocx provider add opencode-go --api-key sk-AAA (registry preset)
ocx provider add opencode-go-2 --adapter openai-chat --base-url https://opencode.ai/zen/go/v1 --api-key sk-BBB
ocx provider quota --refresh --json
- Only one
"provider": "opencode-go" report is returned; the dashboard overview page for opencode-go-2 has no rate-limit section.
Version
v2.14.0 (repro); the gate is unchanged on current main as of 2026-08-17 (L2087)
Operating system
macOS (Darwin 25.5)
Provider and model
opencode-go (any model; the quota probe is model-independent)
Logs or error output
ocx provider quota --refresh --json before the fix returns a single opencode-go report row; after the one-line change it returns all five (opencode-go, opencode-go-2 … opencode-go-5), each with fiveHourPercent / weeklyPercent / monthlyPercent populated from https://opencode.ai/zen/go/v1/usage.
Screenshots and supporting files
No response
Redacted configuration
Providers: opencode-go (registry preset) plus opencode-go-2..5, all adapter: openai-chat, baseUrl: https://opencode.ai/zen/go/v1, authMode: key, one API key each. Keys redacted.
Checks
Client or integration
OpenCodex dashboard
Area
Provider adapter
Summary
When multiple providers point at the canonical OpenCode Go base URL (
https://opencode.ai/zen/go/v1) — the natural setup for balancing several Go subscriptions via combos — only the provider literally namedopencode-goshows the rate-limit panel (5h / weekly / 30d). The sibling providers show no quota in the dashboard, andocx provider quota --refresh --jsonreturns no report rows for them. Expected: every key-auth provider on the canonical Go base URL reports quota.Root cause:
src/providers/quota.tsL2087 gates the probe on the provider name:The Kimi branch just above (L2075) already uses the canonical-base-URL pattern instead, and
fetchOpenCodeGoQuotaitself re-validatesisCanonicalOpenCodeGoBaseUrl(config.baseUrl)(L487), so the name check is both too narrow and redundant.Proposed fix (verified locally on v2.14.0 — report rows went from 1 to 5, dashboard renders rate-limit bars for every sibling provider):
Safe against key leakage to non-canonical hosts because
fetchOpenCodeGoQuotastill checks the canonical URL before sending the bearer key.Reproduction
ocx provider add opencode-go --api-key sk-AAA(registry preset)ocx provider add opencode-go-2 --adapter openai-chat --base-url https://opencode.ai/zen/go/v1 --api-key sk-BBBocx provider quota --refresh --json"provider": "opencode-go"report is returned; the dashboard overview page foropencode-go-2has no rate-limit section.Version
v2.14.0 (repro); the gate is unchanged on current
mainas of 2026-08-17 (L2087)Operating system
macOS (Darwin 25.5)
Provider and model
opencode-go (any model; the quota probe is model-independent)
Logs or error output
ocx provider quota --refresh --jsonbefore the fix returns a singleopencode-goreport row; after the one-line change it returns all five (opencode-go,opencode-go-2…opencode-go-5), each withfiveHourPercent/weeklyPercent/monthlyPercentpopulated fromhttps://opencode.ai/zen/go/v1/usage.Screenshots and supporting files
No response
Redacted configuration
Providers:
opencode-go(registry preset) plusopencode-go-2..5, alladapter: openai-chat,baseUrl: https://opencode.ai/zen/go/v1,authMode: key, one API key each. Keys redacted.Checks