Enable Rails 7.1 framework defaults
### Problem
This is an issue about enabling new framework defaults that come with Rails 7.1.
### Proposal
The approach is simple: check the `new_framework_defaults_7_1.rb`, go through each new config option there and check if we can enable it right away.
If we can, enable it, open an MR, deploy to live environment.
If we don't need it, just remove it.
If no, open an issue with additional steps required to enable it.
### Final step
Remove the `new_framework_defaults_7_1.rb` file and enable all defaults in `application.rb`:
```
config.load_defaults 7.1
```
### How will we measure success?
How fast we could upgrade to Rails 7.2.
---
## Implementation Strategy
### Already Enabled ✅
These defaults are already configured in the codebase:
- [#10964](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10964) - Remove X-Download-Options headers
- [#10967](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10967) - SQLite strict strings mode
- [#10982](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10982) - Run after_commit callbacks in order
- [#10988](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10988) - Debug exception log level
- [#10989](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10989) - HTML5 test helpers
### Group 1: Low Risk - Single MR (No Rolling Deploy Concerns)
These can all be landed in a single MR with no deployment strategy concerns:
- [#10984](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10984) - Configure `has_secure_token` generation
- [#10976](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10976) - Raise on `attr_readonly` assignment
- [#10977](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10977) - Validate parent-related columns
- [#10978](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10978) - Precompile filter parameters
- [#10968](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10968) - Disable singular associations
- [#10972](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10972) - Query log tags format
- [#10971](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10971) - Cache expiration validation
- [#10975](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10975) - Log file size
- [#10980](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10980) - Disable YAML serialization
- [#10986](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10986) - Action View HTML5 sanitizers
- [#10987](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10987) - Action Text HTML5 sanitizers
### Group 2: Rolling Deploy Required - Separate MRs
These require rolling deployment strategy and must be landed in separate MRs:
- [#10970](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10970) - BigDecimal serializer (requires all replicas upgraded first)
- [#10973](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10973) - Message serializer (requires rolling deploy)
- [#10974](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10974) - Message metadata optimization (requires rolling deploy)
- [#10981](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10981) - Active Record marshalling format (requires rolling deploy)
### Group 3: Requires Investigation & Testing
These need validation with the test suite before landing:
- [#10965](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10965) - Active Record encryption SHA-256 (depends on current encryption setup)
- [#10966](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10966) - after_commit callbacks behavior (needs testing)
- [#10979](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10979) - before_committed callbacks (needs testing)
- [#10983](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10983) - Transaction behavior (needs testing)
- [#10985](https://gitlab.com/gitlab-org/customers-gitlab-com/-/work_items/10985) - Cache format version (must be in `config/application.rb`, not initializer)
### Recommended Execution Order
1. **Phase 1**: Land Group 1 items in a single MR (11 items)
2. **Phase 2**: Handle Group 2 items individually with proper rolling deploy strategy
3. **Phase 3**: Validate and land Group 3 items after investigation
issue