138 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-22
stories 21

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

BroadcastLogger#tagged fixed, STI subclass lookup stops materializing descendants

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

Rails landed two real correctness-and-performance fixes in core today, while the website and ai-evals desks pushed out the next round of the Agents on Rails benchmark reports.

Fix BroadcastLogger#tagged when broadcasting to multiple tagging loggers rails/rails

by ousamabenyounes

ActiveSupport::BroadcastLogger never defined #tagged, so the call fell through to method_missing and, when more than one broadcast target responded to :tagged, returned an Array of loggers rather than a logger. Calling tagged("BCX").info("Hello") on a broadcast of stdout and stderr tagged loggers raised NoMethodError instead of logging.

Avoid materializing `descendants` when resolving an STI subclass rails/rails

by Vadim Hvistik

find_sti_class was guarding its resolved class with descendants.include?(subclass), and descendants is not memoized: every call walks Class#subclasses recursively and allocates two arrays per node. It now asks subclass <= self, which runs once per record for every STI model instantiated from find, instantiate, and subclass_from_attributes.

Fix BroadcastLogger#tagged when broadcasting to multiple tagging loggers rails/rails

by Ben Younes

The fix landed on BroadcastLogger directly rather than leaving the block and non-block paths to method_missing, so tagged with a block no longer dispatches through method_missing to each logger individually.

Merge pull request #58832 from luizkowalski/fix/json-schema-cache-integer-bounds rails/rails

by fatkodima

Integer bounds are restored from the JSON schema cache, closing a gap in how cached schemas round-trip their numeric limits.

Agents on Rails: Maximum effort and DeepSeek 4.1 Flash report + update /ai page rails/website

by ardecvz

The site adds the Agents on Rails report on Maximum effort and DeepSeek 4.1 Flash, dated September 21, and revises the Stage 2 numbers because tests are no longer restored before grading. The /ai page now carries the Stage 2 tables and charts at default and max effort.

Quick answers

What shipped in Rails on September 22, 2026?
Rails landed two real correctness-and-performance fixes in core today, while the website and ai-evals desks pushed out the next round of the Agents on Rails benchmark reports. In total, 14 commits and 7 pull requests landed.
Who contributed to Rails on September 22, 2026?
6 developers shipped this update, including ousamabenyounes, Vadim Hvistik, fatkodima, ardecvz, kinseydurhamgrace, and Svyatoslav Kryukov.
What were the notable Rails updates?
Fix BroadcastLogger#tagged when broadcasting to multiple tagging loggers, Avoid materializing `descendants` when resolving an STI subclass, and Fix BroadcastLogger#tagged when broadcasting to multiple tagging loggers.