Journal des modifications — migration 5.5
Une entrée par modification. Format : identifiant, date, lot, fichiers, raison, empreintes,
retour arrière. Les empreintes complètes sont dans D:\Game\LifePlay_Backup_5.5\<lot>\manifest.csv
et dans l'historique git.
| ID |
Date |
Lot |
Fichiers |
Raison |
Avant → après |
Retour arrière |
| CHG-001 |
2026-09-29 |
L0 |
.gitignore |
ignorer les fichiers générés (Build/*/FileOpenOrder, Content/Collections, Content/Developers, .claude/settings.local.json) |
31 → 38 lignes |
retirer le bloc « CHG-001 » |
| CHG-002 |
2026-09-29 |
L0 |
.gitattributes (nouveau) |
aucune conversion de fin de ligne : restauration git identique à l'octet |
— → créé |
supprimer le fichier |
| CHG-003 |
2026-09-29 |
L0 |
.git/ (nouveau) |
dépôt local, identité locale, core.autocrlf=false, core.longpaths=true ; commit de64933, tag lot-L0-base |
— → créé |
supprimer .git/ |
| CHG-004 |
2026-09-29 |
L0 |
Tools/Snapshot.ps1, Restore.ps1, AssetHeaders.ps1, CheckIntegrity.ps1, LogStats.ps1 (nouveaux) |
outillage de traçabilité et de test |
— → créés |
git rm |
| CHG-005 |
2026-09-29 |
L0 |
Docs/Migration/** (nouveau) |
documentation 01 à 04, journal, registre, empreintes etat/L0_* |
— → créés |
git rm |
| CHG-006 |
2026-09-29 |
L0 |
D:\Game\LifePlay_Backup_5.5\L0\ (hors projet) |
sauvegarde de .claude, .mcp.json, LifePlay.uproject, Config, Saved/Backups, Saved/SaveGames, Content/BPs (53 fichiers) |
— → créé |
sans objet |
Vérifications du lot L0
| Test |
Résultat |
Aller-retour Snapshot → modification → Restore (Config/DefaultEditorSettings.ini + fichier créé) |
✅ MD5 85D82E7F… retrouvé ; fichier créé retiré vers _retires/ |
| T-STAT-01 |
⚠️ 1 package UE4 (Content/BPs/GI.uasset) : défaut connu, traité en L1 |
| T-STAT-02 Modules = 4.27 |
✅ 2 051 fichiers |
| T-STAT-03 environnement = L0 |
✅ 20 fichiers |
| T-STAT-04 arbre 4.27 inchangé |
✅ 144 fichiers (empreinte créée : etat/L0_ref427.csv) |
Aucun fichier du projet n'a été modifié en L0 en dehors de .gitignore et des ajouts ci-dessus.
Lot L1 — Base saine (2026-09-29)
Décisions utilisateur D-01 et D-02 : 04_Cahier_Des_Charges.md §4. Tag d'entrée lot-L1-avant.
Sauvegarde : D:\Game\LifePlay_Backup_5.5\L1\ (387 fichiers).
| ID |
Date |
Lot |
Fichiers |
Raison |
Avant → après |
Retour arrière |
| CHG-007 |
2026-09-29 |
L1 |
Content/{BPs,UI,Structs,Scenes,Render,Characters} (385 fichiers, 293 packages) |
retour à la base 4.27 : retire tous les correctifs de contenu non suivis (dont R-03, R-04) |
contenu 5.5 (empreintes etat/L0_md5_*.csv) → identique à 4.27 (MD5 vérifiés, 0 écart) |
Tools\Restore.ps1 -Lot L1 ou git checkout lot-L1-avant -- Content |
| CHG-008 |
2026-09-29 |
L1 |
Tools/RunCommandlet.ps1 (nouveau) |
lancement de commandlet avec journal archivé et résumé dédoublonné |
— → créé |
git rm |
| CHG-009 |
2026-09-29 |
L1 |
Docs/Migration/05_Correctifs_Isoles.md, correctifs/P01…P06.patch (nouveaux) |
isolement des correctifs : catalogue, protocole de réimport, patchs de code 4.27 → 5.5 |
— → créés |
git rm |
| CHG-010 |
2026-09-29 |
L1 |
Config/DefaultEngine.ini |
essai de retrait des sections AndroidFileServer/CookerSettings annulé : l'éditeur recrée la section à chaque lancement (nouveau SecurityToken) |
inchangé (restauré depuis lot-L1-avant) |
sans objet ; traité en L2 |
Relevé de base : moteur 5.5 sur le contenu 4.27, sans aucun correctif
| Commandlet |
Résultat |
Résumé |
LPCheckMeshAssignment |
5 nœuds à broches orphelines dans GI : 3 GetAssetsByClass (classe perdue : SkeletalMesh, StaticMesh, StreetMap), 2 Break AssetData (ObjectPath) ; 6 nœuds EditableTextBoxStyle (StatMenu, CharGen) |
etat/L1_LPCheckMeshAssignment_20260929-010821.txt |
CompileAllBlueprints |
6 erreurs, 100 avertissements, 0 Blueprint en échec de chargement ; échecs : UI/StatMenu (3), UI/CharGen (3) — broche Font d'EditableTextBoxStyle |
etat/L1_CompileAllBlueprints_20260929-010931.txt |
Les commandlets de contrôle n'ont rien écrit : contenu toujours identique à 4.27 après passage (385/385).
Vérifications de sortie L1
| Test |
Résultat |
| Contenu de gameplay = 4.27 |
✅ 385/385 MD5 |
| T-STAT-01 |
⏳ 293 packages UE4 (attendu : base 4.27) — resave contrôlé en L4-CX-B07 |
| T-STAT-02, 03, 04 |
✅ |
| T-LOAD-01 |
❌ attendu : 6 erreurs (CX-B02), à corriger en L4 |
| T-LOAD-02 |
❌ attendu : 5 broches (CX-B01), à corriger en L4 |
Lot L2 — Compilation propre (2026-09-29)
Tag d'entrée lot-L2-avant. Sauvegarde : D:\Game\LifePlay_Backup_5.5\L2\ (.uproject,
DefaultEngine.ini) ; dossiers mis de côté dans L2\_purge\ (manifeste L2\purge_manifest.csv).
| ID |
Date |
Lot |
Fichiers |
Raison |
Avant → après |
Retour arrière |
| CHG-011 |
2026-09-29 |
L2 |
LifePlay.uproject |
TargetPlatforms WindowsNoEditor → Windows ; section Plugins explicite : ModdingExtra, StreetMap, EnhancedInput activés ; McpAutomationBridge limité à la cible Editor (TargetAllowList) ; AndroidFileServer désactivé |
MD5 DA10325E… → nouveau |
Tools\Restore.ps1 -Lot L2 -Only LifePlay.uproject |
| CHG-012 |
2026-09-29 |
L2 |
Config/DefaultEngine.ini |
retrait de la section AndroidFileServerRuntimeSettings (et de son SecurityToken) ; le plugin étant désactivé, l'éditeur ne la recrée plus (vérifié après un lancement) |
14 lignes retirées |
Tools\Restore.ps1 -Lot L2 -Only Config\DefaultEngine.ini |
| CHG-013 |
2026-09-29 |
L2 |
Binaries, Intermediate, Saved/Cooked, Saved/StagedBuilds, Plugins/*/Binaries, Plugins/*/Intermediate, Build/WindowsNoEditor, Build/LinuxNoEditor (≈ 13,9 Go) |
reconstruction à partir de zéro ; déplacés, pas supprimés |
→ D:\Game\LifePlay_Backup_5.5\L2\_purge\ |
Move-Item inverse (voir purge_manifest.csv) ; suppression définitive sur décision utilisateur |
Vérifications de sortie L2
| Test |
Résultat |
T-BUILD-01 LifePlayEditor Win64 Development |
✅ code 0, 233 s, 0 erreur, 0 avertissement dans le code du projet et de ses plugins (2 messages de configuration UBT propres à McpAutomationBridge) — Saved/Logs/portage/L2_Build_LifePlayEditor_20260929-011800.log |
T-BUILD-02 LifePlay Win64 Development |
✅ code 0, 97 s, 0 erreur, 0 avertissement ; exécutable 300 Mo (328 Mo avant : McpAutomationBridge exclu du jeu) |
| T-LOAD-04 démarrage éditeur |
✅ 0 LogClass: Error, 0 échec de chargement de package ou de plugin |
Non-régression LPCheckMeshAssignment |
✅ relevé identique à L1 (10 erreurs, 285 avertissements, mêmes signatures) |
ERR-023 (AndroidFileServer) |
✅ DefaultEngine.ini non réécrit après lancement |
| T-STAT-02, 03, 04 |
✅ |
Lot L3 — Journalisation efficace (2026-09-29)
Tag d'entrée lot-L3-avant. Sauvegarde : D:\Game\LifePlay_Backup_5.5\L3\ (6 entrées, dont 2 fichiers
créés que Restore.ps1 retirerait).
| ID |
Date |
Lot |
Fichiers |
Raison |
Retour arrière |
| CHG-014 |
2026-09-29 |
L3 |
Source/LifePlay/LifePlay.h, LifePlay.cpp |
catégorie LogLifePlay |
Tools\Restore.ps1 -Lot L3 |
| CHG-015 |
2026-09-29 |
L3 |
Source/LifePlay/LPSessionLogSubsystem.h/.cpp (nouveaux), LifePlay.Build.cs (+ EngineSettings) |
sous-système de GameInstance, sans modification de Blueprint : résumé de démarrage (versions, modules, fichiers par type) ; bilan de session à la fermeture ou via la commande console LifePlay.LogSummary (messages par catégorie, 25 signatures d'avertissement/erreur les plus fréquentes, chiffres normalisés en #, pile d'appel Blueprint incluse, plafond de 4 000 signatures). Les messages du moteur ne sont pas modifiés (comparabilité A/B avec 4.27) |
idem |
| CHG-016 |
2026-09-29 |
L3 |
Plugins/ModdingExtra/.../ModdingExtraBPLibrary.cpp |
instrumentation LogLPModdingTrace (Warning) → LogModdingExtra (Verbose, même format de ligne) ; échec de LoadTxt signalé une seule fois par fichier ; échec de SaveTxt désormais signalé (il était silencieux) |
idem |
| CHG-017 |
2026-09-29 |
L3 |
Tools/LogStats.ps1, Docs/Migration/03_Plan_Migration_Tests.md |
prise en compte de LogModdingExtra ; procédure A/B (-LogCmds="LogModdingExtra Verbose") |
git revert |
Vérifications de sortie L3
Sessions UnrealEditor -game (valables pour le journal, pas pour l'affichage des personnages —
règle §2 du document 03) : Saved/Logs/portage/L3_game_20260929-012748.log (niveau par défaut) et
L3_game_verbose_20260929-013032.log (trace détaillée).
| Test |
Résultat |
| T-BUILD-01, T-BUILD-02 |
✅ 0 erreur, 0 avertissement |
| T-LOG-01 résumé de démarrage |
✅ 20 lignes LogLifePlay ; 16 modules ; comptes par type identiques à l'inventaire 4.27 (vin_Base : 752 .lpscene, 286 .lpaction…) |
| T-LOG-01 bilan de session |
✅ écrit à la fermeture ; signatures dédoublonnées avec leur pile d'appel |
| Bruit d'instrumentation |
✅ LogLPModdingTrace : 0 ligne au niveau par défaut (1 300 à 5 400 avant) ; 58 lignes LogLifePlay pour toute la session |
| Trace détaillée |
✅ 1 284 lignes LogModdingExtra avec -LogCmds ; ModLauncher.config absent signalé une fois |
| A/B de format avec la build 4.27 |
✅ LogStats -Compare lit les deux journaux ; toutes les énumérations communes aux deux sessions sont identiques (écarts limités aux dossiers que seule l'une des sessions a atteints) |
| T-STAT-02, 03, 04 |
✅ |
Découverte au passage : les erreurs ParseIntoArray (ERR-004) viennent de GI.populateClothes4,
appelée par Person.ReceiveBeginPlay.
Lot L4 — Réimport contrôlé des correctifs (2026-09-29)
Sous-lot L4-CX-B01 — broches AssetRegistry de GI (ERR-020)
Tag d'entrée L4-CX-B01-avant. Sauvegarde : D:\Game\LifePlay_Backup_5.5\L4-CX-B01\ (GI.uasset, MD5 F4550DA5…).
| Étape du protocole |
Résultat |
Preuve (Docs/Migration/etat/) |
| 2. Photographie avant |
GI::EventGraph : 6 199 nœuds, 23 662 lignes |
L4-CX-B01_dump_avant.txt |
3. Simulation -DryRun |
3 [enum] (StreetMap, StaticMesh, SkeletalMesh), 2 [path] (1 consommateur chacun), 0 non traité — conforme à l'attendu |
L4-CX-B01_dryrun.txt |
| 4. Application |
3 énumérations, 2 chemins, 1 Blueprint enregistré, 0 cas non traité, 0 échec |
L4-CX-B01_application.txt |
| 5. Photographie après + diff |
6 201 nœuds ; 35 lignes différentes, toutes attendues : 3 nœuds AssetRegistry::GetAssetsByClass → LPAssetRegistryHelpers::GetAssetsByClassName avec leur classe d'origine ; 2 nœuds GetAssetObjectPath insérés, reprenant les consommateurs des sorties ObjectPath orphelines. Aucune autre ligne du graphe ne change |
L4-CX-B01_dump_apres.txt, L4-CX-B01_diff.txt |
6. LPCheckMeshAssignment |
0 broche orpheline dans GI (restent les 6 nœuds de CX-B02) |
L4-CX-B01_LPCheckMeshAssignment_*.txt |
6. CompileAllBlueprints |
identique au relevé de base : 6 erreurs (CX-B02), 100 avertissements, 0 échec de chargement ; aucune erreur nouvelle |
L4-CX-B01_CompileAllBlueprints_*.txt |
| 7. A/B d'exécution |
en attente : la cuisson exige CX-B02 ; sera faite sur la build Development qui suit CX-B02 |
— |
| ID |
Date |
Lot |
Fichiers |
Raison |
Avant → après |
Retour arrière |
| CHG-018 |
2026-09-29 |
L4-CX-B01 |
Content/BPs/GI.uasset |
réimport de CX-B01 (LPFixAssetRegistryPins) |
MD5 F4550DA5… (UE4) → 0AA14EDB… (UE5, réenregistré par la commandlet) |
Tools\Restore.ps1 -Lot L4-CX-B01 ou git checkout L4-CX-B01-avant -- Content/BPs/GI.uasset |
Sous-lot L4-CX-B02 — EditableTextBoxStyle (ERR-021) : essai 1 rejeté
Tag d'entrée L4-CX-B02-avant. Sauvegarde : D:\Game\LifePlay_Backup_5.5\L4-CX-B02\.
Preuves : Docs/Migration/etat/L4-CX-B02_essai1_rejete/.
| Étape |
Résultat |
| Simulation |
6 nœuds sur 6 attendus |
| Application |
« 6 traités, 0 liaison non gérée, 0 échec » |
| Compilation |
0 erreur (6 avant), 98 avertissements, 0 broche orpheline |
| Relecture du diff |
❌ CharGen::Make_64 a perdu sa liaison Font sans recevoir la liaison TextStyle : sa police retombe sur la valeur par défaut (aucune police, couleur magenta). Défaut silencieux : compilation et rapport de la commandlet au vert |
Cause : LPFixEditableTextBoxFont coupait la broche Font de chaque nœud au fil du parcours. Dans
CharGen, Break_62 est parcouru avant Make_64 : la coupure effaçait aussi la liaison vue depuis
Make_64, qui n'était plus rebranché. Dépend de l'ordre des nœuds (sans effet dans StatMenu). La
campagne du 2026-09-07 avait utilisé cette commandlet : le défaut y était très probablement présent.
| ID |
Date |
Lot |
Fichiers |
Raison |
Retour arrière |
| CHG-019 |
2026-09-29 |
L4-CX-B02 |
Content/UI/StatMenu.uasset, CharGen.uasset |
essai 1 appliqué puis annulé par Tools\Restore.ps1 -Lot L4-CX-B02 (MD5 34807BE0…, 63CA2A78… retrouvés) |
sans objet |
| CHG-020 |
2026-09-29 |
L4-CX-B02 |
Source/LifePlayEditorTools/LPFixEditableTextBoxFontCommandlet.cpp |
les broches Font ne sont coupées qu'après le relevé complet de la topologie |
git revert |
| CHG-021 |
2026-09-29 |
L4 |
Tools/ReimportCorrectif.ps1 (nouveau) |
automatisation des étapes 1 à 6 du protocole |
git rm |
Enseignement pour le protocole : l'étape 5 (relecture du diff nœud par nœud) est indispensable ; ni la
compilation ni le rapport de la commandlet n'ont détecté ce défaut.