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