Actualización 2.197
31/7/2026
v2.197.0.0BETAMINOR
Seymour31 jul 2026
P2 L2: AtelPhaseRotationAdapter (escritor local de bytes sin conexión) + OperationPreview (diferencial de 3 capas consumible) + validación de fuente/IDA
Core/Writers/AtelPhaseRotationAdapter.cs(atel-recipe-phase-rotation, registrado en el catálogo, 10 pruebas): aplicaAiPhaseRotationRecipe.Apply(API REAL, en memoria) sobre el AiFile cortado del contenedor monstruo; Condición previa de hash de TODO el contenedor a través deValidateMonsterBinHash(no coincide → lanzar antes de tocar la puesta en escena); validación previaCodeWalkClosedExactly; triple postvalidación (CodeWalkClosedExactly+UnknownOpcodes == 0+RoundTripsByteIdentical); Inserción re a través deSpliceAiFileIntoMonsterGrow(códec REAL API) con verificación de segmento re; lista de permitidos que refleja la forma REAL de la receta (BattleStart/AfterAnyValidTurn activa bloqueado — Clase B honesta/crecimiento);ComputeDryRunDiff(3 capas sobre AiFiles en rodajas). Validado en dispositivos reales: Se aplica m001 (5 vars + 2 puntos de entrada); m000 (0 vars) honestamente lo rechaza.Core/OperationPreview.cs(5 pruebas):OperationPreview/FilePreviewSummary: diferenciación de 3 capas (bytes/desmontaje/semántica) expuesta POR ARCHIVO, proveedor seguro para nulos (una falla en un archivo nunca cancela la vista previa);BuildFromPlanutiliza la misma convención de preparación que el ejecutor (vista previa posterior a la etapa = exactamente lo que se promocionaría). Prueba e2e completa: EditSession → OperationPlan → OperationExecutorV2 → ReceiptBuilder → salida que lleva la edición (CostMp=7) — simular→revisar→aplicar→recibo funciona de un extremo a otro en el Núcleo REAL.docs/ai/P2_VALIDACAO_SOURCE_2026-07-31.md(fuente/validación IDA): el juego carga TODO el contenedor de monstruos y resuelve las particiones mediante compensaciones de encabezado fijas (FFX_Battle_LoadMonsterFilesIntoMemoryChr@0x783730,InstallMonsterFileSectionPointers@0x783BB0 — confianza en el puntero, sin hash de tiempo de ejecución) → se confirmó que la precondición de hash de todo el contenedor es correcta; Despacho de ATEL en IDA (FFX_Atel_InterpretWorkerOpcodes@0x864180,DispatchNativeCall@0x877720, Mesa de batalla @0xC42618); códigos de operación 0xAE/0x9F/0xA0/0xB5/0xD8 probados en corpus; La puerta RT0 valida el recorrido estructural de ida y vuelta (no el comportamiento en el juego; RT2 sigue siendo pendiente por diseño); La batallaffx-reconstructedes a nivel de código auxiliar (la verdad del tiempo de ejecución se encuentra en los documentos IDA).- Línea de base: 223/223 PASS (207 → 223). ### MENOR
v2.196.0.0
v2.197.1.0BETAPATCH
Seymour31 jul 2026
`--phase-rotation-rt0` corrección de la puerta (comprobación de forma obsoleta) + integración en `offline_ci.ps1`
RuntimeTools/AiScriptLab/Program.cs(PhaseRotationRt0): la verificación de forma esperabaD8 0x700B(PerformCommand) en el bloque agregado, peroAiPhaseRotationWriteremiteD8 0x705A(ForcePerformCommand —CommandCallFor) en la receta ACTUAL →queued=Falseen 319/319 entradas de corpus (la última ejecución documentada fue v2.85.x, antes del cambio). Se corrigió a0x705Ay se le cambió el nombre ahasForcedPerform. Diagnóstico metódico: aplicar/validador/empalme ya pasó 319/319; la única bandera falsa fuequeued(idéntica en las 319 fallas a través de--json).RuntimeTools/offline_ci.ps1: Puerta--phase-rotation-rt0agregada a la sección AiScriptLab: cierra el requisito Goal-4 "familia RT0 antes de la compilación", que existía en AiScriptLab pero no estaba conectado al CI oficial.- Resultado:
--phase-rotation-rt0PASS (aplica receta 319/319, validador 319/319, empalme 319/319, verificación de forma 319/319, var1 almacena 300/300). offline_ci: 1 FALLAR preexistente no relacionado restante -BattleCompanionActivationLab(centinela de derivamcyt00_21: el corpusFFX Extractedha vuelto a la vainilla - slot0=m213, formación 213/37/37 - mientras el centinela documenta el carril Arena+ Eones oscuros Variante 334/335/336; decisión pendiente: restaurar el artefacto Arena+, actualizar el centinela o aceptar la deriva documentada). - Línea de base: 223/223 PASS (conjunto sin cambios; la solución es solo para la puerta de herramientas). ### MENOR ### MENOR
v2.197.0.0
v2.197.1.1BETAREVISION
Seymour31 jul 2026
P3-L1: base de tiempo de ejecución/integraciones/contratos de lanzamiento
docs/ai/P3_RUNTIME_CONTRACTS_2026-07-31.md(documento de gobernanza, solo lectura, sin cambios de bytes): contrato de tiempo de ejecución por recurso:FfxDinput8Probe(clave maestra del subproceso principal, MMFLocal\FFXProbeBlock_v1, STANDBY predeterminado, RT2 PROBADO 2026-06-03, modos de diagnósticomon/read/arena-flags),FfxHooksDll(23 ganchos, banderas F7, contratos por capa), 11 sondas RT2 de solo lectura (modo de diagnóstico por sonda); Contradicción de Forzar Batalla resuelta por evidencia (caída = fuera del hilo principal →CreateRemoteThreadretirado; puente del hilo principal PROBADO en pantalla como mecanismo / LAB como producto — instalación/config/respaldo/error procesable); contrato para herramientas externas (sonda, ganchos, ctl, corpus) matriz de compatibilidad (FFX.exe = objetivo único; ffxoficial = referencia IDA; PS2 = corpus fuera de línea P3 L2–L6 con objetivos mensurables (GameEnvironmentProbe); Conjunto de operaciones de 12 elementos, manifiesto de lanzamiento+hashes, contrato Gemini, RT2 por familia).- sin cambios de comportamiento: línea de base 223/223 PASS intacta. ### PARCHE
v2.197.1.0