feat(shared,host-service): add Claude Fable 5.1 to the model pickers and pricing table

Merged
AV
2mo ago
+88-14

Summary

  • Claude Fable 5.1 (claude-fable-5-1) is now selectable in the workspace-create picker for the claude preset (Pinned releases), in the opencode and OMP pickers, and in the Superset chat catalog. The claude fable alias already tracked it.
  • The usage pricing table learns Fable 5.1's economics: the same $10/$50 per MTok as Fable 5, but cache reads at $0.25/MTok (0.025x input, where every other model is 0.1x). A per-model cacheReadPerM override carries that; Mythos 5.1 shares it.
  • Two rows checked against the vendor pages while re-dating the table were corrected: Sonnet 5 is $2/$10 (the $3/$15 increase scheduled for 2026-09-01 was cancelled) and GPT-5.6 Sol is on $4/$20 promotional pricing through at least 2026-11-21.

Why / Context

The model catalogs in packages/shared/src/agent-models.ts are hand-maintained, so Fable 5.1 was not offered anywhere. Usage cost estimates matched claude-fable-5-1 transcripts to the claude-fable-5 prefix, which is right on tokens but 4x too high on cache reads, and long agentic sessions are dominated by cache reads.

How It Works

  • AGENT_MODEL_SUPPORT and SUPERSET_CHAT_MODELS gain the new ids. The desktop picker, host-service's validateAgentModelSelection, and buildAgentModelArgs all derive from the catalog, so nothing else changes.
  • ModelRate.cacheReadPerM is an optional absolute $/MTok cache-read price. costUsd and cacheSavingsUsd resolve it through one helper that falls back to inputPerM × CACHE_READ_MULTIPLIER. Only the Fable 5.1 and Mythos 5.1 rows set it.
  • Ids were verified before being added: claude-fable-5-1 is in the Claude Code 2.1.257 binary, and anthropic/claude-fable-5-1 is in models.dev (opencode) and in the catalog bundled with OMP 18.1.2.

Manual QA Checklist

  • matchModelRate resolves claude-fable-5-1, claude-mythos-5-1, and anthropic/claude-fable-5-1 to the $0.25/MTok cache-read rate, while Fable 5 and Mythos 5 stay at $1/MTok (unit tests)
  • Fable 5.1 sits under "Pinned releases" in the claude picker, next to Fable 5 (catalog group pinned by test)
  • Sonnet 5 and GPT-5.6 Sol rates re-read from the Anthropic and OpenAI pricing pages on 2026-09-02
  • Not exercised in the running desktop app: launching a workspace with each new id. The picker is data-driven and covered by tests, but the live launch path was not run.

Testing

  • bun run lint (the only diagnostic is a local, git-excluded .github/hooks/superset-notify.json, which is not in this PR)
  • bun run typecheck
  • bun test packages/shared/src/agent-models.test.ts packages/host-service/src/trpc/router/usage/history/ (95 tests)
  • bun test packages/host-service/src/trpc/router/agents/agents.test.ts apps/desktop/src/renderer/components/AgentModelSelect/groupModelOptions.test.ts

Design Decisions

  • Absolute cacheReadPerM rather than a multiplier: Anthropic publishes the cache-read price as $0.25/MTok and longContext is already an absolute override, so the table stays in the vendor's units.
  • Explicit claude-mythos-5-1 row: the longest-prefix matcher would otherwise price it off the bare claude-mythos row and report the match as exact.

Known Limitations

  • gpt-4.1, gpt-4o, and the Grok rows still use the 0.1x cache-read default although their vendors bill 0.25x to 0.5x. Not changed here.
  • The chat catalog entry is inert today: chat.getModels has no in-repo consumer.
  • The prefix matcher reports prefix-extended ids (a future claude-fable-5-2, say) as exact matches. A test tying picker ids to pricing keys would surface that; deferred.

Follow-ups

  • Add Fable 5.1 to the Copilot and cursor-agent pickers once their ids are confirmed against a logged-in CLI. Both list models server-side and reject unknown ids, so they were left out rather than guessed.
  • The Slack integration's model picker never offered Fable and is unchanged.

https://claude.ai/code/session_01UwVi8ncK3E4L8LNGPT7t6r


Summary by cubic

Adds Claude Fable 5.1 to the model pickers and usage pricing, and corrects two outdated pricing rows.

Pricing

  • Fable 5.1 and Mythos 5.1 cache reads are $0.25/MTok via a new cacheReadPerM override.
  • Sonnet 5 drops to $2/$10 (the scheduled increase was cancelled) and GPT-5.6 Sol to $4/$20.

Model pickers

  • Adds claude-fable-5-1 to the claude preset, opencode, OMP, and Superset chat catalog.
  • Copilot and cursor-agent pickers are left unchanged; their ids are confirmed server-side.

Summary by CodeRabbit

  • New Features

    • Added Anthropic Claude Fable 5.1 to supported model catalogs and model selection options.
    • Added support for Fable 5.1 and Mythos 5.1 cache-read pricing.
  • Pricing Updates

    • Updated Sonnet 5 pricing to $2 per million input tokens and $15 per million output tokens.
    • Updated GPT-5.6 and GPT-5.6 Sol pricing to $4/$20 per million tokens.
    • Added model-specific cache-read pricing, including $0.25 per million tokens for Fable 5.1 and Mythos 5.1.
    • Improved cached-token cost and savings calculations.