feat: register Claude Fable 5.1 model in registry - #27
Conversation
Register claude-fable-5-1 for anthropic, vertexai, and the eu/global/us bedrock regional inference profiles, mirroring Fable 5's narrower regional footprint (no au/jp variants). Cache-read pricing is cut ~75% per launch-day AWS/Microsoft coverage; that figure is unverified against Anthropic's own pricing page and flagged as such next to the pinned pricing spec, following the precedent set for GPT-5.6's cache-write pricing gap (87c9156). Co-authored-by: Sam Boland <sam.boland@appfolio.com>
|
🤖 Supernova Code Review — View trace — via automation "Code Review Sonnet 5 Medium" (run), installed by Sam Boland (sam.boland@appfolio.com) |
There was a problem hiding this comment.
Reviewed the diff against the existing claude-fable-5 entries in models.json/aliases.json line-by-line (base anthropic, EU/global/US bedrock, vertexai). All fields mirror the precedent structure exactly, and the cache_read_input_per_million price cut is scaled proportionally and consistently across regions (base 1 → 0.25, EU 1.1 → 0.275, matching the 4x reduction ratio). The new spec file correctly flags the unverified cache-read pricing per repo convention. No actionable bugs, logic errors, or maintainability issues found — no inline comments.
— via automation "Code Review Sonnet 5 Medium" (run), installed by Sam Boland (sam.boland@appfolio.com)
rubocop 1.90.0 (pinned in Gemfile.lock) flags disable/enable pairs wrapping a single statement; autocorrect (-A) to disable-next across the 13 pre-existing files this applies to, unrelated to the Fable 5.1 model registration in this branch but blocking its CI lint check. Co-authored-by: Sam Boland <sam.boland@appfolio.com>
archspec (a dev-group gem unused by any code in this repo) depends on rubydex, which has no jruby-platform prebuilt binary and fails to compile via mkmf under JRuby's toolchain, breaking the jruby-10.0.2.0/rails-7.1 CI job repo-wide. Restrict it to :mri, mirroring the existing 'async', platform: :mri line right below it. Co-authored-by: Sam Boland <sam.boland@appfolio.com>
The jruby-10.0.2.0/rails-7.1 CI job installs from gemfiles/rails_7.1.gemfile, not the root Gemfile — these are separate, committed files generated by `appraisal`. b2aca32 restricted archspec to :mri in the root Gemfile but didn't touch these, so the JRuby job kept resolving the unconstrained archspec -> rubydex dependency and failing the same way. Ran `bundle exec appraisal generate` to propagate the fix to all four. Co-authored-by: Sam Boland <sam.boland@appfolio.com>
What this does
Registers Claude Fable 5.1 (released by Anthropic on 2026-09-01, announced 2026-08-31) in
ruby_llm's model and alias registries, following the same pattern used previously for Claude Opus 5 and Claude Fable 5. This addsclaude-fable-5-1entries across all providers/regions thatclaude-fable-5already has (anthropic, Bedrock eu/global/us, vertexai), with matching modalities/capabilities, context window, max output tokens, and reasoning effort options, plus a corresponding alias entry. Pricing (input/output) is unchanged from Fable 5; cache-write pricing is also unchanged. Cache-read pricing reflects a reported cut sourced from AWS/Microsoft partner blog posts that has not been independently verified against Anthropic's live pricing page — this is deliberately flagged in code comments, following the repo's existing precedent for the GPT-5.6 cache-write pricing gap. A new spec file (spec/ruby_llm/models_fable_5_1_spec.rb) verifies registration, pricing (including the flagged figures), reasoning effort options, alias resolution, and Bedrock regional lookup.Claude Mythos 5.1 (a fewer-safeguards variant released alongside Fable 5.1) is explicitly excluded from this change, mirroring the precedent that only Fable 5 (not Mythos 5) was registered before.
This PR also includes two incidental CI-unblocking fixes needed to get this branch green, unrelated to the original model-registration ask:
Style/DirectiveScopeoffenses by converting single-line# rubocop:disablecomments to# rubocop:disable-nextacross several lib and spec files (comment-only, no logic change).archspecdev gem lacking a JRuby-compatible native extension, by addingplatform: :mrito itsGemfileline (mirroring the existingasyncgem's platform constraint) and regenerating the four Appraisal-generated gemfiles (rails_7.1,7.2,8.0,8.1) to propagate the change.Type of change
Scope check
Required for new features
No prior approved issue was identified for this specific change during this session; flagging per the template's note that PRs for new features without a prior approved issue may be closed.
PRs for new features or enhancements without a prior approved issue will be closed.
Quality check
overcommit --installand all hooks passbundle exec rake vcr:record[provider_name]bundle exec rspecmodels.json,aliases.json)Note:
models.jsonandaliases.jsonwere edited directly and manually as part of this change, which conflicts with the last item above. This mirrors the precedent set by prior Opus 5 / Fable 5 registration commits, where direct manual edits to these files were the established approach. Only the new Fable 5.1 spec, the existing model-registry validation spec, and a targeted run ofmodels_spec.rbwere run — not the fullbundle exec rspecsuite — per explicit instruction to avoid running the full suite. RuboCop was run on changed files after autocorrect, with zero offenses remaining.AI-generated code
This entire change was produced by an AI coding session.
API changes
This is registry data (model/alias JSON) plus a Gemfile/Appraisal-gemfile platform constraint and comment-style RuboCop fixes — no code API changes.
In Supernova
Chat: open