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