116 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-09
stories 39

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

Activeresource fixes URL encoding for IDs

By RepoJournal · Filed · About Rails

Activeresource now encodes resource IDs as URL path segments, fixing a corruption bug that turned spaces into plus signs.

Activeresource escaped `id` values with `URI.encode_www_form_component`, an `application/x-www-form-urlencoded` encoder, in both `Base.element_path` and `CustomMethods#custom_method_element_url`. A space became a `+`, so `Person.find("ann mary")` requested `/people/ann+mary.json` and a backend reading the path as a path saw the id as `ann+mary` [1]. Both sites now escape with `ERB::Util.url_encode`, matching the prefix half of the URL [1]. This is a fix for any client relying on path segment semantics for resource IDs.

Active Record removed stale encryption performance tasks and a corresponding dead reject clause from its Rakefile [2]. This cleans up dead code and should not affect runtime behavior.

Rails made the event reporter usable from Ractor workers. Previously, each non-main Ractor created a new event reporter with no subscribers, so controller logging, driven by structured event subscribers, was silenced and workers processed requests without logging anything [3]. Non-main Ractors now inherit the main Ractor's subscriptions, restoring logging in Ractor-based request handling.

Lemans remote gained a round of fixes after morning runs on Daytona. `miniswen` now retries provider errors for about a minute instead of three attempts in roughly seven seconds, so a single TLS blip no longer fails a run. `miniswen-installed` no longer kills the CLI mid-command; max-time is checked between steps, letting a command that started before the deadline run up to its `exec_timeout` [4]. Sandbox creation is retried, and trial patches are now collected on accounting or agent failures as well [5][6]. The fix notes say "A single TLS blip to OpenRouter was enough to fail a run" [4].

Action items

References

  1. [1] Encode the id as a URL path segment, not a form value ↗ rails/activeresource
  2. [2] Remove the dead encryption performance reject clause from the Active Record Rakefile ↗ rails/rails
  3. [3] Make the event reporter usable from Ractor workers ↗ rails/rails
  4. [4] remote: retries, smaller uploads, patch on failure ↗ rails/lemans
  5. [5] - remote: retry sandbox creation, drop the leftover ↗ rails/lemans
  6. [6] - trial: collect the patch on accounting failures too ↗ rails/lemans

Quick answers

What shipped in Rails on September 9, 2026?
Activeresource now encodes resource IDs as URL path segments, fixing a corruption bug that turned spaces into plus signs. In total, 32 commits and 7 pull requests landed.
Who contributed to Rails on September 9, 2026?
8 developers shipped this update, including Mike Dalessio, Rafael Mendonça França, Nick Pezza, Sam Schmidt, Hartley McGuire, Étienne Barrié, skryukov, and Vladimir Dementyev.
What were the notable Rails updates?
Encode the id as a URL path segment, not a form value, Remove the dead encryption performance reject clause from the Active Record Rakefile, and Make the event reporter usable from Ractor workers.