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-locksest 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ès5E441FA06F05B1F1D91B91DCAC5B023F. 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.ps1réduit àInvoke-LPGit(2 lignes). - P2 :
git statuslancé 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)