## Why Les requêtes Prisma des pages les plus fréquentées chargent trop de données : `weather.ts` ramène tout l'historique sans borne, les queries de la sessions page incluent des relations profondes inutiles pour l'affichage liste, et aucun cache n'est appliqué sur les requêtes répétées à chaque navigation. Ces optimisations réduisent la taille des payloads et le temps de réponse DB sans changer le comportement. ## What Changes - **Weather historique borné** : ajouter `take` + `orderBy createdAt DESC` dans `src/services/weather.ts`, configurable via constante (défaut : 90 entrées) - **Select fields sur sessions list** : remplacer les `include` profonds par des `select` avec uniquement les champs affichés dans les cards de liste - **Index `User.name`** : ajouter `@@index([name])` dans `prisma/schema.prisma` + migration - **Cache sur requêtes fréquentes** : wraper les queries de liste sessions et stats utilisateurs avec `unstable_cache` + tags, invalidés lors des mutations ## Capabilities ### New Capabilities - `query-cache-layer`: Cache Next.js sur les requêtes de liste fréquentes avec invalidation par tags ### Modified Capabilities - Aucune modification de spec comportementale — optimisations internes transparentes ## Impact - `src/services/weather.ts` — ajout limite + orderBy - `src/services/` (tous les services de liste) — `include` → `select` - `prisma/schema.prisma` — ajout `@@index([name])` sur `User` - `prisma/migrations/` — nouvelle migration pour l'index - `src/services/` — wrapping `unstable_cache` sur queries fréquentes - `src/actions/` — ajout `revalidateTag` correspondants (complément Phase 2)