The Wire · Showcase
Marcel's typeless Tika matches decoded
By RepoJournal · Filed · About Rails
Marcel's generator was emitting 26 type-less Tika matches as inert literal text, breaking file type detection, and today's fix finally decodes them.
The marcel fix [1] decodes type-less Tika matches that were silently generating wrong matchers. The generator only handled explicit `type="string"` matches, so value-bearing typeless matches emitted raw text like "0x30" instead of the hex-decoded DER SEQUENCE tag [2]. This also fixes a second latent defect in mask handling and the broadening hazard that fixing them exposed [1]. On the Active Record front, Matthew Draper's QueryIntent work [3] turns result delivery into an active behavior, preparing for query pipelining. A new predicate expression API on the predicate builder [4] gives types the ability to define Arel expressions for comparisons, replacing the earlier attempt and addressing #58407 and #58410. If you use ActionText, note the security-relevant fix [5] that strips user-supplied `<action-text-markdown>` elements during canonicalization, preventing URI-scheme bypasses. The i18n `translate` now resolves relative keys with a leading period in scope [6]. Also, query logging has been split into start and finish steps, deprecating the entire method wholesale [7]. The ai-evals desk added new model runs for Sonnet 5, GPT-5.6 Terra, qwen3.8-27b, and ox-alpha [8], and the website desk published the third Agents on Rails report [9].
One email a day. Unsubscribe in one click.
Keep up with Rails in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade marcel to get the typeless Tika decode fix before relying on its generated matchers rails/marcel [immediate]
- → If you use ActionText, patch Rails to prevent the URI-scheme bypass rails/rails [immediate]
- → Monitor the QueryIntent work in ActiveRecord for potential impact on query execution rails/rails [monitor]
- → Review the new predicate expression API for your custom types rails/rails [plan]
References
- [1] Decode typeless Tika matches and honor masked rule offsets ↗ rails/marcel
- [2] Decode typeless Tika matches and honor masked rule offsets (#179) rails/marcel
- [3] Drive result delivery through QueryIntent ↗ rails/rails
- [4] Query predicate expressions for Active Record types, take 2 ↗ rails/rails
- [5] Strip user-supplied `<action-text-markdown>` while canonicalizing ↗ rails/rails
- [6] Allow `translate`'s `scope:` argument to resolve relative i18n keys with leading period ↗ rails/rails
- [7] Split query logging into separate start and finish steps rails/rails
- [8] Add Sonnet 5, GPT-5.6 Terra, qwen3.8-27b and ox-alpha runs ↗ rails/ai-evals
- [9] Third Agents on Rails report ↗ rails/website