LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-COMMUN13-BUILD.md

209 lines
17 KiB
Markdown
Raw Normal View History

Fiche STG-COMMUN13-BUILD — Niveau N0 — Modèle prévu (agent lp-builder) | utilisé claude-haiku-5-5 — Agent lp-builder — Skills lp-build, sk-protocol, sk-windows-shell
# STG-COMMUN13-BUILD : build commun 13, cible jeu Development (2026-10-14)
**Verdict de synthèse : ARRÊT à l'étape e.** Compilation FAIT (code 0, 0 erreur, 1 avertissement nouveau : C4701 à `LPCameraModeSubsystem.cpp:1643`). Cuisson FAIT (Recooking 163, PC recuit). CheckPackage PASS (0 écart). Chaînes **64 sur 65** : `Sexe : panneau bascule (clic molette` est absente de l'exe (ASCII 0, UTF-16LE 0), la fiche prescrit l'arrêt. MD5 de fin identiques à ceux de départ (23 sur 23). UeState de fin 0. Rien n'a été corrigé ; aucun jeu lancé.
## 1. Commande exacte
Toutes les commandes lancées depuis la copie `D:\Game\LifePlay-master 5.8` (branche `ue5.8`), shell Git Bash avec `pwsh` :
```
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\UeState.ps1" # étape a (départ)
pwsh -NoProfile -File <dossier temporaire de session>\stg13-md5.ps1 # MD5 départ (script hors dépôt)
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\Build.ps1' -Lot STG -Target LifePlay -Config Development -ExtraArgs '-NoUBA'" # étape b (lancé en arrière-plan)
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\UeState.ps1' -Kind Editeur,Compilation -WaitExit -TimeoutSeconds 1800" # attente de fin du build
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\LogStats.ps1' -Log 'D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG_Build_20261014-154145.log' -Pattern 'warning C\d+', 'error C\d+', 'warning' -Max 10"
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\BuildDebug.ps1' -Config Development -ArchiveDir 'D:\Game\LifePlay_Build_5.8_COMMUN-13_Development' -SkipBuild" # étape c
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\LogStats.ps1' -Log 'D:\Game\LifePlay-master 5.8\Saved\Logs\portage\BuildDebug_Development_20261014-154239.log' -Pattern 'Recooking', 'CookIncremental' -Max 5"
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1" -Build 'D:\Game\LifePlay_Build_5.8_COMMUN-13_Development' # étape d
python -I -X utf8 <dossier temporaire de session>\stg13-strings.py exe 'D:\Game\LifePlay_Build_5.8_COMMUN-13_Development\Windows\LifePlay\Binaries\Win64\LifePlay.exe' # étape e, un seul script
python -I -X utf8 <dossier temporaire de session>\stg13-strings.py cook 'D:\Game\LifePlay-master 5.8\Saved\Cooked\Windows\LifePlay\Content' # contrôle des cuits
pwsh -NoProfile -File <dossier temporaire de session>\stg13-md5.ps1 # MD5 de fin
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\UeState.ps1" # UeState de fin
```
Contrôles d'entrée : Glob `D:\Game\LifePlay_Build_5.8_COMMUN-13_Development` : `Directory does not exist` (archive neuve). Glob `Mods` de la copie : 0 entrée. Aucune commande git en écriture. Le script `stg13-strings.py` lit les octets de l'exe et des cuits ; il ne modifie rien.
## 2. Code de sortie
| Étape | Code | Preuve |
|---|---|---|
| a. UeState départ | 0 | `processus=0 editeur=0 compilation=0 shaders=0 jeu=0` |
| b. Build.ps1 | 0 | `code=0 duree=37s erreurs=0 avertissements=1 autres=0 unites=2` ; `Using Visual Studio 14.50.35739 toolchain (...\MSVC\14.50.35717)` |
| c. BuildDebug.ps1 | 0 | `UAT code=0 duree=115s` ; `BUILDDEBUG_CODE=0` |
| d. CheckPackage.ps1 | 0 | `Resultat : PASS (code 0)` |
| e. Chaînes (script) | 0 (script) | **64 sur 65** : une chaîne absente (§ 11). Le code du script ne juge pas le critère |
| UeState fin | 0 | `processus=0 editeur=0 compilation=0 shaders=0 jeu=0` |
## 3. Modules recompilés (étape b)
Journal : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG_Build_20261014-154145.log`. Résumé : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG\STG_Build_20261014-154145.txt`.
- `LPCameraModeSubsystem.cpp [NoUba]` (étape attendue : compilé) : compilé.
- `Module.LifePlay.cpp [NoUba]` (unité unity du module) : compilé.
- Lien `LifePlay.exe [NoUba]` : effectué (`Binaries\Win64\LifePlay.exe`).
- Résumé : `=== Unites compilees : 2` ; `=== DLL liees : 0`.
- `LPBonusRewardSubsystem.cpp` : non recompilé (objet à jour, aucun avertissement sur ce fichier).
- `LPDirectControlSubsystem.cpp`, `LPOutdoorRoomSubsystem.cpp`, `LPDebugSubsystem.cpp`, `LPShowCoupleSubsystem.cpp` : non recompilés (inchangés depuis COMMUN-12 pour les trois premiers ; la fiche le prévoit).
- `LPCameraModeSubsystem.h` (MD5 modifié depuis COMMUN-12) : UHT n'a rien signalé (`Autres lignes ... : 0`).
- Makefile : la ligne `Makefile :` du résumé est vide (incertain : le journal ne l'affiche pas ; même constat que COMMUN-12).
## 4. Erreurs et avertissements nouveaux
- Erreurs du compilateur : **0**. Erreurs C4456, C4458, C4459 : **0** (les trois critères `/we` tenus).
- Avertissements du compilateur : **1**, nouveau, non connu (`lp-build` § 7) :
`D:\Game\LifePlay-master 5.8\Source\LifePlay\LPCameraModeSubsystem.cpp(1643) : warning C4701: variable locale 'Aim' potentiellement non initialisee utilisee` (`while compiling ULPCameraModeSubsystem::TickCoupleMouse`, journal ligne 21).
Non corrigé (la fiche demande de le nommer). Ce n'est pas C4456/C4458/C4459, donc pas un arrêt selon la fiche.
- `LPBonusRewardSubsystem.cpp` : aucun avertissement.
- Autres lignes UBT, UHT, liens : 0. Lignes HyperAIStudio : 0.
## 5. Toolchain
`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` (résumé `STG_Build_20261014-154145.txt`, ligne « Chaine »). MSVC 14.50.35717 = épinglé de la copie 5.8. Moteur `D:\Game\Launcher\Engine\UE_5.8\Engine` (EngineAssociation 5.8).
## 6. Preuve de chargement d'addon
sans objet : la fiche ne demande pas de preuve de chargement de l'addon ; aucune ligne propre à `LPSandbox` n'a été recherchée dans ce build.
## 7. Journaux archivés (chemins)
- Résumé de build : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG\STG_Build_20261014-154145.txt` (durée 37 s, code 0).
- Journal de build : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG_Build_20261014-154145.log`.
- Journal de paquetage (BuildDebug, cuisson et UAT) : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\BuildDebug_Development_20261014-154239.log`.
- Sortie de la tâche de compilation (sortie brute de `Build.ps1`) : `chemin de la sortie de tâche de session (hors dépôt)`.
## 8. Cuisson : « Recooking N », PC recuit, cuits présents
- `LogCook: Display: Keeping 8754. Recooking 163. Removing 0.` (`BuildDebug_Development_20261014-154239.log`, ligne 255) ; `Found 163 cooked package(s) in package store.` (ligne 254). **Recooking 163** (PC attendu : au moins 1).
- Avertissement de cuisson connu (`lp-build` § 4) : `LegacyIterative` sans ZenStore (ligne 251) ; résumé `Success - 0 error(s), 1 warning(s)` (ligne 518). Cuisson incrémentale, `-iterate` imposé par `BuildDebug.ps1`.
- Cuits (`Saved\Cooked\Windows\LifePlay\Content`, sortie de `stg13-strings.py cook`) :
| Fichier cuit | Date | Taille |
|---|---|---|
| `BPs\PC.uasset` (modifié, UE-GO) | 2026-10-14 15:43:42 | 40 702 o |
| `BPs\PC.uexp` | 2026-10-14 15:43:42 | 114 874 o |
| `BPs\Person.uasset` | 2026-10-14 15:43:42 | 185 299 o |
| `BPs\Person.uexp` | 2026-10-14 15:43:42 | 876 770 o |
| `BPs\Room.uasset` | 2026-10-14 15:43:42 | 184 962 o |
| `BPs\Room.uexp` | 2026-10-14 15:43:42 | 242 622 o |
| `BPs\GI.uasset` | 2026-10-14 15:43:43 | 526 889 o |
| `BPs\GI.uexp` | 2026-10-14 15:43:43 | 2 028 199 o |
| `UI\TopRight.uasset` | 2026-10-14 15:43:42 | 128 736 o |
- Recuit du PC établi : date 15:43:42, postérieure au départ de la cuisson (`BuildDebug_..._154239`).
- `ORG4 bonus Endsex homme` dans GI cuit (`.uasset` + `.uexp`) : ASCII=1, UTF-16LE=0 (information, pas un critère).
- `STG_StandTarget` dans Person cuit : ASCII=1, UTF-16LE=0 (preuve nominative : présente).
## 9. Clips cuits et décor
- `Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset` : présent, 2026-10-13 22:00:46, 1 557 o (non recuit, antérieur au build ; la fiche exige la présence).
- `Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset` : présent, 2026-10-13 22:00:46, 1 551 o.
- `Content\Quaternius\` : ABSENT (conforme).
- Décor `Heavy\New2\Furniture\fnt_ext001` : `.uasset` cuit 2 496 o (2026-10-14 02:33:45) ; `.uexp` cuit **1 079 978 o** (2026-10-14 02:33:45), identique à COMMUN-6.
## 10. CheckPackage (étape d)
Commande : § 1. Sortie brute :
```
CheckPackage : build D:\Game\LifePlay_Build_5.8_COMMUN-13_Development ; configuration Development ; projet D:\Game\LifePlay-master 5.8
exe archive : D:\Game\LifePlay_Build_5.8_COMMUN-13_Development\Windows\LifePlay\Binaries\Win64\LifePlay.exe (2026-10-14 15:42:20, 330465280 o)
exe du projet : D:\Game\LifePlay-master 5.8\Binaries\Win64\LifePlay.exe (2026-10-14 15:42:20, 330465280 o)
[1] PASS 0 D:\Game\LifePlay_Build_5.8_COMMUN-13_Development\Windows\Manifest_NonUFSFiles_Win64.txt
[2] PASS 0 D:\Game\LifePlay_Build_5.8_COMMUN-13_Development\Windows\Manifest_UFSFiles_Win64.txt
[3] PASS 0 D:\Game\LifePlay-master 5.8\Intermediate\Build\Win64\x64\LifePlay\Development\LifePlay.exe.rsp
[4] PASS 0 D:\Game\LifePlay-master 5.8\Binaries\Win64\LifePlay.target
Resultat : PASS (code 0)
```
Résultat : **0 écart**. Exe de l'archive = exe du projet : 330 465 280 o, 2026-10-14 15:42:20, MD5 `1A9A3B07474E83E1C7495C8F62089419` pour les deux (`Get-FileHash -Algorithm MD5`). `LPSaveLocation.ini` absent de l'archive (Glob `**/LPSaveLocation.ini` : `No files found`).
## 11. Chaînes dans l'exe (étape e)
Script unique `stg13-strings.py exe` (dossier temporaire de session, hors dépôt) : recherche des octets ASCII, UTF-16LE (littéraux `TEXT`) et UTF-8 pour les chaînes accentuées, dans l'exe de l'archive. 65 chaînes = 59 de la fiche + 6 nouvelles de COMMUN-13 (B2p-I et B2p-J). Sortie brute (extrait) :
```
EXE : D:\Game\LifePlay_Build_5.8_COMMUN-13_Development\Windows\LifePlay\Binaries\Win64\LifePlay.exe ; taille 330465280 o ; date 2026-10-14 15:42:20
OK | ASCII=10 | UTF16LE=9 | UTF8=n/a | Scene_C
... (les 63 autres lignes OK, relevées au journal de session)
ABSENT | ASCII=0 | UTF16LE=0 | UTF8=n/a | Sexe : panneau bascule (clic molette
CHAINES x sur y : 64 sur 65
```
Chaînes à compte nul avant l'absente : aucune. Chaînes avec accents `Bonus : contrôle formule` (UTF-16LE=2) et `Bonus : réglage bDisabled` (UTF-16LE=1) : présentes, UTF-8=0 (attendu pour des littéraux `TEXT`). Nouvelles de COMMUN-13 : `Sexe : souris liberee pour le glisser` 1, `Sexe : fin de scene, etats rendus` 1, `Aide sexe : icone inseree dans` 1, `Aide sexe : icone non inseree` 3, `Aide sexe : boite d'aide` 1, `Aide sexe : 4 lignes d'origine masquees` 1 (UTF-16LE).
**Chaîne absente : `Sexe : panneau bascule (clic molette`** (ASCII 0, UTF-16LE 0). Présente en COMMUN-12 (`STG-COMMUN12-BUILD.md` § 12). Établi : la source ne contient plus ce littéral ; `Grep` de `panneau bascule` dans `D:\Game\LifePlay-master 5.8\Source` renvoie une seule ligne, `LPCameraModeSubsystem.cpp:1237` : `UE_LOG(LogLifePlay, Log, TEXT("Sexe : panneau bascule (%s, %.2f s)"), bPanelByAlt ? TEXT("Alt") : TEXT("clic molette"), MiddleHeld);`. Estimé : le libellé a été coupé en un format `%s` (CAM B2p-J, `LPCameraModeSubsystem.cpp` modifié à 15:21:00) ; le mot « clic molette » reste comme littéral séparé et n'est pas compté ici. Non corrigé.
## 12. MD5 départ et fin
Relevés par `stg13-md5.ps1`, départ (étape a) et fin (après étape e) : **23 sur 23 identiques**, et tous conformes à la fiche (8 premiers caractères pour les préfixes).
```
8668A47C627F7A5254910CF0AC33B12A Content\BPs\Person.uasset
32FC0A970AB194626E8DC07DF3A9633D Content\BPs\GI.uasset
931387479E2D15F80BC4F36398907712 Content\BPs\Room.uasset
707220A6794E8E5469DD8F84437720CD Content\BPs\PC.uasset (modifié, UE-GO)
CB8353603CF95849B4F778A33B4BFBD2 Content\UI\TopRight.uasset
C10FB66E4216F3E6302EE27D211C1A1D Content\Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset
D41DB867EAF26D26847734172E5D5F98 Content\Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset
5F9D7E00402688822687E7EB32979BD1 Source\LifePlay\LPDirectControlSubsystem.cpp
01D5EA3C82C2A547065C7BC391B9B430 Source\LifePlay\LPDirectControlSubsystem.h
DC68ED8AF8A635E54AA003B84C565BE9 Source\LifePlay\LPOutdoorRoomSubsystem.cpp
6A3EDD7339DDA483DAEF497372951188 Source\LifePlay\LPOutdoorRoomSubsystem.h
DF2DB514E0E2345C6CCAC66A0787621F Content\Heavy\New2\Furniture\fnt_ext001.uasset
F0081F9F98DEF2FE3BE130C4F26AEF9E Source\LifePlay\LPDebugSubsystem.cpp
78D3A07957D81E0B39C5D9A81E5E03D3 Source\LifePlay\LPDebugSubsystem.h
1F10631F904E0EAB74BAA896571F0A57 Source\LifePlay\LPCameraModeSubsystem.cpp
9AEE8D04CF35C0C6EEDF226E3B0A86C3 Source\LifePlay\LPCameraModeSubsystem.h
16147626D2FA8A11DAC8747CDBE12E9A Source\LifePlay\LPBonusRewardSubsystem.cpp
87177C7A53FB5B5CC946E904060A3AAA Source\LifePlay\LPBonusRewardSubsystem.h
A0CD668771FF5893ED2867F24DE1DF3A Source\LifePlay\LPSaveRelaunch.cpp
F31173F606A8F63DB762F2D8960509F8 Source\LifePlay\LPSaveRelaunch.h
3F7FFA30E0EF83FC87AEC297F699EEA9 Source\LifePlay\LifePlay.cpp
3CDD572D78B691EEF0A3F02B1B37A486 Source\LifePlay\LPShowCoupleSubsystem.cpp
44C721EE9E82BDFDF7571E493AF70E39 Source\LifePlay\LPShowCoupleSubsystem.h
```
`LPCameraModeSubsystem` et `LPBonusRewardSubsystem` : MD5 inchangés pendant le build (pas d'arrêt sur ce point). `Mods\` : 0 entrée.
## 13. UeState
- Départ (étape a) : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0.
- Fin : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0.
## 14. Verdicts par étape
| Étape | Verdict | Motif |
|---|---|---|
| a. UeState départ 0, Mods vide, MD5 départ | FAIT | § 2, § 12, § 13 |
| b. Compilation Development | FAIT, avertissement nouveau nommé | code 0, 0 erreur, C4456/C4458/C4459 absents, `LifePlay.exe` lié ; **1 avertissement nouveau** C4701 `LPCameraModeSubsystem.cpp:1643` (§ 4) |
| c. Cuisson et paquet | FAIT | code 0 ; Recooking 163 ; PC recuit 15:43:42 ; Person, Room, GI présents ; clips présents ; `fnt_ext001.uexp` 1 079 978 o |
| d. CheckPackage | FAIT | PASS, 0 écart |
| e. Chaînes dans l'exe | **ÉCHEC : ARRÊT** | 64 sur 65 ; `Sexe : panneau bascule (clic molette` absente (§ 11) |
| MD5 de fin | FAIT | 23 sur 23 identiques |
| UeState de fin | FAIT | 0 |
Arrêt prescrit par la fiche (chaîne absente). La suite (sessions de test, lancement de l'archive) n'a pas été faite. Rien n'a été corrigé.
## 15. Fichiers à commiter
- A `Docs/Migration/etat/ST/STG/STG-COMMUN13-BUILD.md` (ce livrable, LF).
- A `Docs/Migration/etat/ST/STG/STG_Build_20261014-154145.txt` (résumé automatique de `Build.ps1`, étape b).
- Hors suivi git (ignorés, non commités) : `Binaries\`, `Intermediate\`, `Saved\` (journaux, cuits), archive `D:\Game\LifePlay_Build_5.8_COMMUN-13_Development`.
- Scripts `stg13-md5.ps1` et `stg13-strings.py` : dossier temporaire de session, hors dépôt, rien à commiter.
- Aucun fichier de `Source/`, `Content/`, `Config/` modifié. Aucun `LPSaveLocation.ini` posé.
Tours : 12 / 50
## Constats
- Suite : Big Boss ou l'orchestrateur STG doit trancher l'écart de chaîne `Sexe : panneau bascule (clic molette` (littéral coupé dans `LPCameraModeSubsystem.cpp:1237`, CAM B2p-J) : relire la fiche ou la chaîne de contrôle avant de relancer. Aucune correction faite par l'agent.
- Suite : avertissement C4701 `LPCameraModeSubsystem.cpp:1643` (variable `Aim`) à qualifier en CAM ; non bloquant pour la fiche, à lister en VAL.
- Non mesuré : le compte des chaînes ASCII de l'exe au-delà de la ligne `Scene_C` (la sortie complète est dans le journal de session) ; le compte `clic molette` seul ; la ligne `Makefile` du résumé (vide, incertain).
- À verser : lp-build § 8 — une chaîne de contrôle de fiche doit être relue dans `Source/` avant le build : un libellé `TEXT` coupé en format `%s` ne se retrouve plus dans l'exe (cas `Sexe : panneau bascule`, 2026-10-14).
## Note de l'orchestrateur STG (2026-10-14, après le compte rendu de lp-builder)
- **Chaîne `Sexe : panneau bascule (clic molette` :** erreur de la fiche, pas du build. CAM B2p-J a changé le littéral en
`TEXT("Sexe : panneau bascule (%s, %.2f s)")` (`LPCameraModeSubsystem.cpp:1237`), avec `TEXT("clic molette")` à part.
Recompté dans l'exe de l'archive (UTF-16LE) : `Sexe : panneau bascule (%s, %.2f s)` = 1, `clic molette` = 1. **Chaînes : 65 sur 65.**
L'ARRÊT de l'étape e est levé.
- **C4701 `LPCameraModeSubsystem.cpp:1643` (`Aim`) :** faux positif établi par lecture. `Aim` n'est lu que si `bAim` est vrai, et la
lambda `TraceScreen` (l. 1421) écrit `Out` juste avant son unique `return true`. Ce n'est pas une erreur : le build est valable.
À verser à CAM (initialiser `FVector Aim = FVector::ZeroVector;` l. 1634 pour faire taire l'avertissement).