28 KiB
Fiche OBA-T23-PROJ — Niveau N3 — Modèle prévu modèle de l'agent lp-cart | utilisé Opus 5.5 (claude-opus-5-5) — Agent lp-cart — Skills sk-protocol, lp-paths, ue-cpp-build, lp-commandlets
OBA-T23-PROJ-CART : plugins du dépôt et de l'addon, .git de Content\Modules embarqué dans les builds 5.8 (2026-10-09)
Lecture seule : aucun fichier modifié hors ce livrable, ni UE ni UAT lancé, aucun commit. Dépôt Modules : seuls les
noms de références, les comptes, les tailles et les dates ont été lus (aucun message de commit, aucun contenu).
Dates de fichiers en heure locale (UTC+2) ; horodatages des manifestes UAT en UTC (suffixe Z).
1. Objet et périmètre
Domaine « projet » du lot OBA : (a) comment Content\Modules\.git (450 763 872 o, 142 fichiers) entre dans les builds
5.8 et pas dans les builds 5.5, et quelle règle l'exclurait ; (b) les plugins du dépôt (StreetMap, ModdingExtra,
LPAnimCore, McpAutomationBridge, HyperAIStudio) et de l'addon (LPSandbox), soit les 6 lignes source=depot|addon de
OBA-T1-plugins.csv (l. 126, 150, 151, 156, 169, 244), évalués selon la grille O3 (30_Projet_Audit_Obsolescence.md:37).
Copies : D:\Game\LifePlay-master 5.8 (ue5.8), D:\Game\LifePlay-master 5.5 (main), addon D:\Game\LifePlay-Sandbox-5.8.
Hors périmètre : l'audit détaillé de HyperAIStudio (fiche OBA-T23-EDIT) et les dépréciations C++ (fiche OBA-T23-CODE).
2. Commandes et lectures (exactes) avec compte brut
Environnement vérifié : moteurs D:\Game\Launcher\Engine\UE_5.5 et UE_5.8 présents, avec les sources AutomationTool
(Glob de CopyBuildToStagingDirectory.Automation.cs : 1 résultat par moteur) ; addon 5.8 présent (1 .uplugin).
| # | Commande ou lecture | Compte brut |
|---|---|---|
| C1 | pwsh : Get-Item + Get-ChildItem -Recurse -File -Force sur <copie>\Content\Modules et \.git (copies 5.5, 5.8, 4.27) |
5.5 et 5.8 : Modules dossier ordinaire (LinkType vide) ; .git Hidden, Directory, Created=2026-10-07T20:26:39.6364479, 142 fichiers, 450 763 872 o. 4.27 : .git absent |
| C2 | pwsh : pour chaque D:\Game\LifePlay_Build_*, mesure de Content\Modules et de Content\Modules\.git |
7 builds 4.27/5.5 : .git absent (DC4 2 053 fichiers / 14 987 403 o ; V1.5 1 426 / 12 928 932 ; AP7 2 168 / 35 077 499). 7 builds 5.8 : Modules 2 195 fichiers / 465 751 275 o dont .git 142 / 450 763 872 o. Shipping_U8_PDB : pas de Content\Modules |
| C3 | pwsh : CreationTime du dossier de build, de Content\Modules et LastWriteTime de l'exe |
voir tableau § 3 A3 |
| C4 | git -C "…5.5\Content\Modules" : remote -v, rev-list --all --count, log --all --reverse --format='%ai | %ci' (1re et dernière ligne), count-objects -v, branch -a, rev-parse --is-shallow-repository, rev-parse --short HEAD ; idem copie 5.8 |
remotes 0 ; 115 commits ; 1re date auteur 2018-01-05 00:40:51 +0700 ; dernière 2026-10-07 15:49:08 +0200 ; in-pack: 14063, size-pack: 439864 (Kio), 115 objets libres ; 1 branche ; non superficiel ; HEAD ade587f. Copie 5.8 : 115, ade587f, size-pack: 439864 |
| C5 | Grep DirectoriesToAlwaysStage… dans Config\ des deux copies |
5.8 DefaultGame.ini:74, 5.5 DefaultGame.ini:71 : +DirectoriesToAlwaysStageAsNonUFS=(Path="Modules") ; aucun DirectoriesToAlwaysStageAsUFS, aucun StagingExclude |
| C6 | Grep et Read dans les sources UAT 5.5 et 5.8 (CopyBuildToStagingDirectory.Automation.cs, AutomationUtils\DeploymentContext.cs) |
voir § 3 A2 |
| C7 | pwsh : listage de D:\Game\LifePlay-master 5.8\Releases et recompte de 2026.10.2.0 |
1 dossier 2026.10.2.0 ; 5 fichiers, 1 294 248 283 o ; chemins contenant \.git\ : 0 ; dossiers .git : 0 |
| C8 | 7z l -slt sur LifePlay_Revival_V1.5_Windows_Game.7z et …V1.4_Windows_Game.7z, comptes awk des lignes Path = |
V1.5 : 1 596 entrées, 0 .git, 1 530 sous Content\Modules ; V1.4 : 1 613, 0, 1 539 (code de sortie 0) |
| C9 | git -C <copie> tag --format='%(refname:short) %(creatordate:iso)' (jeu, deux copies) |
v1.0 2026-09-30 … v1.5 2026-10-03 11:19:49 ; lot-VQ0-avant 2026-10-07 20:24:40 ; aucun tag 5.8 de publication |
| C10 | git -C …\Content\Modules reflog --date=iso --format='%gd %gs' (dates et type d'entrée seulement) |
2 entrées : clone: à 2026-10-07 20:24:23 ; filter-branch: horodatée 2026-10-07 15:49:08 |
| C11 | Modules : for-each-ref --format='%(refname)' ; rev-list --count HEAD, --all, --all --reflog ; jeu : rev-list --all --count, count-objects -v ; cat-file -t a83ea56 dans les deux dépôts ; merge-base --is-ancestor a83ea56 HEAD ; jeu : log --all -1 -- Content/Modules, ls-files Content/Modules ; Modules : rev-list --objects HEAD et --all --reflog comptés |
1 réf. (refs/heads/main) ; 115 / 115 / 428 commits ; jeu 731 commits, in-pack: 15306, size-pack: 429198 ; a83ea56 = commit dans les deux dépôts, non ancêtre de HEAD dans Modules ; dernier commit du jeu touchant Content/Modules : 69f975c 2026-10-03 10:14:37 ; 0 fichier suivi ; objets 6 607 (HEAD) contre 14 172 (reflog compris) |
| C12 | git rev-list --objects <HEAD|--all --reflog> | cut -d' ' -f1 | git cat-file --batch-check='%(objectsize:disk)', somme awk (1er essai sans cut : +inf, sortie invalide, refait) |
HEAD : 10 238 344 o ; reflog compris : 450 046 383 o |
| C13 | find "$M" -maxdepth 1 (comptes seulement) |
racine de Content\Modules : 21 fichiers (21 .txt), 17 dossiers hors .git ; pas de .gitignore propre |
| C14 | Grep Modules[\\/]\.git[\\/] (count) dans Manifest_NonUFSFiles_Win64.txt de Shipping_U8 et de DC4 |
Shipping_U8 : 142 ; DC4 : 0 ; lignes 175-177 : …/.git/objects/pack/pack-e259cb6b….{idx,pack,rev} 2026-10-07T18:24:23.2xxZ |
| C15 | git log -S'DirectoriesToAlwaysStageAsNonUFS' -- Config/DefaultGame.ini (deux copies) ; git diff -U0 main ue5.8 -- Config/DefaultGame.ini |
1122e17 2026-09-29 00:56:10 L0 : etat initial du projet 5.5… dans les deux ; diff : 5 insertions, 2 suppressions (ProjectVersion, StagingDirectory, bUseZenStore=False + 2 commentaires), aucune ligne de staging |
| C16 | Read Tools\SplitModules.ps1, Tools\BuildDebug.ps1 ; Grep Releases|Content[\\/]Modules|\.git|robocopy|-Exclude dans Tools\*.{ps1,py,bat,cmd,psm1} ; Grep BuildCookRun|archivedirectory|createreleaseversion dans Tools\ et etat\U58\U8 |
1 seul BuildCookRun dans Tools (BuildDebug.ps1:52) ; aucun filtre .git ni robocopy ; U8 lance UAT directement (U8-T4-BUILD.md:9) |
| C17 | Glob Plugins/**/*.uplugin (copie 5.8, copie 5.5, addon 5.8) ; Read des 5 .uplugin + Grep des champs de HyperAIStudio.uplugin ; Read LifePlay.uproject (5.8) |
5.8 : 5 ; 5.5 : 4 (pas de Marketplace) ; addon : 1 |
| C18 | Grep (count puis content) des noms de plugins et modules dans Source\ (5.8) ; Grep dans Config\ ; Grep .gitignore |
Source : 58 occurrences dans 13 fichiers ; Config : 1 (DefaultGame.ini:76) |
| C19 | git ls-files Plugins/<p> ; git status --porcelain --ignored Plugins/<p> ; ls Binaries/Win64/*.dll ; git check-ignore -v |
voir § 3 B ; addon Plugins/LPSandbox : 66 fichiers suivis, HEAD ec23fad 2026-10-09 18:58:19 |
| C20 | git grep -l --text -F <motif> -- Content (assets suivis seulement, 292 .uasset/.umap) ; ls -R Content/Heavy/StreetMap compté |
ModdingExtraBPLibrary 12 ; StreetMapRuntime 30 ; /Script/LPAnimCore, /Script/LPSandbox, /Script/LPAnimMeasure, McpAutomationBridge, HyperAIStudio : 0 ; fonctions LoadTxt 9, SaveTxt 4, GetAllFilesFromFolder 6, ContentDirectory 4, GetAllSubfolders 0, IsPointInsidePolygon 0, ModdingExtraSampleFunction 0 ; Heavy/StreetMap : 560 assets sur disque |
| C21 | Grep dans Manifest_UFSFiles_Win64.txt (Shipping_U8), Binaries\Win64\LifePlay-Win64-Shipping.target, Intermediate\Build\Win64\x64\LifePlay\Shipping\LifePlay-Win64-Shipping.exe.rsp ; find des plugins cuits |
voir § 3 B ; plugins cuits : 2 fichiers (StreetMap/Content/StreetMapDefaultMaterial.uasset/.uexp) |
Méthodes en échec (0 résultat = échec de méthode, non pris comme absence) : Grep outil sur Content\*.uasset (0, fichiers
binaires ignorés ; remplacé par C20) ; Grep outil sur LifePlay-Win64-Shipping.exe (0 pour LPAnimMeasure et pour le
témoin LPAnimCore, forcément lié : non concluant ; remplacé par le .rsp, C21) ; Grep Module\.LPAnimMeasure dans
Saved\Logs\portage\*Ship*.log (0 : aucun journal de compilation Shipping complète conservé sous ce nom).
3. Constats fichier:ligne
A. Content\Modules\.git dans les builds 5.8
A1. La règle qui copie Content\Modules est la même dans les deux branches, depuis L0.
Config/DefaultGame.ini:74 (5.8) et :71 (5.5), section [/Script/UnrealEd.ProjectPackagingSettings] (:12) :
+DirectoriesToAlwaysStageAsNonUFS=(Path="Modules"). Introduite par 1122e17 (2026-09-29, « L0 : etat initial »), donc
héritée du projet d'origine ; git diff main ue5.8 -- Config/DefaultGame.ini ne touche aucune ligne de staging (C15).
A2. UAT copie tout le dossier, y compris les dossiers cachés, et le code est identique en 5.5 et en 5.8.
- 5.8
CopyBuildToStagingDirectory.Automation.cs:2056→StageAdditionalDirectoriesFromConfig(:817-857), branche NonUFS:852:SC.StageFiles(StagedFileType.NonUFS, InputDir, StageFilesSearch.AllDirectories, OutputDir);(la seule vérification estDirectory.Exists,:838). 5.5 ::1512,:779-819,:814, à l'identique. - Récursion :
DeploymentContext.cs5.8:784-790, 5.5:749-755: un sous-dossier n'est écarté que s'il figure dansRestrictedFolderNames, c'est-à-dire noms de plateformes +RestrictedFolder.GetNames()(5.8:581-587, 5.5:561-567). Aucun filtre sur l'attribut caché ni sur.git. - Clés
[Staging]lues (5.8:594-646, 5.5:574-622) :RemapDirectories,AllowedDirectories,DisallowedLocalizationTargets,AllowedConfigFiles,DisallowedConfigFiles,ExtraAllowedFiles. Aucune clé n'exclut un sous-dossier d'un répertoire NonUFS.RestrictedFolderest défini dans le code (UnrealBuildTool\System\RestrictedFolders.cs, accesseurGetNames():146), pas dans une configuration du projet.
A3. La différence entre 5.5 et 5.8 tient à la date : le .git a été créé après le dernier build 5.5.
| Build | Content\Modules créé |
.git dans le build |
|---|---|---|
LifePlay_Build_5.5_Shipping_V1.5 |
2026-10-03 10:51:07 | absent |
LifePlay_Build_5.5_Shipping_AP7 |
2026-10-07 02:33:32 | absent |
LifePlay_Build_5.5_DC4 (dernier build 5.5) |
2026-10-07 20:17:04 | absent |
création de Content\Modules\.git (copies 5.5 et 5.8) |
2026-10-07 20:26:39 (C1) | — |
LifePlay_Build_5.8_Development |
2026-10-08 22:17:59 | 142 fichiers, 450 763 872 o |
LifePlay_Build_5.8_U7d |
2026-10-09 10:20:00 | idem |
LifePlay_Build_5.8_Shipping_V2.0 |
2026-10-09 10:39:08 | idem |
LifePlay_Build_5.8_Shipping_U8 / _essai |
2026-10-09 18:12:23 / 18:16:09 | idem |
LifePlay_Build_5.8_Development_U8 / _essai |
2026-10-09 18:19:42 / 18:23:46 | idem |
Hors .git, le contenu des builds 5.8 égale celui de DC4 : 2 195 − 142 = 2 053 fichiers et 465 751 275 − 450 763 872 = |
||
| 14 987 403 o, soit exactement les valeurs de DC4 (C2). |
A4. C'est bien UAT qui le copie. Windows\Manifest_NonUFSFiles_Win64.txt (écrit par la mise en scène) liste 142
fichiers Modules/.git/ dans Shipping_U8, 0 dans DC4 (C14). Le pack porte l'horodatage 2026-10-07T18:24:23Z
(= 20:24:23 locale, Manifest_NonUFSFiles_Win64.txt:175-177), qui correspond à l'entrée clone du reflog (C10).
A5. Origine et contenu du dépôt Modules (métadonnées seulement).
.gitignore:76-77:# PUB2 (2026-10-07) : depot public sans contenu sexuel ; modules de jeu dans un depot local separe (Content/Modules/.git)puis/Content/Modules/. Le dépôt du jeu ne suit plus aucun fichier sousContent/Modules(0 fichier ; dernier commit qui y touche :69f975c, 2026-10-03 10:14:37) (C11).- Dépôt Modules : aucun remote, une seule référence (
refs/heads/main), 115 commits depuis HEAD (1re date auteur 2018-01-05). Le reflog compte 2 entrées :clone(2026-10-07 20:24:23) puisfilter-branch(C10). - Poids : les objets atteignables depuis HEAD occupent 10 238 344 o sur disque ; reflog compris, 450 046 383 o
(C12). Les 97,7 % restants (439 808 039 o, 313 commits, 7 565 objets) ne sont retenus que par le reflog. Le pack
(439 864 Kio) a la taille de celui du dépôt du jeu (429 198 Kio), et le commit
a83ea56du jeu (cité par CHG-097,Journal_Modifications.md:1073) existe dans les objets de Modules sans être ancêtre de HEAD (C11).
A6. Hypothèses classées.
| # | Hypothèse | Verdict | Preuve |
|---|---|---|---|
| H1 | Chronologie : .git créé le 2026-10-07 à 20:26:39, après le dernier build 5.5 (DC4, 20:17:04) ; tout build fait depuis le copie |
retenue | A1-A4 |
| H2 | Configuration de staging différente entre 5.5 et 5.8 | réfutée | règle identique (A1), diff sans ligne de staging (C15) |
| H3 | UAT 5.5 filtre les dossiers cachés, UAT 5.8 non | réfutée par lecture | code identique (A2) ; reste à exclure seulement un écart de comportement du runtime .NET (improbable, non testé) |
| H4 | Content\Modules est une jonction différente selon la copie |
réfutée | LinkType vide dans les deux copies (C1) |
A7. Aucun build distribué n'est touché.
- Archives publiées :
LifePlay_Revival_V1.4_Windows_Game.7zet…V1.5…: 0 entrée.gitsur 1 613 et 1 596 (C8) ; tagsv1.0àv1.5posés entre le 2026-09-30 et le 2026-10-03 (C9), donc avant le 2026-10-07. - 2026.10.2.0 n'a pas été publié : commit
f90eec1(« U8 : reprise partielle T2-T5 sans publication, reference 2026.10.2.0 gardee ») ;etat\U58\U8\U8-SUIVI.md:15(« aucune publication »). Releases\2026.10.2.0(C7) :Windows\AssetRegistry.bin4 569 308,Windows\Metadata\DevelopmentAssetRegistry.bin8 611 567,LifePlay-Windows.pak20 216 202,.ucas1 259 275 600,.utoc1 575 606 o (créés le 2026-10-09 entre 10:38:24 et 10:38:38). C'est le dossier de référence produit par-createreleaseversion(conteneurs cuits + registre d'assets, pour les correctifs et les mods), pas une copie du jeu. Il est exempt parce que les fichiers NonUFS n'y vont jamais, pas grâce à un filtre (voir § 4). Même minute queShipping_V2.0(dossier créé à 10:38:28) ;U8-T4-BUILD.md:43le rattache à U7-T14.- Builds locaux concernés (non distribués) :
5.8_Development,5.8_U7d,5.8_Shipping_V2.0,5.8_Shipping_U8,5.8_Development_U8, ainsi que les copies_essai.
A8. Une publication par SplitModules.ps1 garderait le .git. Tools\SplitModules.ps1:47 appelle
Get-ChildItem $modules -Directory sans -Force et ne retient que les dossiers qui ont un <nom>.lpmod. Le .git
caché n'est donc ni listé ni déplacé, et resterait dans le build publié. Tools\BuildDebug.ps1:52 (seul BuildCookRun
de Tools) ne filtre rien non plus.
A9. Coût : 450 763 872 o, soit 22,3 % du Shipping (OBA-T4-INV.md:46,54).
A10. Règles d'exclusion possibles (aucune n'est appliquée ici). Aucune ne s'écrit en .ini : UAT 5.5/5.8 n'a pas de
clé pour exclure un sous-dossier NonUFS (A2).
| # | Règle | Où elle s'écrit | Effet / limite |
|---|---|---|---|
| P1 (structurelle, minimale côté staging) | Sortir le dossier git de l'arbre mis en scène. Variante a : git init --separate-git-dir=<chemin hors Content> dans Content\Modules (le .git devient un fichier texte d'environ 60 o qui contient un chemin local et reste copié). Variante b : dépôt hors de l'arbre avec core.worktree = Content\Modules, sans aucune entrée .git |
config du dépôt Modules (non suivie) dans chaque copie (5.5 et 5.8) ; mise à jour de lp-paths (ligne « Modules ») et du commentaire .gitignore:76 |
supprime les 450 Mo à la source pour tout moteur et tout script ; la variante b oblige à remplacer git -C Content\Modules par --git-dir/--work-tree dans les skills et les scripts |
| P2 (garde-fou) | Refuser (throw) un build qui contient Windows\LifePlay\Content\Modules\.git, ou le déplacer vers une sauvegarde après l'archivage (sk-change-safety) |
Tools\SplitModules.ps1 après :37 ; Tools\BuildDebug.ps1 après :60 ; consigne des fiches qui lancent UAT directement (cas U8, U8-T4-BUILD.md:9) |
ne protège que les chemins qui passent par ces scripts |
| P3 (poids seulement) | git reflog expire --expire=now --all puis git gc --prune=now dans le dépôt Modules |
dépôt Modules | .git estimé à environ 10 Mo (C12) mais toujours copié ; perte irréversible des objets retenus par le reflog (à vérifier d'abord qu'ils sont tous dans le dépôt du jeu, point 5.2) |
| P4 (rejetée) | Remplacer (Path="Modules") par 17 entrées, une par sous-dossier |
Config/DefaultGame.ini:74 |
perd les 21 .txt de la racine (la règle ne prend que des dossiers, 5.8 :838) et demande une ligne par nouveau module |
| Recommandation (la décision revient à l'utilisateur) : P1 et P2 ensemble. |
B. Plugins du dépôt et de l'addon (grille O3)
| Plugin | Origine, suivi git | .uplugin (version ; modules : type : phase) |
Activation | Usage prouvé | Dans le Shipping 5.8 | État 5.8 | Service | Action proposée | Risque |
|---|---|---|---|---|---|---|---|---|---|
| StreetMap | dépôt (tiers, Mike Fricker / ue4plugins) ; 34 fichiers suivis dont 28 .cpp/.h ; Binaries ignorés .gitignore:19-20 |
StreetMap.uplugin:3-4 1 / « 1.0 » ; :13 EnabledByDefault ; :17-30 StreetMapRuntime Runtime Default, StreetMapImporting Editor Default |
LifePlay.uproject:41-44 |
30 assets suivis citent StreetMapRuntime ; 560 assets sous Content/Heavy/StreetMap ; LPDataCompat.cpp:274-275 (/Game/Heavy/StreetMap/…/CentralLondon) ; LifePlayEditorTools.Build.cs:31-32 (commandlet LPCheckStreetMap) ; LPDebugSubsystem.cpp:190,254 ; LPDirectControlSubsystem.cpp:388 |
oui : LifePlay-Win64-Shipping.exe.rsp:1095 ; manifeste UFS :963, :5306-5307 (StreetMapDefaultMaterial) ; CentralLondon.uexp cuit 137,3 Mo (OBA-T4-INV.md:67) |
compile et se lie (U8) ; avertissements C4996 connus selon lp-ue-compat, non relus ici |
oui (carte de la ville) | garder ; dépréciations à traiter par OBA-T23-CODE | élevé en cas de retrait |
| ModdingExtra | dépôt (Vinfamy) ; 8 fichiers suivis ; Binaries ignorés .gitignore:21-22 |
ModdingExtra.uplugin:3-4 1 / « 1.0 » ; :16-22 ModdingExtra Runtime PreLoadingScreen ; contient Private/LPDataCache.{h,cpp} |
LifePlay.uproject:37-40 |
ModdingExtraBPLibrary dans 12 assets suivis : LoadTxt 9, GetAllFilesFromFolder 6, SaveTxt 4, ContentDirectory 4 ; GetAllSubfolders, IsPointInsidePolygon, ModdingExtraSampleFunction : 0 (assets suivis seulement) ; LPSessionLogSubsystem.cpp:498 |
oui : .rsp:947 ; manifeste UFS :962 |
compile (U8) ; LPDataCache figure parmi les ruptures 5.8 de lp-ue-compat (non relu) |
oui : lecture et écriture des modules texte de Content/Modules, au cœur du système de modules |
garder ; corriger : retirer ModdingExtraSampleFunction (reste de gabarit) après vérification des assets non suivis |
critique en cas de retrait |
| LPAnimCore | dépôt (LifePlay) ; 7 fichiers suivis | LPAnimCore.uplugin:4 « 1.0.0 » ; :11-19 LPAnimCore Runtime PreDefault, Win64 |
LifePlay.uproject:22-28 |
LifePlay.Build.cs:43-45 (PublicDependencyModuleNames.Add("LPAnimCore")) ; dépendance de l'addon (LPSandbox.uplugin:15-20) ; aucun asset (C++ seul) |
oui : .rsp:686 ; manifeste UFS :960 |
compile (U8) | oui (LPAnimRedirect, LPCoupleSim, LPAnimCore.uplugin:6) |
garder | élevé |
| McpAutomationBridge | dépôt sur disque, non suivi (.gitignore:41) ; présent dans les deux copies ; 2 DLL dans Binaries\Win64 |
McpAutomationBridge.uplugin:3-4 600 / « 0.6.0-beta-b » ; :14-16 bêta + expérimental + EnabledByDefault ; :18-39 2 modules Editor Default ; :40-216 36 dépendances, dont PythonScriptPlugin, GameplayAbilities et SmartObjects non optionnels |
LifePlay.uproject:49-56 Enabled: false, Optional, TargetAllowList: ["Editor"] |
0 référence dans Source et dans les assets suivis ; reste une section Config/DefaultGame.ini:76-79 (bEnableNativeMCP=True, NativeMCPPort=3000, bLoadAllToolsOnStart=True) |
non (0 ligne au manifeste UFS) | désactivé depuis D4 | non | retirer (remplacé par le MCP d'Epic ModelContextProtocol, 29_Projet_Stabilisation_V2.md:188-192, 30_…:65-68) : déplacer le dossier vers une sauvegarde, retirer l'entrée .uproject et la section .ini ; décision G-STM / G-OB |
faible (désactivé, 0 référence) |
| HyperAIStudio | Fab, Plugins/Marketplace, copie 5.8 seulement ; ignoré localement par .git/info/exclude:15 (absent de .gitignore) ; 25 DLL |
HyperAIStudio.uplugin:3-4 101 / « 1.0.1 » ; :13 EngineVersion 5.8.0 ; :15 Installed: true ; 25 modules Editor (OBA-T1-plugins.csv:126) |
absent du .uproject (actif par défaut comme plugin de projet : estimé) |
LifePlayEditorTools.cpp:10-14 et LifePlayEditorTools.Build.cs:41 (préchargement d'AutomationController, lot STM) ; 0 asset |
non (0 ligne au manifeste UFS) | installé pour 5.8 | partiel (diagnostic MCP, doc 29 :188) |
hors périmètre détaillé → OBA-T23-EDIT | — |
| LPSandbox (addon privé) | D:\Game\LifePlay-Sandbox-5.8, 66 fichiers suivis (HEAD ec23fad) ; chargé par LifePlay.uproject:317-319 (AdditionalPluginDirectories: ../LifePlay-Sandbox-5.8/Plugins) |
LPSandbox.uplugin:4 « 0.1.0 », :10 bêta ; :22-29 LPSandbox Runtime, exclu du Shipping (TargetConfigurationDenyList) ; :30-34 LPAnimMeasure Runtime sans exclusion ; :35-39 LPModTools Editor |
LifePlay.uproject:29-36 Enabled, Optional, Win64 |
0 asset du jeu ; sert à la sandbox, à la mesure d'animation et aux commandlets de l'atelier (lp-commandlets) |
oui, partiellement : .rsp:915 lie Intermediate/External/Build/Win64/x64/UnrealGame/Shipping/LPAnimMeasure/Module.LPAnimMeasure.cpp.obj ; reçu LifePlay-Win64-Shipping.target:3924 (chemin D:\Game\LifePlay-Sandbox-5.8\…\LPSandbox.uplugin) et :4084 ; manifeste UFS :958 RemappedPlugins/LPSandbox/LPSandbox.uplugin (descripteur privé dans le pak) |
compile (U8) | oui en développement, non en jeu | garder pour le développement ; corriger : sortir l'addon des builds Shipping (exclure LPAnimMeasure du Shipping dans l'addon, ou exclure le plugin de la configuration Shipping au .uproject, ou empaqueter sans l'addon comme DC4) ; décision utilisateur |
confidentialité de l'addon privé dans un build public |
4. Établi / estimé / incertain
Établi :
- La règle
+DirectoriesToAlwaysStageAsNonUFS=(Path="Modules")existe depuis L0 et est identique dans les deux branches. UAT 5.5 et 5.8 copient tout son contenu, dossiers cachés compris (le code est le même), et aucune clé.inine permet d'en exclure un sous-dossier (A1, A2). - Le
.gitest apparu le 2026-10-07 à 20:26:39, 9 min après la mise en scène de DC4 (dernier build 5.5). Tous les builds 5.8, postérieurs, le contiennent, et le manifeste NonUFS d'UAT le prouve (142 fichiers contre 0) (A3, A4). - 97,7 % du poids du
.git(439 808 039 o) ne tient qu'au reflogclone/filter-branch; depuis HEAD, il ne reste que 10 238 344 o (A5). - Aucune archive publiée ne contient de
.git(V1.4, V1.5 : 0 entrée). 2026.10.2.0 n'est pas publié.Releases\2026.10.2.0ne compte que 5 fichiers, sans.git(A7). SplitModules.ps1:47laisserait le.gitdans un build publié (A8).- Plugins : usages, présence au Shipping et activation selon le tableau B. L'exe Shipping lie
LPAnimMeasure, un module de l'addon privé (.rsp:915), et le pak contientRemappedPlugins/LPSandbox/LPSandbox.uplugin. Estimé : - Le dépôt Modules a été créé par le lot PUB2 en clonant le dépôt du jeu puis en lançant
filter-branchpour ne garder queContent/Modules, sansreflog expirenigc: son.gitgarde donc l'historique complet du jeu, et non seulement celui des modules. Indices : entréesclone/filter-branch,a83ea56commun aux deux dépôts, packs de même taille,.gitignore:76. - Un build 5.5 fait aujourd'hui depuis la copie 5.5 contiendrait aussi le
.git(même règle, même code,.gitprésent). Releases\2026.10.2.0vient de-createreleaseversion, qui n'enregistre que les conteneurs cuits et le registre d'assets ; aucun filtre n'est en cause.- HyperAIStudio est actif par défaut comme plugin de projet (pas de champ
EnabledByDefault, pas d'entrée au.uproject). Incertain : - Écart de comportement du runtime .NET entre UAT 5.5 et 5.8 sur l'énumération des dossiers cachés. Pour trancher : une
mise en scène 5.5 avec le
.gitprésent (interdite ici). - Le code source de V1.5 (publié) liait-il déjà
LPAnimMeasureet embarquait-il le descripteur LPSandbox ? Non vérifié (point 5.3). - Avertissements C4996 de StreetMap et rupture
LPDataCacheen 5.8 : cités delp-ue-compat, non relus ici. - Usage des fonctions de ModdingExtra dans les assets non suivis (
Content/Heavyet autres) : non couvert pargit grep.
5. Points à confirmer (repris par la fiche suivante)
- H1 par l'essai : mise en scène à blanc d'un build 5.5 avec le
.gitprésent, ou relecture d'un manifeste NonUFS 5.5 postérieur au 2026-10-07 20:26 s'il en existe un. - Avant P3 : vérifier que tous les commits retenus par le reflog de Modules (428 − 115 = 313) existent dans le dépôt du
jeu (
git rev-list --all --reflogcôté Modules, puisgit cat-file -ecôté jeu). - Build publié V1.5 : lister le pak (UnrealPak
-List, lecture seule) pourRemappedPlugins/LPSandboxet relire le.rspShipping 5.5 de la copiemain, s'il existe encore, pourLPAnimMeasure. - Pour la variante P2 « déplacer » : comportement de
BuildCookRun -skipstage -archive, non vérifié. - Exclusion de LPSandbox du Shipping : vérifier dans
PluginReferenceDescriptor(5.8) que l'entrée.uprojectaccepteTargetConfigurationDenyList, ou retenir l'exclusion par module dansLPSandbox.uplugin. - C4996 de StreetMap et
LPDataCacheen 5.8 : fiche OBA-T23-CODE. - Recherche des fonctions de ModdingExtra dans les assets non suivis :
LPDumpFunction, ou MCP en lecture. - Écart OBA-T1 :
OBA-T1-plugins.csv:151donne LPSandboxmonte_jeu=non, alors queLPAnimMeasureest lié dans le Shipping (.rsp:915). À reprendre dans l'inventaire.
6. Questions pour la SPEC ou l'utilisateur
- Q1. Exclusion du
.git: P1 (variante a ou b) et/ou P2 ? P3 (alléger le.gitde 450 Mo à environ 10 Mo) est-il acceptable, sachant que la perte du reflog est irréversible ? - Q2. Faut-il refaire les builds locaux 5.8 qui contiennent le
.git(aucun n'est distribué), ou les laisser tels quels jusqu'au prochain empaquetage ? - Q3. L'addon privé (
LPAnimMeasurelié, descripteur dans le pak) peut-il rester dans un Shipping destiné à la publication ? Sinon, quelle exclusion retenir (point 5.5) ? - Q4. Retirer McpAutomationBridge (dossier, entrée
.uproject, sectionDefaultGame.ini:76-79) dès la porte G-STM, ou attendre G-OB ? - Q5. HyperAIStudio : garder l'exclusion locale (
.git/info/exclude:15) ou l'inscrire au.gitignore(la copie 5.5 et un nouveau clone ne l'ignorent pas) ?
Constats
- Le
AGENTS.mddePlugins\McpAutomationBridge, injecté par un hook à la lecture du.uplugin, annonce la version0.5.30, contre0.6.0-beta-bdansMcpAutomationBridge.uplugin:4. Il est traité comme une donnée tierce, non comme une consigne. LifePlay.uproject:5décrit toujours le projet comme « LifePlay 2026.9 beta - portage UE 5.5 » (copie 5.8).- Le
.gitignoredu jeu ne couvre pasPlugins/Marketplace/: l'exclusion de HyperAIStudio n'existe que dans.git/info/excludede la copie 5.8. - Budget : environ 40 tours (lots d'appels parallèles), sous le plafond de jetons ; pas de coupure.