LifePlay-Revival/Docs/Migration/etat/OB/OBB/OBB-T7-VAL.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

12 KiB
Raw Blame History

Fiche OBB-T7v — Niveau N1 — Modèle prévu modèle de l'agent lp-validator | utilisé Sonnet 5.5 (claude-sonnet-5-5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate, lp-doc (gabarit VAL)

OBB-T7-VAL : verdict sur B1 / B2 / B3 dans le build Shipping neuf Shipping_OBB, et explication de l'écart de taille avec Shipping_U8 (2026-10-10)

Verdict : PASS-STATIC. Les 4 contrôles valent 0 avec témoins non nuls, aucun .git dans l'archive, le .rsp Shipping est corroboré par une lecture de l'exe lui-même, et l'écart de taille est expliqué à l'octet (somme des parties = −219 802 914 o). Le démarrage du build reste à faire (reporté, aucun jeu lancé). Un constat hors critère est à décider par l'utilisateur : l'archive contient le PDB (225 570 816 o) et les polices de debug, car -nodebuginfo n'a pas été passé (voir Constats C1).

1. Fiches amont relues

  • D:\Game\LifePlay-master 5.8\Docs\Migration\etat\OB\OBB\OBB-T7a-BUILD.md (compilation Shipping, code 0, 8 tours) : lu en entier.
  • D:\Game\LifePlay-master 5.8\Docs\Migration\etat\OB\OBB\OBB-T7b-BUILD.md (cuisson complète, archive neuve, CheckPackage code 0, 15 tours) : lu en entier.
  • etat\OB\OBA\OBA-T5-EVAL.md l. 89-98 (les 4 contrôles B3 et la preuve par l'échec attendue sur U8) ; etat\U58\U8\U8-T4-BUILD.md (commande U8 et constats : lignes 9 et 41-52 relues par Grep) ; Tools\CheckPackage.ps1 (lu en entier, 229 lignes).
  • Aucune IMPL dans ce lot-fiche (aucun fichier suivi modifié par T7a / T7b : T7a § Constats, T7b § Fichiers à commiter).

2. Points à confirmer des fiches amont

Point (source) Résultat Preuve
(a) .rsp Shipping non réécrit (T7a § 3 et Constats) : contenu conforme à l'exe PASS Exe OBB : LPAnimMeasure 0 occurrence (ASCII et UTF-16), LPAnimCore 1, LPSandbox 0 ; exe U8 (témoin par contraste) : LPAnimMeasure 1. .rsp : LPAnimMeasure 0, LPSandbox 0, LPAnimCore 1 (l. 686), Module.LifePlay.cpp.obj l. 693 (obj daté 13:04:39, seul objet récent), /OUT l. 1216 = l'exe du projet. 1 100 objets sur 1 134 entrées existent ; les 34 absents sont des bibliothèques système (delayimp.lib, wininet.lib…) résolues par le chemin de bibliothèques. Cohérent avec « UBT ne réécrit le .rsp que si son contenu change » (estimé, non rejoué).
(a') CheckPackage a bien retenu le .rsp (PASS, pas NON-CONCLUANT) PASS Rejoué : [3] PASS 0. Lecture de Get-StaleReason (l. 101-123) : le .rsp n'est écarté que s'il est postérieur de plus de 10 min à l'exe ; un .rsp plus ancien (ici −17 h) est retenu par construction. Le PASS n'est donc pas une preuve de fraîcheur du .rsp : c'est la lecture binaire de l'exe qui la fournit.
(b) Écart de taille (T7b § Mesures) PASS Expliqué en § 3 (tableau de réconciliation).
T7a § 6 : addon non concerné, non vérifié dans .target / .uproject PASS LifePlay.uproject l. 30-38 : LPSandbox, Optional, TargetAllowList: ["Editor"] ; .target : 226 entrées BuildPlugins, LPSandbox absent, LPAnimCore présent ; 0 occurrence de LPSandbox ou LPAnimMeasure dans tout le .target.
T7a § 3 : « DLL liées : 0 » à confirmer PASS-STATIC Sous Windows\LifePlay\Binaries\Win64 : 6 fichiers seulement (exe, pdb, d3d12core.dll, d3d12sdklayers.dll, tbb12.dll, tbbmalloc.dll) : aucune DLL de plugin ; exe monolithique.
T7a Constats : -NoUBA / « UBA local executor » reporté Journal OBB_Build_20261010-130315.log l. 2 (-NoUBA passé), l. 18 (UBA Storage capacity), l. 19-22 ([NoUba]) : sans effet sur le contenu ; interprétation de l'exécuteur laissée à l'orchestrateur.
T7a Constats : makefile invalidé « source file added », source non identifiée reporté Journal l. 8 relue ; la source ajoutée n'est pas recherchée (hors fiche). Sans effet sur B1-B3 (contrôles à 0).
T7b § 2 : ligne ExitCode de l'UnrealPak IoStore non relue PASS Journal OBB_T7b_20261010-130716.log l. 829 : Took 13,62s to run UnrealPak.exe, ExitCode=0 (en plus de l. 696, 597, 844).
T7b : Clothes4.txt embarqué, octets non comparés PASS Présent dans l'archive (manifeste NonUFS : 1 ligne). Taille U8 39 931 o, OBB 39 919 o (−12 o), cohérent avec un fichier modifié non commité. Contenu non comparé.
T7b : Modules\.git absent non contrôlé PASS Test-Path -LiteralPath …\Windows\LifePlay\Content\Modules\.git = False ; parcours -Recurse -Force : 0 entrée .git* (fichier ou dossier) ; 2 082 fichiers et 193 dossiers.
T7b : durée par horloge externe reporté Sans effet sur le verdict.

3. Critères rejoués

Scripts (scratchpad …\scratchpad\obb-t7v\ : c1.ps1 à c6.ps1, exe_strings.py, files_U8.csv, files_OBB.csv), lecture seule.

3.1 CheckPackage : pwsh -NoProfile -File Tools\CheckPackage.ps1 -Build D:\Game\LifePlay_Build_5.8_Shipping_OBB -Config Shipping → [1] PASS 0, [2] PASS 0, [3] PASS 0, [4] PASS 0, Resultat : PASS (code 0), CHECKPACKAGE_EXIT=0 (attendu 0 : conforme). Exe archive et exe du projet : 2026-10-10 13:05:08, 164 830 208 o.

3.2 Recompte par une autre méthode (Select-String -SimpleMatch, ConvertFrom-Json, Get-ChildItem -Force) :

Contrôle Attendu Recompté OBB Témoin non nul
B1 NonUFS Modules/.git 0 0 (aussi Modules\.git 0 et .git 0) NonUFS Modules/ : 2 053 ; U8 : 142
B2 UFS LPSandbox 0 0 (LPAnimMeasure 0 aussi) UFS StreetMap : 1 129 ; U8 : 1 (RemappedPlugins/LPSandbox/LPSandbox.uplugin)
B3 .rsp LPAnimMeasure 0 0 (LPSandbox 0) LPAnimCore 1 ; .rsp 1 218 lignes
B3 .target BuildPlugins sans LPSandbox absent absent (JSON : 226 entrées, LPSandbox False) LPAnimCore True
Aucun .git sous l'archive 0 0 entrée (-Recurse -Force) U8 : dossier .git présent (True)

3.3 Écart de taille U8 → OBB (comptes par Get-ChildItem -Recurse -Force -File, comparaison par chemin relatif). U8 : 2 220 fichiers, 2 024 056 223 o. OBB : 2 082 fichiers, 1 804 253 309 o. Écart : −138 fichiers, −219 802 914 o (chiffres de la fiche confirmés).

Par dossier (niveau 2) : Windows\LifePlay −141 f / −225 184 665 o ; Windows\Engine +2 f / +5 395 982 o ; Windows\(fichiers racine) +1 f / −14 231 o. Niveau 3 : LifePlay\Content −142 f / −450 762 137 o ; LifePlay\Binaries +1 f / +225 577 472 o ; Engine\Content +2 f / +5 395 982 o.

Réconciliation par fichier (tous les écarts ; 142 fichiers seulement U8, 4 seulement OBB, 7 communs de taille différente, 0 autre) :

Écart Fichier(s) Octets Fichiers Cause
Retrait B1 Content\Modules\.git\* (seulement U8) −450 763 872 −142 dépôt git des modules retiré : somme exacte de la fiche (142 fichiers, 450 763 872 o)
Ajout Binaries\Win64\LifePlay-Win64-Shipping.pdb +225 570 816 +1 PDB staged, -nodebuginfo absent (C1) ; même taille que le PDB du projet
Ajout Engine\Content\SlateDebug\Fonts\LastResort.ttf +5 395 052 +1 fichier « debug » staged (idem, Manifest_DebugFiles)
Ajout …\LastResort.tps +930 +1 idem
Ajout Windows\Manifest_DebugFiles_Win64.txt +224 +1 manifeste des 3 fichiers debug ci-dessus (3 lignes)
Différence Manifest_NonUFSFiles_Win64.txt −14 385 0 142 lignes .git en moins (2 213 → 2 071) ; par chemin, 0 ligne seulement OBB
Différence Manifest_UFSFiles_Win64.txt −70 0 1 ligne de moins (22 070 → 22 069) : RemappedPlugins/LPSandbox/LPSandbox.uplugin absente d'OBB (B2)
Différence LifePlay-Win64-Shipping.exe +6 656 0 exe relié par T7a (Module.LifePlay.cpp recompilé), LPAnimMeasure en moins (voir (a))
Différence Paks\LifePlay-Windows.ucas / .pak / global.ucas +2 048 / −845 / +544 0 cuisson complète du 10-10 (U8 : -skipcook) ; contenu cuit des paquets non commités MainMenu, GI ; < 1 Mo (estimé)
Différence Content\Modules\Clothes4.txt −12 0 fichier Modules non commité, voulu
Total −219 802 914 −138 = −450 763 872 + 230 967 022 (4 fichiers) − 6 064 (7 différences)

Contrôles de somme : Modules hors .git U8 14 987 403 o (2 053 f) contre OBB 14 987 391 o (2 053 f) : écart −12 o = Clothes4.txt seul ; .git U8 142 f / 450 763 872 o. Donc le retrait du .git est réalisé à l'octet près (−450 763 872 o, −142 f) et le « manque » de la fiche (+230 960 958 o, +4 f) = +230 967 022 o de 4 fichiers de debug − 6 064 o de différences communes. Écart > 1 Mo inexpliqué : aucun. Le Content hors Modules : U8 1 367 165 156 o contre OBB 1 367 166 903 o (+1 747 o = ucas/pak/global.ucas), 6 fichiers de part et d'autre.

3.4 Manifestes : NonUFS U8 2 213 lignes, OBB 2 071 lignes : −142 (attendu −142 : conforme) ; comparés par chemin (horodatages ignorés) : 142 chemins seulement U8 (tous Modules/.git), 0 seulement OBB. UFS : 22 070 → 22 069 (−1, LPSandbox.uplugin), 0 chemin en plus. Les écarts bruts « 4 lignes en plus » viennent des horodatages ; les lignes en plus côté OBB sont les mêmes chemins redatés.

4. Diff lu en entier

Sans objet : aucune modification de fichier suivi dans ce lot-fiche (T7a, T7b : aucun fichier suivi touché ; le seul fichier produit par cette VAL est ce livrable). git status --short relevé en lecture : fichiers M/?? d'autres lots (STE, STF, OBB-TACHES), plus Content/UI/CharGen.uasset M (voir C2). Aucun contrôle de fins de ligne ni de compilation (non demandés).

5. Verdict

PASS-STATIC. Critère de la fiche § 8 : 4 contrôles à 0 avec témoins (3.2), aucun .git dans l'archive, écart de taille entièrement expliqué (3.3). Reste à faire, reporté : démarrage du Shipping (aucun jeu lancé) ; contrôle de contenu des 7 fichiers de taille différente non rejoué au-delà des tailles (pas de hachage, archives ~2 Go).

6. Points à confirmer par l'utilisateur

  • PDB et polices de debug dans l'archive (C1) : accepter l'archive Shipping_OBB telle quelle (225 570 816 o de PDB + 5 396 206 o de debug), ou la refaire avec -nodebuginfo comme U8 ? Le PDB est déjà copié à part dans D:\Game\LifePlay_Build_5.8_Shipping_OBB_PDB (1 fichier, 225 570 816 o).
  • Démarrage de Shipping_OBB (écran titre, nouvelle partie, Continuer) : reporté, à faire par l'utilisateur ou une fiche dédiée (aucun jeu lancé ici).
  • Durcissement éventuel de CheckPackage.ps1 : un .rsp plus ancien que l'exe est retenu sans alerte (C3). Non corrigé ici.

Tours : 17 / 40

Constats

  • C1 (écart à la convention U8, hors B1-B3) : la commande UAT de T7b (OBB-T7b-BUILD.md l. 9) n'a pas -nodebuginfo, que celle de U8 portait (U8-T4-BUILD.md l. 9). Effet établi : Manifest_DebugFiles_Win64.txt (3 lignes) et 230 967 022 o de fichiers de debug dans l'archive (PDB 225 570 816 + LastResort 5 395 982 + manifeste 224). Le PDB étant dans l'archive, la copie _PDB est redondante, et BUILD-ID.txt (présent pour U8) n'existe pas pour OBB (dossier _PDB : 1 fichier ; U8_PDB : 2). La fiche T7b elle-même n'est pas relue ici : on ne sait pas si l'omission était voulue.
  • C2 (reproductibilité) : Content/UI/CharGen.uasset est M dans git status (daté 2026-10-10 13:17:29), donc après la fin de l'archive (conteneurs 13:11:40) : il n'est pas dans le build ; MainMenu.uasset (12:14:14) et GI.uasset (12:44:19) sont antérieurs à la cuisson (13:07-13:12), donc embarqués comme voulu. CharGen ne figurait pas dans l'état git relevé à l'ouverture de la session : modification par un autre lot en cours (STF / STE), non attribuée ici.
  • C3 (limite de l'outil) : CheckPackage.ps1 [3] ne rejette que les .rsp / .target postérieurs à l'exe ; le PASS [3] seul n'établit pas que le .rsp date du build. Ici établi autrement (lecture binaire de l'exe, § 2 (a)).
  • Note de méthode : le script de comparaison de manifestes a d'abord échoué (HashSet::new ambigu), corrigé dans le scratchpad, sans effet sur les résultats ; les chemins relatifs du .rsp sont relatifs à Engine\Source (premier essai avec une mauvaise base, rejoué).
  • Aucune écriture dans les archives, la copie, D:\Game\LifePlay_Build_5.8_STF-STE_Development ni git ; aucun jeu ni éditeur lancé.

Fichiers à commiter

  • A Docs/Migration/etat/OB/OBB/OBB-T7-VAL.md (copie 5.8, branche ue5.8), par le gardien.