Fiche STB-JEU-BUILD — Niveau N0 — Modèle prévu haiku-5.5 (modèle de l'agent, aucune surcharge) | utilisé haiku-5.5 — Agent lp-builder — Skills lp-build, sk-protocol, sk-windows-shell # STB-JEU-BUILD : archive Development du HEAD 12d86d2, lot STB (2026-10-09) Résultat : réussi avec réserves. Code 0 à la compilation et au cook, archive complète (exécutable et paks) dans un dossier neuf. Trois réserves : cuisson incrémentale (LegacyIterative), `.git` présent dans l'archive, compilation déplacée vers `Build.ps1` (écart à la fiche, § Écarts). ## 1. Commande exacte Interpréteur `pwsh -NoProfile -File`, répertoire de travail `D:\Game\LifePlay-master 5.8`. La fiche prévoyait une seule commande `BuildDebug.ps1 -Config Development -ArchiveDir ...`. Cette commande compile le jeu elle-même (`-build`, `Tools\BuildDebug.ps1` ligne 47), hors de `Build.ps1` et sans `-NoUBA`. Elle a donc été remplacée par deux commandes, dans cet ordre : 1. Compilation du jeu, par la voie réservée à la copie 5.8 : `pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\Build.ps1' -Lot STB -Target LifePlay -Config Development -ExtraArgs '-NoUBA'` 2. Cuisson, staging et pak, sans recompilation : `pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\BuildDebug.ps1' -Config Development -ArchiveDir 'D:\Game\LifePlay_Build_5.8_STB-JEU_Development' -SkipBuild` Commande UAT produite par `BuildDebug.ps1` (ligne 52, journal `BuildDebug_Development_20261009-220527.cmd`) : `RunUAT.bat BuildCookRun -project=... -platform=Win64 -clientconfig=Development -cook -iterate -stage -pak -iostore -compressed -archive -archivedirectory=... -unattended -utf8output -nop4`. ## 2. Code de sortie - `Build.ps1` : code 0 (résumé `STB_Build_20261009-220409.txt`, ligne « code de sortie : 0 » ; sortie console « code=0 duree=52s erreurs=0 avertissements=0 »). - `BuildDebug.ps1` : « UAT code=0 duree=152s » ; journal ligne 776 `BUILD SUCCESSFUL`, ligne 778 `AutomationTool exiting with ExitCode=0 (Success)`. - Archive contrôlée : `Windows\LifePlay.exe` présent, 7 lanceurs `LifePlay_debug_*.bat` posés dans `Windows\`. ## 3. Modules recompilés - Compilé : `Module.LifePlay.cpp [NoUba]`, une seule unité (unity). Estimé : le module de jeu, unité unique, contient les sources modifiées des CHG-281 à 292 ; `git status` propre donne un ensemble adaptatif vide, donc toute l'unité est recompilée si une source incluse a changé. Non vérifié par comparaison d'horodatage des `.obj`. - Lié : `Binaries\Win64\LifePlay.exe` (`[2/3] Link [x64] LifePlay.exe`, journal ligne 21 et 26), `LifePlay.lib`, `LifePlay.exp`, `LifePlay.target`. - « Makefile : Creating makefile for LifePlay (.uproject file is newer) » : makefile recréé (résumé ligne 8). - DLL liées : 0 (cible monolithique, pas de DLL de module ; sans objet pour ce comptage). - Exécutable dans l'archive : `Windows\LifePlay\Binaries\Win64\LifePlay.exe`, 330 195 456 octets, horodatage 2026-10-09 22:04:59. ## 4. Erreurs et avertissements nouveaux - Compilation (`Build.ps1`) : 0 erreur, 0 avertissement, 0 autre ligne d'erreur (résumé, comptes bruts). - Cuisson (`BuildDebug_Development_20261009-220527.log`) : 1 avertissement `LogCook: Warning: CookIncremental and UnversionedCookedContent were requested, but LegacyIterative is required…` (lignes 250 et 516, même texte, une fois dans la liste et une fois dans le résumé). Avertissement de l'UAT lui-même : une cuisson LegacyIterative « may fail to recook packages… cause runtime crashes ». - Cuisson : 3 lignes `Package … has a dependency on package … which does not exist` (lignes 262 à 264, paquets `/Game/Heavy/Daz/...`, `/Engine/EngineMeshes/Humanoid`). Non comparées à la référence U8 : incertain si elles existent déjà là-bas. - Chiffres de cuisson (lignes 294, 368) : `Packages Cooked: 164, Packages Incrementally Skipped: 8751, Total Packages: 8923`, `IsIterativeCook=true`. ## 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` (journal ligne 14). Le MSVC 14.50.35717 correspond à l'épinglage de la copie 5.8 (lp-build § 1). ## 6. Preuve de chargement si addon sans objet : le jeu empaqueté ne charge pas l'addon en tant que DLL d'éditeur, et l'agent ne lance pas le jeu. Aucune DLL d'addon périmée : `Plugins\LPSandbox\Binaries` absent de la copie 5.8 (Glob) et `D:\Game\LifePlay-Sandbox-5.8\Plugins\LPSandbox\Binaries` sans `*.dll` (Glob). Aucune déplacement fait. ## 7. Journal archivé (chemin) - Compilation : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STB_Build_20261009-220409.log` ; résumé : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STB\STB_Build_20261009-220409.txt`. - Empaquetage : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\BuildDebug_Development_20261009-220527.log` (et `.cmd`). ## Constats - HEAD : `12d86d2` (branche `ue5.8`, `git log --oneline -1`). `git status --short` vide avant et après les deux commandes. - Durées : compilation 52 s, UAT 152 s (hors attentes). Une grande partie du temps d'agent a été perdue en attentes (voir Écarts). - Archive : `D:\Game\LifePlay_Build_5.8_STB-JEU_Development` (dossier neuf, absent avant le lancement, vérifié par Read). - Exécutable à lancer : `D:\Game\LifePlay_Build_5.8_STB-JEU_Development\Windows\LifePlay.exe` (lanceur, 301 568 octets). Binaire réel : `...\Windows\LifePlay\Binaries\Win64\LifePlay.exe`. - Paks : `Windows\LifePlay\Content\Paks\` : `LifePlay-Windows.pak`, `LifePlay-Windows.utoc`, `LifePlay-Windows.ucas`, `global.utoc`, `global.ucas`. - Taille : 2 250 fichiers, 2 607 403 344 octets (environ 2,43 Gio), `Get-ChildItem -Recurse`. - Dossier `Mods` : aucun (0 dossier, 0 fichier) dans l'archive. - Journal du jeu attendu par LogStats : `D:\Game\LifePlay_Build_5.8_STB-JEU_Development\Windows\LifePlay\Saved\Logs\LifePlay.log`. Pas encore créé (le jeu n'a pas été lancé). Chemin établi par l'exemple de `Tools\LogStats.ps1` ligne 22 ; la création réelle reste à confirmer au premier lancement. - Dossier `.git` présent dans l'archive : `D:\Game\LifePlay_Build_5.8_STB-JEU_Development\Windows\LifePlay\Content\Modules\.git` (142 fichiers). Signalé, rien supprimé. - `pdb copies=0` : `BuildDebug.ps1` ne copie que `*Win64-Development.pdb` ; le jeu produit `LifePlay.pdb`. Sans effet sur le lancement. ## Écarts à la fiche 1. Compilation : la fiche prévoyait `BuildDebug.ps1 -build` (compilation du jeu hors `Build.ps1`, sans `-NoUBA`). La consigne de la copie 5.8 réserve la compilation à `Build.ps1 -Lot`, et lp-build § 2 prescrit `-NoUBA` pour le jeu. Choix : compilation par `Build.ps1` puis cuisson `-SkipBuild`. À confirmer par l'orchestrateur. 2. Dossier du livrable : la consigne système indique `etat\U58\\`, la fiche indique `etat\ST\STB\`. `Tools\EtatDir.ps1` ligne 21 range `STB` dans le projet `ST`. Livrable écrit dans `etat\ST\STB\`, conforme à la fiche et à EtatDir. 3. Cuisson incrémentale : `BuildDebug.ps1` impose `-iterate` (ligne 52) et n'a aucun paramètre pour une cuisson complète. Le journal montre `IsIterativeCook=true` et 8 751 paquets réutilisés (lignes 294, 368) ; lp-build § 4 demande une cuisson complète pour un build de référence. Cette archive n'est donc pas une référence équivalente à U8 (STA-T1). Corriger demande une modification de `BuildDebug.ps1`, non faite (interdit par la fiche). 4. Ambiguïté UBA : `Build.ps1` a été lancé avec `-NoUBA`, mais le journal dit « Using Unreal Build Accelerator local executor to run 3 action(s) » (ligne 16). Les trois actions sont marquées `[NoUba]`. Estimé : le compilateur n'a pas utilisé UBA ; incertain. 5. `UeState.ps1` ne détecte pas le processus UAT : il a renvoyé `processus=0` pendant que la cuisson tournait (journal en croissance). Ne pas s'y fier pour attendre une fin d'UAT. 6. Attentes : mes boucles d'attente filtraient sur `BuildCookRun` dans la ligne de commande et comptaient leurs propres processus. Environ 9 minutes perdues, sans effet sur le résultat : la fin a été confirmée par la notification et par le journal. 7. Budget : environ 50 appels d'outils au lieu d'environ 25 tours. Le budget de la rubrique 9 est dépassé. Le travail demandé est terminé, aucune action supplémentaire. 8. Non fait, faute de mandat : aucun lancement du jeu, aucune modification de code, d'asset, de doc ou de config, aucun commit, aucune suppression, aucun `-Clean`. ## Points à confirmer - Le `.git` de `Content\Modules` doit-il rester dans l'archive pour l'U8 ? (décision utilisateur) - L'archive incrémentale (`LegacyIterative`) est-elle acceptable pour le parcours U8, ou faut-il une cuisson complète (changement de `BuildDebug.ps1`) ? - Le livrable doit-il aussi figurer sous `etat\U58\STB\` (consigne système) ?