# Coaster World v1.98.0 — Release Candidate 1

Base : **v1.97.0**.

La v1.98.0 ouvre la phase Release Candidate. Les grosses fonctionnalités sont gelées : cette version se concentre sur les régressions, les garde-fous de release et la validation avant v1.99.

## Correction fonctionnelle

- Correction du message affiché lorsqu'un utilisateur refuse une sortie de groupe.
- Le contrôleur réutilise désormais la clé existante `group_visit_you_declined` au lieu d'appeler la clé inexistante `group_visit_declined`.
- L'audit de traductions RC détectera désormais ce type de régression avant livraison.

## Centre QA — garde-fous Release Candidate

Le rapport `/admin/qa` et la commande `cw:qa:preflight` intègrent maintenant des contrôles RC supplémentaires :

- comparaison des migrations présentes dans `database/migrations` avec l'historique réel de la table `migrations` ;
- contrôle des méthodes HTTP et middlewares des actions sensibles de compte et d'administration ;
- recherche des appels `route()` vers un nom de route absent ;
- vérification des clés de traduction littérales utilisées dans FR / EN / DE / ES / IT ;
- détection des anciennes directives Blade compactées à risque ;
- vérification des formulaires HTML POST et de leur protection CSRF ;
- validation de `public/build/manifest.json`, des assets CSS/JS et de leur synchronisation avec les sources ;
- vérification de l'isolation PHPUnit (`testing`, SQLite `:memory:`, cache/session `array`).

Une migration en attente est considérée comme **bloquante** pour la Release Candidate.

## Tests automatisés

- Nouveau `ReleaseCandidateStaticAuditTest` : la suite PHPUnit échoue si un garde-fou statique RC devient bloquant.
- `CriticalRouteContractTest` couvre maintenant également les méthodes HTTP et protections des mutations sensibles.
- `ReleaseQaTranslationContractTest` couvre toutes les nouvelles clés du préflight RC.

## Checklist manuelle

- Le stockage navigateur de la checklist n'est plus lié au numéro de version.
- Les résultats existants de la v1.97 sont automatiquement repris dans la clé persistante `coaster-world-qa-pre-release`.
- L'export JSON est maintenant identifié comme **v1.98.0**.

## Validation Windows / Laragon

Nouveau script :

```bat
tools\release_candidate_check_windows.bat
```

Il enchaîne :

1. `php artisan optimize:clear` ;
2. `php artisan cw:diagnose` ;
3. `php artisan cw:qa:preflight` ;
4. `php artisan test` ;
5. `php artisan view:clear` puis `php artisan view:cache`.

Le script ne modifie aucune donnée métier. En cas d'erreur Windows sur le cache Blade, il renvoie vers `tools\repair_view_cache_windows.bat`.

## Base de données

**Aucune nouvelle migration SQL dans la v1.98.0.**

Le préflight RC vérifie néanmoins que toutes les migrations déjà livrées sont bien appliquées sur l'installation testée.
