LifePlay-Revival/Docs/Migration/etat/OUTC/OUTC-T7-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

3.7 KiB

OUTC-T7-IMPL : CopieEtat.ps1, git sans verrou d'index facultatif (2026-10-11)

Fiche OUTC-T7 — Niveau N2 — Modèle prévu opus | utilisé claude-opus-5-5 — Agent orchestrateur (session OUTC) — Skills lp-lot, sk-change-safety

Origine : point d'incertitude 4 d'OUTC-T4a (OUTC-VAL-A.md). CopieEtat.ps1 lançait git status sans --no-optional-locks. Ce status pouvait donc prendre index.lock un instant et faire échouer un commit du gardien lancé au même moment. GitEtat.ps1 évite déjà ce cas.

1. Fichiers modifiés

M Tools\CopieEtat.ps1 (dépôt jeu, fichier neuf du lot, pas encore commité), fonction Invoke-LPGit (l. 143-147) :

  • --no-optional-locks est ajouté en tête des arguments de chaque appel git ;
  • le commentaire de la fonction gagne une ligne. Rien d'autre ne change. MD5 avant 4A83F321C9EBBA12FF0AB64DA85CD3D2 (livré par T1 et validé par T4a), après 5E441FA06F05B1F1D91B91DCAC5B023F. LF, 0 CR, 0 octet non ASCII, analyse syntaxique sans erreur.

Écriture : version préparée dans …\scratchpad\OUTC-T7\ et testée là. UnrealEditor-Cmd était absent (0 à 07:13:01). Je contrôle que le MD5 de Tools\CopieEtat.ps1 vaut encore celui d'avant, puis j'écris en une seule copie.

2. Écarts à la SPEC

Aucun. Le script reste en lecture seule ; l'option empêche seulement les écritures facultatives d'index de git status.

3. Essais

Commande Code Synthèse
version T1, -Lot OUTC -Assets Content\BPs\GI.uasset,Content\BPs\GM.uasset -Json 1 proc=1 … git=0/9/0 hors_declares=9 … head=7bceea6/22dd7c3/c8661cd verrou=98:libre alertes=PROC,GIT
version T7 (scratchpad, -Copie vers la copie 5.8), même appel 1 identique au champ cpu près
version T7 installée, -Assets Content\BPs\GI.uasset 1 proc=0 … alertes=GIT (l'éditeur -game PID 2620 venait de se fermer ; 9 fichiers addon non déclarés d'un autre lot)

Limite constatée, sans lien avec T7 : Win32_Processor.LoadPercentage revient parfois vide. Sur 3 lancements, cpu=? sort une fois. Le script affiche alors ?, comme prévu à la l. 427.

Piège rencontré pendant l'essai : avec pwsh -File, une liste PowerShell passée en -Assets $a arrive en deux arguments. Le second, refusé (PositionalBinding=$false), donne le code 2. Il faut écrire la liste dans un seul argument a,b.

Code 0 réel avec la version T7 : P3 de la reprise de T4a l'a bloqué (BLOCKED-PROC), parce que l'éditeur PID 28332 tournait (essai MCP du lot MCPA, sous GO de Big Boss). L'orchestrateur l'a rejoué ensuite par …\scratchpad\OUTC-T7\code0.ps1, en lecture seule. La sortie brute est copiée dans OUTC-T7_code0.txt et le JSON dans OUTC-T7_code0.json.

Heure Commande Code Synthèse
07:17:56 CopieEtat.ps1 -Lot OUTC -Assets 'Content\BPs\GI.uasset,Content\BPs\GM.uasset' -Sortie ref.json 1 proc=1 … git=0/11/0 hors_declares=11 … alertes=PROC,GIT
07:18:00 UeState.ps1 -Copie 'D:\Game\LifePlay-master 5.8' -WaitExit -TimeoutSeconds 3600 0 attente terminee apres 155 s : plus rien ne tourne
07:20:36 même appel de CopieEtat avec -Reference ref.json 0 COPIE OK … proc=0 assets=2 absents=0 modifies=0 git=0/11/0 hors_declares=0 parasites=0 … alertes=aucune

4. Points à confirmer en VAL

  • P1 : diff CopieEtat.avant.ps1 → Tools\CopieEtat.ps1 réduit à Invoke-LPGit (2 lignes).
  • P2 : git status lancé par CopieEtat ne touche plus la date de .git\index (date relevée avant et après).
  • P3 : V3 et V5 rejoués rapidement sur la version installée : mêmes codes.

5. Fichiers à commiter

A Tools/CopieEtat.ps1 (déjà au ticket, version T7) ; A Docs/Migration/etat/OUTC/OUTC-T7-IMPL.md.

Tours : sans objet (fiche de l'orchestrateur)