Agents on Rails: lemans goes open source
Another week, another update from Agents on Rails. This one is a big one: lemans, the harness behind every number we’ve published, is now open source. Also four new models were added: Sonnet 5, Terra, an open-weight Qwen you can run on your own machine, and one that won’t tell us its name.
Another week, another update from Agents on Rails. This one is a big one: lemans, the harness behind every number we’ve published, is now open source. Also four new models were added: Sonnet 5, Terra, an open-weight Qwen you can run on your own machine, and one that won’t tell us its name.
- Make ActionDispatch::ParamBuilder.default ractor safe by using singleton class attr accessor.
- Make ActionDispatch::Request::LOCALHOST ractor safe by freezing the regex.
- Make ActionDispatch::Response.default_charset and ActionDispatch::Response.default_headers ractor safe by using class attributes.
Additionally, prefixed partial names were made ractor safe and reset_primary_key was also made ractor compatible.
Add config.active_record.schema_ignored_tables
This Pull Request unifies ActiveRecord::SchemaDumper.ignore_tables and config.active_record.schema_cache_ignored_tables into a single config, config.active_record.schema_ignored_tables.
Both existing configurations are deprecated. Their readers and writers now warn and delegate to the new one, so there is a single source of truth and no remaining code path reads a deprecated setting.
This is a breaking change: tables are matched against their real after the change.
A caption of [click](javascript:alert(1)) previously produced [click](javascript:alert(1)) and now produces \[click\](javascript:alert(1)) to prevent cross-site scripting vulnerabilities.
Add Herb as an HTML-aware ERB implementation
This pull request adds ActionView::Template::Handlers::ERB::Herb, a ::Herb::Engine subclass that closly mirrors ActionView::Template::Handlers::ERB::Erubi. Herb::Engine is specifically built for HTML+ERB templates and is designed to be API-comaptible with Erubi::Engine. Herb parses HTML and ERB into a single syntax tree and uses Prism to parse the Ruby inside the ERB tags. Based on this parser, Herb::Engine is an HTML-aware ERB rendering engine that also understands the HTML semantics during template compilation, guaranteeing that templates cannot produce invalid Ruby and markup.
Allow translate’s scope: argument to resolve relative i18n keys with leading period
With this change, translate’s (and t’s) scope: option can be resolved relative to the current controller and action when it starts with a period, mirroring the existing behavior for the key argument. Calling translate("bar", scope: ".foo") from PostsController#index is now equivalent to calling translate("bar", scope: "posts.index.foo").
You can view the whole list of changes here. We had 25 contributors to the Rails codebase this past week!
Until next time!