LifePlay-Revival/Docs/Migration/etat/AG/LANC1/LANC1-TACHES.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

7.1 KiB

LANC1 : guillemets du lanceur HyperAIStudio

Lot LANC1, session « Lanceur ». Niveau N1. Skills : sk-protocol, sk-windows-shell, sk-change-safety. Copie D:\Game\LifePlay-master 5.8, branche ue5.8.

Date : 2026-10-12/13. Statut : lot clos, sans commit puisque le fichier n'est pas suivi. La correction est PASS : le projet s'ouvre. MCP prêt : prouvé par STE-H10 (a), par arbitrage de Big Boss (§ 5). Limite connue : la régénération par le plugin efface la correction (§ 2).

1. Objet

.hyperai\scripts\Start-HyperAIStudioEditor.ps1, l. 13-14 : le chemin du projet est passé sans guillemets à Start-Process. Start-Process joint les éléments de -ArgumentList par des espaces sans les mettre entre guillemets. L'espace de « LifePlay-master 5.8 » coupe donc l'argument, et l'éditeur s'ouvre sur le navigateur de projets. Constaté par MCPA le 2026-10-11. Correction approuvée par l'utilisateur dans la session MCPA (2026-10-12, MCPA-T1-ESSAI § 6 point 4).

2. Statut du fichier (établi)

  • Non suivi par git : git ls-files .hyperai/scripts est vide. git check-ignore -v renvoie .git/info/exclude:12:/.hyperai/. Le lot n'a donc ni CHG ni ticket au gardien : livrable seul, accepté par Big Boss.
  • Régénéré par HyperAIStudio : le plugin écrit ce fichier dans Plugins\Marketplace\HyperAIStudio\Source\HyperAIStudio\Private\HyperAIStudioService.cpp.
    • La même ligne sans guillemets s'y trouve, l. 6240-6241.
    • L'écriture passe par GenerateHelperScripts (WriteFileIfChanged, l. 6471).
    • Trois fonctions l'appellent : GenerateProjectFiles (l. 3599, par GenerateManagedProjectFilesTransactional), GenerateManagedProjectFilesTransactional (l. 6099) et BuildTerminalLaunchPlanForPrompt (l. 4461, lancement d'un terminal agent depuis le plugin).
    • Toute régénération par le plugin efface la correction. Le plugin est lui aussi hors git (.git/info/exclude:15:/Plugins/Marketplace/). Il n'a pas été modifié (hors lot).

3. Instantané

Sous D:\Game\LifePlay_Backup_5.5\LANC1\ :

  • Start-HyperAIStudioEditor.ps1.avant : sha256 b23625c9f8818bc1d551674970f61273862c598cd7cc952f58978178dd54da26, identique à l'original au moment de la copie.
  • Start-HyperAIStudioEditor.ps1.apres : sha256 dbcf2b1e46b9eb8ad4161fb1df704b8a9056cc44709c795ae83d64f1af3ec74b.

Retour arrière : recopier .avant sur .hyperai\scripts\Start-HyperAIStudioEditor.ps1.

4. Correction

Une seule ligne, la l. 13 :

