Skip to content

v0.25.8

Choose a tag to compare

@yuanhao yuanhao released this 18 Oct 22:14
· 70 commits to main since this release
eddf698

Additive: new presets and fixes; no API removed. The skill notes the yoagent-rutis 0.5–0.6 releases.

  • Eleven new model presets, all priced (after prices::enable_bundled()), with each model's real context window and output limit — the generic constructors assume conservative limits (often 128K context and 4,096 output tokens), so ModelConfig::xai("grok-4.7", ..) budgeted for a 131K window and stopped replies at 4K (#332 asked for gpt-6.1-sol):
    claude_sonnet_5_5(), claude_haiku_5_5() (adaptive thinking; Haiku 5.5 bills a prompt over 100,000 tokens at its second rate), gpt_6_1_sol() (Codex's default; Responses API, 272K tier), gemini_4_argon(), gemini_3_8_flash(), grok_4_7() (200K tier), mistral_large_4(), glm_5_3(), glm_5_3_flash(), qwen_3_8_max(), qwen_3_8_flash(). Google, xAI, Mistral, Z.ai and Qwen models were never priced before. Each rate was read from the vendor's own pricing page on 2026-10-18 (source / verified in prices.json) and cross-checked by the price audit.
    Promotions: gemini_4_argon (introductory through 2026-11-30), gemini_3_8_flash (through 2026-12-31) and mistral_large_4 (launch sale to about 2026-10-20) carry the regular rate, so their costs read up to twice the bill until the promotion ends — an upper bound, like DeepSeek's peak rate. The price audit compares them as twice models.dev's promotional rate and fails once models.dev lists the regular one.
  • Gemini: thinking tokens now count as output. Google bills them as output but reports them apart (thoughtsTokenCount); Usage::output (Gemini and Vertex) held only the visible tokens, so the cost of a thinking Gemini model was undercounted wherever a price was set. As with the other providers, the context tracker and max_total_tokens now count them too, so a Gemini turn that thinks a lot reaches compaction and the token limit sooner.
  • OpenAI-compatible providers: reasoning tokens reported beside completion_tokens count as output. When total_tokens equals prompt_tokens + completion_tokens + completion_tokens_details.reasoning_tokens, the reasoning tokens are added to output; a provider that counts them inside completion_tokens (OpenAI) is unchanged. Protects Grok 4.7's cost, whose reasoning is always on.
  • Promotional prices under live pricing: prices::enable_live* installs models.dev's current rate over the snapshot, which for the three promotional models is the promotional one — the true bill today, not an upper bound. A live table or cache fetched before a promotion ends keeps that rate until refetched.
  • read_file, write_file and edit_file refuse what is not a regular file (#341): a FIFO, a character or block device, a socket or a directory, after following symlinks, is an error naming what it is (so write_file to /dev/null or /dev/tty is refused too). A FIFO reports a length of 0, so it passed read_file's size check and the read blocked until something wrote to it; /dev/zero was read without end.
  • bash no longer waits for a background job that holds its output (#342). The call waited for both output pipes to close, and a job started with & inherits them, so sleep 300 & echo hi held the call until the timeout, which then reported the command as timed out and killed the job. The call now ends when bash exits: the output is read for one more second, then a job still holding the pipes is left running — its later output is read and discarded in the background, so it is not killed by a closed pipe — and the result says so (a NOTE: line, details.output_still_open).
  • DeepSeek: the deepseek-flash docs name its current snapshot (DeepSeek-V4.1-Flash-1017, which takes images — verified live); the legacy deepseek-v4-flash-vision-exp is priced like deepseek-v4-flash (DeepSeek serves and bills it as Flash).