DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

crmne/ruby_llm

https://github.com/crmne/ruby_llm

Ruby 4.0+ での log_regexp_timeout= 再定義警告を抑制

Ruby 4.0+ での `log_regexp_timeout=` 再定義警告を `remove_method` で抑制し、API 互換性を保ったままクリーンな出力を実現した変更です。

2026年07月04日 gpt-oss-120b

Bedrock Converse の input_tokens がキャッシュトークンを二重減算していたバグを修正

Bedrock Converse の `input_tokens` がキャッシュトークンを二重に減算していたバグを修正し、AWS のトークン仕様に合わせて正確なコスト計算とメトリクス取得を実現しました。

2026年07月03日 gpt-oss-120b

StreamAccumulator の model_id ラッチバグを修正し、正しいコスト計算を実現

StreamAccumulator が空文字列 model_id に latch するバグを空文字列判定で修正し、Azure OpenAI のストリーミングで正しいコスト計算が行えるようになりました。

2026年07月03日 gpt-oss-120b

Message associations eager‑loaded in to_llm to eliminate N+1 queries

`ChatMethods#to_llm` と `cleanup_orphaned_tool_results` がメッセージ関連を事前にプリロードし、N+1 クエリと StrictLoadingViolationError を回避するよう改善されました。

2026年07月03日 gpt-oss-120b

RubyLLM::Prompt クラスの抽出で Agent 外からテンプレートが利用可能に

Prompt クラスを抽出し、Agent を継承せずに `RubyLLM::Prompt.render` でテンプレートを描画できるようにした新機能と設計判断を解説します。

2026年07月03日 gpt-oss-120b

DeepSeekマルチターンで欠落した reasoning_content を常に送信するよう修正

DeepSeek の思考対応モデルが必須とする `reasoning_content` を常に送出するよう、DeepSeek 用プロバイダーで `format_thinking` をオーバーライドし、マルチターンリクエストの失敗を防止した修正です。

2026年06月23日 gpt-oss-120b

Action Text 埋め込み添付ファイルの抽出を RubyLLM に対応

Action Text の埋め込み添付ファイルを RubyLLM::Content に抽出できるようヘルパーと抽出ロジックを拡張し、テスト用マイグレーションを追加した変更です。

2026年06月23日 gpt-oss-120b

install_generator_spec がデフォルト変更に追従し CI が復活

use_new_acts_as のデフォルト変更に伴い、インストールジェネレータテストが旧設定行を期待して赤CIとなっていたが、テストを `not_to include` に修正し CI が復活した。

2026年06月10日 gpt-oss-120b

Anthropicの"prompt is too long"エラーをContextLengthExceededErrorへマッピング

Anthropic の 'prompt is too long' エラーを正規表現で検知し、RubyLLM の ContextLengthExceededError に統一。テスト追加で振る舞いを保証し、後方互換性を維持した実装変更です。

2026年06月09日 gpt-oss-120b

Chatモデル作成時にModalitiesとPricingをハッシュへシリアライズ

Chatモデル作成時に `modalities` と `pricing` をハッシュへ変換し永続化することで、JSONB カラムの構造をレジストリと統一し、価格計算の不具合を解消した。

2026年06月08日 gpt-oss-120b

Anthropicプロバイダの不要な「単一システムメッセージ」警告を削除

Anthropicプロバイダで複数の `:system` メッセージを渡すたびに出力されていた誤った警告ログを削除しました。APIのペイロード生成ロジック自体は正しく動作しており、警告のみが実態と乖離していたため、最小限の削除で修正しています。あわせて `build_system_content` の直接ユニットテストが6ケース追加され、正しい動作が明文化されました。

2026年05月12日 Claude Sonnet 4.6

ZeitwerkのEager LoadからActiveRecord統合を切り離す

ruby_llmのコアgemが`Zeitwerk::Loader.eager_load_all`実行時にActiveRecord統合コードを誤ってロードしてしまうバグを修正。`lib/ruby_llm/active_record`ディレクトリをZeitwerkのignore対象に追加し、ロード責任をRailtieの`ActiveSupport.on_load :active_record`フックに明示的に委譲することで、スタンドアロン環境とRails環境のロード境界を明確にしました。

2026年05月07日 Claude Sonnet 4.6

Action TextのRichTextオブジェクトをLLMメッセージに変換する際のHTMLタグ混入を修正

Railsの `has_rich_text` を使ったメッセージモデルで `extract_content` を呼び出した際に、`ActionText::RichText` オブジェクトがそのまま文字列化されHTMLタグがLLMに送信される問題を修正しました。`respond_to?(:to_plain_text)` によるダックタイピングで平文を抽出し、Action Textを使わない既存アプリケーションへの後方互換性を維持しながら対応しています。

2026年05月06日 Claude Sonnet 4.6

`refresh!` メソッドの重複実装を `save_to_database` 呼び出しに統一

`cf61b719` で導入された `save_to_database` メソッドが、`refresh!` メソッド内に残っていた同一のデータベース保存ロジックを置き換えていなかった問題を修正。9行削除・1行追加の小さな変更で、保存ロジックを `save_to_database` に一本化し、コードの保守性を向上させました。

2026年04月16日 Claude Sonnet 4.6

ActiveStorage::Blob の再アップロードを防ぐ修正

`with:` パラメータに `ActiveStorage::Blob` を渡した際、`RubyLLM::Attachment` へのラッピングにより型情報が失われ、意図しない再アップロードが発生していたバグを修正。`convert_to_active_storage_format` に ActiveStorage オブジェクトの検出ロジックを追加し、既存の Blob をそのまま再利用できるようになりました。

2026年03月17日 Claude Sonnet 4.6

`Agent.find`で`assume_model_exists`が伝播しないバグを修正

`Agent.find`でチャット履歴を再ロードした際、クラスレベルの`assume_model_exists: true`がActiveRecordロード後にリセットされ`ModelNotFoundError`が発生するバグを修正。新設の`apply_assume_model_exists`メソッドで`find`・`sync_instructions!`・`llm_chat_for`の各パスにフラグを統一的に伝播するよう変更された。

2026年03月17日 Claude Sonnet 4.6

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