LifePlay-Revival/Docs/Migration/etat/AG/TRACE1/TRACE1-T4c-IMPL.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

18 KiB
Raw Blame History

Fiche TRACE1-T4c — Niveau N3 — Modèle prévu opus | utilisé claude-opus-5-5 (déclaré par l'environnement) — Agent lp-impl (A-IMPL-H) — Skills sk-protocol, ue-cpp-build, lp-build, lp-ue-compat (préchargés) ; sk-windows-shell, sk-change-safety (invoqués après les modifications, voir § 2 E10)

TRACE1-T4c-IMPL : une seule source de racines, d'exclusions et d'instantanés pour Traces.ps1 et Corbeille.ps1 (2026-10-13)

Copie D:\Game\LifePlay-master 5.8, branche ue5.8, HEAD f32df0d. MD5 de départ relus à 09:15:50 (TRACE1-T4c-etape-Depart.txt) : Traces.ps1 C4CE7FFFDB081E6399ADDE4D8BFC9545, Corbeille.ps1 7D144C3C09AAEF06DEAD70DF01BF8203, TracesRacines.ps1 absent : égaux à la fiche. Corbeille.ps1 n'a jamais été lancé avec -Envoyer. Corbeille de Windows (Namespace(10).Items().Count) : 2521 à chaque relevé, de 09:15:50 (départ) à 09:27:09 (fin), avant et après chaque appel de Corbeille.ps1 (fichiers TRACE1-T4c-etape-*.txt).

1. Fichiers modifiés

Fichier État Lignes Contenu
Tools\TracesRacines.ps1 créé (174 lignes, 9 674 o, MD5 191408D58D2D2E103E019E633C9078B2) 1-56 aide ; 58 $LPTraceJeuRoot ; fonctions Get-LPTraceLieux, Get-LPTraceRacines, Get-LPTraceExclusions, Test-LPTraceSous, Test-LPTraceEgalOuSous, Test-LPTraceSousRacines, Get-LPTraceInstantanes, Test-LPTraceInstantane seule liste des copies, builds, sauvegardes, publication, racines (80 ce jour : copie 30, build 37, backup 1, publication 1, moteur 8, profil 3), exclusions (8) et règles des manifestes
Tools\Traces.ps1 modifié (428 lignes, 22 446 o, MD5 CDB3D82F49BA7BE08AF445B4732FB96D) aide l. 11-13 et 20-21 ; l. 100-105 ($tracesCharge lu avant le dot-sourcing, . "$PSScriptRoot\TracesRacines.ps1", $backupRoot pris de Get-LPTraceLieux) ; Get-LPRacines retiré ; Get-LPEntrees l. 159-182 (racines et exclusions partagées) et l. 189-195 (instantanés par Get-LPTraceInstantanes / Test-LPTraceInstantane) ; l. 328 if ($tracesCharge) { return } %LOCALAPPDATA%\UnrealHeaderTool n'est plus lu ; Common\UnrealTrace exclu comme Common\Zen (E11)
Tools\Corbeille.ps1 modifié (401 lignes, 20 644 o, MD5 61EF5E9C22C0A666FBCACB8B6100B9CD) aide l. 9, 23-32, 38-41, 58-59 ; l. 84-85 (dot-sourcing, à la place des l. 79-104 de listes) ; l. 172-187 (racines, exclusions, lieux, instantanés tirés des fonctions) ; l. 268-269 (hors-racines par Test-LPTraceSousRacines, exclusions comprises) ; l. 279 (manifest par Test-LPTraceInstantane) ; l. 290 (dossier qui contient un chemin protégé ou un dossier protégé en entier) R1 : les 3 racines en trop retirées ; Zen, UnrealTrace refusés ; R2 : colonnes Rel, chemin, Path, manifeste non décidable = dossier entier

Règles de Get-LPTraceInstantanes (manifestes manifest.csv de LifePlay_Backup_5.5 à toute profondeur) : colonne lue Rel (format Snapshot.ps1), sinon chemin, sinon Path ; valeur relative → <dossier du manifeste>\<valeur> protégé ; non décidable, dossier entier protégé : illisible, vide, sans-colonne, chemin-invalide, chemin-absolu (valeur absolue : protégée telle quelle, mais la copie rangée dans le dossier n'est pas désignée), chemin-introuvable (valeur de chemin qui ne désigne rien d'existant : base non dite). Relevé de ce jour (TRACE1-T4c-etape-Inventaire.txt) : 202 manifestes (200 × "Rel","Existed","Size","MD5","Date", 1 × chemin,md5, 1 × Path,MD5,Existed), 8 535 chemins décrits, 1 non décidable : chemin-absolu D:\Game\LifePlay_Backup_5.5\P7\T5 ; P7\T6a est décidable (ses 11 valeurs chemin désignent 11 fichiers existants du dossier), 0 illisible.

Preuve « une seule liste de racines » (TRACE1-T4c-essais.ps1 -Etape Code, Select-String -SimpleMatch de 24 noms de racines, d'exclusions et de lieux : UnrealHeaderTool, CrashReportClient, UnrealBuildTool, EpicGamesLauncher, LOCALAPPDATA, APPDATA, Sandbox, U58-essai, DC4, master 5.5, UE_5, Launcher, Intermediate\Build, AutomationTool, UnrealInsights, LifePlay_Build_, LifePlay_Publication, LifePlay_Backup, .hyperai, Common\Zen, UnrealTrace, etat\REPO, 'Saved', 'Tools') :

TracesRacines.ps1 : 68 correspondance(s)
  Traces.ps1:16 [CrashReportClient] chemin passant par \Logs\ \Profiling\ \Crashes\ \portage\ \CrashReportClient\ \Stats\, ou (sous la racine
  Traces.ps1:151 [CrashReportClient] $reDos = [regex]::new('\\(Logs|Profiling|Crashes|portage|CrashReportClient|Stats)\\', 'IgnoreCase')
  Traces.ps1:51 [LifePlay_Backup] (copies = membres d'un groupe sous LifePlay_Backup_5.5 dont au moins un membre est hors LifePlay_Backup_5.5).
  Traces.ps1:71 [LifePlay_Backup] chaque groupe, sortie des groupes a MD5 egal. Role : original (hors LifePlay_Backup_5.5), copie (sous
  Traces.ps1:72 [LifePlay_Backup] LifePlay_Backup_5.5, avec un original dans le groupe), copie-seule (sous LifePlay_Backup_5.5, sans original).
  Traces.ps1:189 [LifePlay_Backup] # Instantanes : manifestes trouves pendant la lecture de LifePlay_Backup_5.5, regles de TracesRacines.ps1
  Traces.ps1:19 [etat\REPO] \webcache_*, .ini hors \Crashes\ (filtre de T1) ; \etat\REPO\ (verrous du gardien) ; .py .png .jpg .json sous
Traces.ps1 : 7 correspondance(s)
  Corbeille.ps1:90 [master 5.5] 'D:\Game\LifePlay-master 5.5\Content\Modules' = 'D:\Game\LifePlay_ModulesGit\5.5.git'
Corbeille.ps1 : 1 correspondance(s)

Aucune de ces 8 lignes ne définit une racine : motif de sélection de fichiers de T1 (\CrashReportClient\ dans un chemin, l. 16 et 151), texte d'aide et commentaire sur les rôles des doublons (l. 51, 71, 72, 189), filtre \etat\REPO\ de T1 (l. 19), dépôt git des modules pour suivi-git (Corbeille.ps1:90, inchangé).

2. Écarts à la SPEC

# Écart Motif
E1 Manifeste à colonne Path absolue (P7\T5) : chemins absolus protégés et dossier du manifeste protégé en entier (motif chemin-absolu) la fiche cite Path absolu parmi les colonnes lues ; protéger seulement les originaux laissait admises les copies P7\T5\agents\… et P7\T5\skills\… (le cas même de R2), que le manifeste ne désigne pas. Même effet pour une valeur absolue dans Rel ou chemin
E2 Colonne chemin relative : résolue contre le dossier du manifeste ; une valeur qui ne désigne rien d'existant rend le manifeste non décidable (dossier entier) « chemin non résoluble » de la fiche, base non dite ; P7\T6a : 11 / 11 existent, donc protection fichier par fichier
E3 Exclusions : en plus de Common\Zen et Common\UnrealTrace, Docs\Migration\etat\REPO des 6 copies « ce que Traces.ps1 exclut déjà » : verrous du gardien, filtrés par Traces.ps1 (regex \\etat\\REPO\\, gardée telle quelle) ; Corbeille.ps1 les refuse désormais (hors-racines). Non exercé par un essai (§ 5)
E4 Motif hors-racines (la fiche écrit REFUS hors-racine) ; un chemin sous une exclusion rend aussi hors-racines, sans motif nouveau motif existant de T4b gardé, refus de T4b inchangés (§ 3 de la VAL rejouée, critère ci-dessous)
E5 Corbeille.ps1 cherche les manifestes à toute profondeur (avant : -Depth 3), comme Traces.ps1 une seule règle ; 202 manifestes
E6 Manifeste vide (aucune ligne) : non décidable, dossier entier (avant : ignoré par Traces.ps1) prudence ; aucun cas ce jour (1 seul non décidable, chemin-absolu)
E7 Traces.ps1 : $MyInvocation.InvocationName lu dans $tracesCharge avant le dot-sourcing ; avertissement renommé manifestes non decidables : <n> (<motif>=<n> ; dossier du manifeste exclu en entier) piège de portée de la fiche § 5 ; chargement par . vérifié (étape Code : code=0 duree=1s sortie=3 | 2026-10-08T17:00:00)
E8 Fonctions d'aide en plus des trois demandées (Get-LPTraceLieux, Test-LPTraceSous, Test-LPTraceEgalOuSous, Test-LPTraceSousRacines, Test-LPTraceInstantane) Corbeille.ps1 a besoin des lieux (copies, builds, sauvegardes, publication) pour ses refus racine-* : sans elles, une liste de copies restait dans Corbeille.ps1
E9 Get-LPRacines retiré de Traces.ps1 remplacé par Get-LPTraceRacines ; conséquence : TRACE1-T4v-essais.ps1 -Etape Racines (VAL T4v) ne se rejoue plus
E10 sk-windows-shell et sk-change-safety invoqués après les modifications, pas avant oubli de méthode ; relus, aucune règle enfreinte constatée (instantané fait par l'orchestrateur, aucune suppression ni déplacement)
E11 Un fichier temporaire écrit hors du périmètre : %TEMP%\v.txt (7 197 o, chemins de TRACE1-T4v-avant.txt), par une commande Git Bash de comparaison (… > "$TMPDIR/v.txt" … || … > /tmp/v.txt) erreur de commande ; non supprimé (suppression interdite) ; à mettre à la corbeille ou laisser, au choix de l'utilisateur. Les autres fichiers de comparaison sont dans le scratchpad de la session

Inventaire (TRACE1-T4c-etape-Inventaire.txt) : 3 115 entrées contre 3 089 en T4v. Différence par la colonne Chemin :

  • T4v seul, 33 = 14 attendues (13 UnrealEngine\Common\UnrealTrace\Server_1118.log à Server_1130.log et UnrealHeaderTool\Saved\Logs\UnrealHeaderTool.log) + 19 disparues depuis T4v (absentes au contrôle Test-Path : 10 Saved\Logs\AutoSDKInfo-backup-*, 2 UnrealPak-backup-*, 5 journaux AutomationTool de 07:31, PUB1-T1-inventaire.ps1, PUB1-T1-sortie.txt) + 0 autre ;
  • T4c seul, 59 = 0 sous UnrealHeaderTool, UnrealTrace ou Zen + 59 créés ou écrits après 08:33:52 (journaux de CAM, STE, PUB3, BuildDebug, AutoSDKInfo, fichiers de T4v et T4c) + 0 autre ;
  • dans T4c : UnrealHeaderTool=0 UnrealTrace=0 Zen=0 CrashReportClient-profil=0. Les 19 disparitions et les 59 ajouts viennent d'autres sessions (estimé : rotations de UBT et UAT pendant BuildDebug_Development_20261013-090501, dossier PUB3 nouveau) ; les trois scripts de ce lot n'écrivent que -Sortie et les fichiers TRACE1-T4c-*. Hors activité des autres sessions, la différence est donc celle que la fiche attend.

3. Instantané

D:\Game\LifePlay_Backup_5.5\TRACE1-T4c\manifest.csv, fait par l'orchestrateur avant cette fiche : 4 lignes (en-tête "Rel","Existed","Size","MD5","Date" + 3), relues : Tools\Traces.ps1 C4CE7FFF…9545 et Tools\Corbeille.ps1 7D144C3C…8203 (Existed=True, 2026-10-13T09:07:31) ; troisième ligne (TracesRacines.ps1, Existed=False selon la fiche) non relue. Retour arrière proposé, non lancé : .\Tools\Restore.ps1 -Lot TRACE1-T4c (rend les deux scripts de départ ; Tools\TracesRacines.ps1 créé ici à écarter à la main, à déplacer et non à supprimer).

4. Ce qui n'a pas été fait

  • Aucun envoi à la corbeille, aucun -Envoyer, aucun déplacement ni suppression, aucune commande Unreal, aucune écriture git (lecture seule : status, branch, rev-parse, ls-files).
  • Aucun essai à blanc sur un fichier de Docs\Migration\etat\REPO (E3), ni sur un dossier de plantage qui contient un chemin protégé (branche dossier, Corbeille.ps1:290).
  • Motifs de manifeste non exercés par des données : illisible, vide, sans-colonne, chemin-invalide, chemin-introuvable (seul chemin-absolu existe ce jour).
  • Corbeille.ps1 -Liste sur l'inventaire complet (3 115 lignes) : non fait ; la chaîne est prouvée sur la sortie -Avant 2026-09-13 (fiche).
  • Durée ajoutée par la recherche des manifestes à toute profondeur dans Corbeille.ps1 : non mesurée à part.
  • Windows PowerShell 5.1 : non essayé (pwsh 7.6.6 seulement).

5. Points à confirmer en VAL

  • R1 : TRACE1-T4c-cas-r1-crashreportclient.txt, …-r1-unrealbuildtool.txt, …-r1-epicgameslauncher.txt, …-r1-zen.txt rejoués → REFUS hors-racines, code 2.
  • E11 : TRACE1-T4c-cas-e11-unrealtrace.txt (fichier tournant : en reprendre un existant) et …-e11-unrealheadertool.txt → REFUS hors-racines, code 2.
  • R2 : …-r2-t5-copie-agents.txt, …-r2-t5-copie-skills.txt, …-r2-t5-original.txt, …-r2-t6a-addon58.txt, …-r2-t6a-addon55.txt → REFUS manifest, code 2.
  • Témoin …-temoin-unrealengine.txt (UnrealEngine\4.27\Saved\Logs\…) admis A-BLANC, code 0 : l'exclusion ne déborde pas sur UnrealEngine.
  • TRACE1-T4b-essai.ps1 rejoué : 41 lignes de refus et d'admission identiques à TRACE1-T4b-essai.txt, ETAT IDENTIQUE=True.
  • Chaîne Traces.ps1 -Avant 2026-09-13 -Sortie puis Corbeille.ps1 -Liste : 73 A-BLANC, 0 REFUS, code 0 ; la seule différence avec TRACE1-T4v-avant.txt (74) est UnrealHeaderTool.log.
  • Différence d'inventaire T4v → T4c : 14 attendues, le reste expliqué par d'autres sessions (§ 2) ; 0 « autre ».
  • E1 : protéger le dossier P7\T5 en entier (copies non désignées par un manifeste Path) convient à l'orchestrateur.
  • E2 : règle chemin-introuvable pour la colonne chemin.
  • E3 : exclusion des etat\REPO des copies dans Corbeille.ps1 (essai à blanc sur D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REPO\NUMEROS.md attendu REFUS hors-racines, non fait ici).
  • Branche dossier de Corbeille.ps1:290 (dossier qui contient un dossier protégé en entier) : non exercée.
  • Select-String : aucune liste de racines dans Traces.ps1 ni Corbeille.ps1 (8 correspondances jugées en § 1).
  • Constat : D:\Game\LifePlay-Sandbox-5.8\Tools\claude\agents\lp-cart.md (original décrit par P7\T5) est non suivi (git status : ??) ; avant T4c il était admis à blanc (sous la racine LifePlay-Sandbox-5.8\Tools), il est maintenant refusé manifest.
  • E11 du § 2 : %TEMP%\v.txt laissé en place.

6. Fichiers à commiter

Dépôt du jeu, branche ue5.8 (les trois scripts sont non suivis ?? au départ, donc ajoutés) :

  • A Tools/TracesRacines.ps1
  • A Tools/Traces.ps1
  • A Tools/Corbeille.ps1
  • A Docs/Migration/etat/AG/TRACE1/TRACE1-T4c-IMPL.md

Les autres fichiers TRACE1-T4c-* (script d'essai, etape-*.txt, inventaire.txt, avant.txt, essai-t4b.txt, cas-*.txt) suivent le motif /Docs/Migration/etat/** (ignoré, comme ceux de T4a, T4b et T4v ; règle relue dans TRACE1-T4b-essai.txt l. 94-96, non revérifiée par git check-ignore pour ces noms).

Tours : 28 / 60

Constats

Commandes et sorties brutes

Toutes lancées depuis Git Bash par pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AG\TRACE1\TRACE1-T4c-essais.ps1" -Etape <étape> (sortie complète dans TRACE1-T4c-etape-<étape>.txt), dans l'ordre Depart, Code, Inventaire, Refus, T4b, Chaine, Fin.

Code       TracesRacines.ps1 : erreurs d'analyse=0 ; aide -? code=0 lignes=70 ; octets=9674 CR=0 LF=174 non-ASCII=0 BOM=False dernier-octet-LF=True
           Traces.ps1 : erreurs d'analyse=0 ; aide -? code=0 lignes=77 ; octets=22446 CR=0 LF=428 non-ASCII=0 BOM=False dernier-octet-LF=True
           Corbeille.ps1 : erreurs d'analyse=0 ; aide -? code=0 lignes=90 ; octets=20644 CR=0 LF=401 non-ASCII=0 BOM=False dernier-octet-LF=True
           suppressions : Traces.ps1:322 [WriteAllText] (option -Sortie) ; Corbeille.ps1:384 DeleteDirectory( et :386 DeleteFile( avec 'OnlyErrorDialogs', 'SendToRecycleBin' ; rien d'autre
Inventaire AVERTISSEMENT manifestes non decidables : 1 (chemin-absolu=1 ; dossier du manifeste exclu en entier)
           INFO racines=63 lus=520849 retenus=3379 instantanes=43 manifestes=202 erreurs-acces=0
           TRACES entrees=3115 octets=37568022825 couvertes=0 sans-resume=3115 trop-gros=0      code=1 (index absent, attendu)
           RACINES total=80 ; backup=1 build=37 copie=30 moteur=8 profil=3 publication=1 ; EXCLUSIONS 8
Refus      r1-crashreportclient  REFUS hors-racines %USERPROFILE%\AppData\Local\CrashReportClient\Saved\Logs\CrashReportClient_2-backup-2026.10.11-10.44.25.log   code=2
           r1-unrealbuildtool    REFUS hors-racines %USERPROFILE%\AppData\Local\UnrealBuildTool\Log_GPF.json   code=2
           r1-epicgameslauncher  REFUS hors-racines %USERPROFILE%\AppData\Local\EpicGamesLauncher\Saved\Logs\cef3-backup-2026.10.12-16.36.15.log   code=2
           r1-zen                REFUS hors-racines %USERPROFILE%\AppData\Local\UnrealEngine\Common\Zen\Data\root_manifest   code=2
           e11-unrealtrace       REFUS hors-racines %USERPROFILE%\AppData\Local\UnrealEngine\Common\UnrealTrace\Server_1148.log   code=2
           e11-unrealheadertool  REFUS hors-racines %USERPROFILE%\AppData\Local\UnrealHeaderTool\Saved\Logs\UnrealHeaderTool.log   code=2
           r2-t5-copie-agents    REFUS manifest D:\Game\LifePlay_Backup_5.5\P7\T5\agents\lp-cart.md   code=2
           r2-t5-copie-skills    REFUS manifest D:\Game\LifePlay_Backup_5.5\P7\T5\skills\sk-orchestrate\SKILL.md   code=2
           r2-t5-original        REFUS manifest D:\Game\LifePlay-Sandbox-5.8\Tools\claude\agents\lp-cart.md   code=2
           r2-t6a-addon58        REFUS manifest D:\Game\LifePlay_Backup_5.5\P7\T6a\addon58\sk-protocol\SKILL.md   code=2
           r2-t6a-addon55        REFUS manifest D:\Game\LifePlay_Backup_5.5\P7\T6a\addon55\lp-lot\SKILL.md   code=2
           temoin-unrealengine   A-BLANC 125655 %USERPROFILE%\AppData\Local\UnrealEngine\4.27\Saved\Logs\UE4-backup-2026.09.07-10.16.02.log   code=0
           chaque cas : empreinte avant=apres : True ; corbeille 2521 / 2521
           liste des 11 refus ensemble : CORBEILLE envoyes=0 octets=0 refuses=11 echecs=0   code=2
T4b        lignes comparees : T4b=41 maintenant=41 ; identiques=True ; ETAT IDENTIQUE=True ; CORBEILLE AVANT items=2521 / APRES items=2521
Chaine     TRACES entrees=73 octets=60728133 couvertes=0 sans-resume=73 trop-gros=0   code=1
           lignes A-BLANC=73 REFUS=0 ; A BLANC lignes=73 octets=60728133 ; CORBEILLE envoyes=0 octets=0 refuses=0 echecs=0   code=0
           empreintes (Test-Path et MD5) des 73 chemins identiques avant et apres : True ; absents apres : 0 ; corbeille 2521 / 2521
Fin        Traces.ps1 MD5=CDB3D82F49BA7BE08AF445B4732FB96D ; Corbeille.ps1 MD5=61EF5E9C22C0A666FBCACB8B6100B9CD ; TracesRacines.ps1 MD5=191408D58D2D2E103E019E633C9078B2
           git status : ?? Tools/Corbeille.ps1, ?? Tools/PubCheck.ps1, ?? Tools/Traces.ps1, ?? Tools/TracesRacines.ps1, ?? Tools/hooks/ ; CORBEILLE 2521

Comparaison des listes -Avant (Git Bash, cut -f2 | sort puis comm) : T4v=74 T4c=73, T4v seul : %USERPROFILE%\AppData\Local\UnrealHeaderTool\Saved\Logs\UnrealHeaderTool.log, T4c seul : rien.

Tools/PubCheck.ps1 et Tools/hooks/ (non suivis) ne viennent pas de cette fiche (présents au relevé de départ).