Skip to content

Releases: looplj/axonhub

v1.0.0-beta5

Choose a tag to compare

@looplj looplj released this 11 Jul 03:13
d061ac7

What's Changed

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

New Contributors

Full Changelog: v1.0.0-beta4...v1.0.0-beta5

v1.0.0-beta4

Choose a tag to compare

@looplj looplj released this 20 Jun 05:02
7122f32

What's Changed

New Contributors

Full Changelog: v1.0.0-beta3...v1.0.0-beta4

v1.0.0-beta3

Choose a tag to compare

@looplj looplj released this 11 Jun 16:27

What's Changed

  • chore: 调整图像输入size大小限制 by @sxueck in #1769
  • feat: add modalities field to /v1/models API response by @MoshiCoCo in #1772
  • feat: add IP blocklist settings by @hen7777777 in #1771
  • fix(frontend): guard execution channel query by permission by @MoeMion in #1770
  • opt: backup/restore usages logs seprated, close #1712 by @looplj in #1766
  • chore: upgrade claude code headers by @looplj in #1774
  • fix: allow users to update language preference by @evanhon0110 in #1782
  • fix: cache did not refresh sometime by @looplj in #1783
  • fix(datastorage): remove unbounded in-memory cache of request/response bodies (OOM) by @suixinio in #1781
  • fix(llm): claude code quota check header by @looplj in #1785
  • feat(openapi): add apiKeyQuotaUsages query for service-account keys by @suixinio in #1779
  • fix(openai): aggregate stream choices by index to avoid nil panic by @SAY-5 in #1775
  • chore: upgrade quic by @looplj in #1786
  • feat: add OpenAI audio APIs (TTS / STT) with SSE streaming by @EmccK in #1784
  • chore: sync model developers data by @github-actions[bot] in #1795
  • fix(audio): 修复 TTS 流式 Accept、外部存储与持久化内存占用 by @EmccK in #1792
  • feat(channels): adding Anthropic messages API format support to the OpenCodeGo channel (#1751) by @MoshiCoCo in #1791
  • feat: support redis multi mode by @wangYX657211334 in #1788
  • refactor(neuralwatt): replace current_period_start/end with kwh_reset_date by @djdembeck in #1794
  • fix: preserve Responses function call namespace by @DevilSi0722 in #1797
  • feat: 添加响应超时重试配置 by @xuyufengfei in #1804
  • feat: add evolink provider by @EvoLinkAI in #1773
  • feat(quota): add Apertis quota monitoring and refactor openai_responses handling by @djdembeck in #1793
  • feat: channel retryable statu codes, close #1803 by @looplj in #1807
  • feat: route with media condition, close #1729 by @looplj in #1809

New Contributors

Full Changelog: v1.0.0-beta2...v1.0.0-beta3

v1.0.0-beta2

Choose a tag to compare

@looplj looplj released this 02 Jun 17:23
23ae5f0

What's Changed

  • chore: sync model developers data by @github-actions[bot] in #1706
  • fix: scroll for the channel rate limit dialog, close #1701 by @looplj in #1708
  • feat: render structured request log content, close #1698 by @looplj in #1711
  • fix: 修复了多图输入情况下转发失效的问题 by @sxueck in #1714
  • feat: add advanced model route conditions, close #1670 by @looplj in #1717
  • 修复 Responses 非透传模式下工具原语保真 by @deqiying in #1703
  • feat: support non-stream fallback to require-stream channels by @ttttmr in #1661
  • fix(llm): accept structured response item arguments by @llc1123 in #1728
  • fix(channels): show real i18n label for single-variant types like opencode_go by @qinkangdeid in #1734
  • chore: add claude-opus-4-7 to claudecode DefaultModels by @qinkangdeid in #1733
  • feat(llm): support responses websocket sessions by @llc1123 in #1730
  • Preserve request log filters on detail navigation by @zhaozhaozz in #1723
  • chore: 添加了登陆后页面标题自定义配置项 by @sxueck in #1720
  • fix: model settings dialog, close #1716 by @looplj in #1718
  • Support case-insensitive model filter patterns by @zhaozhaozz in #1725
  • chore: add claude-opus-4-8 to claudecode DefaultModels by @qinkangdeid in #1739
  • feat: opencode trace, close #1740 by @looplj in #1744
  • feat: reactivate api key, close #1735 by @looplj in #1745
  • fix: model association page throws Invalid input for channels without endpoints by @djdembeck in #1746
  • chore: sync model developers data by @github-actions[bot] in #1754
  • fix(anthropic): handle server-side tool blocks without panicking by @xdqi in #1750
  • opt: request detail sheet annimation, close #1749 by @looplj in #1757
  • fix: should set default model type if type not present, close #1752 by @looplj in #1760
  • feat: support disabling db auto migration by @wangYX657211334 in #1727
  • fix(frontend): avoid leaking "{{resource}}" placeholder in NOT_FOUND errors by @qinkangdeid in #1762
  • fix: auto reasoning effort for qwen max, close #1751 by @looplj in #1765

New Contributors

Full Changelog: v1.0.0-beta1...v1.0.0-beta2

v1.0.0-beta1

Choose a tag to compare

@looplj looplj released this 23 May 10:01
3ed308e

What's Changed

  • feat: 请求日志记录新增'推理强度'字段 by @deqiying in #1506
  • feat: per-channel concurrency queue + admission control by @suixinio in #1503
  • feat: auto reasoning effort with suffix by @looplj in #1515
  • feat: add optional read-write separation for database by @lazhenyi in #1516
  • feat(quota): add wafer, synthetic, and neuralwatt quota checkers by @djdembeck in #1509
  • fix(dashboard): align token stats by API key/channel/model with totals by @raikyou in #1524
  • feat: add Anthropic endpoints for Volcengine, AiHubMix, and Xiaomi MiMo by @banlanzs in #1521
  • display token usage in channel cards via tokenStatsByChannel API by @banlanzs in #1528
  • feat(quota): add provider quota enforcement with per-limit status tracking by @djdembeck in #1518
  • feat: customized channel endpoints by @looplj in #1529
  • fix(pipeline): prevent channels from getting stuck in processing status by @djdembeck in #1530
  • chore: reformat llm package by @looplj in #1531
  • fix(models): clicking Archive on a disabled model had no effect by @djdembeck in #1535
  • fix(ui): show used/total in NanoGPT quota display instead of used/remaining by @djdembeck in #1543
  • fix(models): resolve vision capability from modalities when explicit field is absent by @djdembeck in #1542
  • opt: disable spell check for API key textarea by @BLumia in #1544
  • opt: custom endpoint api format by @looplj in #1545
  • feat: align endpoint i18n and prompt protection preview by @looplj in #1546
  • feat(oidc): Initial OpenID Connect Support by @LazuliKao in #1091
  • scheduler: centralized cron job management by @looplj in #1550
  • chore: update issue template by @looplj in #1551
  • fix(llm): missing anthropic thinking disabled transform by @looplj in #1552
  • feat: openai/deepseek completion api, close #1458 by @looplj in #1554
  • chore: change prompt content column, close #1553 by @looplj in #1580
  • fix: max model association priority, close #1507 by @looplj in #1581
  • opt: responses stream failed handle & request executions index, close #1473 by @looplj in #1585
  • opt: openai outbound reasoning field config, close #1584 by @looplj in #1586
  • chore: sync model developers data by @github-actions[bot] in #1588
  • feat: global pass-through setting by @raikyou in #1591
  • feat: add lowercaseModelName channel setting for cross-channel load b… by @nb5p in #1589
  • feat: expose inbound request headers to override templates by @ttttmr in #1520
  • feat(apikeys): add API key profile templates by @djdembeck in #1590
  • feat: prefer outbound format equals to inbound format by @looplj in #1592
  • 修改前端,"测试场"新增测试模型网关模型 by @zhai23 in #1597
  • fix(gc): drop nil bind args so VACUUM actually runs on Postgres by @suixinio in #1602
  • chore: add gpt-5.5 for codex plans by @qinkangdeid in #1605
  • refactor: remove the signature prefix marker to improve pass through by @looplj in #1593
  • Support image parts in Ollama chat transformer by @zhzy0077 in #1610
  • feat: add Qiniu provider support by @JackChiang233 in #1612
  • fix(channels): import Qiniu icon in config_channels by @suixinio in #1613
  • feat(openapi): add updateAPIKeyProfiles and loadApiKeyProfileTemplate by @suixinio in #1617
  • chore: sync model developers data by @github-actions[bot] in #1627
  • fix: detect synthetic weekly quota exhausted state by @djdembeck in #1619
  • feat: auto enable wal for sqlite by @looplj in #1633
  • feat: customized channel endpoints with base url by @looplj in #1635
  • fix: prevent panic when client canceled for pass-through, close #1634 by @looplj in #1637
  • fix: should omit empty name for function call, close #1587 by @looplj in #1639
  • fix: fetch models for codex with auth.json, close #1636 by @looplj in #1645
  • feat: hide upstream error message by @LRan1028 in #1640
  • feat: gc now with options, close #1618 by @looplj in #1647
  • feat: backup usage stats by @henryz78 in #1632
  • feat(transformer): add cross-provider search citation and annotation support by @ttttmr in #1643
  • feat: add volume price mode, close #1582 by @looplj in #1651
  • doc: update add channel doc by @looplj in #1653
  • chore(llm): change openai default reasoning_field to content by @looplj in #1656
  • fix(llm): clear ReasoningEffort when DeepSeek thinking is disabled by @Lucent-Snow in #1663
  • fix: request detail preview in dark mode by @looplj in #1666
  • feat: add modelBlacklistRegex system setting to filter channel-derive… by @nb5p in #1673
  • chore: sync model developers data by @github-actions[bot] in #1675
  • fix(llm): close text block before starting thinking block in inbound stream by @hen7777777 in #1677
  • feat: opencode go channel, close #1614 by @looplj in #1682
  • Add developer-level model association rules by @zhaozhaozz in #1672
  • feat: auto decompress request body, close #1680 by @looplj in #1688
  • fix(pipeline): expose RawRequest before llm middlewares by @ttttmr in #1687
  • feat: introduce Atlas Cloud as sponsor by @looplj in #1693
  • feat: add atlascloud provider by @lucaszhu-hue in #1695
  • feat: rotate api key, close #1692 by @looplj in #1696
  • fix: should not error if can access to api keys, close #1674 by @looplj in #1697
  • fix: cache not refresh in some cache by @looplj in #1699
  • fix(gc): avoid SELECT * when querying old requests/executions for cle… by @FlyLoongZ in #1700

New Contributors

Full Changelog: v0.9.38...v1.0.0-beta1

v0.9.43

Choose a tag to compare

@looplj looplj released this 23 May 07:52

Full Changelog: v0.9.42...v0.9.43

v0.9.42-beta1

Choose a tag to compare

@looplj looplj released this 08 May 16:07

Full Changelog: v0.9.40...v0.9.42-beta1

v0.9.42

Choose a tag to compare

@looplj looplj released this 08 May 16:40

Full Changelog: v0.9.40...v0.9.42

v0.9.40

Choose a tag to compare

@looplj looplj released this 08 May 15:12

Full Changelog: v0.9.39...v0.9.40

v0.9.39

Choose a tag to compare

@looplj looplj released this 08 May 14:32

Full Changelog: v0.9.38...v0.9.39