Highlights
- Added the
tokenhub-migrateframework and CLI with a LiteLLM source adapter, canonical migration bundles, local and remote TokenHub sinks, validation, dry-run planning, and migration CI coverage. - Expanded gateway compatibility for Codex-backed CLI clients, native Codex image generation, DeepSeek Responses routing and cache affinity, Anthropic message conversion, and provider endpoint normalization.
- Added per-API-key RPM/TPM limits, project/API-key scoped routing policies, a model diagnostics playground, provider credential testing, and unified project/team workspaces.
- Added provider billing connectors, detailed token usage records, cost reconciliation, a read-only Agent Token Cost API, SQL-backed audit pagination, OTLP/Langfuse tracing, and failover-attribution metrics.
- Hardened streaming limits and timeouts, upstream error classification, quota handling, database migrations, analytics export consistency, localization, key copying over HTTP, and admin UI layering.
Release artifacts
- Linux native archives for
amd64andarm64, pluschecksums.txt, are built and attached by the release workflow. - Container images are published as
ghcr.io/astaxie/tokenhub-backend:0.5.0,:0.5, and:latest.
All merged PRs since v0.4.0
Features and enhancements
- feat(migration): add tokenhub-migrate CLI with LiteLLM source adapter (#53) by @coldbrewtea
- feat(deploy): add a local runner for the production build (#66) by @legendtkl
- feat(projects): unify project workspace team configuration (#92) by @astaxie
- feat(observability): export gateway traces over OTLP for Langfuse (#93) by @legendtkl
- feat(billing): add provider billing data connectors (#94) by @astaxie
- feat(audit): record detailed token usage (#95) by @astaxie
- feat(models): clarify provider and external model flow (#96) by @astaxie
- feat(rate-limit): add per-api-key rpm and tpm limits (#102) by @astaxie
- feat(gateway): support codex-backed cli clients (#110) by @Mr0bean
- feat(deepseek): add Responses routing and cache affinity (#111) by @deepjerry-ai
- feat(providers): test API credentials before creation (#112) by @deepjerry-ai
- feat(playground): add model diagnostics console (#118) by @deepjerry-ai
- feat(observability): attribute failover attempts and upstream latency (#120) by @coldbrewtea
- feat(routing): add project and api-key scoped policies (#121) by @astaxie
- feat(finops): add provider cost reconciliation (#123) by @astaxie
- feat(analytics): expose agent token cost API (#140) by @astaxie
- feat(audit): paginate request logs in SQL (#143) by @astaxie
Fixes and hardening
- fix(frontend): use full API key issuance wizard (#87) by @CLukeLi
- fix(frontend): increase default API key token quotas (#89) by @CLukeLi
- fix(api-keys): allow clearing all quota limits (#97) by @assclb
- fix(observability): measure request latency with the local clock (#103) by @legendtkl
- fix(providers): discover custom upstream models in quick connect (#105) by @legendtkl
- fix(gateway): give streaming upstream calls their own timeout policy (#106) by @legendtkl
- fix(gateway): classify upstream provider errors instead of flattening them (#107) by @legendtkl
- fix: usage summary token fields, missing ja translations, and line gate (#109) by @legendtkl
- fix(frontend): keep key issuance on key management (#113) by @deepjerry-ai
- fix(server): bound SSE event parsing on every streaming path (#116) by @legendtkl
- fix(gateway): support native Codex image generation (#124) by @stoner-byte
- fix(server): omit empty tool_calls when converting Anthropic assistant messages (#130) by @chajiuqqq
- fix(admin): expose language preferences to all users (#132) by @assclb
- fix(ui): keep global search above page content (#151) by @astaxie
- fix(frontend): support key copy over HTTP (#152) by @astaxie
- fix(providers): normalize Anthropic endpoint versions (#157) by @yujiewanwan
Documentation, CI, refactoring, and maintenance
- ci: add CI workflow and enforce the repository change guidelines (#67) by @legendtkl
- docs: highlight supported providers (#85) by @astaxie
- docs: embed star history chart (#86) by @astaxie
- docs: refine README positioning (#88) by @astaxie
- docs(readme): fix provider name underline in supported providers table (#99) by @coldbrewtea
- refactor(server): split oversized HTTP and store files (#100) by @astaxie
- chore: drop the staged implementation plan from the repository (#104) by @legendtkl
- docs: simplify pull request template (#108) by @legendtkl
- refactor: remove dead code and collapse duplicated logic (#114) by @legendtkl
- refactor: remove dead code and collapse duplicated logic (#115) by @legendtkl
- refactor(server): re-land adapter core sharing and finish-reason unification (#122) by @legendtkl
Full Changelog: v0.4.0...v0.5.0