What's Changed
- opt: anthropic signature recognization by @looplj in #2197
- feat: unify auto-refresh controls and stabilize list animations by @AkaChou in #2198
- fix: correct currency code example from RMB to CNY by @hanuxxx in #2202
- feat(quota): add Charm Hyper credit balance checker by @djdembeck in #2199
- fix(quota): color Codex quota bars by usage by @djdembeck in #2166
- feat(quota): track OpenCode Go quota via official usage API by @jveko in #2204
- feat: hide unroutable configured models from public lists by @CberYellowstone in #2215
- fix(trace): only persist explicitly identified traces by @MrLiuGangQiang in #2208
- fix(responses): harden stream terminal, retry, and resource boundaries by @wtj-0527 in #2196
- feat: add xai_responses channel type by @kirafishy in #2212
- fix(prompts): parse project GUIDs in prompt schema by @Likhixang in #2200
- chore(actions): upgrade workflows to node24 actions by @llc1123 in #2219
- fix(responses): preserve image tool_choice without pass-through by @llc1123 in #2218
- fix(codex): skip pass-through for unsupported response limits by @llc1123 in #2217
- feat(requests): add reusable column reordering with drag-and-drop by @djdembeck in #2222
- feat: persit chunks for failed stream request by @looplj in #2224
- feat(quota): allow exempting channels from quota filtering by @djdembeck in #2214
- feat: add xAI subscription SSO channel and Responses support for xai by @llc1123 in #2225
- feat: provider quota estimate by @looplj in #2228
- feat: add codex missing headers by @looplj in #2230
- fix(actions): derive unstable version from latest tag by @llc1123 in #2231
- fix(llm): preserve top-level reasoning tokens by @djdembeck in #2237
- fix(nanogpt): escalate quota status to exhausted at 100% by @djdembeck in #2236
- fix(codex): fix HTTP 400 missing reasoning.context all_turns by @djdembeck in #2235
- feat(frontend): add sans/serif/mono font options to theme menu by @ChancenJ in #2234
- chore: minor ui/error optimization by @looplj in #2238
- fix: image outbound & override by @looplj in #2241
- fix: restore meta muse lineup in model catalog by @djdembeck in #2258
- fix(channel): write UTC updated_at when saving model prices by @ChancenJ in #2257
- fix(frontend): grant system-level route access to owner users by @qinkangdeid in #2254
- fix(copilot): send Grok models through Responses API by @ripenedcat in #2250
- opt: gemini channel compatible by @looplj in #2259
- chore: sync model developers data by @github-actions[bot] in #2242
- feat: introduce unified opencode transformer, close #2240 by @looplj in #2260
- feat: GC 支持剥离已存储的请求/响应载荷 by @CberYellowstone in #2246
- fix(frontend): correct conversation sidebar height by @KremeCN in #2267
- fix: skip postgres monotonic updated_at cleanup by @djdembeck in #2266
- fix: use HTTP URL for WebSocket model discovery by @techblack in #2265
- fix: should reload channels after txn commited, close #2256 by @looplj in #2261
- fix: forward image parameter in /v1/images/generations by @clhey in #2251
- fix: double count reasoning token for throughput by @looplj in #2270
- fix(requests): expose personal key callers to project owners by @brynne8 in #2269
- fix: use ping for Responses WebSocket channel tests by @techblack in #2264
- fix(requests): honor effective API key scopes by @brynne8 in #2277
- fix: stabilize auto-refresh list transitions by @AkaChou in #2275
- fix(codex): accept completed JSON Responses from compatible relays by @MrLiuGangQiang in #2243
- fix(channels): map ollama_anthropic to the ollama provider by @hihanley in #2299
- chore: sync model developers data by @github-actions[bot] in #2295
- fix: i18n conversation viewer and tool_choice stat by @djdembeck in #2298
- docs(i18n): clarify storage policy and payload storage copy by @brynne8 in #2296
- fix: preserve conditional template overrides by @CBOSSX in #2287
- docs(i18n): clarify where store-chunks persists stream chunks by @trim21 in #2306
- feat: support Codex alpha search proxy by @JerryLiu369 in #2274
- fix(providers): accept boolean experimental flag by @djdembeck in #2305
- fix(gemini): preserve concrete MIME types for remote media by @llc1123 in #2205
- feat: hot-reload model catalog from upstream via backend by @CberYellowstone in #2263
- fix(channels): validate bulk ordering weight input by @JasonWenTheFox in #2335
- fix(frontend): support clipboard copy on insecure HTTP origins by @JasonWenTheFox in #2334
- feat(frontend): add 100-row pagination option by @JasonWenTheFox in #2333
- fix: skip spurious default-value changes that trigger SQLite rebuilds by @ChancenJ in #2331
- chore: sync model developers data by @github-actions[bot] in #2325
- fix(ui): add viewport height floor to DialogContent by @ronronner02 in #2328
- feat(channels): support export/import channel model prices as JSON by @ChancenJ in #2322
- fix(frontend): trim price inputs before saving channel model prices by @trim21 in #2321
- feat: auto set prompt cache key from trace id by @looplj in #2339
- fix: request performance metric accurate by @looplj in #2341
- feat: support add image in playground by @BLumia in #2340
- fix: decode snake_case OIDC claims for email linking by @imryao in #2320
- fix: classify upstream stream interruptions and keep latency metrics on failed executions by @zhaozhaozz in #2317
- fix(frontend): paginate API key selectors and filters by @suixinio in #2346
- ci: validate bundled providers.json against its schema by @trim21 in #2315
- feat: return AxonHub cost on usage.cost across API formats by @trim21 in #2300
- feat(api): support downstream Responses WebSocket by @techblack in #2255
- feat: add mine api keys tab, close #2271 by @looplj in #2349
- fix: requests db index name length & rules by @looplj in #2351
New Contributors
- @hanuxxx made their first contribution in #2202
- @jveko made their first contribution in #2204
- @kirafishy made their first contribution in #2212
- @Likhixang made their first contribution in #2200
- @ripenedcat made their first contribution in #2250
- @techblack made their first contribution in #2265
- @clhey made their first contribution in #2251
- @CBOSSX made their first contribution in #2287
- @JerryLiu369 made their first contribution in #2274
- @ronronner02 made their first contribution in #2328
- @imryao made their first contribution in #2320
Full Changelog: v1.0.0-beta7...v1.0.0-beta8