127 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-09-12
stories 18

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

Ractor-safe time zone caches, default headers fixed in Live responses

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

Rails landed a Ractor-safety fix for finder_needs_type_condition? and shipped a long-standing fix that restores default headers on ActionController::Live responses.

ActiveRecord::Base.finder_needs_type_condition? used to fail when evaluated on a non-main Ractor, because the memoized value was computed on whichever Ractor called it. It now proxies to the main Ractor to calculate that value, so the method is safe to call from Ractor workers [1]. The merge landed in rails/rails [2].

Time zone support followed the same thread: after the earlier work making ActiveSupport::TimeZone objects shareable, the registry still blocked Ractor access because it was a Concurrent::Map. This change eager-loads all time zones from TZInfo and caches their identifiers in the lazy zones map (and likewise for countries), turning the Concurrent::Map into a plain frozen hash that other Ractors can read [3].

ActionController::Live had been dropping default headers, because ActionDispatch::Response merges them in .create while Live's make_response! called Live::Response.new and skipped that path. The fix routes Live responses through the merging path so default headers are included, resolving issue #53402 [4], and the follow-up commit landed it in rails/rails with HTTP/1.1 forced in the Live default-headers test [5].

On the tooling side, rails/lemans posted "sandbox and retry hardening" [6] and cut version 1.3.3 [7]. The PR retries Daytona sandbox creation when the SDK gives up on a stalled start (adopting or deleting the half-made sandbox first), runs Miniswen local commands through sh -c so a missing command surfaces as exit 127 instead of a harness crash, extends Miniswen model-call retries from about 1 minute to about 5, and adds lemans-remote run --launch-interval N with a default of 3 seconds [6]. Supporting commits add the remote launch-interval flag [8] and the longer retry window [9].

rails/website queued up This Week in Rails 11.09 for publication [10], with the accompanying commit adding it to the site [11].

Action items

References

  1. [1] Make finder_needs_type_condition? ractor safe ↗ rails/rails
  2. [2] Merge pull request #58747 from gmcgibbon/ar_find_needs_type_condition_ractor_safe ↗ rails/rails
  3. [3] Share the time zone caches with Ractor workers ↗ rails/rails
  4. [4] Include default headers in ActionController::Live responses. ↗ rails/rails
  5. [5] Include default headers in ActionController::Live responses. (#53403) ↗ rails/rails
  6. [6] Hardening lemans and miniswen ↗ rails/lemans
  7. [7] Bump 1.3.3 ↗ rails/lemans
  8. [8] + remote: run --launch-interval ↗ rails/lemans
  9. [9] - miniswen: retry model calls for ~5 min, parse errors too ↗ rails/lemans
  10. [10] Add TWIR 11.09 ↗ rails/website
  11. [11] Add TWIR 11.09 (#733) ↗ rails/website

Quick answers

What shipped in Rails on September 12, 2026?
Rails landed a Ractor-safety fix for finder_needs_type_condition? and shipped a long-standing fix that restores default headers on ActionController::Live responses. In total, 12 commits and 6 pull requests landed.
Who contributed to Rails on September 12, 2026?
5 developers shipped this update, including gmcgibbon, afn, etiennebarrie, skryukov, and morgoth.
What were the notable Rails updates?
Make finder_needs_type_condition? ractor safe, Merge pull request #58747 from gmcgibbon/ar_find_needs_type_condition_ractor_safe, and Share the time zone caches with Ractor workers.