Skip to content

0.20.0

Choose a tag to compare

@cliftonc cliftonc released this 13 Oct 03:40
· 44 commits to main since this release
0.20.0
d8a8228

The AI adapters now follow each model's own rules, so Claude 5.x and GPT-6 models work. The openai provider moves to the Responses API, the defaults become claude-haiku-5-5 and gpt-6-luna, and stale prices are corrected.

  • New @rocketflare/shared/ai/models: modelTraits(provider, model) gives the thinking mode, what "off" sends, and whether the model takes a temperature or a forced tool_choice. The adapters, POST /api/ai/config and the settings form all read it.
  • Anthropic thinking per model:
    • Claude 4.5 and earlier keep enabled + budget.
    • 4.6+ send adaptive, and a stored budget is ignored.
    • "Off" sends disabled, between_tools (Sonnet 5.5), or no field on Opus 5.5 and Fable, which always think.
    • Before this, a 5.5 model answered every call with a 400.
  • Anthropic: a temperature is dropped where the model refuses one (4.7+, or any model while it thinks). A forced tool on Opus/Sonnet 5.5 or Fable 5.1 becomes a prompt instruction plus tool_choice: auto. max_tokens is floored at ADAPTIVE_THINKING_MIN_MAX_TOKENS (4096) while a model thinks.
  • First-party openai now calls /v1/responses with store: false, because Chat Completions cannot call tools on GPT-6 Astra or 6.1 Sol, or on Luna while it reasons. openai_compatible stays on Chat Completions.
  • openai configs now have a thinking switch. Off sends the lowest reasoning.effort the model takes (none, or low on Astra / 6.1 Sol / GPT-5.0–5.5 / o-series). On sends the model's default.
  • Reasoning blocks:
    • Reasoning (Claude thinking blocks, OpenAI reasoning items) rides a tool loop as an opaque ContentBlock of type: 'reasoning' and is sent back unmodified to the provider that produced it.
    • Checkpoints keep it. Chat history never stores it.
  • Each adapter recovers once from a refusal the traits misjudged, then remembers it:
    • a refused thinking value, sampling value, forced tool or effort;
    • a replayed reasoning block whose signature is refused, which is stripped for that one call.
  • Defaults and suggested models:
    • DEFAULT_MODELS.anthropic is claude-haiku-5-5, which also means the platform ANTHROPIC_API_KEY tier now answers with it.
    • The openai chat default is gpt-6-luna.
    • Suggestions are Haiku/Sonnet/Opus 5.5 and Fable 5.1, and Luna / 5.6 Luna / 6.1 Sol / Astra.
    • claude-opus-4-1 (retired on the Claude API) is gone from the list.
  • Pricing (PRICES_UPDATED 2026-10-13):
    • Opus 4.5–4.8 dropped from $15/$75 to $5/$25. They had been priced 3× too high.
    • Every Claude 5.x model, GPT-6, GPT-5.x and their -pro variants now have their own entries.
    • Haiku 5.5 uses its ≤ 100k-token rate.
  • Why: docs/CONCEPTS.md §9, "The request body is per MODEL".

Breaking: the platform ANTHROPIC_API_KEY tier now answers with claude-haiku-5-5, and an openai config whose base URL is a proxy without /v1/responses must become openai_compatible — see the porting note.

Porting note: docs/upgrades/0.20.0.md — pnpm kit:upgrade or /rf-upgrade in a copy.

Full changelog: 0.19.0...0.20.0