$ the-wire · showcase
Bulk ALTER TABLE for constraints, Ractor-safe importmaps
By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology
Rails' migration internals move toward batching constraint DDL, ActionController::Live loses a cross-thread connection stack race, and importmap-rails learns to build its map inside a Ractor.
Combine constraint operations into bulk `ALTER TABLE` rails/rails
kamipo extends #58264 by giving AlterTable methods that match the CommandRecorder signature minus table_name, so option normalization and foreign_key_for! / check_constraint lookups happen inside AlterTable rather than in the caller. The payoff lands in bulk_change_table, which now folds constraint operations into a single ALTER TABLE instead of dispatching them one at a time.
Don't modify a connected_to stack shared with another thread rails/rails
ActiveSupport::IsolatedExecutionState.share_with copies the execution state hash but not the values inside it, so ActionController::Live request and streaming threads were pushing to and popping from the same connected_to stack array. When the request thread exits a connected_to block while the streaming thread is still running, that shared array is mutated out from under it; the fix stops the ...
Ensure Importmap::Map works in a Ractor rails/importmap-rails
Importmap::Map cached its generated map lazily on first request, which fails for an unfrozen Hash created on the main Ractor. Hartley McGuire switched that cache to Ractor local storage (provided by Active Support) where available, leaving a Ractor-safe data structure or boot-time precomputation as future options; the resolver/cache_key API makes static precomputation awkward.
fix: normalize metrics across runs within each task rails/lemans
Lemans assumed every task ran the same number of times per model, which stopped holding at Stage 3 where stable tasks get fewer runs because extra ones are expensive and low-signal. Metrics are now normalized within each task before being combined, so report aggregates no longer over-weight tasks that ran more often.
Merge pull request #59010 from hachi8833/fix_desc_of_default_scope_when_building_records rails/rails
Quiet day elsewhere: kamipo merged a docs fix for the description of default_scope when building records, byroot removed the 8.1 guides section on schema.rb column sorting, and the website took TWIR 09.10.2026.