# VEZA RESOURCE BUDGETS (THE CONTRACT) Ce fichier définit les limites **physiques** acceptables pour le projet. Les tests automatisés (`tmt/tests/...`) utilisent ces valeurs comme conditions d'échec. > **Règle d'or** : Tout changement dans ce fichier exige un **commit dédié** et une **justification écrite** expliquant pourquoi l'augmentation est inévitable et bénéfique pour l'utilisateur final (pas pour le développeur). ## 1. Frontend (Web) | Métrique | Limite (Max) | Justification | Script de Contrôle | | :--- | :--- | :--- | :--- | | **Bundle Size** (Total) | **5000 KB** (5MB) | Téléchargement < 10s en 3G (4Mbps). | `tests/frontend/bundle_size.sh` | | **Main Entry JS** | **800 KB** | Parsing/Execution rapide sur CPU mobile bas de gamme. | `tests/frontend/bundle_size.sh` | | **Temps de Build** | **120 s** | Feedback loop rapide. Empêche la complexité du toolchain. | `tests/frontend/build_perf.sh` | ## 2. Backend (API Go) | Métrique | Limite (Max) | Justification | Script de Contrôle | | :--- | :--- | :--- | :--- | | **Temps de Démarrage** | **2 s** | Cold start rapide, redémarrage auto transparent. | `tests/backend/startup_time.sh` | | **Mémoire RSS (Idle)** | **100 MB** | Doit cohabiter avec DB + Services sur 1Go RAM total. | `tests/backend/memory_budget.sh` | | **Binaires .test** | **0** | Aucun binaire de test ne doit polluer le repo. | `.gitignore` | ## 3. Services (Rust) | Métrique | Limite (Max) | Justification | Script de Contrôle | | :--- | :--- | :--- | :--- | | **Warnings** | **0** | Zéro tolérance au bruit. | `tests/services/rust_clippy.sh` | | **Compilation** | *Suivi* | Pas de limite dure encore, mais surveillé. | - | ## 4. Protocole d'Augmentation Si vous devez augmenter un budget : 1. Ouvrez une **Issue** titrée : `[BUDGET] Request to increase `. 2. Prouvez que vous avez d'abord tenté d'optimiser. 3. Expliquez l'impact sur un utilisateur avec un Celeron N4000 et 4GB RAM. 4. Obtenez l'approbation d'un mainteneur "Garde des Sceaux".