$ the-wire · showcase
Ractor-safe Active Job serialization, pluggable agents in lemans benchmarks
By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology
Rails lands the fixes that make `ractorize!` usable in production jobs while lemans opens its agent registry so teams can benchmark agents defined outside the tool itself.
Make Active Job argument serialization work in non-main Ractors rails/rails
Serializing or deserializing a job argument through ActiveJob::Serializers (a Time, Duration, Symbol, or custom serializer), or serializing a Hash, used to raise Ractor::IsolationError in a non-main Ractor, and on deserialization became an ActiveJob::DeserializationError that jobs with `discard_on` swallowed silently. `ractorize!` now calls a new `ActiveJob::Serializers.make_shareable!`, so tho...
Make deprecation warnings work in non-main Ractors rails/rails
Deprecation warnings and `silence` calls inside a non-main Ractor used to fail outright: a Ractor::IsolationError on Concurrent::ThreadLocalVar::LOCALS, then FrozenError on the deprecator, because `ractorize!` freezes the app's deprecators. The silence counter and `allow` allowances now live in ActiveSupport::IsolatedExecutionState keyed per deprecator, so warnings from jobs reach the configure...
Let a bench run an agent defined outside lemans rails/lemans
Benchmarking an agent you wrote yourself previously meant patching the frozen `Agents::REGISTRY`; `Lemans::Agents.register(name, agent_class)` now adds a hook, and `--agent` plus bench.yml accept the registered name while built-in names stay reserved. `lemans run --require FILE` loads the file that defines and registers it, with a short walkthrough in the PR, so teams running headless Claude Co...
Introduce "definition" methods that return ActiveRecord::Key rails/rails
Tenderlove moved the caches for primary key and other key-name calculations to cache ActiveRecord::Key instances themselves, so callers read composite key definitions without allocating new Key objects. The measurement attached to the change is allocations per run of `Post.includes(:comments)` over 100 posts with 20 comments each on ruby-master, which makes this a straight memory win in include...
Agents on Rails: Stage 3 report and /ai page update rails/website
The /ai page gets an Agents on Rails Stage 3 report and a combined scoreboard, backed by Stage 3's multi-step tasks and new grading in ai-evals, which also gained reference oracle solutions for the greenfield apps matching the `solution.N.patch` files. The ai-evals sources are explicitly convenience material and are not used during runs.