LifePlay-Revival/Docs/Migration/etat/REL/MAPDL1/MAPDL1-S6-1-IMPL.md
2026-10-22 21:10:39 +02:00

7.7 KiB

Fiche MAPDL1-S6-1-IMPL — Niveau N2 — Modèle prévu sonnet | utilisé claude-opus-5-5 (session MAPDL1, faite directement : outil court) — Agent session « Medium · MAPDL1 » — Skills sk-protocol, lp-city, lp-lot

MAPDL1-S6-1 : empreinte des fichiers posés dans IndexCartes.ps1 (SPEC-06 § 2) (2026-10-22)

Décision de l'utilisateur, citée par Big Boss : « approuvés ». C'était sa réponse à la question « J'approuve la SPEC-06 telle quelle et je lance COM31 maintenant ? ».

Cette étape se fait sans jeton UE et ne touche ni Source\ ni Content\, puisque COM31 s'empaquette en même temps.

1. Changement

Tools\IndexCartes.ps1 est un outil local, lié physiquement à D:\Game\LifePlay-Sandbox-5.8\Tools\IndexCartes.ps1. Il change sur trois points :

  1. Chaque entrée de l'index reçoit :
    • empreinte : l'empreinte des fichiers posés, calculée sur les membres de l'archive, en flux, sans rien extraire ;
    • anciennes : la liste [{version, empreinte}] des archives du même pack de version plus basse, trouvées dans LifePlay_Publication\Mods.
  2. Nouveau mode -EmpreintePose <dossier LifePlay> : il affiche l'empreinte des packs lpm_city_* posés dans une build, par le même calcul, et n'écrit rien.
  3. L'algorithme est celui de la SPEC-06 § 2 :
    • membres sous LifePlay/Mods/<pack>/ et LifePlay/Content/Modules/<pack>/, sans les dossiers ;
    • une ligne chemin en minuscules, tabulation, octets, tabulation, sha256 en minuscules par membre ;
    • lignes triées dans l'ordre ordinal, chacune suivie d'un saut de ligne ;
    • SHA-256 du texte en UTF-8.

Écriture en place : le fichier a été rédigé dans le scratchpad, puis ses octets ont été recopiés par [IO.File]::WriteAllBytes sur le fichier existant. Cette méthode tronque le fichier sans le remplacer, donc le lien physique est gardé.

Contrôle Résultat
Instantané Snapshot.ps1 -Lot MAPDL1-S6 -Path Tools\IndexCartes.ps1 ; avant : DAE98AA4C3B1D33A8518C10E932B9DDB
MD5 après, jeu F69B4F5ECF151AD4E339B667B4AE9B37
MD5 après, addon F69B4F5ECF151AD4E339B667B4AE9B37
fsutil hardlink list 2 liens, celui du jeu et celui de l'addon
Fins de ligne 0 CR (LF), ASCII

Retour arrière : Restore.ps1 -Lot MAPDL1-S6 -WhatIf, puis sans -WhatIf, sur décision. Attention, Restore.ps1 peut rompre le lien : il faut relire fsutil hardlink list après.

2. Mesuré

Empreintes des 11 packs posés dans COM30, sortie brute :

pwsh -NoProfile -File "...\IndexCartes.ps1" -EmpreintePose "D:\Game\LifePlay_Build_5.8_Development_COM30\Windows\LifePlay"
lpm_city_bangalore       6 fichiers  empreinte 7950253ca8aa6e969c07bfc13323f32553e3126583aade9f49d8fa8a06ab435d
lpm_city_beijing         6 fichiers  empreinte 3ce3aff07bf4e77255b62b0f4095f10866d87ef2ff8ad9a6f19c15dda2a7aad4
lpm_city_manila          6 fichiers  empreinte 88146243c19bff45986e0000f5ce4ef77244b4d3d03d40332a7001e8acab6159
lpm_city_mexicocity      6 fichiers  empreinte 035a306854a07a7c3343a694828b5c75cd2bc24d87f71b54412168f336fde6b3
lpm_city_moscow          6 fichiers  empreinte 9019986fc160614d8485ecc7b6a3deb8a0ecd6a496b0bbf4047e6426bcd51535
lpm_city_mumbai          6 fichiers  empreinte e859e5e27047622b1e0948084916ce30416bebba9f9dc729cd084ad734a4d9d1
lpm_city_nyc             6 fichiers  empreinte d049c15e5e75cdc3b4f44b93a5bfbe62b2bb2fdea2a950312783c71475b67e3a
lpm_city_paris           9 fichiers  empreinte c17c661887e248144b37aefd8198ebd7f8378ef19901cfacc0d983a980c4d006
lpm_city_seoul           6 fichiers  empreinte 540d8bc81fd9ecbde079ef4259123909a95f58484952953faac1d8df88c53b69
lpm_city_shanghai        6 fichiers  empreinte cd100d9e0d86a8d4791bcf3fe11075887b9b668322e2717c15777c36017b7840
lpm_city_tokyo           6 fichiers  empreinte c8a0b381e8d38d289a11387818ac6a07ddecfd6ef16495097c12c6c78fa62d20
packs poses : 11 ; dossier : D:\Game\LifePlay_Build_5.8_Development_COM30\Windows\LifePlay
exit=0

