- [Official Recommended Catalog Convergence, Cross-Restart Persistence & Account Toggle Sync] (Fixes #3932, PR #3933, Thanks to @jeikl):
- Generalized Gemini 4+ Discovery & XHigh Thinking Alignment: Generalized Gemini 4+ codename discovery and quota isolation, aligning
gemini-4-hydrogenofficial placeholders (MODEL_PLACEHOLDER_M525~M528) andxhigh/100thinkingLevelhandling alongside frontend category and dashboard views. (Fixes #3932, PR #3933) - Strict Recommended-Only Exposure & Disk Persistence: Replaced the cold-start baseline dynamically with the upstream recommended sets (
agentModelSorts,imageGenerationModelIds,tieredModelIds) fromfetchAvailableModels, persisting sanitized per-account snapshots to<data_dir>/official_models_live_cache.jsonacross restarts and pruning deleted accounts automatically; aligned the Day-0 embeddedofficial_models.jsonbaseline to the active 20 official recommended entries (26 with derived bare IDs). (Fixes #3932) - Fix Disabled-All Split-Brain & Enforce Proxy Toggle Immediately: Unified dual
TokenManagersynchronization acrossinstanceandadmin_serverviaactive_token_managers()on account toggle, switch, and reload paths, ensuring disabled accounts are immediately evicted from active pools and sticky bindings. (Ref #3932, #3936)
- Generalized Gemini 4+ Discovery & XHigh Thinking Alignment: Generalized Gemini 4+ codename discovery and quota isolation, aligning
- [Model Gate 503 Normalization & Multi-Language Diagnostics] (PR #3936, Ref #3932, Thanks to @jeikl):
- First-Gate 503
no_available_accountsResponse: Returned structured503 Service Unavailable(code: no_available_accounts) with full 12-language i18n guidance directly at the first model gate when a known catalog or on-disk model has no supporting active pool account, preventing misleading404responses and cross-account/model contagion. (PR #3936, Ref #3932)
- First-Gate 503
- [Preserve Upload and AwaitFirstByte Terminal Markers Across Daily and Sandbox Endpoints] (PR #3935, Ref #3639, #3763, #3821, #3893, #3899, #3906, Thanks to @mclinyeshi):
- Endpoint Boundary Terminal Preservation: Immediately classified non-Sandbox primary
AwaitFirstBytebudget exhaustion asFirstByteterminal without falling back with depleted budget; preservedUpload,FirstByte, andTransportResetterminal markers across hard-deadline exhaustion, fixed-length send errors, and final Sandbox candidate failures soCacheFirststicky sessions never suffer spurious 30s lockouts or forced rotation. (PR #3935)
- Endpoint Boundary Terminal Preservation: Immediately classified non-Sandbox primary
- [官方推荐模型目录收敛、跨重启持久化与账号启停同步修复] (Fixes #3932, PR #3933, Thanks to @jeikl):
- Gemini 4+ 通用发现与高阶思考对齐: 泛化 Gemini 4+ 代号模型发现与配额隔离逻辑,对齐
gemini-4-hydrogen官方占位符(MODEL_PLACEHOLDER_M525~M528)与xhigh/100thinkingLevel处理;前端同步补齐模型分类与看板展示。(Fixes #3932, PR #3933) - 严格收敛为官方推荐模型并支持跨重启持久化:
fetchAvailableModels同步后以官方agentModelSorts、imageGenerationModelIds、tieredModelIds推荐集合为准覆盖冷启动基线(不再将非推荐/已淘汰模型注入默认端点),将最新在线推荐目录剥离单账号私有配额后持久化到<data_dir>/official_models_live_cache.json,并在账号删除时同步清理;同步将内置 Day-0official_models.json基线对齐为当前活跃的 20 个官方推荐条目(含派生裸名共 26 个)。(Fixes #3932) - 修复全禁用冷启动双端分裂与代理开关生效延迟: 修复桌面端同时存在
instance与admin_server两个独立TokenManager实例导致的列表与调度分裂,在所有启停、账号切换与热重载路径统一通过active_token_managers()同步,并在禁用代理或全部账号停用后立即清理活跃池与粘性绑定。(Ref #3932, #3936)
- Gemini 4+ 通用发现与高阶思考对齐: 泛化 Gemini 4+ 代号模型发现与配额隔离逻辑,对齐
- [模型第一道门禁 503 语义规范化与全语言诊断] (PR #3936, Ref #3932, Thanks to @jeikl):
- [Upload 与 AwaitFirstByte 终态标记跨端点完整保留] (PR #3935, Ref #3639, #3763, #3821, #3893, #3899, #3906, Thanks to @mclinyeshi):
- 跨 Daily 与 Sandbox 端点统一保留终态标记: 主端点非 Sandbox 耗尽
AwaitFirstByte预算时立即归类为FirstByte终态而不再带着耗尽预算回退 Sandbox;在Upload/UploadStalled硬截止耗尽或定长发送失败及末尾 Sandbox 候选失败路径上严格保留Upload/FirstByte/TransportReset终态标记,彻底防止CacheFirst模式下因未打标错误触发 30 秒账号锁定与强制解绑轮换。(PR #3935)
- 跨 Daily 与 Sandbox 端点统一保留终态标记: 主端点非 Sandbox 耗尽
What's Changed
- fix(quota,proxy): restore dynamic discovery and upstream limits for Gemini 4 models (Fixes #3932) by @jeikl in #3933
- fix(proxy,ui): return 503 no available accounts at model gate for known models (Ref #3932) by @jeikl in #3936
- fix(proxy): preserve AwaitFirstByte terminal markers across Daily and Sandbox endpoints (Ref #3639, #3763, #3821, #3893, #3899, #3906) by @mclinyeshi in #3935
Full Changelog: v5.0.4-beta.8...v5.0.4-beta.9