v1.0.0-beta5

looplj/axonhubv1.0.0-beta5Jul 11, 2026by looplj

AI Summary

This beta release strengthens the orchestrator by enforcing strict concurrency limits and adding a round-robin load balancer. It introduces new provider support like Cline and OpenCode Go, along with personal API keys and enhanced error handling.

Key Highlights

  • Enforced strict per-channel max concurrency and added round-robin load balancer.
  • Added support for Cline and OpenCode Go providers with quota tracking.
  • Introduced personal API keys and per-user usage statistics.
  • Improved error reporting for /v1/models endpoint.
  • Added IP access control and codex headers.

New Features

  • Strict per-channel max concurrency enforcement
  • Round-robin load balancer strategy
  • Personal API key type
  • OpenCode Go provider quota tracking
  • IP access control
  • Scripts to cleanup SQLite database

Full Release Notes

## What's Changed
* opt(transformer): build image data URLs via xurl.BuildDataURL by @suixinio in https://github.com/looplj/axonhub/pull/1882
* chore: sync model developers data by @github-actions[bot] in https://github.com/looplj/axonhub/pull/1887
* fix: passThrough column not toggleable in column visibility settings by @Silentely in https://github.com/looplj/axonhub/pull/1886
* fix:跨渠道重试成功之后将原失败渠道记入渠道面板的监控统计 by @xuyufengfei in https://github.com/looplj/axonhub/pull/1891
* fix(openai): avoid stream aggregation nil panics by @luoxue03 in https://github.com/looplj/axonhub/pull/1890
* feat(openapi): support querying api keys and templates by name by @suixinio in https://github.com/looplj/axonhub/pull/1838
* fix: tracing document config by @looplj in https://github.com/looplj/axonhub/pull/1897
* opt: admin page permission guard, close #1894 by @looplj in https://github.com/looplj/axonhub/pull/1898
* fix(frontend): avoid logout on upstream auth errors by @lihaojiee in https://github.com/looplj/axonhub/pull/1902
* fix(responses): preserve encrypted reasoning item boundaries by @ttttmr in https://github.com/looplj/axonhub/pull/1901
* fix: test request detail nav back, close #1912 by @looplj in https://github.com/looplj/axonhub/pull/1915
* feat: add scripts to cleanup sqlite, close #1905 by @looplj in https://github.com/looplj/axonhub/pull/1916
* opt: auto set default test model, close #1895 by @looplj in https://github.com/looplj/axonhub/pull/1917
* fix(ollama): extract token usage from final stream chunk for correct status by @myml in https://github.com/looplj/axonhub/pull/1923
* feat(orchestrator): enforce strict per-channel max concurrency by @suixinio in https://github.com/looplj/axonhub/pull/1920
* fix: scope-level aware RouteGuard and silent 403 handling by @brynne8 in https://github.com/looplj/axonhub/pull/1909
* fix(playground): only show thinking in last assistant message by @myml in https://github.com/looplj/axonhub/pull/1461
* fix: clear the previous state, close #1918 by @looplj in https://github.com/looplj/axonhub/pull/1925
* chore: sync model developers data by @github-actions[bot] in https://github.com/looplj/axonhub/pull/1934
* feat: add OpenCode Go provider quota tracking by @zhaozhaozz in https://github.com/looplj/axonhub/pull/1926
* fix(channels): fix test API keys dialog footer buttons being hidden by @Silentely in https://github.com/looplj/axonhub/pull/1942
* fix(channels): Update the Base URL of the Ollama service provider to the official address. by @Silentely in https://github.com/looplj/axonhub/pull/1941
* fix: improve error reporting for /v1/models endpoint by @trim21 in https://github.com/looplj/axonhub/pull/1931
* opt: reduce S3 Class A operations with native ObjectStore by @suixinio in https://github.com/looplj/axonhub/pull/1939
* fix(channel): add missing optional() to modelMappings zod schema by @junjiangao in https://github.com/looplj/axonhub/pull/1946
* fix: retry stream errors before first content by @lihaojiee in https://github.com/looplj/axonhub/pull/1944
* feat: add round-robin load balancer strategy by @yuanhhs in https://github.com/looplj/axonhub/pull/1953
* feat: add personal API key type and per-user usage statistics by @brynne8 in https://github.com/looplj/axonhub/pull/1933
* fix(httpclient): cap upstream error response body at 1 MB to prevent OOM by @djdembeck in https://github.com/looplj/axonhub/pull/1955
* feat: ip access control by @looplj in https://github.com/looplj/axonhub/pull/1956
* chore: remove the test source filter for request, close #1913 by @looplj in https://github.com/looplj/axonhub/pull/1957
* feat: show reasoning token usage by @looplj in https://github.com/looplj/axonhub/pull/1960
* feat: add codex headers by @looplj in https://github.com/looplj/axonhub/pull/1963
* chore: sync model developers data by @github-actions[bot] in https://github.com/looplj/axonhub/pull/1964
* ci: publish Helm chart to GHCR --issue=#1965 by @zouxingyuks in https://github.com/looplj/axonhub/pull/1966
* feat: openai inbound accept thinking to compatible with ds/zhipu by @looplj in https://github.com/looplj/axonhub/pull/1970
* feat: add Cline channel support by @KremeCN in https://github.com/looplj/axonhub/pull/1972
* fix(aggregator): skip non-standard SSE events with empty choices by @Black0416 in https://github.com/looplj/axonhub/pull/1959
* fix(trace): include instruction content in system_instruction span key by @ChancenJ in https://github.com/looplj/axonhub/pull/1974
* feat: add Cline provider quota support by @KremeCN in https://github.com/looplj/axonhub/pull/1975
* fix(frontend): constrain API keys table scrolling by @KremeCN in https://github.com/looplj/axonhub/pull/1977
* feat(codex): update models and default version by @zouxingyuks in https://github.com/looplj/axonhub/pull/1985
* feat(frontend): add GPT-5.6 models and pricing by @shay-wong in https://github.com/looplj/axonhub/pull/1982
* feat(ollama): add tool call support for request and response transfor… by @myml in https://github.com/looplj/axonhub/pull/1967
* feat(transformer): 渠道级 reasonning effort mapping  by @sycghj in https://github.com/looplj/axonhub/pull/1910
* chore: sync model developers data by @github-actions[bot] in https://github.com/looplj/axonhub/pull/1988
* feat: model condition with requeset header by @looplj in https://github.com/looplj/axonhub/pull/1986
* ci: add nightly docker publish workflow by @trim21 in https://github.com/looplj/axonhub/pull/1981
* feat(channels): add manual disable/enable API key in channel edit panel by @ChancenJ in https://github.com/looplj/axonhub/pull/1990

## New Contributors
* @junjiangao made their first contribution in https://github.com/looplj/axonhub/pull/1946
* @yuanhhs made their first contribution in https://github.com/looplj/axonhub/pull/1953
* @zouxingyuks made their first contribution in https://github.com/looplj/axonhub/pull/1966
* @Black0416 made their first contribution in https://github.com/looplj/axonhub/pull/1959
* @ChancenJ made their first contribution in https://github.com/looplj/axonhub/pull/1974
* @shay-wong made their first contribution in https://github.com/looplj/axonhub/pull/1982
* @sycghj made their first contribution in https://github.com/looplj/axonhub/pull/1910

**Full Changelog**: https://github.com/looplj/axonhub/compare/v1.0.0-beta4...v1.0.0-beta5