Index calculé depuis les zips (-Toutes -Hebergeur Modele -Modele "https://example.invalid/{zip}", écrit dans le scratchpad, hors du projet), comparé aux empreintes de COM30 :

packs retenus : 10 ; ecartes : 1 ; archives : D:\Game\LifePlay_Publication\Mods ; hebergeur : Modele
bangalore    1.0.0 empreinte 7950253c anciennes [] COM30 7950253c -> OFFICIEL
beijing      1.0.1 empreinte 3ce3aff0 anciennes [1.0.0=399625e2] COM30 3ce3aff0 -> OFFICIEL
manila       1.0.1 empreinte 88146243 anciennes [1.0.0=4903e522] COM30 88146243 -> OFFICIEL
mexicocity   1.0.1 empreinte 035a3068 anciennes [1.0.0=e6a1aa3a] COM30 035a3068 -> OFFICIEL
moscow       1.0.1 empreinte 9019986f anciennes [1.0.0=5e836db0] COM30 9019986f -> OFFICIEL
mumbai       1.0.0 empreinte e859e5e2 anciennes [] COM30 e859e5e2 -> OFFICIEL
nyc          1.0.0 empreinte d049c15e anciennes [] COM30 d049c15e -> OFFICIEL
seoul        1.0.1 empreinte 540d8bc8 anciennes [1.0.0=f85fd813] COM30 540d8bc8 -> OFFICIEL
shanghai     1.0.1 empreinte cd100d9e anciennes [1.0.0=f634a31b] COM30 cd100d9e -> OFFICIEL
tokyo        1.0.0 empreinte c8a0b381 anciennes [] COM30 c8a0b381 -> OFFICIEL

Les 10 packs de l'index sont reconnus officiels : le calcul sur le zip égale le calcul sur les fichiers posés.

Contre-épreuve : une copie de la pose de Manila, faite dans le scratchpad, donne 88146243…. Après l'ajout d'un octet à son CREDITS.txt, elle donne 0e13aa7b…. Ce cas sera « modifié ».

3. Paris dans l'index (voie (a), tranchée par Big Boss)

Constat de départ : -Toutes écartait les packs dont le CREDITS n'a pas de ligne « - file … SHA-256 », c'est-à-dire les packs qui ne viennent pas d'une ancienne carte Mega. Paris était donc absent de l'index, et la SPEC-06 l'aurait affiché « Installed (mod) ».

Décision de Big Boss : voie (a). Paris est un pack officiel, il reçoit une entrée ; aucune liste « officiels sans téléchargement ».

Ce qui est posé, deuxième écriture en place, lien physique gardé :

  • un pack est retenu dans deux cas :
    • il a la ligne « - file … » au CREDITS (ancienne carte) ;
    • ou son .lpmod source porte MODULE_AUTHOR: LifePlay et un MODULE_NAME (pack produit) ;
  • pour un pack produit :
    • source = LifePlay pack: <MODULE_NAME> - credits and licences in the CREDITS.txt of the pack ;
    • licences = ["osm"].

Relevé des 11 sources : toutes portent MODULE_AUTHOR: LifePlay. Seul Paris n'a pas la ligne « - file ».

Contrôle Résultat
MD5 après, jeu et addon 169B1AB74011F7D9B0B98FBAF3731E30 (les deux), fsutil : 2 liens, 0 CR, ASCII
-Toutes, sortie brute packs retenus : 11 ; ecartes : 0 ; archives : D:\Game\LifePlay_Publication\Mods ; hebergeur : Modele ; exit=0 en 15 s
Paris version 1.7.5 empreinte c17c6618 anciennes 26 licences osm : égale l'empreinte de COM30 (c17c6618…, § 2), donc officiel

Point ouvert, pour l'utilisateur : les licences tierces de Paris (modèles CGTrader, licence Fab Standard, CC BY 4.0, Licence Ouverte d'Etalab) sont décrites dans le CREDITS.txt du pack, mais pas dans la fenêtre d'accord du jeu, qui n'affiche que la licence OSM. Pour les montrer avant le téléchargement, il faudrait une entrée de licence propre au pack dans l'index et un fichier sous Content\Data\Licenses\, à partir de son CREDITS. C'est un changement de contenu, à décider. Il n'est pas fait.

4. Non mesuré

  • Durée du calcul sur 280 packs : non mesurée. Estimation de la SPEC-06 : environ 260 Mo/s sur D:.
  • Comportement du jeu : S6-2 n'est pas écrite.

Fichiers

  • A Docs/Migration/etat/REL/MAPDL1/MAPDL1-S6-1-IMPL.md
  • Tools\IndexCartes.ps1 : sans objet, outil local non suivi (CHG-357). La ligne de Tools\LISEZMOI.md (rubrique Villes) a été ajoutée par Big Boss ; ses codes de sortie, 0 et 2, sont justes.