Fiche TRACE1-T4a — Niveau N3 — Modèle prévu opus | utilisé claude-opus-5-5 (déclaré par l'environnement) — Agent lp-impl — Skills sk-protocol, sk-windows-shell, lp-paths (préchargés aussi : ue-cpp-build, lp-build, lp-ue-compat, sans usage ici) # TRACE1-T4a-IMPL : Tools\Traces.ps1, inventaire des traces en lecture seule (2026-10-13) Script écrit, critères 1 à 4 de `TRACE1-T3-SPEC.md` § 7 et analyse (critère 7, partie Traces) prouvés par essais à blanc ; sorties brutes et notes TRACE en `## Constats`. Aucun fichier déplacé, renommé, supprimé ni envoyé à la corbeille ; `Tools\Corbeille.ps1` (fiche T4b) non lu ni touché ; aucune commande Unreal ; aucune commande git qui écrit. ## 1. Fichiers modifiés - `D:\Game\LifePlay-master 5.8\Tools\Traces.ps1` : **créé**, 474 lignes, LF, sans BOM, ASCII seul (0 octet non ASCII, 0 CR : `tr -cd '\r' | wc -c`, `grep -c -P '[^\x00-\x7F]'`). - l. 1-97 : aide `.SYNOPSIS .DESCRIPTION .PARAMETER .EXAMPLE` (racines, motifs, filtre, colonnes, format d'index, codes) ; l. 98-106 : `[CmdletBinding()] param(-Inventaire, -Avant, -Index, -Doublons, -Sortie, -Json)` ; `$ErrorActionPreference = 'Stop'`. - l. 114 `Hide-LPProfil` (profil → `%USERPROFILE%`) ; l. 119 `Write-LPAvert` (sortie d'erreur) ; l. 121 `Test-LPBackup`. - l. 124 `Get-LPDateProduction` : 3 motifs de la SPEC dans l'ordre, sinon `LastWriteTime`. - l. 154 `Get-LPRacines` : racines de T1 § 1 sans celles de Q4 ; l. 183 `Get-LPEntrees` : parcours `Get-ChildItem -LiteralPath -Recurse -File -Force`, motifs et filtre de T1, exclusions de la SPEC § 3, instantanés lus dans les `manifest.csv`, dossiers de plantage regroupés. - l. 278 `Get-LPCapacitesCorbeille` (`Win32_Volume.DeviceID` {guid} ↔ `HKCU:\…\BitBucket\Volume\{guid}\MaxCapacity`). - l. 294-347 : index (`Split-LPListe`, `Expand-LPAccolades`, `ConvertTo-LPMotifs`, `Get-LPMotifsIndex`). - l. 349-372 : mise en ligne et écriture TSV (`[IO.File]::WriteAllText`, UTF-8 sans BOM, LF : seule écriture du script, l. 368, chemin rendu absolu par `GetUnresolvedProviderPathFromPSPath`). - l. 374 : garde de chargement par `.` (fonctions définies, rien lancé) ; l. 376-474 : corps sous `try`, `catch` → `ERREUR …` et code 2. - Fichiers d'essai sous `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AG\TRACE1\` (tous `TRACE1-T4a-*`) : `TRACE1-T4a-essais.ps1` (étapes d'essai rejouables : `-Etape Compare|Detail|Avant|Index|Doublons|Capacites|Manifestes|Compte|Dates|Existence`), `TRACE1-T4a-inventaire.txt` (3 083 entrées), `TRACE1-T4a-avant.txt` (74), `TRACE1-T4a-index.txt`, `TRACE1-T4a-index-vide.txt`, `TRACE1-T4a-doublons.txt` (1 138 lignes), `TRACE1-T4a-index-temoin.csv`, `TRACE1-T4a-index-temoin-vide.csv`, et ce livrable. ## 2. Écarts à la SPEC - **E1, défaut de `-Avant`** : la SPEC se contredit. Le § 3 dit « défaut : même jour du mois précédent ». Le § 7.1 et la fiche § 4 l. 9 attendent de `-Inventaire` sans `-Avant` le compte complet de T1. Les commandes de la fiche font foi : sans `-Avant`, aucun filtre ; le défaut de la SPEC reste accessible par `-Avant mois` (essai : `avant : 2026-09-13`). Point à confirmer. - **E2, colonnes** : aux 5 colonnes de la SPEC (`Cat, Chemin, Octets, DateProduction, SourceDate`, dans cet ordre) s'ajoutent `Fichiers`, `Index` (`couverte` | `sans-resume`) et `Corbeille` (`ok` | `trop-gros`), puisque la SPEC ne dit pas où portent ces marques. Le TSV a une ligne d'en-tête et `DateProduction` s'écrit `yyyy-MM-dd HH:mm:ss`. - **E3, `-Doublons`** : la liste devient celle des doublons (`Groupe, Role, MD5` + colonnes ci-dessus). Trois rôles : `original` (hors `Backup_5.5`), `copie` (sous `Backup_5.5`, avec un original dans le groupe) et `copie-seule` (aucun original). La ligne `DOUBLONS groupes= copies= octets-copies=` s'affiche avant la ligne `TRACES`, qui reste la dernière. `-Inventaire` et `-Doublons` s'excluent (code 2). Seules les entrées fichiers sont comparées, pas les dossiers de plantage. - **E4, règle « ni .md ni .csv » limitée aux racines `Docs\Migration\etat` des copies**, comme les comptes de T1 le montrent. Une première version l'appliquait à tout chemin contenant `\Docs\Migration\etat\` : elle retenait 382 fichiers de `LifePlay_Publication\{clean,v1,v1b}\Docs\Migration\etat\` et 1 de `Backup_5.5\DC4\clone_essai1`, absents de T1, d'où la correction (Constats, essai 1, premier passage). Les motifs se lisent sur le chemin absolu. T1 semble avoir lu `.ini hors Crashes\` sur le chemin relatif à la racine, et laissé de côté 44 `CrashReportClient.ini` des plantages de `5.5\Saved` et `5.8\Saved`. Ici, ils sont inclus et suivent leur dossier de plantage. - **E5, manifestes** : `Rel` (format de `Snapshot.ps1`) est lu, la colonne `chemin` relative est aussi admise (`Backup_5.5\P7\T6a\manifest.csv`). Un manifeste sans l'une ni l'autre fait exclure **tout son dossier** (`Backup_5.5\P7\T5\manifest.csv`, colonnes `Path,MD5,Existed` à chemins absolus de l'addon : 1 avertissement). Un dossier de plantage dont un fichier est un instantané est retiré en entier. - **E6, dates** : le motif `backup-(\d{4})\.(\d{2})\.(\d{2})` reprend l'heure `-hh.mm.ss` quand elle suit, sans changer le jour. Un motif qui ne donne pas de date valide est ignoré : on passe au motif suivant. - **E7, index** : règles de format que la SPEC ne précisait pas. - Un élément de `fichiers` qui contient `\` est un chemin relatif à `D:\Game` (ou commençant par `%USERPROFILE%` ou par une lettre de lecteur). - Un élément sans `\` est un nom du dossier de l'élément précédent. - `*` vaut tout texte sans `\`. - Le motif doit désigner le chemin entier de l'entrée : un dossier seul ne couvre pas son contenu. - Index par défaut absent : avertissement, toutes les entrées sont `sans-resume`. - Index donné mais absent, ou sans colonnes `fichiers`/`resume` : code 2. - **E8, corbeille** : un volume sans capacité lisible donne `trop-gros` (choix prudent, la SPEC est muette). `NukeOnDelete` n'est pas lu. - **E9, sorties** : `AVERTISSEMENT`, `INFO` (racines, fichiers lus, retenus, instantanés, manifestes, erreurs d'accès) et `ERREUR` vont sur la sortie d'erreur, pour que `-Json` reste pur. Avec `-Sortie`, la console ne reçoit que la ou les lignes de compte. - **E10** : un chargement par `.` ne fait que définir les fonctions. C'est ce qui permet d'appeler la fonction de date du critère 2. - **E11, lecture de Q4** : sont exclus et jamais lus `%LOCALAPPDATA%\UnrealBuildTool`, `\CrashReportClient`, `\EpicGamesLauncher` et `\UnrealEngine\Common\Zen`. Sont gardés `\UnrealEngine\Common\UnrealTrace` (journaux `Server_*.log` du serveur de traces, tournants, non cités par Q4), `%LOCALAPPDATA%\UnrealHeaderTool` (1 fichier), les UAT de toutes versions et `%LOCALAPPDATA%\UnrealEngine\\Saved`. - **E12** : les exclusions `\etat\REPO\` et `.py .png .jpg .json` s'appliquent à tout chemin `\etat\` : les deux copies, et `Backup_5.5\etat`, où elles n'ont rien retiré de plus. - **E13** : en plus du témoin de 3 lignes, un second témoin, `TRACE1-T4a-index-temoin-vide.csv` (mêmes lignes, résumé de la ligne 3 vidé), prouve la règle « résumé vide = sans-resume » sans retirer au premier la preuve positive des accolades. - Racines : `D:\Game` est déduit de l'emplacement du script (parent du projet), pas écrit en dur. Les moteurs restent `\Launcher\Engine\UE_5.5` et `UE_5.8`, comme en T1. ## 3. Instantané `D:\Game\LifePlay_Backup_5.5\TRACE1\manifest.csv` l. 2 : `"Tools\Traces.ps1","False","0","","2026-10-13T08:20:14"` (fait par la session principale avant la fiche ; `Restore.ps1 -Lot TRACE1` retirerait le fichier par déplacement). Les fichiers d'essai `TRACE1-T4a-*` sont neufs, hors instantané. ## 4. Ce qui n'a pas été fait - Aucun envoi ni déplacement. `Tools\Corbeille.ps1` (T4b), `TRACES-INDEX.csv` (T6) et les textes de T8 ne font pas partie de cette fiche. - Branche `trop-gros` **non exercée par des données réelles** : la plus grosse entrée (6 704 805 392 octets) reste sous les capacités relues (C: 50 837 Mo, D: 197 398 Mo). Seule la carte des capacités est prouvée (Constats). Volume sans clé `BitBucket` non essayé. - `-Doublons -Json` non essayé (`-Json` essayé avec `-Inventaire -Avant mois`). - Essais sous pwsh 7 seulement (pas sous Windows PowerShell 5.1). - Critères 5, 6 et 7 de la SPEC § 7 pour `Corbeille.ps1` : fiche T4b. Pour `Traces.ps1`, la lecture de code (critère 6) est faite : seule écriture `WriteAllText` l. 368 ; `-Force` seulement sur `Get-ChildItem` (l. 161, 203, lecture des fichiers cachés) ; aucun `Remove-Item`, `rm`, `del`, `Delete(`, `Move-Item`, `Rename-Item`, `Copy-Item`, `Set-Content`, `Out-File`, `New-Item` (Grep, Constats). ## 5. Points à confirmer en VAL - Critère 1 et tolérance ± 2 % : 3 304 fichiers contre 3 228 attendus (T1 après exclusions), soit + 2,35 % brut. L'écart est réconcilié fichier par fichier, sans reste : + 44 `.ini` de plantage (E4), + 51 fichiers créés depuis T1, − 19 disparus. Les entrées sont 3 083, parce que 297 fichiers sont regroupés en 76 dossiers de plantage. Reste à dire si la tolérance porte sur les fichiers réconciliés ou sur les entrées. - E1 : sans `-Avant`, aucun filtre ; défaut de la SPEC par `-Avant mois`. - E4 : copies d'`etat` de `LifePlay_Publication\{clean,v1,v1b}` (382 fichiers `.txt`) hors règle, comme en T1. - E11 : `UnrealEngine\Common\UnrealTrace` (13 journaux tournants) et `UnrealHeaderTool` (1) gardés dans la règle. - E5 : dossier `Backup_5.5\P7\T5` exclu en entier, faute de colonne `Rel` ou `chemin`. - E8 : volume sans capacité lisible = `trop-gros`. - Doublons (Q8) : 138 copies (7 855 386 094 octets), pas seulement sous `Dbg-*`. On en trouve aussi sous `Backup_5.5\DC2-VAL` (37), `Backup_5.5\etat` (35, sauvegarde d'etat), `U7` (18), `ARCH427` (11)… La liste chiffrée de T7 doit le montrer à l'utilisateur. - Doublons : 395 groupes sans membre sous `Backup_5.5` (par exemple copies 5.5 / 5.8 d'`etat`) sortent en rôle `original` seul ; 56 `copie-seule` sans original. - Dates : `LifePlay-backup-2026.09.28-14.53.49.log` (ARCH427) a une `LastWriteTime` de 16:53:49. L'heure du nom semble UTC (décalage de 2 h) : près de minuit, le jour lu peut différer d'un jour. La règle prend le nom tel quel. - Critère 7 : LF sans BOM, comme 18 des 21 `Tools\*.ps1` suivis (3 en CRLF : `BuildDebug`, `CollectDebugArtifacts`, `SummarizeDebugCsv`). ## 6. Fichiers à commiter Dépôt du jeu, `D:\Game\LifePlay-master 5.8`, branche `ue5.8` (HEAD lu en fin de fiche : `f32df0d` ; la fiche citait `9eaa6cc`) : - `A Tools/Traces.ps1` - `A Docs/Migration/etat/AG/TRACE1/TRACE1-T4a-IMPL.md` (livrable) - `A Docs/Migration/etat/AG/TRACE1/TRACE1-T4a-index-temoin.csv` (suivi par `.gitignore:78`, à commiter ou non : décision de l'orchestrateur) - `A Docs/Migration/etat/AG/TRACE1/TRACE1-T4a-index-temoin-vide.csv` (idem) Non suivis, ignorés par `.gitignore:75` (contrôle `git check-ignore -v`) : `TRACE1-T4a-essais.ps1` et les 5 `TRACE1-T4a-*.txt`. Tours : 31 / 60 ## Constats Sorties brutes des essais. Le nom du compte n'y figure pas : les chemins du profil sont écrits `%USERPROFILE%` par le script, et les GUID de volume sont remplacés par `{guid}`. ### Analyse (fiche § 4, SPEC § 7.7) ``` Trace : console — Fiche TRACE1-T4a — 2026-10-13 08:30 Commande : pwsh -NoProfile -Command '[Parser]::ParseFile("D:\Game\LifePlay-master 5.8\Tools\Traces.ps1",[ref]$t,[ref]$e)' ; pwsh -NoProfile -Command "Get-Help 'D:\Game\LifePlay-master 5.8\Tools\Traces.ps1'" ; (cwd copie 5.8) pwsh -NoProfile -Command "& { . .\Tools\Traces.ps1 -? }" Environnement: copie 5.8, ue5.8, machine non calme (sessions CAM et T4b actives) Attendu : 0 erreur d'analyse, aide affichée, code 0 Obtenu : ci-dessous Lecture : aucun ``` ``` BOM? 3c 23 0a CR: 0 non-ASCII: 0 erreurs d analyse : 0 === Get-Help NOM D:\Game\LifePlay-master 5.8\Tools\Traces.ps1 SYNOPSIS Inventaire des traces et journaux des sessions (lecture seule) : date de production, resume dans l'index, doublons par MD5, garde-fou de capacite de la corbeille. SYNTAX D:\Game\LifePlay-master 5.8\Tools\Traces.ps1 [-Inventaire] [[-Avant] ] [[-Index] ] [-Doublons] [[-Sortie] ] [-Json] [] code=0 --- & { . .\Tools\Traces.ps1 -? } NOM D:\Game\LifePlay-master 5.8\Tools\Traces.ps1 SYNOPSIS Inventaire des traces et journaux des sessions (lecture seule) : ... code=0 ``` ### Critère 1 : inventaire complet ``` Trace : Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-inventaire.txt — Fiche TRACE1-T4a — 2026-10-13 08:35 Commande : pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\Traces.ps1" -Inventaire -Sortie "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-inventaire.txt" Environnement: copie 5.8, ue5.8 ; D: ; machine non calme ; durée 97 s (premier passage) Attendu : ≈ 3 574 − exclusions Q4, etat\REPO, preuves, instantanés (± 2 %) ; code 1 (index absent) Obtenu : ci-dessous Lecture : entrées ≠ fichiers (dossiers de plantage regroupés) ; T1 = LastWriteTime et chemin relatif ``` Premier passage (règle etat trop large, E4) : `INFO racines=63 lus=518599 retenus=4702 instantanes=1032 manifestes=199 erreurs-acces=0`, `TRACES entrees=3449 …`, avec 382 fichiers de `LifePlay_Publication` en plus de T1. Le script a été corrigé, puis l'essai rejoué : ``` AVERTISSEMENT index absent : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\TRACES\TRACES-INDEX.csv ; toutes les entrees sont sans-resume AVERTISSEMENT manifestes sans colonne Rel ni chemin lisible : 1 (dossier du manifeste exclu en entier) INFO racines=63 lus=518627 retenus=3347 instantanes=43 manifestes=200 erreurs-acces=0 TRACES entrees=3083 octets=37550514853 couvertes=0 sans-resume=3083 trop-gros=0 code=1 ``` Contre-comptage (`pwsh -NoProfile -File …\TRACE1-T4a-essais.ps1 -Etape Compare`, puis `-Etape Detail`) : ``` T4a : entrees=3083 dont dossiers-plantage=76 ; fichiers (dossiers developpes)=3304 ; somme colonne Fichiers=3304 T1 : fichiers=3574 T1 motif [] : 3271 T1 motif [etat-preuve] : 102 T1 motif [etat-REPO] : 132 T1 motif [Q4-profil] : 69 Communs=3209 ; T1 seul=365 ; T4a seul=95 --- par categorie : T1 brut, T1 apres exclusions sans instantanes, T4a fichiers, T4a entrees copie T1= 2611 T1-excl= 2377 T4a-fichiers= 2453 T4a-entrees= 2295 build T1= 218 T1-excl= 218 T4a-fichiers= 218 T4a-entrees= 218 backup T1= 551 T1-excl= 551 T4a-fichiers= 508 T4a-entrees= 455 publication T1= 23 T1-excl= 23 T4a-fichiers= 23 T4a-entrees= 23 moteur T1= 3 T1-excl= 3 T4a-fichiers= 3 T4a-entrees= 3 profil T1= 168 T1-excl= 99 T4a-fichiers= 99 T4a-entrees= 89 T1-fichiers.txt LastWriteTime : 2026-10-13 08:04:44 --- T4a seul (nature : ini de plantage | date lue dans le nom | autre) 13 autre | %USERPROFILE%\AppData\Local\UnrealEngine\Common 27 autre | D:\Game\LifePlay-master 5.8\Docs 2 date-nom 2026-10-13 | D:\Game\LifePlay-master 5.8\Docs 9 date-nom 2026-10-13 | D:\Game\LifePlay-master 5.8\Saved 35 ini-plantage | D:\Game\LifePlay-master 5.5\Saved 9 ini-plantage | D:\Game\LifePlay-master 5.8\Saved --- T1 seul (motif | existe | date) : regroupé 69 Q4 (CrashReportClient 23, EpicGamesLauncher 9, UnrealEngine\Common\Zen 37) 132 REPO (5.8 : 126, 5.5 : 6) ; 102 preuve (5.8 : 63, 5.5 : 39) 43 autre, existe=True : Backup_5.5\etat 39, ETAT2-R8 2, U2 2 (instantanés : Backup_5.5\etat\manifest.csv présent) 19 autre, existe=False : UnrealTrace\Server_*.log 13, 5.8\Saved\Logs 6 (AutoSDKInfo-backup-2026.10.13-*) ``` Réconciliation : 3 574 − 69 − 132 − 102 − 43 = **3 228** fichiers attendus. On retire 19 disparus et on ajoute 44 `.ini` de plantage (E4) et 51 fichiers créés après 08:04:44 (13 + 29 + 9) : 3 228 − 19 + 44 + 51 = **3 304**, le compte obtenu ; 0 fichier inexpliqué. Le regroupement de 297 fichiers en 76 dossiers de plantage donne 3 304 − 297 + 76 = **3 083** entrées. Nom du compte (`-Etape Compte` : `Select-String -SimpleMatch $env:USERNAME`, valeur jamais écrite) : ``` TRACE1-T4a-avant.txt : 0 TRACE1-T4a-doublons.txt : 0 TRACE1-T4a-essais.ps1 : 0 TRACE1-T4a-index-temoin-vide.csv : 0 TRACE1-T4a-index-temoin.csv : 0 TRACE1-T4a-index-vide.txt : 0 TRACE1-T4a-index.txt : 0 TRACE1-T4a-inventaire.txt : 0 code=0 ``` ### Essai `-Avant 2026-09-13` ``` Trace : Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-avant.txt — Fiche TRACE1-T4a — 2026-10-13 08:37 Commande : pwsh -NoProfile -File "…\Tools\Traces.ps1" -Inventaire -Avant 2026-09-13 -Sortie "…\TRACE1-T4a-avant.txt" Environnement: idem Attendu : T1 = 122 fichiers dont 11 UBT (Q4) → 111 fichiers du scan, ≈ 58,1 Mo ; moins en entrées (plantages) Obtenu : ci-dessous Lecture : aucun ``` ``` TRACES entrees=74 octets=60899824 couvertes=0 sans-resume=74 trop-gros=0 code=1 --- -Etape Avant T4a -Avant 2026-09-13 : entrees=74 fichiers=114 octets=60899824 ; T1 Date < 2026-09-13 : fichiers=111 octets=60899344 --- T4a seul (nature : ini de plantage | date lue dans le nom | autre) 3 ini-plantage | D:\Game\LifePlay-master 5.5\Saved --- T1 seul (motif d'exclusion de la SPEC | existe | date dans le nom selon Traces.ps1) ``` 114 fichiers = 111 de T1 + 3 `.ini` (E4), avec 480 octets d'écart ; aucun fichier de T1 manquant. 16 dossiers de plantage regroupent 56 fichiers (7 × 4 ARCH427, 3 × 4 copie 5.5, 4 × 3 `%USERPROFILE%\AppData\Local\LifePlay`, 2 × 2 Lightmass), d'où 114 − 56 + 16 = 74 entrées. Les 11 journaux UBT de T1 sont hors règle (Q4). `-Avant mois -Json` (`ConvertFrom-Json`) : `code=1`, `avant : 2026-09-13`, `entrees : 74`, compte identique. ### Critère 2 : date de production ``` Trace : console — Fiche TRACE1-T4a — 2026-10-13 08:42 Commande : pwsh -NoProfile -File "…\TRACE1-T4a-essais.ps1" -Etape Dates (charge Traces.ps1 par « . », appelle Get-LPDateProduction) Environnement: idem Attendu : 2026-10-08 17:00:00 nom ; 2026-09-30 21:23:52 nom ; 2026-09-30 nom ; utrace et sans date = écriture ; dossier = max LastWriteTime Obtenu : ci-dessous Lecture : la date d'écriture passée aux noms est fictive (2026-10-01 12:34:56) pour voir si elle est prise ou non ``` ``` U5_Build_20261008-170000.log -> 2026-10-08 17:00:00 (nom) [Ecriture passee : 2026-10-01 12:34:56] LifePlay-backup-2026.09.30-21.23.52.log -> 2026-09-30 21:23:52 (nom) [Ecriture passee : 2026-10-01 12:34:56] L7i_partie1_20260930.log -> 2026-09-30 00:00:00 (nom) [Ecriture passee : 2026-10-01 12:34:56] STE-J6.utrace -> 2026-10-01 12:34:56 (ecriture) [Ecriture passee : 2026-10-01 12:34:56] sans_date.log -> 2026-10-01 12:34:56 (ecriture) [Ecriture passee : 2026-10-01 12:34:56] --- fichiers et dossier reels (ligne de l'inventaire, puis recalcul independant) D:\Game\LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Profiling\STE-J6.utrace inventaire : 2026-10-13 07:44:17 (ecriture) Fichiers=1 ; LastWriteTime max relu : 2026-10-13 07:44:17 D:\Game\LifePlay_Backup_5.5\etat\U58\U7\T4\Crashes\UECC-Windows-1533E7EE4C5C4EFCAB4FCA9A7CD6CF0C_0000 inventaire : 2026-10-08 23:35:54 (ecriture) Fichiers=4 ; LastWriteTime max relu : 2026-10-08 23:35:54 D:\Game\LifePlay-master 5.8\Saved\Logs\portage\LISIB_Build_20261010-173435.log inventaire : 2026-10-10 17:34:35 (nom) Fichiers=1 ; LastWriteTime max relu : 2026-10-10 17:35:13 D:\Game\LifePlay_Backup_5.5\ARCH427\LifePlay_Build_427_Dev\WindowsNoEditor\LifePlay\Saved\Logs\LifePlay-backup-2026.09.28-14.53.49.log inventaire : 2026-09-28 14:53:49 (nom) Fichiers=1 ; LastWriteTime max relu : 2026-09-28 16:53:49 D:\Game\LifePlay-master 5.5\Saved\Logs\portage\L7i_partie1_20260930.log inventaire : 2026-09-30 00:00:00 (nom) Fichiers=1 ; LastWriteTime max relu : 2026-09-30 23:25:26 code=0 ``` ### Critère 3 : correspondance avec un index ``` Trace : Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-index.txt, TRACE1-T4a-index-vide.txt — Fiche TRACE1-T4a — 2026-10-13 08:50 Commande : pwsh -NoProfile -File "…\Tools\Traces.ps1" -Inventaire -Index "…\TRACE1-T4a-index-temoin.csv" -Sortie "…\TRACE1-T4a-index.txt" idem avec TRACE1-T4a-index-temoin-vide.csv → TRACE1-T4a-index-vide.txt ; idem avec un index absent ; pwsh -NoProfile -File "…\TRACE1-T4a-essais.ps1" -Etape Index (attendu calculé sans les motifs du script) Environnement: idem Attendu : L1 nom exact 1, L2 motif * (L7i_*, V1rc_*) n, L3 accolades 2 ; témoin vide : L3 sans-resume ; index absent : code 2 Obtenu : ci-dessous (les 31 lignes « couverte » : TRACE1-T4a-index.txt) Lecture : entrées totales 3 084 / 3 087 : traces créées entre deux passages par les autres sessions ``` Témoin (`TRACE1-T4a-index-temoin.csv`, colonne `fichiers` des 3 lignes) : `LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Profiling\STE-J6.utrace` ; `LifePlay-master 5.5\Saved\Logs\portage\L7i_*, V1rc_*` ; `LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\{SessionA.utrace, SessionA_cpu.utrace}`. ``` === essai 3 : -Index temoin TRACES entrees=3084 octets=37550496264 couvertes=31 sans-resume=3053 trop-gros=0 code=1 === essai 3b : -Index temoin-vide TRACES entrees=3087 octets=37551181380 couvertes=29 sans-resume=3058 trop-gros=0 code=1 === essai 3c : -Index absent explicite ERREUR index introuvable : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-absent.csv code=2 === Index (attendu independant) attendu : L1 nom exact=1 ; L2 motif * (L7i_, V1rc_)=28 ; L3 accolades=2 ; total=31 TRACE1-T4a-index.txt : entrees=3084 couvertes=31 sans-resume=3053 couverte D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA_cpu.utrace couverte D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA.utrace couverte D:\Game\LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Profiling\STE-J6.utrace couverte D:\Game\LifePlay-master 5.5\Saved\Logs\portage\L7i_action.txt … (26 autres L7i_*, dont L7i_partie1_20260930.log) couverte D:\Game\LifePlay-master 5.5\Saved\Logs\portage\V1rc_partie_20260930_suite.log couverte D:\Game\LifePlay-master 5.5\Saved\Logs\portage\V1rc_partie_20260930.log TRACE1-T4a-index-vide.txt : entrees=3087 couvertes=29 sans-resume=3058 couverte D:\Game\LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Profiling\STE-J6.utrace … (les 28 mêmes L7i_* / V1rc_*) sans-resume (attendu par le temoin) D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA_cpu.utrace sans-resume (attendu par le temoin) D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA.utrace code=0 ``` ### Critère 4 : doublons ``` Trace : Docs\Migration\etat\AG\TRACE1\TRACE1-T4a-doublons.txt — Fiche TRACE1-T4a — 2026-10-13 08:39 → 08:42 Commande : pwsh -NoProfile -File "…\Tools\Traces.ps1" -Doublons -Sortie "…\TRACE1-T4a-doublons.txt" (arrière-plan, 2 min 45 s) contre-vérification : certutil -hashfile MD5 sur les deux SessionA.utrace Environnement: idem ; ≈ 7,9 Go lus pour les MD5 Attendu : groupe SessionA.utrace, original LifePlay_Build_5.5_DebugGame, copie Backup_5.5\Dbg-I4, MD5 égaux Obtenu : ci-dessous Lecture : aucun ``` ``` AVERTISSEMENT index absent : … ; toutes les entrees sont sans-resume AVERTISSEMENT manifestes sans colonne Rel ni chemin lisible : 1 (dossier du manifeste exclu en entier) INFO racines=63 lus=518630 retenus=3348 instantanes=43 manifestes=200 erreurs-acces=0 DOUBLONS groupes=527 copies=138 octets-copies=7855386094 TRACES entrees=3084 octets=37550487779 couvertes=0 sans-resume=3084 trop-gros=0 code=1 --- TRACE1-T4a-doublons.txt l. 1010-1011 467 original 44B6203349721CD88A804C190E573FD3 build D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA.utrace 6704805392 2026-10-04 12:52:21 ecriture 1 sans-resume ok 467 copie 44B6203349721CD88A804C190E573FD3 backup D:\Game\LifePlay_Backup_5.5\Dbg-I4\SessionA\Profiling\SessionA.utrace 6704805392 2026-10-04 12:52:21 ecriture 1 sans-resume ok --- certutil Hachage MD5 de D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA.utrace : 44b6203349721cd88a804c190e573fd3 Hachage MD5 de D:\Game\LifePlay_Backup_5.5\Dbg-I4\SessionA\Profiling\SessionA.utrace : 44b6203349721cd88a804c190e573fd3 --- -Etape Doublons lignes=1138 groupes=527 copie 138 lignes 7855386094 octets copie-seule 56 lignes 109036406 octets original 944 lignes 7903224967 octets groupes a 0 octet : 0 groupes dont tous les membres sont hors Backup_5.5 : 395 copies par dossier de Backup_5.5 : DC2-VAL 37 ; etat 35 ; U7 18 ; ARCH427 11 ; Dbg-I5 9 (191 396 060) ; Dbg-G6p 5 (538 929 831) ; Dbg-I2 4 ; Dbg-I6 4 ; Dbg-I4 3 (6 970 208 729) ; U4-T6 3 ; L2 2 ; SB2-REF 2 ; U4 2 ; U4-REF55 2 ; DC3-VAL 1 ``` Les autres doublons de T1 § 2.4 sont aussi retrouvés : `SessionA_cpu.utrace` (groupe 466), `G6Dev.utrace` (164) et `ChaosVD-20261004_130550.utrace` (131). ### Garde-fou corbeille, codes d'erreur, existence ``` --- -Etape Capacites (Get-LPCapacitesCorbeille chargé par « . », puis registre lu directement) C: 53306458112 octets = 50837 Mo D: 206986805248 octets = 197398 Mo E: 14648606720 octets = 13970 Mo F: 202183278592 octets = 192817 Mo G: 202145529856 octets = 192781 Mo --- lecture directe du registre (BitBucket\Volume) : MaxCapacity = 192817, 197398, 192781, 50837, 50837, 13970 === -Avant invalide : pwsh -NoProfile -File …\Traces.ps1 -Avant 13/09/2026 ERREUR -Avant attend AAAA-MM-JJ ou mois : 13/09/2026 code=2 === -Inventaire -Doublons ERREUR -Inventaire et -Doublons s'excluent code=2 === -Etape Existence (Test-Path sur 5 chemins de l'inventaire, après tous les essais) True | D:\Game\LifePlay_Backup_5.5\Dbg-I4\SessionA\Profiling\SessionA.utrace True | D:\Game\LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Profiling\STE-J6.utrace True | D:\Game\LifePlay_Backup_5.5\etat\U58\U7\T4\Crashes\UECC-Windows-1533E7EE4C5C4EFCAB4FCA9A7CD6CF0C_0000 True | D:\Game\LifePlay-master 5.8\Saved\Logs\portage\LISIB_Build_20261010-173435.log True | %USERPROFILE%\AppData\Local\LifePlay\Saved\Crashes\UE4CC-Windows-2CBC33664ECAB3B589BD2F84BE82F5E7_0000 code=0 --- git status --porcelain --untracked-files=all -- Tools Docs/Migration/etat/AG/TRACE1 (extraits de cette fiche) ?? Docs/Migration/etat/AG/TRACE1/TRACE1-T4a-index-temoin-vide.csv ?? Docs/Migration/etat/AG/TRACE1/TRACE1-T4a-index-temoin.csv ?? Tools/Corbeille.ps1 (fiche T4b, non touché) ?? Tools/Traces.ps1 ``` ### Observations - Le motif `\Crashes\` a deux formes. `Crashes\` de l'éditeur ou du jeu donne 4 fichiers. `Swarm\…\UnrealLightmass\Saved\Crashes\_0000` donne 2 fichiers. Les deux sont regroupés en une entrée. - `Backup_5.5\etat` contient deux choses : l'instantané du lot `etat` (`manifest.csv`, `Rel = Docs\Migration\etat\…`, exclu) et la sauvegarde brute d'`etat` (`Backup_5.5\etat\U58\…`, dans la règle, Q6), dont 35 fichiers sont des copies MD5 de l'original (Q8). - Durées : inventaire ≈ 97 s pour 518 600 fichiers lus sur 63 racines ; `-Doublons`, 2 min 45 s.