Mise à jour 2.196
31/07/2026
v2.196.0.0BETAMINOR
Seymour31 juil. 2026
P2-B L3 (mapper proposition→plan→exécuteur) + P2 L1/L2 (aperçu AtelScriptAdapter + précondition de hash)
- Contrat LLM L3 (
Core/LLM/ProposalToPlanMapper.cs+LlmHistoryEntry.cs+ 6 tests) :MapToPlanexécuteLlmGuard(rejet → null + raison via out), résout l'adaptateur depuis le catalogue (pas d'adaptateur → MissingPrecondition), construitFileOperation(Patch, vrai BeforeHash, PredictedAfterHash = AfterHash de la proposition, Diff dérivé de PatchDiff) +OperationPlanavec les préconditions de capacité — rien n'est exécuté (l'appelant lanceOperationExecutorV2). Le contrat d'Edits de la recetteppp-sclmove-t3documenté et exposé comme constantes :offset(long),newBytesBase64(string),beforeHash(string).LlmHistoryEntry= 8 champs d'audit SANS payload/clé (surface testée via réflexion + JSON sans contenu sensible). - P2 L1/L2 (
Core/Writers/AtelScriptAdapter.cs+ 11 tests) : adaptateur aperçu-only (atel-script) : refuse toute édition avant de toucher le staging ; copy-only avec edits vides ;ComputePreviewDiff(3 couches viaAiDiffThreeLayer— prouvé avec la fixture réelle m001 : l'édition d'opérande0x009E→0x3049(Firaga) change octets+désassemblage+sémantique) ;ValidateMonsterBinHash(précondition SHA-256 du bin de monstre ENTIER —Monster_File.Writerelocalise les pointeurs). Pas enregistré dans le catalogue (L1 = rien d'écrit ; l'enregistrement vient avecAtelPhaseRotationAdapteren L2). - Baseline : 207/207 PASS (185 → 207). ### MINOR
v2.195.0.0