$ cat rails/week/2026-08-31.log
the week in review · Aug 31 – Sep 6, 2026
Rails moves config to class attributes
A coordinated set of Rails and Propshaft patches replaces class variables with instance and singleton class attributes for thread and Ractor safety.
What shipped: A data-race hardening effort moved across Rails and Propshaft. MimeNegotiation now stores settings as instance variables [1], AssetTagHelper uses singleton class attributes [2], time zone config is frozen [3], Propshaft stores its logger in a singleton class attribute [4], and a broader refactor converts more class variables to accessors and delegators [5]. Concurrently, smaller fixes landed: PostgreSQL triggers re-enable properly when referential integrity is disabled [6], routing assertions cover PATCH and QUERY with method: :all [7], Bootsnap 1.26.0 fixes cache corruption during precompilation [8][9], and docker-entrypoint now honors extra server flags [10]. The rewritten Layouts and Rendering guide [11] and Claude Fable 5.1 and GLM 5.3 Flash support in ai-evals [12] round out the week.
Why it matters: These changes eliminate shared mutable state, which directly affects thread safety in production and lays groundwork for Ractor compatibility, but your application code requires no changes. Bootsnap's corruption fix matters if you've seen intermittent precompile failures, and the routing assertion change tightens test coverage for PATCH and QUERY.
Also: Lemans bumped to 1.3.1 and added agent.max_output_tokens [13][14], and several documentation cleanups, including the layouts guide and xml_mini RDoc conversion [15][16], shipped without behavioral changes.
References
- [1] Store MimeNegotiation settings as instance variables ↗ rails/rails
- [2] Store the AssetTagHelper settings in singleton class attributes ↗ rails/rails
- [3] Freeze Active Record time zone related configuration: ↗ rails/rails
- [4] Store the logger in a singleton class attribute ↗ rails/propshaft
- [5] Refactor more class variables to accessors and delegators ↗ rails/rails
- [6] Re-enable PostgreSQL triggers when `disable_referential_integrity` raises ↗ rails/rails
- [7] Check PATCH and QUERY in routing assertions with method: :all ↗ rails/rails
- [8] Fix precompilation when regenerating an existing cache entry of the same size ↗ rails/bootsnap
- [9] v1.26.0 ↗ rails/bootsnap
- [10] Fix docker-entrypoint check to support extra bin/rails server flags ↗ rails/rails
- [11] [RF-DOCS] Rewrite the Layouts and Rendering guide (#57152) ↗ rails/rails
- [12] Add Claude Fable 5.1 and GLM 5.3 Flash runs ↗ rails/ai-evals
- [13] Bump 1.3.1 ↗ rails/lemans
- [14] + agent.max_output_tokens ↗ rails/lemans
- [15] Fix broken link to Redirecting Requests in layouts_and_rendering.md ↗ rails/rails
- [16] RDoc to Markdown in active_support/xml_mini ↗ rails/rails
$ ls rails/week/ # the briefings behind this review