Skip to content

1.9.0: fix CI drift from ruby_llm 2.1.1 and faraday-net_http 3.5.0 - #587

Merged
TonsOfFun merged 2 commits into
mainfrom
fix/ruby-llm-2-1-1
Oct 15, 2026
Merged

TonsOfFun merged 2 commits into
mainfrom
fix/ruby-llm-2-1-1

Conversation

@TonsOfFun

@TonsOfFun TonsOfFun commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Every Ruby CI job now fails two EvalsRubyLLMConversationTest tests, because ruby_llm 2.1.1 was released after main's last green run (247e5bb, 2026-10-08):

ruby_llm-2.1.1/lib/ruby_llm/active_record/model.rb:11: uninitialized constant RubyLLM::ActiveRecord::Record (NameError)

ruby_llm 2.1 added active_record/record.rb (the base class its models inherit from), mcp_credential.rb and provider_file.rb, and its railtie requires them before model. test/evals/support/ruby_llm_conversation_script.rb mirrors the railtie's require list without Rails, so it never loaded record.

Second drift: Faraday 2.0.0 in the ruby_llm 1.x job

faraday-net_http 3.5.0 (2026-10-11) is outside every recent Faraday's faraday-net_http < 3.5. ruby_llm 1.x depends on faraday-net_http directly, so Bundler fell back to Faraday 2.0.0, which registers no :net_http adapter. Result: 4 failures and 34 errors (:net_http is not registered on Faraday::Adapter) in the ruby_llm_1 job on every branch. gemfiles/ruby_llm_1.gemfile now floors Faraday at 2.7, which resolves Faraday 2.14.4 with faraday-net_http 3.4.4.

Change

  • The script now uses the railtie's 2.1 list and order. The three 2.1-only files are required only when the installed release has them, so 2.0.x still loads.
  • Test-only; no library code changes.

Testing (Ruby 3.3.8)

  • gemfiles/ruby_llm_1.gemfile with the floor: test/providers/ruby_llm/{input_requests,protocol,response}_test.rb pass (5, 12 and 22 runs), and so does the conversation eval. Without the floor, the lock resolves Faraday 2.0.0 and these raise the adapter error.
  • gemfiles/ruby_llm_2.gemfile with ruby_llm 2.1.1: test/evals/ruby_llm_conversation_test.rb passes 2/2, 46 assertions. Without the fix, the same 2 tests fail with the NameError above.
  • gemfiles/rails8.gemfile: 2/2 pass.
  • rubocop: no offenses.

This blocks green CI for the 1.9.0 PRs (#584, #586, #585), which hit the same failures. Part of the 1.9.0 set.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh

ruby_llm 2.1.1 added RubyLLM::ActiveRecord::Record, the base class its
models inherit from, plus MCP credential and provider file records, and
its railtie requires them first. The eval script mirrors the railtie's
list without Rails, so on 2.1.1 model.rb failed with an uninitialized
Record and both conversation tests failed on every CI job. The script now
requires the 2.1 files, in the railtie's order, when the release has them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh
faraday-net_http 3.5.0 (2026-10-11) is outside every recent Faraday's
"faraday-net_http < 3.5", and ruby_llm 1.x depends on faraday-net_http
directly, so Bundler fell back to Faraday 2.0.0, which registers no
:net_http adapter: 4 failures and 34 errors in the ruby_llm_1 job on every
branch. The job's gemfile now floors Faraday at 2.7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh
@TonsOfFun TonsOfFun changed the title Load ruby_llm 2.1's new active_record files in the conversation eval 1.9.0: fix CI drift from ruby_llm 2.1.1 and faraday-net_http 3.5.0 Oct 14, 2026
@TonsOfFun
TonsOfFun marked this pull request as ready for review October 14, 2026 21:09
@TonsOfFun
TonsOfFun merged commit c21783d into main Oct 15, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant