RubyLLM 1.14.1: Leaner Providers + ActiveStorage Fix 🔧🐛
A patch release that slims down provider code, fixes an ActiveStorage blob re-upload issue, and refreshes the model registry.
🏗️ Leaner Provider Model Fallbacks
Provider Capabilities modules no longer carry hundreds of lines of hardcoded pricing, context windows, and feature flags. These values now come from the model registry (models.json), and the Ruby fallback code has been trimmed to only the fields that are genuinely needed at the provider level (e.g. supports_tool_choice?). This removes ~400 net lines of code across Anthropic, OpenAI, Gemini, DeepSeek, and Perplexity, and means the registry is the single source of truth for model metadata.
For you, this means more accurate capabilities and pricing going forward.
🐛 Fix: ActiveStorage::Blob Re-upload
When an ActiveStorage::Blob was passed to ask or create_user_message via with:, it was downloaded and re-uploaded as a new blob. Existing blobs are now detected and reused directly, avoiding unnecessary storage churn. Fixes #665.
📦 Updated Model Registry
The model registry has been refreshed with the latest available models from all providers.
📝 Docs
Fixed a typo in the moderation guide ("Patters" → "Patterns").
Installation
gem "ruby_llm", "1.14.1"Upgrading from 1.14.0
bundle update ruby_llmMerged PRs
- Fix ActiveStorage::Blob re-upload if used in
with:param by @bubiche in #683 - Update moderation.md by @artinboghosian in #703
New Contributors
- @bubiche made their first contribution in #683
- @artinboghosian made their first contribution in #703
Full Changelog: 1.14.0...1.14.1