whisper-money/app/Http/Controllers/Settings
Víctor Falcón fd67cf7c72
fix(automation): avoid rule preview n+1 (#431)
## Sentry issue
- PHP-LARAVEL-2F: https://whisper-money.sentry.io/issues/122581787/

## Root cause
- Automation rule match preview eagerly loaded account, bank, category,
and labels for every 500-transaction chunk, even for rules that only
inspect description fields.
- Sentry flagged repeated account/bank eager-load queries across chunks
as an N+1 pattern on
`/settings/automation-rules/{automationRule}/matches`.

## Fix
- Detect variables used by an automation rule and eager load only
relationships required for evaluation.
- Keep label eager loading only when label-only skip logic needs it.
- Avoid lazy loading unused relationships while preserving full data
shape for rule evaluation.
- Update the Sentry prompt to use the `sentry` CLI workflow.

## Verification
- `vendor/bin/pint --dirty --format agent`
- `php artisan test --compact
tests/Feature/AutomationRuleApplicationTest.php`
- `php artisan test --compact
tests/Feature/AutomationRuleEvaluationTest.php
tests/Feature/AutomationRuleApplicationTest.php`
2026-05-26 08:02:46 +02:00
..
AccountController.php fix(accounts): sync currency from first account (#430) 2026-05-25 20:55:24 +02:00
AutomationRuleApplicationController.php fix(automation): avoid rule preview n+1 (#431) 2026-05-26 08:02:46 +02:00
AutomationRuleController.php Apply automation rules to existing transactions (#413) 2026-05-22 08:36:18 +02:00
BankController.php fix: prioritize exact bank search matches (#267) 2026-04-10 13:32:56 +01:00
CategoryController.php Fix duplicate category name validation (#364) 2026-05-07 12:55:35 +01:00
ChartColorSchemeController.php Add chart color scheme setting (#101) 2026-02-28 12:58:21 +01:00
LabelController.php feat: add transaction labels feature (#24) 2025-12-13 13:02:19 +01:00
NetWorthChartLoanPreferenceController.php fix(dashboard): treat loans as debt in net worth (#238) 2026-03-20 09:55:53 +00:00
NetWorthChartRealEstatePreferenceController.php feat(accounts): add real estate asset tracking (#241) 2026-03-24 10:21:32 +00:00
PasswordController.php Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
ProfileController.php Support soft-deleted users with reusable emails (#316) 2026-04-22 11:41:41 +01:00
TimezoneController.php fix(user): persist detected timezones (#296) 2026-04-16 11:36:57 +01:00
TwoFactorAuthenticationController.php Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00