diff --git a/Content/BPs/GI.uasset b/Content/BPs/GI.uasset index b24c108..2561574 100644 Binary files a/Content/BPs/GI.uasset and b/Content/BPs/GI.uasset differ diff --git a/Docs/Migration/05_Correctifs_Isoles.md b/Docs/Migration/05_Correctifs_Isoles.md index 54a9b3d..367c07f 100644 --- a/Docs/Migration/05_Correctifs_Isoles.md +++ b/Docs/Migration/05_Correctifs_Isoles.md @@ -33,7 +33,7 @@ exporté dans `Docs/Migration/correctifs/` pour relecture. | ID | Outil | Cible | Effet attendu | Justification | Priorité | Statut | |---|---|---|---|---|---|---| | CX-B00 | `LPFixAssetRegistryNodes` (portage 4.27) | `GI`, `Person`, `Room`, `UI/VisualMorph` | `GetAssetByObjectPath` en nœud pur | **déjà présent dans la base 4.27** (les 4 assets importent `LifePlay.LPAssetRegistryHelpers`) | — | inclus dans la base | -| CX-B01 | `LPFixAssetRegistryPins` | `GI` : 3 `GetAssetsByClass` (+ 2 broches associées) | nœuds rebranchés sur `GetAssetsByClassName` avec la valeur de classe d'origine | **candidat n°1 pour ERR-002** : sans lui, `GetAssetsByClass` interroge avec un chemin de classe vide ; aucun corps, vêtement ni coiffure énumérable | 1 | à réimporter (L4) avec A/B d'exécution | +| CX-B01 | `LPFixAssetRegistryPins` | `GI` : 3 `GetAssetsByClass` (+ 2 broches associées) | nœuds rebranchés sur `GetAssetsByClassName` avec la valeur de classe d'origine | **candidat n°1 pour ERR-002** : sans lui, `GetAssetsByClass` interroge avec un chemin de classe vide ; aucun corps, vêtement ni coiffure énumérable | 1 | **réimporté** (CHG-018, validé statiquement) ; A/B d'exécution après CX-B02 | | CX-B02 | `LPFixEditableTextBoxFont` | `UI/CharGen`, `UI/StatMenu` : 6 nœuds `Make/Break EditableTextBoxStyle` | broche `Font` orpheline retirée | **bloque la cuisson** (6 erreurs, cook du 2026-09-07) | 2 | à réimporter (L4) | | CX-B03 | `LPFixZeroScaleActors -Fix -Scale=0.1` | `Scenes/CentralLondon` : `Wall.StaticMeshComponent0` | échelle X 0 → 0,1 | corps physique invalide ; `ensure InverseFast` (plantage éditeur du 2026-09-07) | 3 | à réimporter (L4) | | CX-B04 | `LPFixOrphanBoundEvents` | `UI/TopRight` (1), `UI/CharGen` (2) | 3 événements `On Clicked` orphelins supprimés | avertissements ; clics déjà morts | 4 | à réimporter (L4) | diff --git a/Docs/Migration/Journal_Modifications.md b/Docs/Migration/Journal_Modifications.md index ec83692..5a6384b 100644 --- a/Docs/Migration/Journal_Modifications.md +++ b/Docs/Migration/Journal_Modifications.md @@ -115,3 +115,26 @@ règle §2 du document 03) : `Saved/Logs/portage/L3_game_20260929-012748.log` (n 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` | diff --git a/Docs/Migration/Registre_Erreurs.md b/Docs/Migration/Registre_Erreurs.md index d522232..f9ced61 100644 --- a/Docs/Migration/Registre_Erreurs.md +++ b/Docs/Migration/Registre_Erreurs.md @@ -6,7 +6,7 @@ | ID | Signature | Source | Fréquence | Gravité | Lot cible | Statut | |---|---|---|---:|---|---|---| | ERR-001 | `Content/BPs/GI.uasset` au format UE4, identique à 4.27 | `Tools\AssetHeaders.ps1` | 1 fichier | bloquante | L1 | clos (CHG-007) : remplacé par la base saine 4.27 complète ; format UE5 → ERR-022 | -| ERR-020 | `GetAssetsByClass` : classe perdue à la montée de version (3 nœuds `GI`) + 2 `Break AssetData` sans `ObjectPath` | `LPCheckMeshAssignment` L1 | 5 broches | **bloquante** (cause probable d'ERR-002) | L4-CX-B01 | ouvert | +| ERR-020 | `GetAssetsByClass` : classe perdue à la montée de version (3 nœuds `GI`) + 2 `Break AssetData` sans `ObjectPath` | `LPCheckMeshAssignment` L1 | 5 broches | **bloquante** (cause probable d'ERR-002) | L4-CX-B01 | corrigé statiquement (CHG-018) ; A/B d'exécution en attente | | ERR-021 | broche `Font` d'`EditableTextBoxStyle` : échec de compilation `UI/StatMenu`, `UI/CharGen` | `CompileAllBlueprints` L1 | 6 erreurs | **bloquante** (cuisson) | L4-CX-B02 | ouvert | | ERR-022 | 293 packages de gameplay au format UE4 (base 4.27) | `Tools\AssetHeaders.ps1` | 293 | faible (converti au chargement) | L4-CX-B07 | ouvert | | ERR-023 | `AndroidFileServer` réécrit sa section et son `SecurityToken` dans `DefaultEngine.ini` à chaque lancement | L1 | chaque lancement | faible (bruit git) | L2 | clos (CHG-011, CHG-012) |