統合テストスクリプトがリポジトリのGemfile/Gemfile.lockを書き換えていた問題を修正。スクリプトが自身の配置場所からルートを解決し、tmp/integration-user-{install,upgrade}/配下で独立した作業ディレクトリを使用するよう変更されました。Gemfileをゼロから生成する方式と絶対パス指定の採用により、テスト実行の冪等性と再現性が向上しています。
Devise 5.0.4がリリースされ、セッションタイムアウト時の非GETリクエストで`Referer`ヘッダーを検証せずリダイレクト先として使用していたオープンリダイレクト脆弱性(GHSA-jp94-3292-c3xv)が修正されました。`lib/devise/version.rb`のバージョンを`5.0.3`から`5.0.4`へ更新するリリースコミットです。
factory_bot v6.6.0 がリリースされました。`factory_bot.before_run_factory` インストルメンテーションイベントの追加、リンティングトランザクションによる ActiveRecord ライフサイクル干渉の修正、`DefinitionProxy#method_missing` のブロック転送修正が主な変更点です。あわせてリリースプロセスの自動化と gem プッシュへの MFA 必須化も実施されています。
`Propshaft::Server`が配信するCSSおよびHTMLアセットのContent-Typeヘッダーに`; charset=utf-8`が付与されるようになりました。Chromeの文字コード判定バグにより発生していた非ASCII文字(en-dashなど)の文字化けを防ぐための修正で、`Propshaft::Asset`に`content_type_with_charset`メソッドが追加されています。`text/javascript`(RFC 9239準拠)や`text/xml`(エンコーディング宣言との競合回避)は対象外とする精密な設計が採用されています。
別ターミナルから `once teardown` を実行した際にTUIがパニックしてクラッシュするバグを修正しました。`scrollToSelection` 関数に `len(m.panels) == 0` の早期リターンガードを4行追加し、teardown後の空パネル状態でのインデックスアウトオブレンジを防ぎます。リグレッションテストも合わせて追加されています。
Kamalのデプロイ操作に対してOpenTelemetry(OTLP HTTP)とタイムスタンプ付きファイルへのログ出力機能が追加されました。`with_lock` を置き換える `modify` メソッドが統合ポイントとなり、CLIメッセージとSSHKitのリモートコマンド出力をキャプチャして BroadcastLogger 経由で複数バックエンドに配信します。`kamal.start`/`kamal.complete`/`kamal.failed` のライフサイクルイベントをOTelセマンティクス属性付きで送信し、ロガーの失敗がデプロイをブロックしないベストエフォート設計が採用されています。
Canonical が Ubuntu 24.04 以降の Vagrant イメージ提供を終了したことを受け、rails-dev-box のベースボックスを `ubuntu/mantic64` から `bento/ubuntu-24.04` に切り替えた。Ubuntu 24.04 の apt で提供される Ruby が 3.2 系にとどまるため、Rails main ブランチの要件を満たす Ruby 4.x を mise 経由でインストールする方式に変更。また、MySQL 接続用環境変数の設定先を `~/.bashrc` から `/etc/environment` に移行し、Google Chrome の自動プロビジョニングも追加された。
GitHub Security Advisory(GHSA)識別子がコントリビューター名として誤検知される問題を修正。既存のCVEパターンと同様に `/\AGHSA-[\w-]+\z/i` を false positives リストに追加し、セキュリティアドバイザリIDがクレジットページに表示されないようにしました。
Solid Queueのスケジューラーが動的スケジュール機能に対応しました。`SolidQueue.schedule_recurring_task` / `unschedule_recurring_task` APIを通じて、静的設定ファイルを変更せずに実行時でRecurringTaskを追加・削除できます。`dynamic_tasks_enabled: true` のオプトイン設計により、既存の静的スケジュール構成への影響はありません。
`@rails/request.js` の `FetchRequest` クラスに `priority` オプションのサポートが追加されました。`priority: 'high'` や `priority: 'low'` を渡すだけでブラウザのFetch APIにリクエストの優先度ヒントを渡せるようになります。デフォルト値は設定せず `undefined` を透過させることで、ブラウザ固有のデフォルト動作を尊重する設計が採用されています。
OmniAuthがBundler 2.0以降の全バージョンとRuby 4.0に対応。gemspecのBundler依存関係を `~> 2.0` から `>= 2.0` に緩和し、CIマトリクスにRuby 4.0を追加しました。
Solid CacheのCI環境において、Rubocopの実行環境をRuby 3.4.1からRuby 4.0に更新。最新のRubyバージョンでのコード品質チェックが可能になります。