Files
workshop-manager/openspec/changes/perf-data-optimization/proposal.md
Froidefond Julien 2d266f89f9 feat(perf): implement performance optimizations for session handling
- Introduced a new configuration file `config.yaml` for specifying project context and artifact rules.
- Added `.openspec.yaml` files for tracking changes related to performance improvements.
- Created design documents outlining the context, goals, decisions, and migration plans for optimizing session performance.
- Proposed changes include batching database queries, debouncing event refreshes, purging old events, and implementing loading states for better user experience.
- Added tasks and specifications to ensure proper implementation and validation of the new features.

These enhancements aim to improve the scalability and responsiveness of the application during collaborative sessions.
2026-03-10 08:06:47 +01:00

30 lines
1.6 KiB
Markdown

## 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)