New
- Public Pages now include a sitemap, clearer indexing controls, and improved metadata to help search engines discover and present content more accurately.
- English and French localization is now supported across shared interface elements, navigation, and public page layouts.
- New shared interface components for calendars, downloads, and tooltips.
- A reusable copy-to-clipboard experience with localized feedback and clearer accessibility support.
- More flexible shared sections and page headers, including support for layouts without titles.
Improvements
- More reliable event labels in admin views, including safer fallbacks when data is incomplete.
- More consistent handling of account and user level defaults.
- Better support for nested admin permissions.
- Smoother updates for embedded page regions that load content dynamically.
- More accurate active navigation states for links that include query parameters or page fragments.
- Keyboard shortcut hints now adapt to the user’s operating system.
- Avatar upload guidance is clearer and better aligned with actual upload limits.
- More consistent developer tooling and setup documentation.
- Shared form components now support more flexible request methods.
- More stable sidebar spacing and layout behavior.
- Updated Ruby runtime.
- Better email defaults for recipient context, timezone handling, and unsubscribe behavior.
- Full-width content layouts across app, admin, and docs areas.
- Safer lifecycle handling for interactive frontend behavior.
- More standardized rendering of validation errors.
- More reliable background job and mail retry behavior.
- Improved normalization of name fields.
- Shared empty states are cleaner and use more context-specific copy.
- Turbo test support is included by default in generated apps.
- More consistent command palette result rendering.
- Reputable crawlers are handled more gracefully.
- More resilient social image regeneration, including safer behavior when source records are no longer available.
Fixes
- Oversized multipart requests now return a proper 400 response instead of surfacing as server errors.