$ 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
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
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
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
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
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.