LifePlay-Revival/Docs/Migration/27_Plan_Migration_UE58.md
edujiro5972 17364dc59c U0-entree : fiches etat/ hors depot, synthese 28, CompilerVersion 14.38 epingle en 5.5 (CHG-249)
- Docs/Migration/etat/ ignore et retire du suivi (92 fichiers, restes sur le disque, copie dans LifePlay_Backup_5.5/etat)
- .cursor/ ignore
- 28_Synthese_Migration_UE58.md : synthese autonome de l'audit UA, de la porte G-U et du lot SK
- DefaultEngine.ini : CompilerVersion=14.38.33130 (VS 2026 en coexistence), compilation de controle 5.5 code 0
- plan 27 : resultat U0-T2/T2b (toolset 5.8 14.50.35717 non banni)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:31:12 +02:00

227 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: Migration UE 5.5 → UE 5.8 (U)
overview: Porter LifePlay Revival d'Unreal Engine 5.5 vers 5.8 (dernière version majeure d'UE5). La référence de comportement devient le jeu 5.5 validé ; tout ce qui sert à la comparaison avec UE 4.27 est abandonné ; seule la gestion des mods est figée (contrat inchangé, mods recuits).
todos:
- id: lot-ua
content: Lot UA — Audit avant départ (jeu, plugins, mods, moteur ; essai de compilation 5.8 ; effort et risques)
status: pending
- id: gate-gu
content: Porte G-U — go / no-go de l'utilisateur sur la base de l'audit (aucun portage avant)
status: pending
- id: lot-u0
content: Lot U0 — Préparation (moteur 5.8, chaîne de compilation, copie de travail, décisions)
status: pending
- id: lot-u1
content: Lot U1 — Cartographie (notes de mise à niveau 5.6/5.7/5.8, API, plugins, outils, reliquats 4.27)
status: pending
- id: lot-u2
content: Lot U2 — Retrait de l'outillage 4.27 et paramétrage du chemin moteur
status: pending
- id: lot-u3
content: Lot U3 — Bascule moteur et compilation (jeu, outils, plugins du dépôt)
status: pending
- id: lot-u4
content: Lot U4 — Plugins tiers et addon (StreetMap, McpAutomationBridge, LifePlay-Sandbox)
status: pending
- id: lot-u5
content: Lot U5 — Contenu (réenregistrement des paquets, avertissements, villes, Blueprints)
status: pending
- id: lot-u6
content: Lot U6 — Comportement en jeu (build Development, A/B contre le build 5.5, contrôle visuel)
status: pending
- id: lot-u7
content: Lot U7 — Mods (contrat figé ; nouvelle version de référence ; mods recuits)
status: pending
- id: lot-u8
content: Lot U8 — Shipping, publication, évaluation
status: pending
- id: lot-u9
content: Lot U9 — Voie alternative UE5 native pour les correctifs de sémantique UE4 (préparée, non activée)
status: pending
isProject: false
---
# 27. Plan de migration UE 5.5 → UE 5.8 (2026-10-08)
## Contexte
UE 5.8 est la dernière version majeure prévue d'UE5 avant UE6 (premières préversions annoncées vers fin 2027) ; Epic
présente 5.8 comme une version de stabilisation et d'optimisation (Lumen Lite, MegaLights en production, Chaos Hair /
Cloth / Flesh). Le jeu a été porté de 4.27 à 5.5 (V1 à V1.5, lots L0–L7, O, H, AP, SB, DC, VQ). La migration 5.8
s'appuie sur ce qui est validé en 5.5 ; la comparaison avec 4.27 n'est plus un critère.
État de départ (2026-10-08) : moteurs installés `UE_4.27`, `UE_5.5` (pas de 5.8) ; MSVC 14.38 et 14.44 ; projet
`LifePlay.uproject` (EngineAssociation 5.5) ; plugins du dépôt `LPAnimCore`, `ModdingExtra`, `StreetMap`,
`McpAutomationBridge` (outil, gitignoré) ; addon privé `D:\Game\LifePlay-Sandbox` (LPSandbox, LPAnimMeasure,
LPModTools, atelier de mods) ; modules de jeu dans `Content/Modules/.git` (dépôt local) ; taille hors
Intermediate/Saved ≈ 14 Go ; 2,4 To libres sur D:.
## Décisions verrouillées (utilisateur, 2026-10-08)
| Décision | Choix |
|---|---|
| Cible | UE 5.8 |
| UE 4.27 | abandonné : plus de comparaison A/B avec 4.27, plus d'outillage ni de critère d'acceptation fondé sur 4.27 |
| Restrictions 5.5 | levées : le projet peut adopter les API, réglages et fonctions de 5.8 |
| Gestion des mods | **figée** : format `.lpmod` (lignes 1–3 par position, clés existantes), `Content/Modules/<mod>/`, plugins `Mods/<mod>/` cuits en DLC, `ModdingExtra`, `GI.ModEnableds`, gestionnaire de mods, avertissement de version : inchangés pour les moddeurs |
| Publication | règles PUB1/PUB2 : GitHub sans contenu de jeu ni contenu sexuel ; rien n'est poussé sans accord |
| Correctifs de sémantique UE4 (P2) | **gardés pour le moment** ; une voie alternative UE5 native est **préparée** (lot U9), sans être activée |
| Commandlets du portage 4.27 (P3) | **retirés** (`LPTestStringCompat` gardé comme test) |
| Copie de travail (P4) | dossier séparé `D:\Game\LifePlay-master 5.8`, branche `ue5.8` |
| Version (P5) | **V2.0**, `LifePlay 2026.10.2.0` |
| Chaîne de compilation (P8) | **Option B en coexistence** (2026-10-08) : VS 2026 (≥ 18.3, MSVC ≥ 14.50.35723 ; 14.50.0–14.50.35722 bannie par 5.8) installé **à côté** de VS 2022 ; chaque projet épingle son toolset par `CompilerVersion` (`[/Script/WindowsTargetPlatform.WindowsTargetSettings]` ; avec MSVC c'est `CompilerVersion` qui choisit le compilateur, `ToolchainVersion` ne sert qu'à Clang : `VCEnvironment.cs` 5.5 l. 463-485) : `LifePlay-master 5.5` → 14.38.33130 (VS 2022), `LifePlay-master 5.8` → 14.50.x (VS 2026, 14.44 en secours). Preuves : UA-OUTILS § 5 ; 5.5 traite un VS plus récent comme 2022 mais préfère 14.38 (`MicrosoftPlatformSDK.cs:885`, `Windows_SDK.json` 5.5) ; 5.8 cherche 2026 puis 2022 (`MicrosoftPlatformSDK.cs:1540`) |
## Décisions proposées (P2 à P5 tranchées le 2026-10-08, voir ci-dessus ; P1, P6, P7 à confirmer en U0)
| # | Proposition | Motif |
|---|---|---|
| P1 | Référence de comportement = build 5.5 validé courant (DC4, `LifePlay_Build_5.5_DC4`) et V1.5 publiée | 4.27 abandonné |
| P2 | Les correctifs de sémantique UE4 en place (`LPStringCompat`, `LPMeshCompat`, `LPNavigationHelpers`…) **restent** : ce sont désormais le comportement du jeu (les Blueprints en dépendent) | les retirer changerait le jeu ; rien à voir avec la comparaison 4.27 |
| P3 | Les commandlets à usage unique du portage 4.27 → 5.5 (`LPFix*` : ParseIntoArray, StringSearch, ButtonPadding, NavRandomPoint, AssetRegistry*, SceneCapture, FindCenter, PawnResponse…, `LPTestStringCompat` gardé comme test) sont **retirés** du module `LifePlayEditorTools` (conservés dans l'historique git) | surface de portage réduite ; déjà appliqués |
| P4 | Copie de travail séparée `D:\Game\LifePlay-master 5.8` (copie du dossier hors Intermediate, Saved, DDC, Binaries ; même dépôt git, branche `ue5.8`) ; `LifePlay-master 5.5` reste utilisable pour les correctifs | jeu jouable pendant le portage |
| P5 | Version : `LifePlay 2026.10.2.0` (majeur 2 = UE 5.8), publication « V2.0 » | changement de moteur = mods recuits obligatoirement |
| P6 | Le moteur 4.27 et le projet `LifePlay-master 4.27` sont archivés puis peuvent être désinstallés par l'utilisateur après U6 | abandon 4.27 |
| P7 | `McpAutomationBridge` : désactivé tant qu'aucune version 5.8 n'existe (plugin `Optional`) | outil de développement |
## Conséquence pour les mods (contrat figé)
Un paquet cuit pour 5.5 ne se charge pas dans un jeu 5.8 (format des paquets et versions d'objets). Le contrat reste
le même, mais **chaque mod d'assets doit être recuit** contre la nouvelle version de référence `Releases/2026.10.2.0`
(`lpr_hair_pocolov`, `lpr_anim_quaternius`, `lpr_anim_freeanims`) ; les mods texte (`Content/Modules`) ne changent pas.
L'avertissement de version du gestionnaire signale déjà un mod cuit pour une autre version.
## Orchestration et niveaux de modèles (règle utilisateur du 2026-10-08)
**Opus en effort high est l'orchestrateur principal** (découpage, évaluation de complexité, fiches, vérification,
communication). Il délègue vers le bas les tâches simples et **vers le haut les plus lourdes, jusqu'à Fable**.
| Niveau | Modèle (agent) | Note de complexité | Profil |
|---|---|---|---|
| N0 | Haiku (`haiku`) | 0–2 | compilation + journal, copies, inventaires en lecture seule |
| N1 | Sonnet (`sonnet`) | 3–4 | outillage spécifié, retraits mécaniques, docs, commits, VAL bornées, A/B de journaux |
| N2 | Opus high (orchestrateur, session principale) | 5–6 | fiches, arbitrages courants, vérification, code moyen ; pas de build |
| N3 | Opus xhigh (`opus-xhigh`) | 7–8 | portage d'API, refactor multi-fichiers, diagnostic sur graphe d'appels, audit d'un sous-système |
| N4 | Opus max (`opus-max`) | 9–10 | portage transversal, diagnostic sans piste, synthèse sur de nombreuses sources ; échec de N3 |
| N5 | Fable (`fable-top`) | 11–12 | enjeu maximal ou échec de N4 |
**Grille de complexité** (chaque critère de 0 à 2, total 0–12) : (a) étendue, (b) couplage (graphe d'appels, Blueprints,
données partagées), (c) incertitude, (d) coût d'erreur / réversibilité, (e) difficulté de vérification, (f) jugement
requis. Ajustement d'un niveau seulement avec motif écrit ; escalade d'un niveau sur échec ou réponse incertaine.
**Fiche obligatoire (9 rubriques)** : objectif ; note de complexité et niveau ; contexte minimal ; entrées / commandes
exactes ; pièges ; interdits ; livrable (établi / estimé / incertain) ; critère d'acceptation ; conditions d'arrêt et
d'escalade. Détail : mémoire `feedback-subagents-by-task`.
Pièges : mémoire `lifeplay-build-pitfalls` ; mesures en build empaqueté Development seulement ; tests d'empaquetage
avec nouvelle partie (liste des villes) et Continuer ; une preuve par l'échec n'est jamais confiée à N0.
## Lots et fiches
### UA — Audit avant départ (aucun fichier du projet modifié)
But : une vision claire des impacts, de l'effort et des risques **avant** toute action de portage. Livrables sous
`etat/U58/UA/`. Les tâches T1 à T4 sont indépendantes (parallèles) ; T5 exige UE 5.8 installé ; T7 (outils annexes) est indépendante ; T6 les consomme toutes.
| Fiche | Objet | Note a–f (total) | Niveau | Livrable |
|---|---|---|---|---|
| UA-T1 | **Jeu** : modules C++ (`LifePlay`, `LifePlayEditorTools`), sous-systèmes, API moteur utilisées (inventaire par module UE : includes, classes, fonctions), volume Blueprints (nombre, taille, nœuds natifs appelés), configuration (`Config/*.ini` : rendu, empaquetage, IoStore, scalabilité), cibles de build | 1-1-0-0-1-0 (3) | N1 | `UA-JEU.md` |
| UA-T2 | **Plugins** : `StreetMap` (origine, version, API utilisées, maintenance), `ModdingExtra`, `LPAnimCore`, `McpAutomationBridge`, plugins moteur activés par le `.uproject`, addon `LifePlay-Sandbox` (`LPSandbox`, `LPAnimMeasure`, `LPModTools`) ; compatibilité 5.8 connue | 1-1-2-0-1-1 (6) +1 recherche externe | N3 | `UA-PLUGINS.md` |
| UA-T3 | **Mods (contrat figé)** : toutes les surfaces du contrat — lecture des `.lpmod` (`GI`, `LPModInfoSubsystem`, `LPDataCache`), `ModdingExtra`, `GI.ModEnableds`, gestionnaire de mods, `LPHairstyleSubsystem`, `LPModDailies`, montage des plugins `Mods/` (paquets, registre d'assets dans le paquet), chaîne de cuisson DLC contre la version de référence (atelier de l'addon), avertissement de version ; ce qu'un changement de moteur casse ou non ; mods existants à recuire | 2-2-1-2-1-1 (9) | N4 | `UA-MODS.md` |
| UA-T4 | **Moteur** : installation 5.5 actuelle (binaire Launcher, plugins ajoutés au moteur, configuration machine), chaîne de compilation ; changements 5.6, 5.7, 5.8 tirés des notes officielles (API retirées / dépréciées, modules renommés, empaquetage, rendu par défaut, Blueprints, sémantique des chaînes et conteneurs) croisés avec UA-T1/T2 | 2-1-2-1-1-2 (9) | N4 | `UA-MOTEUR.md` |
| UA-T5 | **Essai de compilation 5.8** (prérequis : UE 5.8 installé) : copie jetable de `Source/`, `Plugins/`, `.uproject` hors du projet, association 5.8, compilation éditeur ; décompte des erreurs et avertissements par cause, sans aucune correction (« l'échec EST le résultat ») | 1-0-1-0-0-0 (2) +1 preuve par l'échec | N1 | `UA-ESSAI.md` |
| UA-T7 | **Outils annexes** (ajout utilisateur 2026-10-08) : Visual Studio et toolsets MSVC, Windows SDK, .NET, DXC / pilote GPU, Python éditeur, Zen / DDC, Insights, Live Coding, IDE, matériel ; exigences minimales et recommandées de 5.8 pour en exploiter les capacités ; scripts et `*.Target.cs` qui épinglent une version ; mises à jour bloquantes avant U0 et recommandées | 1-1-2-0-1-2 (7) | N3 | `UA-OUTILS.md` |
| UA-T6 | **Effort et risques** : pour chaque lot U0–U9, effort estimé (nombre de séances, niveaux de modèles mobilisés, durées de build/cuisson, actions utilisateur) avec méthode d'estimation ; registre des risques (probabilité × impact, signal, parade, plan de repli) ; points de non-retour ; recommandation go / no-go argumentée | 2-2-2-1-2-2 (11) | N5 | `UA-SYNTHESE.md` |
Vérification de chaque livrable par l'orchestrateur (preuves, cohérence entre T1–T5 et T7, distinction établi / estimé).
### Porte G-U — Go / no-go (utilisateur)
- Entrée : `UA-SYNTHESE.md` et les cinq rapports. Sortie : go (U0 démarre), go partiel (lots reportés), ou no-go
(le jeu reste en 5.5). **Aucun lot U0–U9 ne démarre avant cette porte.**
- **Décision (utilisateur, 2026-10-08) : GO séquencé U0–U8, U9 différé après V2.0**, avec les recommandations de
`UA-SYNTHESE.md` § 5 : D1 Zen store `False` pendant la migration ; D3 retirer 16 commandlets de portage (garder
`LPResavePackages`, `LPTestStringCompat`) ; D4/D7 McpAutomationBridge désactivé pour V2.0, MCP Epic évalué hors
chemin critique ; D5 référence `LifePlay_Build_5.5_DC4` + V1.5 ; D6 4.27 archivé après V2.0 ; D8 Blueprint Reader
activé en 5.5 (Editor, non commité) ; D9 U9 après V2.0 ; D10 réenregistrement hors `Heavy` ; D13 Fab/Bridge
`Optional`. D2 après le test T4 (U7) ; D11, D12 en U3. Portes intermédiaires ajoutées : **G-U3** (0 erreur,
`LPTestStringCompat` vert) et **G-U6** (A/B + contrôle visuel). Préalable demandé par l'utilisateur : **lot SK**
(arbre de compétences des sous-agents) avant U0.
### U0 — Préparation (Orch + utilisateur)
- **U0-T1 (utilisateur)** : installer UE 5.8 par l'Epic Games Launcher dans `D:\Game\Launcher\Engine\UE_5.8`.
- **U0-T2 (N0)** : vérifier l'installation (`Build.bat -help`), relever la chaîne exigée par 5.8 (Visual Studio, MSVC, SDK Windows) depuis les notes officielles et la comparer à l'existant ; livrable `etat/U58/U0/U0-ENV.md`.
- **U0-T2b (utilisateur, puis N1)** : installer VS 2026 (≥ 18.3) avec la charge « Développement de jeux en C++ », MSVC ≥ 14.50.35723 et les composants Unreal ; figer dans VS Installer les composants individuels MSVC 14.38 (VS 2022) et 14.50 (VS 2026). Puis (N1) : épingler `CompilerVersion=14.38.33130` dans le projet 5.5 ; **compilation de contrôle 5.5** (même toolset au journal UBT qu'avant, code 0) et démarrage de l'éditeur 5.5 ; relever l'état de `%LOCALAPPDATA%\UnrealEngine\Common\Zen` avant le premier lancement de l'éditeur 5.8 (UA-OUTILS, recommandation 1) ; livrable `etat/U58/U0/U0-VS2026.md`.
**Résultat U0-T2/T2b (2026-10-08)** : VS 2026 18.10 installe le dossier `MSVC\14.50.35717` dont le `cl.exe` est en
14.50.35739 ; UBT 5.8 teste le bannissement sur la version du `cl.exe` (`MicrosoftPlatformSDK.cs:1156`, `:1416`),
donc ce toolset **n'est pas banni** ; `CompilerVersion` est comparé à la version ou au nom du dossier (`:581`,
`:1147`) → valeur à épingler pour le projet 5.8 : `CompilerVersion=14.50.35717` (14.51.36231 aussi installé, hors
liste préférée). Projet 5.5 : `CompilerVersion=14.38.33130` épinglé, compilation de contrôle code 0 avec
`D:\Game\VS2022\VC\Tools\MSVC\14.38.33130\...\cl.exe`. Zen commun 5.6.6 (3,96 Go), éditeur 5.8 pas encore lancé.
- **U0-T3 (N1)** : tag local `ue5.5-final` sur `main` ; copie de travail P4 (robocopy, exclusions ; le dossier `D:\Game\LifePlay-master 5.8` existe déjà avec un `.mcp.json` utilisateur — serveur Epic « Unreal MCP » `http://localhost:8000/mcp` — à **conserver** : exclure `.mcp.json` de la copie, ne pas écraser, vérifier qu'il reste ignoré par git) ; branche `ue5.8` ; dépôt des modules recopié ; contrôle `git status` propre.
- **U0-T4 (N2, orchestrateur + utilisateur)** : décisions P1–P7 validées par l'utilisateur → section « verrouillées ».
### U1 — Cartographie détaillée (N1 ; N3 pour un point que l'audit UA laisse ouvert) — complète UA, fichier par fichier
- notes de mise à niveau officielles 5.6, 5.7, 5.8 (API C++ dépréciées / retirées, modules renommés, réglages de projet,
empaquetage, IoStore, Substrate, Lumen/MegaLights par défaut) croisées avec nos sources (`Source/`, `Plugins/`, addon) ;
- état de chaque plugin (`StreetMap` : origine et compatibilité 5.8 ; `ModdingExtra`, `LPAnimCore` ; addon) ;
- reliquats 4.27 (29 docs, `Config/DefaultEngine.ini`, `Tools/AssetHeaders.ps1`, commandlets P3) ;
- chemins moteur codés en dur (`UE_5.5` dans `Tools/`, lanceurs `.bat`, mémoire) ;
- livrable `etat/U58/U1/U1-CART.md` ; handoff → U2/U3.
### U2 — Retrait 4.27 et chemin moteur (N1)
- retrait des commandlets P3 et de leurs entrées Build.cs ; `Config` et `Tools` sans référence 4.27 ;
- un seul point de configuration du moteur (`Tools/Engine.ps1` lu par tous les scripts et lanceurs) ;
- docs : bandeau « historique 4.27 » sur les docs concernés (pas de réécriture du passé) ;
- compilation 5.5 inchangée (A-BUILD haiku) avant bascule.
### U3 — Bascule moteur et compilation (N3 pour les correctifs, N4 en cas de blocage ; N0 pour les compilations)
- `EngineAssociation` 5.8, régénération des fichiers de projet, compilation `LifePlayEditor` ; boucle erreurs →
correctifs (opus) → compilation (haiku) ; cible : 0 erreur, avertissements de dépréciation listés.
### U4 — Plugins tiers et addon (N3 + N1)
- `StreetMap`, `ModdingExtra`, `LPAnimCore` compilés 5.8 ; `McpAutomationBridge` selon P7 ;
- addon `LifePlay-Sandbox` : branche `ue5.8`, compilation, tournée Mesure (non-régression des JSON/CSV contre la
référence 5.5, comme SB2-T5).
### U5 — Contenu (N1 + N0)
- ouverture du projet, `LPResavePackages` sur tout `Content`, journal de chargement sans erreur ; cuisson sans
avertissement ; `LPCheckStreetMap` (280 villes) ; relevé des nœuds Blueprint dépréciés et correctifs.
### U6 — Comportement en jeu (N1 + utilisateur ; N3 pour un écart inexpliqué)
- build empaqueté Development 5.8 ; A/B contre le build 5.5 sur le même parcours (nouvelle partie + Continuer,
`LogStats`) ; réglages vidéo (VQ) revus pour 5.8 ; contrôle visuel utilisateur ; registre des erreurs mis à jour.
### U7 — Mods (N1 + utilisateur ; N3 si une surface du contrat bouge)
- version de référence `Releases/2026.10.2.0` ; recuisson des 3 mods d'assets dans l'atelier (addon) ; contrôle que
le contrat est inchangé (structure, `.lpmod`, gestionnaire, avertissement de version) ; essai en jeu.
### U8 — Shipping, publication, évaluation (N1 + N2)
- build Shipping, archives (règles de publication), README ; évaluation multi-agents (modèle prévu / utilisé) ;
porte de publication (utilisateur).
### U9 — Voie alternative UE5 native (N3 + N1), en parallèle de U5–U6
- pour chaque correctif (`LPStringCompat` : ParseIntoArray, Find / Contains / Split ; `LPMeshCompat` ;
`LPNavigationHelpers` ; padding des boutons) : inventaire des Blueprints appelants et des cas où les sémantiques UE4
et UE5 divergent ;
- interrupteur par correctif (réglage de configuration, défaut = sémantique UE4 comme aujourd'hui) qui bascule
l'implémentation vers l'appel UE5 natif, sans toucher aux Blueprints ;
- banc de comparaison (étendre `LPTestStringCompat` et les relevés `-LPVerify*`) : mêmes entrées, sorties UE4 / UE5,
liste des écarts et de leurs effets en jeu ;
- livrable `etat/U58/U9/U9-CART.md` et interrupteurs compilés, désactivés ; la bascule effective (et un éventuel
nettoyage des Blueprints) reste une décision utilisateur ultérieure.
## Critères d'acceptation globaux
1. Le jeu 5.8 compile (éditeur, Development, Shipping) sans l'addon et avec.
2. Chargement et cuisson sans erreur ; villes et Blueprints identiques en données à la référence 5.5.
3. Comportement en jeu équivalent au build 5.5 (A/B, contrôle visuel), réglages vidéo fonctionnels.
4. Mods : contrat inchangé, 3 mods recuits chargés, mods 5.5 signalés par l'avertissement de version.
5. Plus aucun outil, critère ni réglage fondé sur 4.27 ; chemin moteur à un seul endroit.
6. CHG par lot, commits par phase, rien poussé sans accord.
## Risques
- Plugin `StreetMap` (tiers) non maintenu pour 5.8 → portage maison (U4).
- Changements de rendu par défaut (Lumen, MegaLights, Substrate) → écarts visuels à arbitrer (U6, mémoire
« comparer avant de revenir en arrière »).
- Sémantique de chaînes ou de conteneurs encore modifiée par 5.6–5.8 → `LPTestStringCompat` rejoué en U3.
- Toolchain : 5.8 peut exiger un MSVC plus récent que 14.44 → U0-T2.