Highlights
Channel testing and gateway administration gain safer workflows, user/group-aware overrides, and request-field passthrough controls. This release also improves provider compatibility, Responses API accounting, and recharge/quota reliability.
New Features
- Channel testing has been expanded with safer test workflows, including an auto-disable-only mode for failing channels (#6917).
- Parameter overrides can now use requester user and group context for more flexible routing and policy rules (#6534).
- Gateway channels now let administrators choose which request fields are passed through to upstream providers (#6847).
Bug Fixes
- Ali provider requests now avoid sending unset
top_pvalues and correctly handle mapped image models (#6772). - Qwen TTS models are now classified correctly so they route through the proper text-to-speech path (#6711).
- Responses API handling now preserves penalties and prompt-cache settings while settling cached-token usage accurately (#6892).
- Ollama and Claude conversions now preserve reasoning/tool-call context while avoiding invalid empty tool payloads (#6862).
- Gemini-style model listing requests to
/v1/modelsnow return correctly (#6199). - Recharge, refund, and quota updates are now settled more consistently, including concurrent and uncreditable order cases (#6845).
- Web forms now keep fetched model selections in sync, and the mobile sidebar behaves correctly (#6841).
- Usage logs now record reasoning effort consistently (#6641).
- Request length validation is now enforced consistently on the backend (#5548).
Improvements
- Billing logs now highlight the conditional multiplier that matched a request, making cost calculations easier to audit (#6561).
- Large server and model-list searches in the web UI are debounced, improving responsiveness on big installations (#6727).
- The playground now displays streamed output with smoother word fade-ins and a more robust editor experience (#6895).
- Custom channel route editing now has a more capable advanced editor (#6865).
What's Changed
- fix(ali): stop injecting top_p into requests that omit it by @ENCHIGO in #6674
- fix(channels): classify Qwen TTS models correctly by @seefs001 in #6711
- feat(channels): add auto-disable-only channel test mode by @seefs001 in #6728
- perf(web): debounce server and large-list searches by @seefs001 in #6727
- fix: record reasoning effort consistently in usage logs by @seefs001 in #6641
- feat(relay): expose user and group context to parameter override by @seefs001 in #6534
- fix(ollama): preserve reasoning and tool-call context by @seefs001 in #6605
- fix: backend length validation by @seefs001 in #5548
- feat(billing): highlight matched conditional multipliers in logs by @seefs001 in #6561
- fix(web): require confirmation before rotating access token by @seefs001 in #6749
- fix(relay): preserve presence/frequency penalty in Responses conversion by @UzkiS in #6654
- refactor(responses): remove compact model suffix handling by @seefs001 in #6770
- fix: mobile sidebar by @seefs001 in #6760
- fix(web): refresh Turnstile token after login attempt by @thiswod in #6764
- fix: 修复 Gemini 风格 /v1/models 列表请求 by @zhibisora in #6199
- fix(billing): 异步任务退款时同步减少 used_quota by @wans10 in #6795
- fix(web): keep fetched model selection in sync with form by @enwaiax in #6841
- fix(ali): 修复阿里图片模型映射后仍使用原始模型名判断协议的问题 by @wxwwt in #6772
- chore(deps): bump builder-util-runtime and electron-builder in /electron by @dependabot[bot] in #6467
- chore(deps): bump dompurify from 3.4.11 to 3.4.13 in /web by @dependabot[bot] in #6735
- chore(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /electron by @dependabot[bot] in #6846
- chore(deps-dev): bump tar from 7.5.16 to 7.5.22 in /electron by @dependabot[bot] in #6468
- fix(topup): reject uncreditable orders before payment by @enwaiax in #6845
- chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 in /electron by @dependabot[bot] in #6704
- chore(deps-dev): bump electron from 39.8.5 to 39.8.10 in /electron by @dependabot[bot] in #6705
- fix: prompt_cache_key openai chat -> openai responses by @seefs001 in #6861
- feat: add field passthrough controls for gateway channels by @seefs001 in #6847
- fix(relay): stop injecting empty tools into Claude requests that omit them by @zcxads666 in #6837
- fix(oauth): align custom binding response fields in frontend by @seefs001 in #6818
- test(web): standardize frontend tests on Vitest by @QuentinHsu in #6569
- fix(relaykit): preserve parameterless tools in Claude conversion by @seefs001 in #6862
- refactor: advanced custom channel route editor by @seefs001 in #6865
- feat: channel test by @seefs001 in #6917
- feat(web): fade in streamed response words and harden playground editor by @RedwindA in #6895
- fix: settle Responses cached token usage by @LiaoQi98 in #6892
New Contributors
- @ENCHIGO made their first contribution in #6674
- @UzkiS made their first contribution in #6654
- @thiswod made their first contribution in #6764
- @zhibisora made their first contribution in #6199
- @enwaiax made their first contribution in #6841
- @zcxads666 made their first contribution in #6837
- @LiaoQi98 made their first contribution in #6892
Full Changelog: v1.0.0-rc.24...v1.0.0-rc.25