Ruby Weekly
Plus an experiment in memory-safe Ruby, Spree 6.0's big rewrite, and quieting bot noise in Rails.

#​824 — October 29, 2026

Read on the Web

🔒 Last Friday we sent out a special issue about some CRuby security releases which fixed a few nasty regexp bugs. If you haven't updated yet, it's worth a read to see if you're affected and what to check!
__
Your editor, Peter Cooper

Together with  Tiger Data logo

Ruby Weekly

How Fast Can You Actually Patch Ruby? — When the Ruby security fixes shipped last week, Dennis timed how long they took to reach version managers, Docker images, CI services and hosts. The core team's image took eight minutes, while Docker's official image (Rails and Kamal's default) took ~16 hours.

Dennis Paagman

💡 Things are improving, though, as Ruby core team members now have commit access to Docker's Ruby image repo and are looking into automating updates. Meanwhile, Greg Molnar shows how to build your own image locally and deploy it with Kamal.

Your Dashboard Shouldn’t Wait for a Cron Job — The nightly job rolls up yesterday’s rows so the dashboard loads. Numbers lag a day and the job keeps growing. TimescaleDB continuous aggregates refresh rollups inside Postgres, so ActiveRecord reads fresh totals. Get $1000 credit to start.

Tiger Data (creators of TimescaleDB) sponsor

Bad Requests and the Dream of a Quiet Rails App — Requests for /.env and /wp-admin, binary bytes in User-Agent headers, made-up MIME types… Ben walks through the Rails middleware stack to show why some junk requests become 500s, and why even 'handled' ones can still set off your error monitor.

Ben Sheldon

What's New at RubyGems.org: Ruby Central's Changelog Returns — Ruby Central catches us up on RubyGems.org and Bundler 4.1 work. Its AI scans of popular gems are a highlight: reviewers rejected 90% of the findings they looked into, though one was a critical auth bypass in rubyntlm.

Kirk Haines (Ruby Central)

Thank You, But I Prefer It My Way — If an LLM can just rewrite a library, is it worth persuading a maintainer about your PR or do you just route around it? Julik ponders the complexities and offers some practical ways forward.

Julik Tarkhanov

I Get 215 GitHub Notifications a Day, So I Built a Bot to Triage Them — A look at how the creator of RubyLLM built a RubyLLM-powered agent to label issues and PRs, reply only when useful, and sort the rest onto a board.

Carmine Paolino

📄 Parsing JSON-Structured Docker Logs with the OpenTelemetry Collector – How 37signals unwraps the JSON-in-JSON logs from its Kamal-deployed Rails apps. Lewis Buckley (37signals)

📄 Benchmarking Campfire with Many Users – Sam load-tests Campfire with up to 3,000 users, opens three PRs, and compares Rails with his Roundhouse-transpiled build on Falcon. Sam Ruby

📄 React Server Components on a Gumroad Fork: From 53 to 86 on Mobile PageSpeed – Compares live RSC and Inertia versions of a product page, using the commercial React on Rails Pro. Justin Gordon (ShakaCode)

📄 Making AI Agents Safe to Retry – Moving an LLM agent into a Sidekiq job without retries repeating its actions. Mateus Pereira (FastRuby.io)

🛠 Code & Tools

Carton: Real Boundaries for Ruby — Built on Ruby 4's experimental Ruby::Box, Carton enforces module boundaries at runtime where only what a 'carton' exports is visible outside it, monkey patches to core classes stay contained, and each carton can bring its own gem versions.

David Cristofaro

🚨 Rails 8.0 Support Ends Nov 7 | Get AI Upgrades on Autopilot — Our AI agent ships small upgrade PRs that pass your tests; nothing merges without you. Join the beta waitlist.

FastRuby.io® | AI-Native Rails Maintenance sponsor

Spree 6.0: A Rewrite of the Rails E-Commerce Platform — Marketplace, B2B, tax and inventory features are now in the open source core, carts and orders are separate models, and the checkout state machines are gone. Note that Rails now powers only the backend, with a React admin and Next.js storefront.

Spree Commerce

GenevaDrive: Durable, Step-Based Workflows for Rails — Define multi-step workflows tied to a record, with waits, resumable steps over large collections, and signals from webhooks. State lives in your database, with steps surviving restarts and duplicate job runs being skipped.

Julik Tarkhanov

⏱️ Horologium: Scientific Time Library for Ruby — A new gem, extracted from Astronoby, that handles eight time scales including TAI, TT, TDB, UTC and UT1, plus leap seconds (which Time can't represent) and precise Julian dates.

Rémy Hannequin

  • ⭐ RubyGems and Bundler 4.1.0.beta3 renames Bundler's new override keys to in: and with:, and records overrides in a new OVERRIDES section of Gemfile.lock.

  • Prosopite 2.5 – N+1 query detector. Now suggests fixes, adds RSpec and Minitest assertions, and can ignore known N+1s while you adopt it gradually.

  • OmniAuth 2.2 / 2.3 – Multi-provider auth. The first new minor versions since 2022 add allowed_hosts and support for concurrent sign-ins.

  • The Git Gem 6.0 – Ruby interface to the git command line. A big breaking release that removes the old object model and requires Git 2.43+.

  • ruby-duckdb 2.0 – Ruby client for the DuckDB analytical database, now tracking DuckDB 2.0 and dropping several deprecated APIs.

  • Rage 1.29 – Fiber-based, Rails-compatible API framework, now ready for Ruby 4.1's fiber scheduler changes.

📢  Elsewhere in the ecosystem

Issue 823 #824