<   $args = @($ProjectFile, '-ModelContextProtocolStartServer', "-ModelContextProtocolPort=$Port")
>   $args = @("`"$ProjectFile`"", '-ModelContextProtocolStartServer', "-ModelContextProtocolPort=$Port")

Rien d'autre ne change. La l. 10, recherche du processus par -like "*$ProjectFile*", reste valable avec les guillemets.

Mesuré (hors éditeur) :

  • diff entre .avant et le fichier : 1 ligne (13c13).
  • Analyse syntaxique : Parser]::ParseFile → 0 erreur (pwsh 7).
  • Fins de ligne : tr -cd '\r' | wc -c → 16, CRLF conservé comme dans l'original.
  • Argument joint : "D:/Game/LifePlay-master 5.8/LifePlay.uproject" -ModelContextProtocolStartServer -ModelContextProtocolPort=8000.

5. Essai de lancement

En attente du GO de Big Boss. Plan approuvé :

  1. Lancer le script corrigé.
  2. Relever la ligne de commande du processus UnrealEditor.exe et le projet chargé.
  3. Vérifier que Wait-HyperAIStudioMCP.ps1 donne PASS.
  4. Fermer l'éditeur sans rien sauvegarder (TopRight, Person et GI sont gelés).
  5. Envoyer le BUILD-FIN avec Tools\CopieEtat.ps1 -Lot LANC1.

Résultat (BUILD-GO de Big Boss, nuit du 2026-10-12 au 13)

  • Avant : CopieEtat -Lot LANC1 -Assets … donne proc=0, modifies=0. Empreintes MD5 : GI FE4406A0…, Person D1B4C63D…, TopRight 1FCB94A6…, conformes à l'attendu. L'alerte GIT porte sur 17 fichiers de l'addon Plugins/LPSandbox (13 M, 4 ??) : elle est antérieure à l'essai et vient d'autres lots.
  • Lancement : Start-HyperAIStudioEditor.ps1 -TimeoutSeconds 400.
  • Ligne de commande du processus (PASS, établi) : "…\UnrealEditor.exe" "D:/Game/LifePlay-master 5.8/LifePlay.uproject" -ModelContextProtocolStartServer -ModelContextProtocolPort=8000. Le chemin arrive entier, entre guillemets.
  • Projet chargé (PASS, établi) : Saved\Logs\LifePlay.log contient Running engine for game: LifePlay. Le plugin ModelContextProtocol est monté et le port 127.0.0.1:8000 écoute, tenu par le processus de l'éditeur. Il n'y a plus de navigateur de projets.
  • MCP prêt (NON PROUVÉ) : Wait-HyperAIStudioMCP sort en code 1 après 401 s.
    • Cause : la fenêtre de l'éditeur est la boîte modale « Restaurer les paquets », qui bloque le fil de jeu.
    • Paquet proposé : /Game/BPs/GI, depuis Saved\Autosaves\Game\BPs\GI_Auto2.uasset du 2026-10-11 à 07:43, selon PackageRestoreData.json.
    • Cette cause est sans lien avec la correction.
  • Boîte non touchée. Restaurer modifierait GI, qui est gelé. Ignorer effacerait des données de reprise qui ne sont pas à LANC1. Décision laissée à Big Boss et à l'utilisateur.
  • Fermeture : Stop-Process sur le processus de l'éditeur, sans sauvegarde.
  • Après : proc=0, modifies=0, empreintes MD5 inchangées (identiques à l'avant). PackageRestoreData.json (2026-10-11 07:43, 352 o) et les GI_Auto1/2.uasset sont inchangés.

Verdict : la correction est PASS (le projet s'ouvre). L'essai du MCP prêt reste bloqué par la boîte de restauration de GI.

Arbitrage de Big Boss (BUILD-FIN acceptée)

  • Origine des fichiers d'autosave de GI : l'écriture interrompue de STE.
  • Suite : STE déplace ces fichiers en sauvegarde, puis lance l'éditeur par ce lanceur corrigé.
  • MCP prêt : prouvé par STE-H10 (a). La ligne « MCP prêt » de STE tient lieu de fin de cet essai, et LANC1 ne le rejoue pas. Au moment de la clôture de LANC1, cette ligne n'est pas encore écrite : la preuve est déléguée à STE-H10 (a).
  • Limite connue : HyperAIStudio régénère ce script (HyperAIStudioService.cpp l. 6240-6241, GenerateHelperScripts), et toute régénération efface la correction (§ 2 et § 6).

6. Suites hors lot

  • Données de reprise de GI (Saved\Autosaves\PackageRestoreData.json, GI_Auto1/2.uasset, 2026-10-11 07:32 et 07:43). Elles font apparaître la boîte « Restaurer les paquets » à chaque ouverture interactive de l'éditeur, ce qui bloque le MCP. Trois issues :

    • restaurer (GI change : interdit pendant le gel) ;
    • ignorer (les données de reprise sont perdues) ;
    • mettre ces fichiers de côté par instantané avant d'ignorer.

    Tranché par Big Boss : STE met ces fichiers en sauvegarde (voir § 5, Arbitrage).

  • Source du plugin (HyperAIStudioService.cpp l. 6240) : la correction du script sera perdue à la prochaine régénération. Décision de l'utilisateur (2026-10-13) : « garde la commande headless ». La commande headless de lp-mcp § 2 reste la voie officielle et le plugin n'est pas corrigé. Le lanceur corrigé reste en place comme voie d'appoint, sans garantie qu'il survive à une régénération.

  • Le script assigne la variable automatique $args (l. 13-14). Cela fonctionne, mais c'est une mauvaise pratique PowerShell. Non corrigé (correction minimale demandée).