LifePlay-Revival/Docs/Migration/etat/REL/ALPHA/REL-ALPHA-T2-BUILD.md

122 lines
15 KiB
Markdown
Raw Normal View History

Fiche REL-ALPHA-T2 — Niveau N0 — Modèle prévu haiku/sonnet | utilisé claude-haiku-5-5 — Agent lp-builder — Skills lp-build, sk-windows-shell, sk-protocol
# REL-ALPHA-T2-BUILD : build Shipping de livraison de l'alpha 2026.10.2.1a (2026-10-14)
Verdict : **ARRÊT à l'étape e** (PDB et `BUILD-ID.txt`) sur **refus du crochet `ecriture-gardien`** (fiche § 4 : refus = arrêt et compte rendu). Réussi : contrôle d'entrée (a), compilation (b), cuisson à froid (c), mise en paquet (d). Non fait : étape e, étape f (CheckPackage, dépend de e), étape g partielle. Aucune commande de build n'a été relancée.
Hors gabarit : la fiche demande un en-tête complet, les durées par étape, les journaux archivés et un résumé TRACE1 ; ces sections sont ajoutées après 7 (sections gabarit BUILD 1 à 7 conservées dans l'ordre).
## 1. Commande exacte
Étape a (contrôle d'entrée, lecture seule) :
- `pwsh -NoProfile -Command '… & "D:\Game\LifePlay-master 5.8\Tools\UeState.ps1" -Kind Editeur,Compilation …'` (rejouée deux fois : la première tentative a échoué sur les guillemets du shell Bash, sans effet, voir § 11).
- Processus : `Get-Process` filtré (regex `Unreal|LifePlay|UnrealBuildTool|AutomationTool|dotnet|^cl$|ShaderCompileWorker`).
- MD5 : `Get-FileHash -Algorithm MD5 -LiteralPath <23 fichiers>`, 8 premiers caractères.
- Dossiers : `Test-Path` sur les deux dossiers de sortie, `Releases\2026.10.2.1a`, `Get-ChildItem Mods`, `LPSaveLocation.ini` (`-Recurse`), `git rev-parse --short HEAD` (lecture seule), `Get-Content Config\DefaultGame.ini -TotalCount 5`.
Étape b (compilation, arrière-plan, une seule exécution) :
`pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\Build.ps1" -Lot REL-ALPHA -Target LifePlay -Config Shipping -ExtraArgs "-NoUBA"`
(équivalent de `.\Tools\Build.ps1 -Lot REL-ALPHA -Target LifePlay -Config Shipping -ExtraArgs '-NoUBA'` de la fiche ; `Build.bat LifePlay Win64 Shipping "-Project=…" -WaitMutex -NoHotReloadFromIDE -NoUBA`, ligne affichée par Build.ps1.)
Étape c (cuisson, `.cmd` écrit par Write, lancé en arrière-plan) :
- Fichier : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Cook_20261014-163344.cmd`, une ligne :
`@call "D:\Game\Launcher\Engine\UE_5.8\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun -project="D:\Game\LifePlay-master 5.8\LifePlay.uproject" -platform=Win64 -clientconfig=Shipping -skipbuild -cook -createreleaseversion=2026.10.2.1a -unattended -utf8output -nop4 > "D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Cook_20261014-163344.log" 2>&1`
- Lancement : `pwsh -NoProfile -Command "& cmd /c 'D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Cook_20261014-163344.cmd'"`, arrière-plan.
Étape d (mise en paquet, même méthode) :
- Fichier : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Package_20261014-163344.cmd`, une ligne :
`@call "D:\Game\Launcher\Engine\UE_5.8\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun -project="D:\Game\LifePlay-master 5.8\LifePlay.uproject" -platform=Win64 -clientconfig=Shipping -skipbuild -skipcook -stage -pak -iostore -compressed -createreleaseversion=2026.10.2.1a -archive -archivedirectory="D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -nodebuginfo -unattended -utf8output -nop4 > "D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Package_20261014-163344.log" 2>&1`
- Lancement : même `pwsh … cmd /c '…cmd'`, arrière-plan.
Étape e (**refusée**) : une commande `pwsh -Command` créant `D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping_PDB` (`New-Item`), copiant le PDB (`Copy-Item`, source conservée), calculant GUID RSDS et SHA-256, puis écrivant `BUILD-ID.txt` (`Set-Content`). Refusée par le crochet avant exécution (§ 11, E-D). Aucun octet écrit (vérifié, § 9).
Étape f : non exécutée (`Tools\CheckPackage.ps1 -Build "D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -Config Shipping`).
## 2. Code de sortie
- Étape a : `UeState.ps1` code 0 (`processus=0 editeur=0 compilation=0`) ; regex processus = 0.
- Étape b : `Build.ps1` `code=0 duree=76s erreurs=0 avertissements=1 autres=0 unites=10`, `EXIT=0` (sortie de tâche `bmat3vmzs`).
- Étape c : `EXIT=0` ; journal : `Took 148,36s to run UnrealEditor-Cmd.exe, ExitCode=0`, `BUILD SUCCESSFUL`, `AutomationTool exiting with ExitCode=0 (Success)`.
- Étape d : `EXIT=0` ; journal : `Took 2,06s to run UnrealPak.exe, ExitCode=0`, `Took 9,29s to run UnrealPak.exe, ExitCode=0`, `BUILD SUCCESSFUL`, `AutomationTool exiting with ExitCode=0 (Success)`.
- Étape e : pas de code (refus du crochet).
- Étape f : non exécutée.
- UeState final : `UeState code=0`, `processus=0 editeur=0 compilation=0`.
## 3. Modules recompilés
Journal `REL-ALPHA_Build_20261014-162604.log` (Grep, `[n/12]`) :
- `[2/12] Compile [x64] LPModGuard.cpp [NoUba]` (ligne 21) : **LPModGuard recompilé**.
- Unités (résumé `REL-ALPHA_Build_20261014-162604.txt`, 10) : LifePlay.cpp, LPBonusRewardSubsystem.cpp, LPCameraModeSubsystem.cpp, LPDebugSubsystem.cpp, LPDirectControlSubsystem.cpp, LPModGuard.cpp, LPOutdoorRoomSubsystem.cpp, LPSaveRelaunch.cpp, LPShowCoupleSubsystem.cpp, Module.LifePlay.cpp.
- `[11/12] Link [x64] LifePlay-Win64-Shipping.exe` (ligne 32) ; `[12/12] WriteMetadata LifePlay-Win64-Shipping.target`.
- `Output binary: D:\Game\LifePlay-master 5.8\Binaries\Win64\LifePlay-Win64-Shipping.exe` (ligne 37), `Result: Succeeded` (ligne 39).
- Dates relevées (`Get-Item`) : exe 164 987 904 o, 14/10/2026 16:27:19 ; PDB 227 487 744 o, 14/10/2026 16:27:19 ; `LPCameraModeSubsystem.cpp` 14/10/2026 15:21:00. L'exe est postérieur à la modification du source : relié par ce build (établi).
- DLL liées : 0 (sortie du résumé) ; le produit est un exe. Makefile : `Creating makefile` absent du journal, `Target is up to date` absent ; makefile réutilisé (estimé, la ligne `Makefile :` du résumé est vide).
- Note : `LPCameraModeSubsystem.cpp` compilé alors que sa date (15:21) est antérieure au build ; compilé comme unité (`Excluded from … unity file`, normal, lp-build § 7).
## 4. Erreurs et avertissements nouveaux
- **Compilation** : erreurs 0 ; avertissements **1**, comptés par `Build.ps1` (résumé l. 14-16) :
`LPCameraModeSubsystem.cpp:1643 : warning C4701 : variable locale 'Aim' potentiellement non initialisée utilisée` (journal l. 24).
Non listé au § 7 de lp-build : **nouveau** au sens de la fiche. Non corrigé (règle : relever). Incertain : depuis quand ce fichier porte cet avertissement (U8 ne l'a pas recompilé ; l'essai qui trancherait : relire la fonction, l. 1643, et comparer l'historique du fichier).
Autres lignes d'erreur (UBT, UHT, liens) : 0.
- **Cuisson** (`REL-ALPHA-T2_Cook_20261014-163344.log`, `Tools\LogStats.ps1 -Log`, 581 lignes) : Erreurs 0 ; Avertissements 0 ; Fatal 0 ; FailedToLoad 0 ; LogClassError 0 ; AccessedNone 0.
`LegacyIterative` (casse exacte) : absent (Grep, 0 ligne). Ligne l. 240 : `Falling back to legacy iterative cook mode` (Display, minuscules, même message que U8-T3r2 § 4) ; l. 251 : `FULL COOK: Incremental Cook Dependencies are disabled, and -legacyiterative was not specified.`
Paquets : `Cooked packages 8925 Packages Remain 0 Total 8925` (l. 312). U8-T3r2 avait 8923 : écart de 2 paquets, cause non recherchée.
Lignes `does not exist` : non relevées dans cette cuisson (non demandé par la fiche).
- **Paquet** (`REL-ALPHA-T2_Package_20261014-163344.log`) : `Packages read 8,917 files` (l. 145), `Input: 8917 Packages` (l. 218) : chiffre du paquet, à rapprocher des 8 925 cuits (non expliqué).
## 5. Toolchain
Résumé `REL-ALPHA_Build_20261014-162604.txt` l. 7 : `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`. MSVC épinglé 14.50.35717 de la copie 5.8 (lp-build § 1) : **conforme**. Moteur `D:\Game\Launcher\Engine\UE_5.8\Engine` (EngineAssociation 5.8, résumé l. 4).
## 6. Preuve de chargement d'addon
sans objet : la fiche ne demande pas de ligne d'addon. Le code modifié lié dans ce build est prouvé par `[2/12] Compile LPModGuard.cpp` (§ 3).
## 7. Journal archivé
- Build : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA_Build_20261014-162604.log`
- Résumé compté : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL-ALPHA\REL-ALPHA_Build_20261014-162604.txt`. Ce dossier est **hors table** de `Tools\EtatDir.ps1` (avertissement l. 1 de la sortie de tâche) : `etat\REL-ALPHA\` au lieu de `etat\REL\ALPHA\`. Non déplacé (fiche : aucune suppression, aucun déplacement sans demande).
- Cuisson : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Cook_20261014-163344.log` (+ `.cmd`).
- Paquet : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\REL-ALPHA-T2_Package_20261014-163344.log` (+ `.cmd`).
## 8. Durées par étape
| Étape | Durée | Source |
|---|---|---|
| a. contrôle d'entrée | non chronométrée (< 1 min, estimé) | commandes § 1 |
| b. compilation | 76 s (`Total execution time: 76.02 seconds`) | résumé l. 5, 10 |
| c. cuisson | 150,04 s (`BuildCookRun time`) ; `Cook command time: 148.47 s` | journal cuisson |
| d. paquet | 50,29 s (`BuildCookRun time`) ; archive 16,37 s | journal paquet |
| e. PDB | non faite | — |
## 9. Contrôles d'entrée et de sortie (établi)
- MD5 (8 premiers caractères, `Get-FileHash`) : **23 sur 23 identiques** à la fiche. CameraMode .cpp 1F10631F, .h 9AEE8D04 ; PC 707220A6 ; Room 93138747 ; GI 32FC0A97 ; Person 8668A47C ; TopRight CB835360 ; ShowCouple 3CDD572D / 44C721EE ; DirectControl 5F9D7E00 / 01D5EA3C ; OutdoorRoom DC68ED8A / 6A3EDD73 ; Debug F0081F9F / 78D3A079 ; SaveRelaunch A0CD6687 / F31173F6 ; BonusReward 16147626 / 87177C7A ; LifePlay.cpp 3F7FFA30 ; LPModGuard.cpp 54AAC4D9 ; LPModGuard.h C09543BE ; DefaultGame.ini 4F89F2D1.
- `Config\DefaultGame.ini` ligne 4 : `ProjectVersion=2026.10.2.1a` (établi).
- `Mods\` : 0 entrée. `LPSaveLocation.ini` dans la copie : 0.
- `LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping` : absent avant a, présent après d (archive). `…_Shipping_PDB` : **absent** après l'arrêt (`Test-Path` False).
- `Releases\2026.10.2.1a` : absent avant la cuisson, présent après (créé par c). `Releases\2026.10.2.0` (U8r2) : conservé, non touché.
- HEAD : `0745917`. `git status` non propre (Config, Content, Source, Docs modifiés : relevé de l'environnement, non refait). Le build porte donc sur l'arbre de travail, pas sur un commit propre : à noter pour la traçabilité.
## 10. Archive (étape d, établi)
- `D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping` : **2 078 fichiers, 1 573 482 014 octets** (`Get-ChildItem -Recurse -File -Force`, `Measure-Object`).
- Témoins : `*.pdb` 0 ; `LastResort*` 0 ; `Manifest_DebugFiles*` 0 ; `*sentry*` 0 ; `crashpad_handler.exe` 0 ; `LPSaveLocation.ini` 0.
- Exe archivé `Windows\LifePlay\Binaries\Win64\LifePlay-Win64-Shipping.exe` : 164 987 904 o, écrit le 14/10/2026 16:27:19, **MD5 4A9BBDB31D6F601ED13C7276FCB64218, SHA-256 1565BFA6C78997B7E6E9F1F3E833006CB67842BD717BFEFA618173B7BE2C31F8**.
- `Binaries\Win64\LifePlay-Win64-Shipping.exe` du projet : mêmes taille, date, MD5 et SHA-256 : **identique** (établi).
- Non vérifié : le CheckPackage (f) ; le GUID RSDS et le PDB copié (e).
## 11. Écarts et arrêt
- **E-A (shell, sans effet)** : les deux premières tentatives de contrôle d'entrée ont échoué en `ParserError` : le shell Bash a remplacé `$_` et `$p` (guillemets doubles). Relancées avec guillemets simples ; aucune commande du build n'était concernée.
- **E-B (EtatDir)** : lot `REL-ALPHA` hors table de `Tools\EtatDir.ps1` ; résumé et journaux de build sous `etat\REL-ALPHA\`, au lieu de `etat\REL\ALPHA\` (où se trouve la fiche). Ajouter la règle au script : hors de ce rôle (lp-build § 10 prévoit `etat\<Lot>\` + avertissement).
- **E-C (avertissement)** : `C4701` à `LPCameraModeSubsystem.cpp:1643`, nouveau au sens du § 7 de lp-build. Relevé, non corrigé.
- **E-D (refus du crochet, ARRÊT)** : à l'étape e, la commande `New-Item … Copy-Item … Set-Content` vers `D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping_PDB\` et `BUILD-ID.txt` a été refusée par le crochet `python -I %USERPROFILE%/.claude/hooks/ecriture-gardien.py` : « Cet agent n'a pas de droit d'écriture … Chemins libres : etat/, Saved/Logs/portage/, Saved/<lot>/, le dossier temporaire. » Aucune exécution (le PDB n'existe pas, § 9). Pas de contournement (ni Write, ni autre chemin). Étapes e, f et g à reprendre par un rôle ayant le droit d'écriture sur ce dossier, ou par l'utilisateur.
- Non fait : étape e (PDB, `BUILD-ID.txt`), étape f (CheckPackage), étape g complète (exe relevé, archive relevée, UeState = 0 relevé ; nombre de fichiers et taille relevés).
- Rien n'a été supprimé, déplacé ni modifié hors des `.cmd` et des sorties de build.
## Trace (TRACE1)
- **Contexte** : fiche REL-ALPHA-T2, build Shipping de livraison alpha 2026.10.2.1a ; copie 5.8, HEAD `0745917`, arbre non propre ; moteur UE 5.8 ; MSVC 14.50.35717 ; `-NoUBA`. Contrôles d'entrée conformes (23 MD5, Mods vide, dossiers absents).
- **Résultat** : compilation code 0, 0 erreur, 1 avertissement (C4701) ; cuisson `FULL COOK`, 8 925 paquets, 0 erreur, 0 avertissement ; paquet UAT code 0, 2 078 fichiers, 0 PDB / LastResort / Manifest_DebugFiles / sentry / LPSaveLocation.ini ; exe archivé identique à celui de Binaries (SHA-256 `1565BFA6…`). Arrêt à l'étape e sur refus du crochet.
- **Suite** : confier l'étape e (dossier `…_Shipping_PDB`, copie du PDB, `BUILD-ID.txt`) à un rôle autorisé ou à l'utilisateur, puis l'étape f (`CheckPackage.ps1`) et l'étape g ; décider du C4701 (`LPCameraModeSubsystem.cpp:1643`) ; ajouter `REL-ALPHA` à `Tools\EtatDir.ps1` ou accepter `etat\REL-ALPHA\` ; décider si le build vaut livraison sur un arbre non propre (HEAD `0745917`).
## Fichiers à commiter
- A `Docs/Migration/etat/REL/ALPHA/REL-ALPHA-T2-BUILD.md` (ce livrable, dépôt `D:\Game\LifePlay-master 5.8`, branche `ue5.8`).
- Hors git (Saved/ ignoré, ou généré par le build) : `Saved\Logs\portage\REL-ALPHA-T2_Cook_20261014-163344.cmd` et `.log`, `REL-ALPHA-T2_Package_20261014-163344.cmd` et `.log`, `REL-ALPHA_Build_20261014-162604.log` ; `Docs\Migration\etat\REL-ALPHA\REL-ALPHA_Build_20261014-162604.txt` (résumé, à classer par le gardien) ; `Releases\2026.10.2.1a\` (cuisson).
- Aucun fichier de `Source/`, `Config/`, `Content/` modifié.
Tours : 26 / 60 (à la rédaction, estimé ; `python -I Tools/FicheStats.py --lot REL-ALPHA` fait foi)
## Constats
- Le crochet `ecriture-gardien` refuse à lp-builder toute écriture shell hors `etat/`, `Saved/Logs/portage/`, `Saved/<lot>/` et le dossier temporaire, y compris la création d'un dossier de livraison : la fiche REL-ALPHA-T2 (étape e) ne peut pas être exécutée par cet agent telle quelle.
- À verser : lp-build § 8 — `Tools\EtatDir.ps1` : lot `REL-ALPHA` hors table, résumés sous `etat\REL-ALPHA\` ; lp-build § 8 — lp-builder ne peut pas écrire un dossier de livraison hors `etat/` (étape PDB d'une fiche de livraison : à confier à un rôle autorisé).