
三张还没合并的单改的都是客户端能看见的那一层:模型列表怎么算、余额耗尽报什么码、模型条目带哪些字段。本篇给出各自的现状行号、影响范围,以及合并前今晚能做的事。
deepseek-flash 从模型列表里消失,连 display_name 和 description 一起没了。GetAvailableModels 计算目录时,取的是「此刻可调度」的账号。
backend/internal/service/gateway_service.go 第 1414–1418 行:分组内取 ListSchedulableByGroupID,全局取 ListSchedulable。这一段就是「目录成员」与「当前可调度」被绑在一起的地方。/v1/models。PR 说明里列了三处:/v1/models、composite 平台的列表、以及 Codex 客户端的模型清单。ListModelAvailabilityCandidates;同时把 GetSchedulablePlatforms 换成 GetModelCatalogPlatforms,Codex 清单改用 catalog 而不是当前可见的那批账号。mergeable_state 是 unstable。model_mapping 是白改。/v1/models 当唯一来源。Service temporarily unavailable。余额耗尽的账号仍在池里,也确实支持这个模型,于是它直接吃这句兜底。
backend/internal/handler/no_account_error.go 第 109–113 行是那句 503 兜底,第 137 行 return fallback 是余额型失败的落点。整个函数只有 404 与 503 两个出口。AllModelSupportAccountsInsufficientBalance:只有每一个支持该模型的账号都带余额不足标记时才为真。5insufficient_balance,文案点名模型并提示充值或换模型。isGenericRoutingFailure,只有既不是 404 也不是 402 的失败才打容量指标。Service temporarily unavailable 时,先看账号的 balance_low 标记与余额,再决定是扩池还是充值。
sdk/api/handlers/openai/openai_handlers.go 第 84 行注释「Filter to only include the 4 required fields」,第 87–100 行只挑 id、object、created、owned_by 四项。convertModelToMap 在 openai 分支里写三个键。9context_length、max_context_length、max_completion_tokens。
internal/registry/model_registry.go 第 1749–1757 行:三个字段都在注册表里算好了。上一张图是出口,这一张是源头,中间被剥掉的正是上下文长度。122ff652,6 文件 +394/−42,base dev,仍未合并。/v1beta/models,这条路由是现成的(开了 Home 模式的实例由另一条 handler 出这份列表)。11wj6r4t6mxq1r 在 11:50:12 开出,上一期 13:21 发稿时没写。13api.anthropic.com 直连、Claude Code、Console 都不在降级名单里。01M5GPE9C4E19HE461P8JAMYXD 仍是 monitoring。16model_mapping。balance_low,那就是余额问题。 在 #8289 合入前它不会变成 402,容量指标也会被这条失败污染。/v1beta/models。 OpenAI 兼容的 /v1/models 在 v8.0.38 与 dev 上都只有四个字段。is-compat 在 v8.0.38 里就有,不必等新版本。21status.claude.com
status.anthropic.com
codex-reset.com
opentherank.com
status.cloud.google.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.