You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
English
Access page: the Show raw API control sits beside the Native API title (not far right), and uses a secondary button when collapsed so it is easier to find.
The display catalog now reloads in the background every 10 minutes by default instead of only when a client asks, so a model an upstream adds appears in /v1/models without a manual refresh. Set CLI2API_CATALOG_REFRESH_INTERVAL (Go duration such as 15m, or plain minutes) to change the interval; 0 disables the loop.
The last successful catalog is persisted in SQLite and restored on boot, and a failed catalog refresh now keeps serving the previous model list instead of returning an empty one.
GET /v1/models reports catalog.synced_at and catalog.stale beside data; upstream error text stays on the console endpoint so a scoped API key cannot read another provider's failure.
GET /api/model-catalog (console) returns the catalog sync state with per-provider last success time, last error, and model count; POST /api/model-catalog forces a refresh.
Codex streaming keeps the function name on tool calls: it is read from response.output_item.added instead of the argument events, which carry only the item id. Clients no longer receive a tool call whose name is empty, and a session that recorded one no longer has every later request rejected with Invalid 'input[n].name': empty string.
Add opt-in earliest-expiry-first (FEFO) account routing. It ranks accounts only inside the same provider family by their nearest spendable credit-package expiry, rotates accounts expiring on the same UTC+8 day, and falls back to round-robin when a provider has no package dates. Existing round-robin, weighted round-robin, fill-first, affinity, pinning, region/provider gates, cooldowns, and failover are unchanged.
Refresh a FEFO account's quota after each completed response or stream (coalesced per account) and re-probe accounts whose trusted packages all expired, so newly granted or spent credits change the next selection without waiting for a manual refresh.
Expose WorkBuddy package expiry as FEFO-eligible only for personal identities with a complete, paginated result. Enterprise/shared identities, full result pages, undated packages, and other providers' reset windows or token lifetimes never invent a priority.
Add the FEFO option to System → Account routing strategy and document that Qoder, Trae, Devin, Command Code, and Codex do not currently provide per-package credit expiry, so their accounts stay in the unknown-date cohort.
Add the China-region Kimi Code provider: sign in with the official device-code flow (or import the credential the Kimi Code client already stored), discover the subscription's real model list with its context window, thinking efforts, vision and tool support, and serve /v1/chat/completions, /v1/responses and /v1/messages from it.
Kimi Code accounts show the four subscription usage windows (5-hour, 7-day, monthly, monthly-code) in the console, refresh their access token automatically, and can be routed alongside every other provider in the account pool.
Kimi Code models accept a console reasoning default on the Providers page; a request that does not specify a level uses it, then the model's own default.
Kimi Code is import-only: import the credential the client already stored, but export is not offered, because the credential is a bearer token pair and exporting it would hand out the account.