https://github.com/crmne/ruby_llm
Anthropicプロバイダで複数の `:system` メッセージを渡すたびに出力されていた誤った警告ログを削除しました。APIのペイロード生成ロジック自体は正しく動作しており、警告のみが実態と乖離していたため、最小限の削除で修正しています。あわせて `build_system_content` の直接ユニットテストが6ケース追加され、正しい動作が明文化されました。
ruby_llmのコアgemが`Zeitwerk::Loader.eager_load_all`実行時にActiveRecord統合コードを誤ってロードしてしまうバグを修正。`lib/ruby_llm/active_record`ディレクトリをZeitwerkのignore対象に追加し、ロード責任をRailtieの`ActiveSupport.on_load :active_record`フックに明示的に委譲することで、スタンドアロン環境とRails環境のロード境界を明確にしました。
Railsの `has_rich_text` を使ったメッセージモデルで `extract_content` を呼び出した際に、`ActionText::RichText` オブジェクトがそのまま文字列化されHTMLタグがLLMに送信される問題を修正しました。`respond_to?(:to_plain_text)` によるダックタイピングで平文を抽出し、Action Textを使わない既存アプリケーションへの後方互換性を維持しながら対応しています。
`cf61b719` で導入された `save_to_database` メソッドが、`refresh!` メソッド内に残っていた同一のデータベース保存ロジックを置き換えていなかった問題を修正。9行削除・1行追加の小さな変更で、保存ロジックを `save_to_database` に一本化し、コードの保守性を向上させました。
`with:` パラメータに `ActiveStorage::Blob` を渡した際、`RubyLLM::Attachment` へのラッピングにより型情報が失われ、意図しない再アップロードが発生していたバグを修正。`convert_to_active_storage_format` に ActiveStorage オブジェクトの検出ロジックを追加し、既存の Blob をそのまま再利用できるようになりました。
`Agent.find`でチャット履歴を再ロードした際、クラスレベルの`assume_model_exists: true`がActiveRecordロード後にリセットされ`ModelNotFoundError`が発生するバグを修正。新設の`apply_assume_model_exists`メソッドで`find`・`sync_instructions!`・`llm_chat_for`の各パスにフラグを統一的に伝播するよう変更された。