Skip to content

v6.17.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:04
· 78 commits to master since this release
3027906

Auto-released from merge of PR #1741 (trigger: push).

  • A credits rung in the failover chain. A --pool-fallback entry written credits:<model> names the API credits a Max plan includes as a rung: when every seat is drained or cooling and no subscription rung can serve, the request goes to api.anthropic.com on the Messages path as a plain API request on the key in DARIO_CREDITS_API_KEY (env only, never a flag), the client's own body with the model swapped, x-api-key, no Claude Code template and no OAuth beta, both wire shapes. The response says x-dario-pool-fallback: credits:<model>; /analytics, /metrics and the dashboard file it under a new bucket, credits, next to extra usage and API key; the ledger counts it as metered, as spent; and the overage guard does not halt on it. A subscription rung still goes first; between this rung and an openai-compat backend the chain's own order decides, and a tier map takes it too (opus:credits:claude-opus-5). Opt-in twice: without the key the entry is inert, the startup line says so and dario doctor says so in its Failover line. Nothing changes for a chain that names no such entry.
  • A dashboard at /analytics/ui. One page served by the proxy, nothing loaded from outside it: the seats with their headroom and reset timers, who paid for the last hour, the live request tail, the timing split, spend per model and per consumer with a range switch, keys and their daily budgets, and the overage halt with a Resume button. It reads what the TUI reads (/analytics, /accounts, /codex, /health, /analytics/ledger, /admin/keys, /analytics/stream) with the analytics token or an API key, in light or dark, on a phone or a wall display, and every chart has a table view. The seats panel needs an API key, since /accounts refuses the read-only token. /analytics/ledger now also carries priced, every row as USD at that day's rate, so the page (or anything else charting the table) needs no price list of its own. /analytics carries two more fields for it: window.perFiveMinutes, the hour in twelve bins, so the sparkline is the whole hour and not the stream's 50-record replay; and overage, the halt state, so a viewer with the read-only token who missed a resume event is not left on a stale halt. predictions gains totalTokenBurnRate, every token kind with cache reads and writes, beside tokenBurnRate, which has always been input and output only; /metrics gains dario_burn_total_tokens_per_minute the same way, and the burn tile says which of the two it shows. /analytics/view and /analytics/donuts.svg are unchanged.
  • Releases cut by a bot are marked pre-release. A bot bump (the maxTested range, the template label, a template rebake) still publishes to npm and GHCR as latest, and its notes list everything that shipped in it, but on GitHub it no longer takes the Latest badge: that stays on the newest release a person cut, as does anything that reads releases/latest. The maxTested bump now also carries the template label refresh for the same Claude Code version, so one release tracks a version where two did before.
  • A landing page at https://askalf.github.io/dario/. The Pages site that carried only the wire-drift feed now opens on a page: what dario is, the 60-second start, the dashboard, why people pick it, the routing table, the risk answer, the trust facts and the docs. It ships from the same job as the feed (drift-feed.yml, since a Pages deploy replaces the whole site), loads nothing from a third party, and test/site.mjs checks that every link on it resolves to what that job ships. The README shows the dashboard; scripts/readme/dashboard.mjs renders the two screenshots from the shipped page. Under /tools/, one page per tool (Claude Code, Cursor, Aider, Cline, Codex CLI, the SDKs and the rest), generated from docs/tools.md by scripts/site-tools.mjs when the site is built, so the setup for a tool lives in one place; test/site-tools.mjs checks every page and every link on it.
  • The README and the landing page lead with the order of spending and the receipt. Since October 2026 a Max plan includes monthly API credits spent through a Console key, so "every other tool bills you again" was no longer the whole story. The hero now says what dario does with every request: seats with headroom first, then the fallback chain you configure (the other plan on a 429, a metered backend last), and a ledger of who paid for what. A FAQ entry covers the credits with Anthropic's own numbers; the package description and the who-its-for doc follow.

Built + tested + npm-published inline by cc-drift-auto-release.yml on this run — tokenless via OIDC trusted publishing, provenance-attested. See the workflow log for the publish output.