Skip to content

feat: register Claude Fable 5.1 model in registry - #27

Merged
samuelboland merged 4 commits into
mainfrom
dux-fable-5-1-model-registration
Sep 2, 2026
Merged

feat: register Claude Fable 5.1 model in registry#27
samuelboland merged 4 commits into
mainfrom
dux-fable-5-1-model-registration

Conversation

@staging-supernova-dx-appf-io

@staging-supernova-dx-appf-io staging-supernova-dx-appf-io Bot commented Sep 2, 2026

Copy link
Copy Markdown

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 adds claude-fable-5-1 entries across all providers/regions that claude-fable-5 already 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:

  • Fixed 14 RuboCop Style/DirectiveScope offenses by converting single-line # rubocop:disable comments to # rubocop:disable-next across several lib and spec files (comment-only, no logic change).
  • Fixed a JRuby CI failure caused by the archspec dev gem lacking a JRuby-compatible native extension, by adding platform: :mri to its Gemfile line (mirroring the existing async gem'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

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Performance improvement

Scope check

  • I read the Contributing Guide
  • This aligns with RubyLLM's focus on LLM communication
  • This isn't application-specific logic that belongs in user code
  • This benefits most users, not just my specific use case

Required for new features

  • I opened an issue before writing code and received maintainer approval
  • Linked issue: #___

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

  • I ran overcommit --install and all hooks pass
  • I tested my changes thoroughly
    • For provider changes: Re-recorded VCR cassettes with bundle exec rake vcr:record[provider_name]
    • All tests pass: bundle exec rspec
  • I updated documentation if needed
  • I didn't modify auto-generated files manually (models.json, aliases.json)

Note: models.json and aliases.json were 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 of models_spec.rb were run — not the full bundle exec rspec suite — per explicit instruction to avoid running the full suite. RuboCop was run on changed files after autocorrect, with zero offenses remaining.

AI-generated code

  • I used AI tools to help write this code
  • I have reviewed and understand all generated code (required if above is checked)

This entire change was produced by an AI coding session.

API changes

  • Breaking change
  • New public methods/classes
  • Changed method signatures
  • No 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

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>
@staging-supernova-dx-appf-io

Copy link
Copy Markdown
Author

🤖 Supernova Code Review — View trace

♻️ Re-run this automation

— via automation "Code Review Sonnet 5 Medium" (run), installed by Sam Boland (sam.boland@appfolio.com)

@staging-supernova-dx-appf-io staging-supernova-dx-appf-io Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

♻️ Re-run this automation

— via automation "Code Review Sonnet 5 Medium" (run), installed by Sam Boland (sam.boland@appfolio.com)

appf-supernova and others added 3 commits September 2, 2026 01:04
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>
@samuelboland
samuelboland merged commit e5e3ff5 into main Sep 2, 2026
24 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants