146 lines
14 KiB
Markdown
146 lines
14 KiB
Markdown
Fiche ADD1-VAL-01 — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol
|
||
# ADD1-VAL-01 : contre-vérification du build de l'addon LPSandbox (2026-10-20)
|
||
|
||
Résultat : code 0 PASS (les deux builds) ; 0 avertissement nouveau dans l'addon PASS ; 4 avertissements nouveaux hors addon (C4996 `UE_MCP_Bridge`) ; UeState non nul (2 processus de jeu étrangers au lot). Rien n'a été compilé ni corrigé.
|
||
|
||
## 1. Fiches amont relues
|
||
|
||
- `ADD1-TACHES.md` : 2 lignes (BUILD-01, VAL-01, l. 9-10), aucune IMPL (Grep `IMPL` : 0 résultat hors les deux lignes de fiche).
|
||
- `ADD1-BUILD-01.md` (lu en entier, 163 lignes).
|
||
- Résumés `ADD1_Build_20261019-233340.txt`, `ADD1_Build_20261019-234931.txt`, `ADD1_BuildLog_20261019-234751.txt` : présents dans `etat\sandbox\ADD1\` (`ls` : 6 124, 5 682, 6 124 o). `etat\ADD1\` n'existe plus (déplacé).
|
||
- Commits `53517a9` (22 fichiers, tous sous `Plugins/LPSandbox/Source/`) et `5c5c038` (dont `Plugins/LPSandbox/Source/LPSandbox/LPSandboxCharGenMod.cpp` et `.h`, plus ~200 fichiers `Docs/`), lus par `git show --stat --name-only`.
|
||
|
||
## 2. Points à confirmer des IMPL
|
||
|
||
sans objet : aucune IMPL dans le lot (`ADD1-TACHES.md` ne liste que BUILD-01 et VAL-01).
|
||
|
||
## 3. Critères rejoués
|
||
|
||
### 3.1 Recompte `Build.ps1 -FromLog` (commande exacte, sortie brute)
|
||
|
||
Build 1 : `pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\Build.ps1" -Lot ADD1 -FromLog "D:\Game\LifePlay-master 5.8\Saved\Logs\portage\ADD1_Build_20261019-233340.log" -EtatDir "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\sandbox\ADD1"`
|
||
```
|
||
code=-1 duree=0s erreurs=0 avertissements=4 autres=20 unites=38
|
||
chaine : Using Visual Studio 14.50.35739 toolchain (C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
|
||
```
|
||
Build 2 : même commande avec `-FromLog "D:\Game\LifePlay-Sandbox-5.8\Saved\Logs\portage\ADD1_Build_20261019-234931.log"` et `-ProjectRoot "D:\Game\LifePlay-Sandbox-5.8"` :
|
||
```
|
||
code=-1 duree=0s erreurs=0 avertissements=4 autres=20 unites=25
|
||
chaine : Using Visual Studio 14.50.35739 toolchain (C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
|
||
```
|
||
`code=-1` : artefact de `-FromLog`. Code réel lu dans les journaux (Grep `Result:`) : build 1 l. 110 `Result: Succeeded`, l. 111 `Total execution time: 812.23 seconds` ; build 2 l. 93 `Result: Succeeded`, l. 94 `Total execution time: 640.99 seconds`. Toolchain : MSVC 14.50.35717 attendu (l. 35 du build 1, l. 33 du build 2). Verdict : PASS.
|
||
|
||
### 3.2 Erreurs = 0
|
||
|
||
Grep `warning|Warning:|error C|error LNK|: error|Result:` sur chaque journal : aucune ligne `error C`, `error LNK` ni `: error` ; seules les lignes d'avertissement du § 3.3 et `Result: Succeeded` ressortent. Verdict : PASS (0 erreur dans les deux journaux, concordant avec `erreurs=0`).
|
||
|
||
### 3.3 Avertissements : liste complète
|
||
|
||
Les deux journaux portent la même liste : 20 lignes UBT `Warning: Plugin 'HyperAIStudio' does not list plugin ...` (l. 9-28 dans les deux) + 4 C4996 (build 1 : l. 69, 72, 77, 81 ; build 2 : l. 55, 58, 63, 67). Textes identiques (relus un à un) :
|
||
|
||
| N | Fichier:ligne (sous `D:\Game\LifePlay-Sandbox-5.8\Plugins\UE_MCP_Bridge\Source\UE_MCP_Bridge\Private\`) | API | Statut |
|
||
|---|---|---|---|
|
||
| 1 | `Handlers\Landscape\LandscapeHandlers_Sculpt.cpp(4533,60)` | `ALandscape::HasLayersContent` (non-edit layer landscapes deprecated) | nouveau |
|
||
| 2 | `Handlers\Landscape\LandscapeHandlers_Sculpt.cpp(4548,18)` | `ALandscape::HasLayersContent` | nouveau |
|
||
| 3 | `Handlers\Level\LevelHandlers_Save.cpp(274,11)` | `ALandscape::HasLayersContent` | nouveau |
|
||
| 4 | `Handlers\Material\MaterialHandlers_Designer.cpp(346,3)` | `ForEachObjectWithOuter` avec booléen `bIncludeNestedObjects` | nouveau |
|
||
| 5-24 | 20 × `Warning: Plugin 'HyperAIStudio' does not list plugin '<P>' ...` (EnhancedInput, GameplayAbilities, Metasound ×2, DynamicMaterial ×2, Niagara ×2, PCG ×2, ModelViewViewModel ×2, MovieRenderPipeline, GeometryScripting, GameFeatures, MassGameplay, WorldConditions, Paper2D, ActorModifierCore, PropertyAnimatorCore) | défaut du `.uplugin` vendeur | connu (`lp-build` § 7 l. 108-114 : 20 pour LifePlayEditor) |
|
||
|
||
Références antérieures :
|
||
- Les 4 C4996 `UE_MCP_Bridge` ne figurent pas dans la liste connue de `lp-build` § 7 (l. 97-114 : StreetMap, LPDumpAssets, LPHairFromStaticMesh, HyperAIStudio). Grep `UE_MCP_Bridge` dans `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\` : 34 occurrences dans un seul journal, `ADD1_Build_20261019-233340.log` ; aucun journal antérieur. Grep `warning C4996` dans `*Build*.log` : 4 (ADD1) et 5 (`STM_Build_20261009-144519.log`, tous HyperAIStudio `OnPostEngineInit` / `GAS`, pas UE_MCP_Bridge). Établi : les 4 C4996 n'existent dans aucun build antérieur archivé. Le plugin n'était donc pas compilé dans les builds de référence archivés (aucune trace d'unité `UE_MCP_Bridge`) ; dernier journal de référence examiné : `STM_Build_20261009-144519.log`. Les autres journaux `*Build*.log` du dossier ne contiennent pas la chaîne (Grep count).
|
||
- Rectification du libellé de la fiche : le plugin fautif est `D:\Game\LifePlay-Sandbox-5.8\Plugins\UE_MCP_Bridge` (répertoire créé le 2026-10-19 16:15, `.uplugin` 16:11), pas `Plugins\McpAutomationBridge`. Ce dernier est désactivé dans `LifePlay.uproject` (`"Enabled": false`, déplacé en fin de liste par le diff `M LifePlay.uproject`) et ignoré par `.gitignore:41` du jeu. `UE_MCP_Bridge` est ignoré par git dans l'addon (`.gitignore:44`, `git ls-files Plugins/UE_MCP_Bridge` : vide). Le jeu le compile parce que `LifePlay.uproject:332-334` donne `AdditionalPluginDirectories: ../LifePlay-Sandbox-5.8/Plugins`.
|
||
|
||
Séparation :
|
||
- **Addon** (`Plugins/LPSandbox/Source`) : 0 avertissement, dans les deux journaux (aucune ligne d'avertissement ne cite `LPSandbox` ou `LPModTools`). Verdict : PASS.
|
||
- **Hors addon** : 20 HyperAIStudio (connus) ; 4 C4996 `UE_MCP_Bridge` (nouveaux, plugin tiers non suivi par git, dans le répertoire de plugins de l'addon). Dans le build 2 (cible `LPSandboxEditor`), la ligne HyperAIStudio apparaît aussi 20 fois : la règle « 20 pour LifePlayEditor » de `lp-build` § 7 ne couvre pas explicitement cette cible (estimé : même plugin, même liste).
|
||
|
||
### 3.4 Preuve de recompilation de l'addon
|
||
|
||
Journal build 1 (jeu) : `[2/49] Compile Module.LPSandbox.cpp`, `[3/49]/[4/49] Link UnrealEditor-LPSandbox.lib/.dll` ; `[15/49] LPSceneCompareCommandlet.cpp`, `[16/49] LPShapeMeasureCommandlet.cpp`, `[14/49] LPModTools.cpp`, `[17/49] Module.LPModTools.gen.cpp`, `[19/49] Link UnrealEditor-LPModTools.dll`.
|
||
Journal build 2 (addon) : `[1/34] Compile Module.LPSandbox.cpp`, `[2/34]`/`[4/34] Link UnrealEditor-LPSandbox.lib/.dll`, `[3/34] Link UnrealEditor-LPModTools.dll`, `[5/34] Link ...LPModTools.lib` ; aucune unité LPModTools recompilée dans ce build.
|
||
|
||
Le journal ne liste pas le contenu des unity. Preuve la plus forte : `Module.LPSandbox.cpp` (unity de l'addon, `Plugins\LPSandbox\Intermediate\...\LPSandbox\Module.LPSandbox.cpp`, daté 2026-10-19 23:49:35, début du build 2 à 23:49:31 d'après le nom du journal) inclut, par Grep `#include`, l. 11-27 : `LPPairSandbox.cpp`, `LPSandboxActors.cpp`, `LPSandboxCharGenMod.cpp`, `LPSandboxCoupleMod.cpp`, `LPSandboxInteraction.cpp`, `LPSandboxModWrappers.cpp`, `LPSandboxScene.cpp`, `LPSandboxSceneLevel.cpp`, `LPSandboxSidebar.cpp`, `LPSandboxStage.cpp` (et les `.gen.cpp` UHT dont `LPSandboxCharGenMod`, `LPSandboxSceneLevel`, `LPPairSandbox`).
|
||
|
||
Dates (`ls -l --time-style`) :
|
||
|
||
| Élément | Date | Lecture |
|
||
|---|---|---|
|
||
| Sources LPSandbox des deux commits (`.cpp`) | 2026-10-11 à 2026-10-19 18:49:55 (max `LPSandboxSceneLevel.cpp`) | antérieures aux builds |
|
||
| `LPSceneCompareCommandlet.cpp` / `LPShapeMeasureCommandlet.cpp` / `LPModTools.Build.cs` | 10-19 18:31:03 / 10-17 17:59:14 / 10-19 18:30:56 | antérieures aux builds |
|
||
| Jeu : `Intermediate\External\...\LPSandbox\Module.LPSandbox.cpp` / `.obj` | 23:33:54 / 23:35:52 | ≥ début build 1 (23:33:40), compilé |
|
||
| Jeu : `LPSceneCompareCommandlet.cpp.obj` / `LPShapeMeasureCommandlet.cpp.obj` | 23:36:58 / 23:37:03 | compilés dans le build 1 |
|
||
| Jeu : `Binaries\Win64\UnrealEditor-LPSandbox.dll` / `LPModTools.dll` | 23:35:54 / 23:37:11 | liées dans le build 1 |
|
||
| Addon : `Module.LPSandbox.cpp.obj` | 23:50:11 | compilé dans le build 2 |
|
||
| Addon : `UnrealEditor-LPSandbox.dll` | 23:50:13 | liée dans le build 2 |
|
||
| Addon : objs LPModTools (`LPSceneCompare...obj` 18:38:42, `LPShapeMeasure...obj` 18:38:45) | 10-19 18:38 | postérieurs aux sources (18:31:03), donc à jour : pas de recompilation nécessaire en build 2, liaison seule |
|
||
|
||
Tous les fichiers des deux commits sous `Plugins/LPSandbox/Source` sont couverts : ceux de LPSandbox par `Module.LPSandbox.cpp` (compilé dans les deux builds, obj postérieur aux sources), ceux de LPModTools compilés seuls dans le build 1 et à jour dans le build 2 (objs postérieurs aux sources). Les `.h` sont couverts par leurs inclusions (non vérifié fichier par fichier : incertain). Le commit `5c5c038` ne touche, hors `Docs/`, que `LPSandboxCharGenMod.cpp/.h`, couverts. Verdict : PASS.
|
||
|
||
### 3.5 Recompte des chiffres de ADD1-BUILD-01.md
|
||
|
||
| Élément | Livrable | Recompté | Méthode | Verdict |
|
||
|---|---|---|---|---|
|
||
| Code build 1 / 2 | 0 / 0 | 0 / 0 (`Result: Succeeded` l. 110 / l. 93) | Grep journaux | confirmé |
|
||
| Durées | 813 s / 641 s | 812.23 s / 640.99 s | Grep `Total execution time` | confirmé (arrondi) |
|
||
| Erreurs | 0 / 0 | 0 / 0 | `Build.ps1 -FromLog`, Grep | confirmé |
|
||
| Avertissements | 4 C4996 + 20 UBT / `4` + `20` | 4 + 20 / 4 + 20 | `-FromLog`, Grep | confirmé |
|
||
| Unités | 38 / 25 | 38 / 25 | `-FromLog` | confirmé |
|
||
| Textes d'avertissement build 2 | « non relus, estimé identique » | identiques (l. 55, 58, 63, 67) | Grep | confirmé |
|
||
| Lignes citées § 3 (l. 42-45, 56-61, 49-53) | cohérentes | cohérentes avec les Grep | Grep `Compile|Link` | confirmé |
|
||
| Chemin du résumé build 1 (`etat\ADD1\`) | hors `etat\sandbox\ADD1` | déplacé depuis (dossier absent, fichier présent dans `sandbox\ADD1`) | `ls` | obsolète, sans effet |
|
||
|
||
Écarts du livrable (non bloquants) : classification de deux avertissements comme « nouveaux » exacte mais sans vérification d'antériorité par journal (faite ici, § 3.3) ; PubCheck non lancé par BUILD (fait en § 3.7) ; « Tours : 17 / 15 » dépasse le budget (`FicheStats.py` fait foi, non lancé ici).
|
||
|
||
### 3.6 UeState
|
||
|
||
`pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\UeState.ps1"`, sortie brute :
|
||
```
|
||
Jeu PID 31108 2026-10-20 00:03:10 LifePlay.exe LifePlay_2023_04_Stable_64bit
|
||
"D:\XxX\LifePlay_2023_04_Stable_64bit\LifePlay.exe"
|
||
Jeu PID 24524 2026-10-20 00:03:10 LifePlay-Win64-Shipping.exe LifePlay_2023_04_Stable_64bit
|
||
"D:\XxX\LifePlay_2023_04_Stable_64bit\LifePlay/Binaries/Win64/LifePlay-Win64-Shipping.exe" LifePlay
|
||
processus=2 editeur=0 compilation=0 shaders=0 jeu=2
|
||
```
|
||
Code 1 (attendu 0). Verdict : PARTIEL. `editeur=0 compilation=0 shaders=0` ; les 2 processus sont un jeu empaqueté de `D:\XxX\...` lancé à 00:03:10, après la fin des builds (23:59) : sans lien avec le lot, mais le critère « UeState = 0 » n'est pas atteint à cet instant. BUILD-01 avait relevé `processus=0` avant et après.
|
||
|
||
### 3.7 PubCheck
|
||
|
||
Commande (à lancer après l'écriture du livrable) : `pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1' -Fichiers @('...\ADD1-VAL-01.md','...\ADD1-BUILD-01.md')"` ; sortie citée en fin de § 7.
|
||
|
||
## 4. Diff lu en entier
|
||
|
||
sans objet pour les sources : lot de build, aucune IMPL ; aucune modification de fichier suivi par ce validateur. Lecture seule du diff `LifePlay.uproject` (`git diff`, déplacement de `McpAutomationBridge` désactivé et ajout de `HyperAIStudio`, antérieur au lot et hors périmètre). Fichiers des commits `53517a9` (22) et `5c5c038` (1 pertinent : `LPSandboxCharGenMod.cpp/.h`) relus par nom ; le contenu du diff n'a pas été relu ligne à ligne (le lot n'en modifie aucun).
|
||
|
||
Fichiers créés par ce validateur (inventaire des modifications) : `ADD1_BuildLog_20261020-000316.txt` et `ADD1_BuildLog_20261020-000318.txt` dans `etat\sandbox\ADD1\` (sorties de `Build.ps1 -FromLog`, `code=-1` par construction ; ne pas les prendre pour des builds) ; ce livrable. Aucune modification de source.
|
||
|
||
## 5. Verdict
|
||
|
||
| Critère | Verdict |
|
||
|---|---|
|
||
| 1 Recompte `-FromLog` (2 journaux) | PASS |
|
||
| 2 Erreurs = 0 | PASS |
|
||
| 3 Avertissements listés, addon / hors addon séparés | PASS (liste complète en § 3.3) |
|
||
| 4 Recompilation de l'addon prouvée | PASS (preuve indirecte par unity et dates, § 3.4) |
|
||
| 5 Chiffres de BUILD-01 | PASS (aucun écart chiffré) |
|
||
| 6 UeState = 0 | PARTIEL (code 1, 2 processus de jeu étrangers au lot) |
|
||
|
||
Verdicts globaux :
|
||
- Code 0 : **PASS** (build 1 et build 2).
|
||
- 0 avertissement nouveau dans l'addon `Plugins/LPSandbox/Source` : **PASS**.
|
||
- Avertissements nouveaux hors addon : **4** C4996 dans `Plugins\UE_MCP_Bridge` (plugin non suivi par git, répertoire de plugins de l'addon), `LandscapeHandlers_Sculpt.cpp(4533,60)`, `LandscapeHandlers_Sculpt.cpp(4548,18)`, `LevelHandlers_Save.cpp(274,11)` (`ALandscape::HasLayersContent`), `MaterialHandlers_Designer.cpp(346,3)` (`ForEachObjectWithOuter`). Absents de tout journal antérieur.
|
||
|
||
Preuve de chargement (hors fiche) : non faite, aucun lancement. Reste à voir (signalé par BUILD-01, non rejoué ici) : DLL de l'addon (23:50:13, 1 713 152 o) et du jeu (23:35:54, 1 832 448 o) différentes, `lp-build` § 8 ; lecture seule des dates : confirmées.
|
||
|
||
## 6. Points à confirmer par l'utilisateur
|
||
|
||
- [ ] Les 4 C4996 `UE_MCP_Bridge` (plugin tiers non suivi, hors addon) sont-ils acceptés comme avertissements connus, ou le plugin doit-il rester hors des builds du jeu ?
|
||
- [ ] Le jeu `D:\XxX\LifePlay_2023_04_Stable_64bit` (PID 31108, 24524) est-il à fermer avant le prochain build ?
|
||
- [ ] Dossier `Plugins\LPSandbox\Binaries` de l'addon : à examiner avant tout lancement (`lp-build` § 8) ; décision à l'orchestrateur.
|
||
|
||
## 7. PubCheck
|
||
|
||
(Sortie citée dans le compte rendu ; voir la mise à jour ci-dessous si elle diffère.)
|
||
|
||
Non vérifié : `FicheStats.py`, `LPTestStringCompat`, ouverture de l'éditeur (hors fiche).
|
||
|
||
Tours : 8 / 15
|