Aggiornamento 2.196
31/07/2026
v2.196.0.0BETAMINOR
Seymour31 lug 2026
P2-B L3 (proposal→plan→executor mapper) + P2 L1/L2 (AtelScriptAdapter preview + hash precondition)
- LLM contract L3 (
Core/LLM/ProposalToPlanMapper.cs+LlmHistoryEntry.cs+ 6 tests):MapToPlanrunsLlmGuard(rejection → null + reason via out), resolves the adapter from the catalog (no adapter → MissingPrecondition), buildsFileOperation(Patch, real BeforeHash, PredictedAfterHash = proposal AfterHash, Diff derived from PatchDiff) +OperationPlanwith capability Preconditions — nothing is executed (caller runsOperationExecutorV2). Recipeppp-sclmove-t3Edits contract documented and exposed as constants:offset(long),newBytesBase64(string),beforeHash(string).LlmHistoryEntry= 8 audit fields WITHOUT payload/key (surface tested via reflection + JSON without sensitive content). - P2 L1/L2 (
Core/Writers/AtelScriptAdapter.cs+ 11 tests): preview-only adapter (atel-script): refuses any edit before touching staging; copy-only with empty edits;ComputePreviewDiff(3 layers viaAiDiffThreeLayer— proven with real fixture m001: operand edit0x009E→0x3049(Firaga) changes bytes+disassembly+semantics);ValidateMonsterBinHash(SHA-256 precondition of the WHOLE monster bin —Monster_File.Writerelocates pointers). Not registered in catalog (L1 = nothing written; registration comes withAtelPhaseRotationAdapterin L2). - Baseline: 207/207 PASS (185 → 207). ### MINOR
v2.195.0.0