$ the-wire · showcase
Active Record attribute reads get faster, with Ractor safety restored
By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology
Aaron Patterson's read-only attribute set lands in Active Record, cutting the ruby-bench benchmark from 199ms while keeping the builder cache out; Rails also trims per-call i18n allocations and the agents benchmark adds two new model runs.
Add read-only attributes and use it instead of building a cache rails/rails
tenderlove's rebase of the earlier read-only attribute set work finally removes the need for the builder cache that was dropped for Ractor safety, and the Active Record benchmark in ruby-bench drops from 199ms average over the last 35 non-warmup iterations. If you share attribute sets across threads, this is the change that restores the performance the cache removal cost.
Add a new private reader method, refactor alias resolution rails/rails
A new private reader assumes the attribute name is a string and delegates to a fetch_value! method that raises when an attribute is not defined, so the common case stops passing blocks around. Missing attributes are the uncommon case, and the change is aimed at interpreter and ZJIT performance in ruby-bench; treat the reader as internal only.
Translate distance_of_time_in_words without an OptionMerger rails/rails
distance_of_time_in_words no longer wraps translations in I18n.with_options, which allocated an OptionMerger and merged shared options into a fresh Hash on every lookup. amatsuda's replacement passes locale and scope straight to I18n.t through a small private helper, which matters where time_ago_in_words runs once per row in list views.
Agents on Rails: Add Muse Wonder and Gemini 4 Argon to benchmark rails/website
The Agents on Rails benchmark now includes Muse Wonder and Gemini 4 Argon, with the accompanying ai-evals runs landing in parallel. Muse Spark and Muse Wonder costs were adjusted alongside the addition.
chore: minor docs and verifier fixes rails/ai-evals
Quiet housekeeping elsewhere: ms- tasks verifier changes forced affected runs to be discarded and re-run with fixes, and README and methodology docs got cleaned up for inconsistencies.