Actualización 2.196
31/7/2026
v2.196.0.0BETAMINOR
Seymour31 jul 2026
P2-B L3 (propuesta→plan→mapeador ejecutor) + P2 L1/L2 (vista previa de AtelScriptAdapter + condición previa de hash)
- Contrato LLM L3 (
Core/LLM/ProposalToPlanMapper.cs+LlmHistoryEntry.cs+ 6 pruebas):MapToPlanejecutaLlmGuard(rechazo → nulo + motivo de salida), resuelve el adaptador del catálogo (sin adaptador → MissingPrecondition), compilaFileOperation(PARCHE, REAL BeforeHash, PredictedAfterHash = propuesta AfterHash, diferencia derivada de PatchDiff) +OperationPlancon capacidad Condiciones previas: no se ejecuta nada (la persona que llama ejecutaOperationExecutorV2). Recetappp-sclmove-t3Edita el contrato documentado y expuesto como constantes:offset(largo),newBytesBase64(cadena),beforeHash(cadena).LlmHistoryEntry= 8 campos de auditoría SIN carga útil/clave (superficie probada mediante reflexión + JSON sin contenido confidencial). - P2 L1/L2 (
Core/Writers/AtelScriptAdapter.cs+ 11 pruebas): adaptador de solo vista previa (atel-script): rechaza cualquier edición antes de tocar la puesta en escena; solo copia con ediciones vacías;ComputePreviewDiff(3 capas a través deAiDiffThreeLayer— probado con dispositivo REAL m001: edición de operando0x009E→0x3049(Piro++) cambia bytes+desmontaje+semántica);ValidateMonsterBinHash(condición previa SHA-256 de TODO el contenedor monstruo:Monster_File.Writereubica los punteros). No registrado en catálogo (L1 = nada escrito; el registro viene conAtelPhaseRotationAdapteren L2). - Línea de base: 207/207 PASS (185 → 207). ### MENOR
v2.195.0.0