LifePlay-Revival/Docs/Migration/etat/REL/ALPHA/REL-ALPHA.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

95 lines
9.7 KiB
Markdown

Fiche REL-ALPHA — Niveau N1 (lot) — Modèle prévu opus (orchestration) ; lp-writer, lp-validator, lp-builder (sonnet / haiku) | utilisé claude-opus-5-5 (préparation) — Agent session REL — Skills lp-lot, lp-build, lp-paths
# REL-ALPHA : build de livraison de l'alpha 2026.10.2.1a (2026-10-14) — fiche préparée, en attente d'UE-GO
Demande de l'utilisateur, transmise par Big Boss le 2026-10-14 : « bien je valide le comportement de l'alpha. Prépares la build de livraison ».
- Base : l'arbre actuel, qui correspond à COMMUN-13 validé, plus le seul changement de version.
- **Rien n'est encore fait dans UE.** Seul un relevé T0 de `%LOCALAPPDATA%\LifePlay` a été pris, en lecture seule (§ T4).
## Point à trancher avant T1 (Big Boss / utilisateur) : la lettre « a » casse le contrôle de version des mods
**Constat** (établi, lecture du code) :
- `LPModGuard.cpp:52-73` (`ParseVersion`) refuse toute composante non numérique : `2026.10.2.1a` est donc **illisible**.
- Conséquence 1 : `bGameParsed = false` (l. 272). Le contrôle « version max » des mods est **désactivé** sans bruit en Shipping (l. 381), puisque la ligne d'erreur (l. 277) n'existe qu'en journal et que le Shipping n'en a pas.
- Conséquence 2 : `BuildMod.ps1:181, 279` (addon) inscrit `MODULE_GAME_VERSION: <ProjectVersion>` dans tout mod construit contre ce jeu. Un mod construit pour l'alpha porterait `2026.10.2.1a`. Il serait **refusé** par le contrôle « version min », actif par défaut (`LPModGuard.cpp:366-371`, « unreadable game version »).
- `LPVersionSubsystem.cpp:15` affiche la chaîne telle quelle (`GI.version_text`) : aucun problème de ce côté.
| Option | Changement | Effet |
|---|---|---|
| **A (recommandée)** | `ProjectVersion=2026.10.2.1` ; « alpha » seulement dans le nom de l'archive, le tag `v2026.10.2.1a` et les notes de version | contrôles des mods intacts ; aucun code touché ; le menu affiche `2026.10.2.1` |
| B | Garder `2026.10.2.1a`, puis accepter un suffixe de lettres dans `ParseVersion` (C++ de `LPModGuard`, VAL, build) | touche au format `MODULE_GAME_VERSION` des mods, donc au contrat des mods, figé : décision dédiée de l'utilisateur ; risque avant la livraison |
| C | Garder `2026.10.2.1a` sans rien changer | version max désactivée ; mods construits pour l'alpha refusés tant que le joueur ne décoche pas le contrôle dans Settings > Misc. **Déconseillé** |
## Étapes (une fiche par étape, livrables dans ce dossier)
### T1 — Version (sans jeton UE)
- `Tools\Snapshot.ps1 -Lot REL-ALPHA -Path Config\DefaultGame.ini`, puis Edit de la ligne 4 : `ProjectVersion=2026.10.2.0` → valeur de l'option retenue. Fins de ligne d'origine gardées (`git ls-files --eol` relevé avant).
- Diff attendu : 1 ligne. Livrable : `REL-ALPHA-T1-IMPL.md`.
- **T1v** (lp-validator, agent distinct) :
- `git diff -- Config/DefaultGame.ini` = 1 ligne ;
- MD5 de l'instantané = MD5 de HEAD ;
- aucun autre fichier de `Config/` modifié ;
- format conforme à `ParseVersion` si l'option A est retenue.
Livrable : `REL-ALPHA-T1v-VAL.md`.
### T2 — Build Shipping (lp-builder, sous UE-GO)
1. **Contrôle d'entrée.** `UeState.ps1` : 0 processus. MD5 relevés par `Get-FileHash` et comparés à ceux de COMMUN-13 (message de Big Boss du 2026-10-14) :
- 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 ;
- ajouts REL-ALPHA (option B) : `LPModGuard.cpp` 54aac4d9 (V2, VAL V3 PASS-STATIC), `LPModGuard.h` c09543be (inchangé), `Config/DefaultGame.ini` 4f89f2d1 (`ProjectVersion=2026.10.2.1a`, VAL T1v PASS).
Écart = ARRÊT. Aussi : `Mods\` vide ; aucun `LPSaveLocation.ini` dans la copie.
2. **Compilation** : `.\Tools\Build.ps1 -Lot REL-ALPHA -Target LifePlay -Config Shipping -ExtraArgs '-NoUBA'` (procédure U8-T2r2). Critère : code 0, 0 erreur, 0 avertissement nouveau.
3. **Cuisson à froid**, sans `-iterate` (doc 21 l. 214, U8-T3r2) : `.cmd` d'une ligne `RunUAT.bat BuildCookRun -project=… -platform=Win64 -clientconfig=Shipping -skipbuild -cook -createreleaseversion=<version> -unattended -utf8output -nop4`, avec la sortie redirigée **dans le `.cmd`** (le crochet refuse `>` sur la ligne de commande de l'agent).
Critères : `FULL COOK` présent ; `LegacyIterative` (casse exacte) absent ; 0 erreur ; 0 avertissement ; nombre de paquets relevé.
4. **Mise en paquet** (U8-T4r2) : `-skipbuild -skipcook -stage -pak -iostore -compressed -createreleaseversion=<version> -archive -archivedirectory="D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -nodebuginfo`.
PDB copié dans `D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping_PDB` avec `BUILD-ID.txt` (GUID RSDS de l'exe).
5. **CheckPackage** : `pwsh -NoProfile -File Tools\CheckPackage.ps1 -Build "D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -Config Shipping`. Critère : PASS, code 0.
6. Livrable : `REL-ALPHA-T2-BUILD.md`, avec les journaux archivés sous `Saved\Logs\portage\REL-ALPHA_*` et une ligne de traces.
**Durée estimée** (estimé d'après U8r2 et COMMUN-13) : **20 à 35 min de jeton UE**.
- Compilation Shipping : 5 à 15 min. Le module LifePlay est à recompiler en entier, puisque le dernier exe Shipping de la copie date du 2026-10-10.
- Cuisson complète : 3 à 10 min (U8r2 : 2 min 31 s ; assets modifiés depuis).
- Paquet : 1 à 2 min ; CheckPackage et PDB : 1 à 2 min.
### T3 — Contrôles du Shipping (lp-validator, sans lancer le jeu, sans jeton UE)
| Contrôle | Méthode | Attendu |
|---|---|---|
| Version | `UnrealPak.exe <archive>\Windows\LifePlay\Content\Paks\LifePlay-Windows.pak -Extract <scratchpad> -Filter=*DefaultGame.ini`, ou `-List` puis extraction ; `Releases\<version>` créé par la cuisson | `ProjectVersion=<version>` dans l'ini du pak ; dossier `Releases\<version>` présent |
| `DrawDebugBox` (ERR-124) | Lecture : `EngineDefines.h:13-15` donne `UE_ENABLE_DEBUG_DRAWING = !(SHIPPING \|\| TEST) \|\| WITH_EDITOR`, et `DrawDebugHelpers.h:14` : les appels sont vides en Shipping. Archive : contrôle croisé par `-clientconfig=Shipping` dans le journal UAT | établi par lecture ; aucun appel actif en Shipping |
| Témoins de débogage | `LPDebugSubsystem.cpp:7` (`#if !UE_BUILD_SHIPPING`) ; dans l'exe (UTF-16LE) : 0 occurrence de chaînes propres au débogage, par exemple `Profiling/LPDebug` et `MemReports` (`LPDebugSubsystem.cpp:78, 101`) | 0 |
| Garde LPSaveRelaunch | Dans `LifePlay-Win64-Shipping.exe` (UTF-16LE) : `LP_SAVE_RELAUNCHED`, `LPSaveLocation.ini`, `\LifePlay-Revival`, `-lpnosaverelaunch`, `SaveLocation`, `Content\Paks\LifePlay-Windows.pak` | 6 sur 6 présentes |
| Sentry absent | Archive : 0 fichier `*sentry*`, 0 `crashpad_handler.exe` ; exe : 0 `sentry` (ASCII et UTF-16, sans casse) | 0 |
| `LPSaveLocation.ini` | `Get-ChildItem -Recurse <archive> -Filter LPSaveLocation.ini` | 0 |
| Développement | CheckPackage (T2.5) : aucun PDB, addon, `.git` ni `LastResort*` dans l'archive | PASS |
Livrable : `REL-ALPHA-T3-VAL.md`.
### T4 — Essais E5 et E9 avec l'utilisateur (Shipping, via Big Boss)
- **Relevé T0** pris le 2026-10-14 (lecture seule) : `REL-ALPHA-releve-T0-LifePlay.csv` (chemin relatif, octets, date, MD5). Contenu de `%LOCALAPPDATA%\LifePlay` : **68 fichiers, 19 650 943 octets, dernière écriture 2026-10-13 23:17:10**. `%LOCALAPPDATA%\LifePlay-Revival` est absent.
- Note : les écritures du 2026-10-13 entre 22:58 et 23:17 (`WindowsNoEditor\*.ini`, `UE4CC-*`, `Default.sav`, `GameSettings.sav`) viennent d'un jeu **UE4**, la version d'origine. Ce dossier reste donc le dossier vivant des anciennes versions.
- **Juste avant l'essai** : refaire le même relevé (`T1`), identique à T0 sauf si une ancienne version a été jouée entre-temps, et vérifier que `LifePlay-Revival` est absent.
- **E9 (Shipping sans `.ini`)** : l'utilisateur lance `<archive>\Windows\LifePlay.exe`, puis fait une nouvelle partie, une sauvegarde, quitte, relance et charge par Continuer. Attendus :
- pendant le jeu, `Get-CimInstance Win32_Process -Filter "Name like 'LifePlay%'"` montre 3 processus : le bootstrap, le parent `LifePlay-Win64-Shipping.exe` sans `-UserDir`, et l'enfant avec `-UserDir="…\LifePlay-Revival"` ;
- `%LOCALAPPDATA%\LifePlay-Revival\Saved\{Config,SaveGames}` est créé ;
- Continuer recharge la partie ;
- **relevé T2, pris après la fermeture du dernier jeu, identique à T1** (0 fichier créé ou modifié dans `%LOCALAPPDATA%\LifePlay`).
- **E5 (`SaveDir` invalide)** : poser `<archive>\Windows\LifePlay\LPSaveLocation.ini` avec `[SaveLocation]` et `SaveDir=relatif\x`, lancer puis quitter. Même dossier `LifePlay-Revival`, même ancien dossier intact. **Retirer le `.ini` après l'essai**, puisque l'archive se publie sans lui.
- Sans journal en Shipping, la preuve vient des lignes de commande, des dossiers et des relevés. Livrable : `REL-ALPHA-T4-ESSAI.md`.
### T5 — Après l'essai de l'utilisateur
- Copie de l'archive vers `D:\Game\LifePlay_Publication\` contrôlée par `Tools\PubCheck.ps1` (code 0 exigé).
- Notes de version : brouillon `REL-ALPHA-NOTES.md`, soumis à Big Boss. Elles reprennent le README REL-SAV-DOC D1 (nouveau dossier, anciennes sauvegardes non déplacées, `LPSaveLocation.ini`).
- Tag local `v2026.10.2.1a` par le gardien, après les commits des lots ordonnés par Big Boss. Pas de push.
## Contraintes
Agents lp-* ; ni `tee`, ni `>`, ni `->` dans les commandes des agents (redirection seulement dans un `.cmd` écrit par Write) ; un refus du crochet entraîne l'arrêt et un compte rendu ; aucun jeton UE avant l'UE-GO ; aucun fichier hors `Config/DefaultGame.ini` (T1) et les livrables.