86 lines
12 KiB
Markdown
86 lines
12 KiB
Markdown
|
|
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.
|