diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index e827dee4..737c7989 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -6,6 +6,7 @@ use App\Enums\BankingConnectionStatus; use App\Enums\BankingProvider; use App\Features\CalculateBalancesOnImport; use App\Features\Mcp; +use App\Features\PriceExperiment; use App\Jobs\PurgeResidualEncryptionArtifactsJob; use App\Models\BankingConnection; use App\Services\CurrencyOptions; @@ -70,6 +71,18 @@ class HandleInertiaRequests extends Middleware PurgeResidualEncryptionArtifactsJob::dispatch($user); } + // Warm every Pennant feature this response reads in a single round-trip, so + // the per-feature reads below (the price-experiment pricing variant and the + // feature flags) hit Pennant's in-memory cache instead of each issuing its + // own select + insert. + if ($user) { + Feature::for($user)->values([ + CalculateBalancesOnImport::class, + Mcp::class, + PriceExperiment::class, + ]); + } + return [ ...parent::share($request), 'flash' => [