LifePlay-Revival/Docs/Migration/etat/OB/OBB/OBB-T7s-VAL.md

82 lines
10 KiB
Markdown
Raw Normal View History

Fiche OBB-T7s — Niveau N1 — Modèle prévu modèle de l'agent lp-validator | utilisé claude-sonnet-5-5 (Sonnet 5.5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate, lp-build (§ Shipping), sk-windows-shell
# OBB-T7s-VAL : démarrage court du Shipping neuf `D:\Game\LifePlay_Build_5.8_Shipping_OBB` (2026-10-10)
Hors gabarit : aucun. Verdict : **PASS** (critère de la rubrique 8 rempli, preuves ci-dessous). Réserve : « jusqu'au menu » n'est pas vu à l'écran, il est estimé (section 3, point E).
## 1. Fiches amont relues
- Fiche OBB-T7s (rubriques 1 à 9, reçue de l'orchestrateur).
- `Docs\Migration\etat\OB\OBB\OBB-TACHES.md:29` (ligne OBB-T7, lue en entier) : T7a et T7b acceptées, T7v acceptée PASS-STATIC, J1 terminé (signal `J1-FINI`), archive neuve sans `.git*` (2 082 fichiers selon T7b).
- `lp-build` § Shipping (`SKILL.md:69-72`) : le Shipping n'écrit aucun journal ; `-UserDir=<dossier>` obligatoire.
- Non relus : `OBB-T7a-BUILD.md`, `OBB-T7b-BUILD.md`, `OBB-T7v-VAL.md` (non nécessaires au critère ; la ligne du registre les résume). Aucune fiche IMPL dans ce lot pour T7s.
## 2. Points à confirmer des IMPL
sans objet : T7s est une validation d'exécution, aucune IMPL en amont (registre `OBB-TACHES.md:29`, lignes T7a/T7b = BUILD, T7v = VAL).
Point amont repris de la fiche : **L12** (audit OBA) : voir section 3, point F.
## 3. Critères rejoués (commande → résultat)
**A. État avant (établi, 13:1x)**
- `Get-Process LifePlay*, UnrealEditor*, CrashReportClient*` : aucun `LifePlay*` ; `UnrealEditor` PID 20764 et `CrashReportClientEditor` PID 28452 (éditeur 5.8 de l'utilisateur, `D:\Game\Launcher\Engine\UE_5.8\…`, jamais touchés).
- `%LOCALAPPDATA%\LifePlay\Saved` : 73 fichiers, liste avec taille, date d'écriture ISO et MD5 enregistrée dans `…\scratchpad\obb-t7s\saved_before.txt` (dernier fichier modifié : `SaveGames\21.sav` et `GameSettings.sav` le 2026-10-09 18:41:22). Dossier jetable `…\scratchpad\obb-t7s\userdir` : 0 fichier.
- Archive : `Windows\LifePlay.exe` MD5 `3EE2069D183BCE2B490573C01E34B911` (301 568 o), `Windows\LifePlay\Binaries\Win64\LifePlay-Win64-Shipping.exe` présent, `Windows\LifePlay\Content\Modules\.git` absent (`Test-Path` = False), 16 dossiers `vin_*` + `MorphTags` + fichiers `.txt` dans `Content\Modules`.
**B. Lancement (établi)**
`Start-Process -FilePath 'D:\Game\LifePlay_Build_5.8_Shipping_OBB\Windows\LifePlay.exe' -ArgumentList '-UserDir="<userdir>"','-windowed','-ResX=1280','-ResY=720' -PassThru` → PID **10272** (LifePlay.exe), heure **2026-10-10T13:17:37.796+02:00**. Processus enfant : PID **25776** `LifePlay-Win64-Shipping.exe` (parent 10272), chemin `D:\Game\LifePlay_Build_5.8_Shipping_OBB\Windows\LifePlay\Binaries\Win64\LifePlay-Win64-Shipping.exe` (`Get-CimInstance Win32_Process`). `-UserDir` présent.
**C. Observation (établi)** — t+ = secondes depuis le lancement.
| t+ | Shipping CPU cumulé | Mémoire de travail | CrashReportClient (hors Editor) | `<userdir>\Saved\Crashes` | Fichiers UserDir |
|---|---|---|---|---|---|
| 6 s (relevé ponctuel) | vivant | non relevée | 0 (relevé: aucun CRC jeu) | absent | 6 dossiers créés |
| 23 s (relevé ponctuel) | 47,3 s | 891 Mo | 0 | absent | — |
| 33 s | 68,1 s | 890 Mo | 0 | absent | 15 |
| 48 s | 93,9 s | 891 Mo | 0 | absent | 15 |
| 64 s | 121,5 s | 892 Mo | 0 | absent | 15 |
| 79 s | 149,2 s | 884 Mo | 0 | absent | 15 |
| 94 s | 176,9 s | 886 Mo | 0 | absent | 15 |
| 109 s | 203,9 s | 887 Mo | 0 | absent | 15 |
| 125 s | 231,2 s | 887 Mo | 0 | absent | 15 |
| 140 s | 258,8 s | 886 Mo | 0 | absent | 15 |
| 155 s | 285,9 s | 888 Mo | 0 | absent | 15 |
Avant l'arrêt : `Get-Process -Id 25776` → `Responding : True`, `MainWindowTitle : LifePlay`. Le processus Shipping est vivant à t+155 s au dernier relevé (> 120 s). Cadence de 15 s tenue de t+33 s à t+155 s ; voir écart 1 pour le début.
**D. Arrêt (établi)**
À 2026-10-10T13:20:23.8 (t+166 s) : `Stop-Process -Id 25776` puis `-Id 10272`, après contrôle du chemin de l'exe (commençant par `D:\Game\LifePlay_Build_5.8_Shipping_OBB\`). Ensuite : 0 processus `LifePlay*`, 0 `CrashReportClient` hors Editor. Aucun autre processus visé. Observation en fin de test : `Get-Process UnrealEditor*` ne renvoie plus rien (le PID 20764 du relevé initial a disparu entre-temps ; non établi par qui, voir écart 3).
**Résultat contrôle de `%LOCALAPPDATA%\LifePlay\Saved` (établi)** : après arrêt, 73 fichiers (avant : 73), comparaison ligne à ligne chemin|taille|date ISO|MD5 de `saved_before.txt` avec un relevé neuf (`Compare-Object`) : **0 différence**. Rien n'a été écrit dans le dossier réel. Archive : aucun fichier avec `LastWriteTime` > 13:15 (`Get-ChildItem -Recurse` sur `D:\Game\LifePlay_Build_5.8_Shipping_OBB`, sortie vide ; relevé après l'arrêt) : rien d'écrit dans l'archive.
**E. « Jusqu'au menu » (estimé)** : aucune capture d'écran ni journal (le Shipping n'écrit pas de journal). Éléments établis : processus répondant (`Responding True`), fenêtre titrée `LifePlay`, charge CPU constante (~27 s de CPU par 15 s, soit ~1,8 cœur), mémoire stable 884-892 Mo, et le jeu a écrit `LPKeyboard.ini` à 13:17:48 puis les 13 fichiers `LPDataCache` à 13:18:10. Déduction : initialisation et chargement des données achevés, menu atteint. Incertain : l'état visuel exact ; une capture ou un journal Development trancherait.
**F. L12 : le jeu lit les modules sans `.git` (établi pour la lecture, estimé pour l'énumération)**
UserDir en fin de test : 15 fichiers, 0 `Crashes`, dossier `Saved\Logs` créé mais vide :
`Saved\Config\CrashReportClient\UECC-Windows-A30B4D8544AF18D9FA10E8A93C7A9715\CrashReportClient.ini` (239 o), `Saved\Config\Windows\LPKeyboard.ini` (3 981 o), 13 fichiers `Saved\LPDataCache\*.json` (lpaction, lpai, lpcharacter, lpdesc, lphair, lpmod, lpnear, lpquest, lpscene, lpstat, lptalk, lpworld, txt).
- `lpmod.json` du UserDir : MD5 `01C036F4FCEC6B634EA68D9A1042FFAE`, identique à celui de `%LOCALAPPDATA%` ; il contient les 16 modules `vin_Base, vin_BDSM, vin_Bestiality, vin_corruption, vin_incest, vin_Interracial, vin_Netori, vin_nonconsensual, vin_ntr, vin_OldYoung, vin_polyamorous, vin_Pregnancy, vin_tentacles, vin_VanillaPorn, vin_VanillaRealistic, vin_Watersports` (extraction `vin_[A-Za-z]+` sur le fichier). `lpscene.json`, `lpaction.json`, `lpcharacter.json` : MD5 identiques à ceux du dossier réel.
- `txt.json` diffère (800 154 o contre 800 146 o) : unique zone différente à l'offset 11 123, entrée `modules/clothes4.txt` : UserDir `stamp 2026-10-09T19:11:51.000Z, size 39919`, dossier réel `stamp 2021-12-08T07:55:08.000Z, size 39931`. Le fichier de l'archive `Windows\LifePlay\Content\Modules\Clothes4.txt` fait 39 919 o, daté 2026-10-09T19:11:51Z (`Get-Item`) : le cache du UserDir reflète donc le fichier de l'archive, lu pendant le test.
- Conclusion : les modules et leurs fichiers texte sont lus depuis `Content\Modules` de l'archive, sans `.git`, et le cache résultant coïncide avec celui des sessions précédentes pour 4 des 5 fichiers comparés (et pour `txt.json`, à la seule différence du fichier modifié de l'archive). L'énumération des modules n'est pas affectée par l'absence de `.git` (établi sur ce démarrage). Non établi : l'effet sur un chargement de partie ou l'activation d'un module en jeu (hors périmètre).
## 4. Diff lu en entier
sans objet : aucune modification de fichier du projet (validation d'exécution). Inventaire de ce que j'ai écrit : dossier jetable `…\scratchpad\obb-t7s\userdir\` (15 fichiers, produits par le jeu) et `…\scratchpad\obb-t7s\saved_before.txt` ; rien dans l'archive, la copie, `%LOCALAPPDATA%\LifePlay` ni git (`git status` non modifié par moi).
## 5. Verdict
**PASS** : critère de la rubrique 8 : (a) processus Shipping vivant ≥ 120 s (155 s au dernier relevé, arrêté à 166 s) ; (b) 0 `CrashReportClient` (jeu) ; (c) 0 dossier `Crashes` dans le UserDir ; (d) `%LOCALAPPDATA%\LifePlay\Saved` inchangé (73 fichiers, 0 différence de MD5/date/taille).
Réserve : le menu n'est pas observé visuellement (estimé).
## 6. Points à confirmer par l'utilisateur
- [ ] Le critère « jusqu'au menu » suffit-il sans capture d'écran (estimé par fenêtre répondante + caches écrits) ou faut-il un contrôle visuel ?
- [ ] L'éditeur UE 5.8 (PID 20764) vu au relevé initial n'existe plus à la fin du test : fermé par l'utilisateur (probable) ? Non causé par ce test (voir écart 3).
- [ ] `txt.json` du dossier réel (`LPDataCache`, daté 2026-10-09 18:36) porte encore l'ancien `Clothes4.txt` (39 931 o, stamp 2021) : à mettre à jour par le jeu au prochain lancement normal, aucune action requise ici.
## Écarts à la fiche
1. **Début d'observation incomplet** : mon premier script (passé sur l'entrée standard de PowerShell) s'est interrompu juste après `Start-Process` (le jeu a hérité de l'entrée standard ; seule la ligne `LANCE PID=10272` est sortie). Le processus a continué à tourner. J'ai relevé l'état à t+6 s et t+23 s par commandes séparées, puis repris la boucle de 15 s à partir de t+33 s (9 relevés jusqu'à t+155 s). Pas de relevé à t+15 s ni à t+30 s ; arrêt à t+166 s (au lieu de 120 s). Aucun impact sur le critère, mais la cadence stricte de 15 s n'a pas été tenue sur les 33 premières secondes. Piège à noter dans `sk-windows-shell` : ne pas lancer le jeu depuis un script lu sur l'entrée standard.
2. Aucun fichier journal : attendu (Shipping sans journal).
3. Processus non liés : `UnrealEditor` (PID 20764) et `CrashReportClientEditor` (28452) étaient là au début ; `UnrealEditor` n'est plus listé à la fin. Je n'ai arrêté que les PID 25776 et 10272, vérifiés par chemin.
## Récapitulatif chiffré (recomptage, `sk-recount`)
| Élément | Valeur | Méthode |
|---|---|---|
| Fichiers `Saved` réel avant / après | 73 / 73 | `Get-ChildItem -Recurse -File` + `Compare-Object` sur MD5 : 0 différence |
| Fichiers UserDir | 15 (1 CrashReportClient.ini, 1 LPKeyboard.ini, 13 LPDataCache) | listing du UserDir |
| Relevés de survie | 9 relevés en boucle + 2 ponctuels | sorties de la section 3 C |
| Modules lus (lpmod.json) | 16 `vin_*` | regex `vin_[A-Za-z]+` (insensible à la casse des ids) |
Tours : 14 / 40