Skip to content

v6.20.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 02:03
· 23 commits to master since this release
55892e8

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

  • dario usage says how much of the output was thinking, and what it cost. On Claude traffic, thinking tokens are now read from the usage block upstream returns (output_tokens_details.thinking_tokens, streaming and buffered alike) instead of estimated from the text of thinking blocks, which current models return empty by default, so the estimate read zero exactly where thinking was largest. The ledger keeps the count per day, model and consumer (older rows read as 0; the file format is unchanged), the usage block gains a Thinking: line with the share of output tokens and the dollars at output rates, --by-key shows each key's share, and /analytics carries thinkingCost and tokens.thinking in lifetime. Measured on one desk's traffic before this change: a 200-word status update written by Opus 5.5 at its default effort was 1,136 output tokens, 939 of them thinking; the same request at output_config.effort: low was 243, so the share is the number to look at before reaching for a cheaper model.
  • Named keys carry a default effort. dario keys create <name> --effort=low, or dario keys effort <name> low on an existing key (--clear removes it; POST /admin/keys takes effort, POST /admin/keys/<name>/effort sets or clears it), sets the effort the key's requests run at when they name none themselves. Resolution per request: the model-name suffix, then the --effort / DARIO_EFFORT pin, then the client's own field (output_config.effort, reasoning_effort, reasoning.effort), then the key's default, then the high fallback; so a client that chose is never overruled by a default and the operator's pin still wins, as before. Claude path: output_config.effort; Codex path: reasoning.effort, on the translated route and on the Responses passthrough Codex CLI uses (added to the client's reasoning object, the rest kept). On Codex a client's thinking.budget_tokens counts as its choice, and the proxy pin does not apply there (it never has). Under a client pin the key's default still fills in. A model-name suffix on a Responses request to a Codex model now reaches the wire as reasoning.effort; the passthrough used to drop it. dario keys list gains an EFFORT column; GET /admin/keys and dario keys --json carry effort; an unknown level on disk is dropped like a malformed cap.
  • Public text no longer names the private host and peers dario runs beside. Workflow comments, the issue and warning text the watch workflows publish, docs, code comments and the --json help line describe hosts, consumers and peer services generically; the help line that named one Discord bot now says "status bots". No behavior changes.
  • --system-prompt partial removes the code-comment rule from the Fable prompt. It was left in, so Fable requests in partial mode went out unchanged. The rule is swapped for the same "be thorough" instruction partial puts in the other prompts. The base prompt (Claude Code 2.1.316) and the Opus 5 prompt carry no constraint partial targets, so partial still sends those unchanged.
  • --system-prompt partial removes whole sections from the Sonnet 5 prompt. It removed only the # Tone and style and # Text output headings and left the text under them, and some Doing-tasks bullets it removed took the next bullet with them, such as "Prefer editing existing files to creating new ones." It now removes both sections in full and only the targeted bullets. aggressive removes the whole # Executing actions with care section the same way.

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.