159 wires and counting

$ follow Rails

Keep up with Rails in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-10-15
stories 53

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Static routes short-circuit, Active Job handlers work in non-main Ractors

By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology

Rails spent the day on request-path CPU and Ractor isolation: static routes skip pattern matching, unlogged structured events skip construction, and Active Job's rescue_from, retry_on and discard_on now survive ractorize!.

Short-circuit route matching for static paths rails/rails

by amatsuda

Journey::Routes now precomputes enough to identify static paths such as GET /posts from method and path alone, instead of walking the GTG simulator, running the route's pattern regexp and extracting params. amatsuda's motivation is that this cost is mostly CPU and is paid on every request to the many static routes a typical app carries: index, new, nested collections, admin pages, health checks.

Make Active Job's exception handlers work in non-main Ractors rails/rails

by yaroslav-shopify

After ractorize!, a job raising in a non-main Ractor failed with Ractor::IsolationError on rescue_handlers, or on after_discard_procs when nothing handled the error, so rescue_from, retry_on and discard_on simply did not work there. rescue_from now makes its handler procs shareable when ActiveSupport::Ractors.unshareable_proc_action is set, as callbacks already do, and the change extends to con...

Don't build structured events that no subscriber will consume rails/rails

by amatsuda

Every request emits action_controller.request_started and request_completed, and the log subscriber was discarding them when the logger's level was set above theirs, after the controller subscriber had already built the params-filtered payload, the reporter had resolved it into an event hash with tags, context and timestamp, and caller_locations had been captured. Those events are no longer bui...

Remove the unused `left_side` association from the habtm join model rails/rails

by Ryuta Kamizono

has_and_belongs_to_many's generated join model has declared a belongs_to :left_side back to the owner since ad7b5efb55b, but its only reader was middle_options[:source], which had no effect because the middle association is a plain has_many with no :through. kamipo removes the association outright, a follow-up to the earlier removal of left_reflection storage; nothing in an app could have depen...

+ cli: make -r/--require global and support custom backends rails/lemans

by Vladimir Dementyev

lemans shipped 1.5.2, and the CLI work in the same push makes -r/--require a global flag and adds support for custom backends. The README now points at lemans-remote and lemans-viewer, while the Meta Muse fix attaches a prompt_cache_key to each run and reuses it when a failed run is restarted.

Quick answers

What shipped in Rails on October 15, 2026?
Rails spent the day on request-path CPU and Ractor isolation: static routes skip pattern matching, unlogged structured events skip construction, and Active Job's rescue_from, retry_on and discard_on now survive ractorize!. In total, 36 commits and 17 pull requests landed.
Who contributed to Rails on October 15, 2026?
5 developers shipped this update, including Ryuta Kamizono, amatsuda, yaroslav-shopify, baygeldin, and Vladimir Dementyev.
What were the notable Rails updates?
Short-circuit route matching for static paths, Make Active Job's exception handlers work in non-main Ractors, and Don't build structured events that no subscriber will consume.